0.0.2
This commit is contained in:
parent
fadea22b9d
commit
d72b5ac57b
14 changed files with 184 additions and 5 deletions
|
@ -8,10 +8,13 @@ func _on_dropoff(body: Node3D) -> void:
|
|||
var player: Player = body
|
||||
if player.caught_player and !caught_player:
|
||||
caught_player = player.caught_player
|
||||
player.caught_player.get_imprisoned.rpc_id(player.caught_player.get_multiplayer_authority(), get_path())
|
||||
caught_player.get_imprisoned.rpc_id(caught_player.get_multiplayer_authority(), get_path())
|
||||
player.released_player.rpc_id(player.get_multiplayer_authority())
|
||||
(player.get_node("ReleaseTimer") as Timer).stop()
|
||||
($DamageTimer as Timer).start()
|
||||
for i: int in range(Multiplayer.players.size()):
|
||||
if Multiplayer.players[i].id == caught_player.get_multiplayer_authority():
|
||||
Multiplayer.players[i].captured = true
|
||||
elif !player.hunter and player.visible and caught_player and caught_player.health > 0:
|
||||
caught_player.go_free.rpc_id(caught_player.get_multiplayer_authority())
|
||||
caught_player = null
|
||||
|
|
10
entities/escape_area.gd
Normal file
10
entities/escape_area.gd
Normal file
|
@ -0,0 +1,10 @@
|
|||
extends Area3D
|
||||
|
||||
func _on_body_entered(body: Node3D) -> void:
|
||||
if multiplayer.is_server() and body is Player:
|
||||
var player: Player = body
|
||||
if !player.hunter:
|
||||
for i: int in range(Multiplayer.players.size()):
|
||||
if Multiplayer.players[i].id == player.get_multiplayer_authority():
|
||||
Multiplayer.players[i].escaped = true
|
||||
player.get_caught.rpc_id(player.get_multiplayer_authority(), $"../SpectatorCamera".get_path())
|
1
entities/escape_area.gd.uid
Normal file
1
entities/escape_area.gd.uid
Normal file
|
@ -0,0 +1 @@
|
|||
uid://bvjyyj4m56b7b
|
14
entities/escape_area.tscn
Normal file
14
entities/escape_area.tscn
Normal file
|
@ -0,0 +1,14 @@
|
|||
[gd_scene load_steps=3 format=3 uid="uid://dbgqg1wtqmhw3"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://bvjyyj4m56b7b" path="res://entities/escape_area.gd" id="1_ubptc"]
|
||||
|
||||
[sub_resource type="BoxShape3D" id="BoxShape3D_eij3b"]
|
||||
size = Vector3(10, 10, 10)
|
||||
|
||||
[node name="EscapeArea" type="Area3D"]
|
||||
script = ExtResource("1_ubptc")
|
||||
|
||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="."]
|
||||
shape = SubResource("BoxShape3D_eij3b")
|
||||
|
||||
[connection signal="body_entered" from="." to="." method="_on_body_entered"]
|
19
entities/fuse_box.gd
Normal file
19
entities/fuse_box.gd
Normal file
|
@ -0,0 +1,19 @@
|
|||
class_name FuseBox
|
||||
extends StaticBody3D
|
||||
|
||||
var done: bool = false
|
||||
|
||||
func _ready() -> void:
|
||||
if multiplayer.is_server():
|
||||
Multiplayer.fuseboxes += 1
|
||||
|
||||
func _on_fixing_started(body: Node3D) -> void:
|
||||
if multiplayer.is_server() and !done and body is Player:
|
||||
var player: Player = body
|
||||
if !player.hunter:
|
||||
complete_fusebox()
|
||||
|
||||
func complete_fusebox() -> void:
|
||||
($Hinge as Node3D).rotation.y = 0
|
||||
done = true
|
||||
Multiplayer.fuseboxes -= 1
|
1
entities/fuse_box.gd.uid
Normal file
1
entities/fuse_box.gd.uid
Normal file
|
@ -0,0 +1 @@
|
|||
uid://cclwbdyr23has
|
44
entities/fuse_box.tscn
Normal file
44
entities/fuse_box.tscn
Normal file
|
@ -0,0 +1,44 @@
|
|||
[gd_scene load_steps=6 format=3 uid="uid://d1d30fwvkx66s"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://cclwbdyr23has" path="res://entities/fuse_box.gd" id="1_x8jfh"]
|
||||
|
||||
[sub_resource type="BoxMesh" id="BoxMesh_dwu7d"]
|
||||
size = Vector3(0.2, 1, 1)
|
||||
|
||||
[sub_resource type="BoxShape3D" id="BoxShape3D_g83f7"]
|
||||
size = Vector3(0.2, 1, 1)
|
||||
|
||||
[sub_resource type="BoxShape3D" id="BoxShape3D_uyarn"]
|
||||
|
||||
[sub_resource type="SceneReplicationConfig" id="SceneReplicationConfig_o4y3h"]
|
||||
properties/0/path = NodePath("Hinge:rotation:y")
|
||||
properties/0/spawn = true
|
||||
properties/0/replication_mode = 1
|
||||
|
||||
[node name="FuseBox" type="StaticBody3D"]
|
||||
script = ExtResource("1_x8jfh")
|
||||
|
||||
[node name="FuseBoxMesh" type="MeshInstance3D" parent="."]
|
||||
mesh = SubResource("BoxMesh_dwu7d")
|
||||
|
||||
[node name="Hinge" type="Node3D" parent="."]
|
||||
transform = Transform3D(-0.707107, 0, -0.707107, 0, 1, 0, 0.707107, 0, -0.707107, 0.1, 0, 0.5)
|
||||
|
||||
[node name="DoorMesh" type="MeshInstance3D" parent="Hinge"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.1, 0, -0.5)
|
||||
mesh = SubResource("BoxMesh_dwu7d")
|
||||
skeleton = NodePath("../../FuseBoxMesh")
|
||||
|
||||
[node name="Collision" type="CollisionShape3D" parent="."]
|
||||
shape = SubResource("BoxShape3D_g83f7")
|
||||
|
||||
[node name="FixingArea" type="Area3D" parent="."]
|
||||
|
||||
[node name="Shape" type="CollisionShape3D" parent="FixingArea"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.6, 0, 0)
|
||||
shape = SubResource("BoxShape3D_uyarn")
|
||||
|
||||
[node name="MultiplayerSynchronizer" type="MultiplayerSynchronizer" parent="."]
|
||||
replication_config = SubResource("SceneReplicationConfig_o4y3h")
|
||||
|
||||
[connection signal="body_entered" from="FixingArea" to="." method="_on_fixing_started"]
|
Loading…
Add table
Add a link
Reference in a new issue