Assign kills and points on kill, not on respawn

This commit is contained in:
Squinty 2024-04-22 22:07:58 +00:00
parent baa4d2d5f1
commit c3ce3b96b0
2 changed files with 15 additions and 17 deletions

View file

@ -13,6 +13,7 @@ script/source = "class_name Multiplayer extends Node
@export var PLAYER : PackedScene
@export var FLAG : PackedScene
@export var MAX_CLIENTS : int = 24
@export var RESPAWN_TIME : float = 3.0
@onready var players : Node = $Players
@onready var objectives : Node = $Objectives
@ -50,7 +51,7 @@ func _on_connected_to_server(nickname : String) -> void:
func _on_connection_failed() -> void:
connection_failed.emit()
func respawn_player(player : Player, killer_id : int) -> void:
func _on_player_died(player : Player, killer_id : int) -> void:
if player.player_id != killer_id:
var node_name : String = str(killer_id)
if players.has_node(node_name):
@ -58,6 +59,10 @@ func respawn_player(player : Player, killer_id : int) -> void:
scoreboard.increment_kill_count(killer)
scoreboard.add_score_to_player(killer, 10)
scoreboard.broadcast_player_score_update(killer)
await get_tree().create_timer(RESPAWN_TIME).timeout
respawn_player(player)
func respawn_player(player : Player) -> void:
var spawn_location : Vector3 = _map_manager.get_player_spawn().position
player.respawn(spawn_location)
@ -68,7 +73,7 @@ func add_player(peer_id : int, nickname : String) -> void:
player.nickname = nickname
player.global_position = _map_manager.get_player_spawn().position
players.add_child(player)
player.died.connect(respawn_player)
player.died.connect(_on_player_died)
scoreboard.add_entry(player)
print(\"Peer `%s` connected\" % player.name)