diff --git a/source/assets/scripts/player_handlers/player_body_handler.gd b/source/assets/scripts/player_handlers/player_body_handler.gd index 28a01db..be3739d 100644 --- a/source/assets/scripts/player_handlers/player_body_handler.gd +++ b/source/assets/scripts/player_handlers/player_body_handler.gd @@ -294,7 +294,6 @@ func _physics_process(delta) -> void: if hp <= 0: if get_tree().is_network_server(): rpc("destroy") - Global.get("killed_players").append(self) @@ -417,6 +416,22 @@ sync func hit_by_damager(damage): hit_timer.start() +sync func enable_playground() -> void: + hp = 100 + health_bar_instance.value = 100 + can_shoot = true + update_shoot_mode(true) + $player_animated_sprite.show() + dead_player.hide() + $"weaponHolder/Player-character-theme-gun".show() + Global.killed_players.erase(self) + if get_tree().has_network_peer(): + if is_network_master(): + Global.player_master = self + if not Global.alive_players.has(self): + Global.alive_players.append(self) + + sync func enable() -> void: hp = 100 health_bar_instance.value = 100 @@ -437,6 +452,8 @@ sync func destroy() -> void: dead_player.show() $"weaponHolder/Player-character-theme-gun".hide() Global.alive_players.erase(self) + if not Global.killed_players.has(self): + Global.killed_players.append(self) if get_tree().has_network_peer(): if is_network_master(): Global.player_master = null diff --git a/source/assets/scripts/server_handlers/global.gd b/source/assets/scripts/server_handlers/global.gd index ad0b44a..94cc5cd 100644 --- a/source/assets/scripts/server_handlers/global.gd +++ b/source/assets/scripts/server_handlers/global.gd @@ -86,8 +86,3 @@ func instance_node(node: Object, parent: Object) -> Object: parent.add_child(node_instance) return node_instance - -func _process(delta): - if alive_players.size() > 1: - pass - print(alive_players) diff --git a/source/assets/scripts/ui_element_handlers/game_UI_playground.gd b/source/assets/scripts/ui_element_handlers/game_UI_playground.gd index 2749d1a..dd6ec5f 100644 --- a/source/assets/scripts/ui_element_handlers/game_UI_playground.gd +++ b/source/assets/scripts/ui_element_handlers/game_UI_playground.gd @@ -11,6 +11,7 @@ func _ready() -> void: func _process(_delta: float) -> void: # print(Global.alive_players.size()) - if Global.alive_players.size() <= 1 and get_tree().has_network_peer(): - if Global.alive_players[1].name == str(get_tree().get_network_unique_id()): - lose_screen.show() + if Global.killed_players.size() >= 1: + lose_screen.show() + else: + lose_screen.hide() diff --git a/source/assets/scripts/ui_element_handlers/lose_screen.gd b/source/assets/scripts/ui_element_handlers/lose_screen.gd index 05b68ae..997b5bb 100644 --- a/source/assets/scripts/ui_element_handlers/lose_screen.gd +++ b/source/assets/scripts/ui_element_handlers/lose_screen.gd @@ -2,8 +2,13 @@ extends Node2D func _on_respawn_pressed(): - pass # Replace with function body. +# self.hide() + for player in PersistentNodes.get_children(): + if player.is_in_group("Player"): + player.rpc("enable_playground") func _on_exit_pressed(): + Network._server_leave() get_tree().change_scene("res://source/scenes/GUI/main_menu.tscn") + Global.killed_players.clear()