summaryrefslogtreecommitdiff
path: root/godot/scripts/characters/NetworkedCharacter.gd
diff options
context:
space:
mode:
Diffstat (limited to 'godot/scripts/characters/NetworkedCharacter.gd')
-rw-r--r--godot/scripts/characters/NetworkedCharacter.gd17
1 files changed, 12 insertions, 5 deletions
diff --git a/godot/scripts/characters/NetworkedCharacter.gd b/godot/scripts/characters/NetworkedCharacter.gd
index 8a0282d..d904593 100644
--- a/godot/scripts/characters/NetworkedCharacter.gd
+++ b/godot/scripts/characters/NetworkedCharacter.gd
@@ -2,7 +2,7 @@ extends RigidBody
class_name NetChar
# Game
-export var team: String = "RED"
+export var team = 0
export var health: int = 100
export var weapon_slot1: Resource = null
export var weapon_slot2: Resource = null
@@ -40,7 +40,7 @@ remote func set_phys_transform(trfrm: Transform, lvel: Vector3):
transform = trfrm
linear_velocity = lvel
-remotesync func set_net_owner(owner_id: int):
+remotesync func set_net_owner(owner_id: int, singleplayer_reset: bool = false):
$Nametag.text = ""
set_network_master(owner_id)
if owner_id != 1:
@@ -55,12 +55,19 @@ remotesync func set_net_owner(owner_id: int):
$Nametag.visible = true
is_player = false
world.get_node("HUD").update_characters()
+ elif world.is_local:
+ if singleplayer_reset:
+ is_player = false
+ else:
+ world.player_char = self
+ is_player = true
+ world.cam.attach(self, "FIRSTPERSON", "./Neck/Head")
func deselect_character():
- if is_network_master():
+ if is_network_master() and world.player_char == self:
world.player_char = null
- if world.client_id != 1: world.cam.attach(world, "STATIC", "./DEFAULTCAM")
- rpc("set_net_owner", 1)
+ world.cam.attach(world, "STATIC", "./DEFAULTCAM")
+ rpc("set_net_owner", 1, true)
func take_control_of_machine(slave_machine: RigidBody):
machine = slave_machine