mirror of
https://gitlab.com/open-fpsz/open-fpsz.git
synced 2026-07-15 16:34:48 +00:00
Extract MatchParticipantComponent from Player entity and fix HealthComponent tests
This commit is contained in:
parent
3ce62a6548
commit
cfd0dd73fd
23 changed files with 149 additions and 124 deletions
|
|
@ -15,6 +15,7 @@ script/source = "extends Node
|
|||
|
||||
func _ready() -> void:
|
||||
player_node.died.connect(respawn_player)
|
||||
player_node.match_participant_component.player_id = 1
|
||||
|
||||
func respawn_player(player : Player, _killer_id : int) -> void:
|
||||
player.respawn(player_respawn_location)
|
||||
|
|
|
|||
|
|
@ -40,8 +40,8 @@ func start_server(config : Dictionary) -> void:
|
|||
# server setup
|
||||
var peer : ENetMultiplayerPeer = ENetMultiplayerPeer.new()
|
||||
peer.create_server(config["port"], MAX_CLIENTS)
|
||||
multiplayer.multiplayer_peer = peer
|
||||
multiplayer.peer_disconnected.connect(remove_player)
|
||||
multiplayer.multiplayer_peer = peer
|
||||
|
||||
_load_map.call_deferred(config["map"], config["nickname"])
|
||||
|
||||
|
|
@ -69,23 +69,24 @@ func respawn_player(player : Player) -> void:
|
|||
player.respawn.rpc(spawn_location)
|
||||
|
||||
func add_player(peer_id : int, nickname : String) -> void:
|
||||
var match_participant_component : MatchParticipantComponent = MatchParticipantComponent.new()
|
||||
var player : Player = PLAYER.instantiate()
|
||||
player.died.connect(_on_player_died)
|
||||
player.name = str(peer_id)
|
||||
player.player_id = peer_id
|
||||
player.team_id = ($RabbitScoringComponent as RabbitScoringComponent)._team_chasers.team_id
|
||||
player.nickname = nickname
|
||||
players.add_child(player)
|
||||
player.global_position = _map_manager.get_player_spawn().position
|
||||
player.died.connect(_on_player_died)
|
||||
player.match_participant_component.player_id = peer_id
|
||||
player.match_participant_component.team_id = ($RabbitScoringComponent as RabbitScoringComponent)._team_chasers.team_id
|
||||
player.match_participant_component.nickname = nickname
|
||||
$DeathmatchScoringComponent.subscribe_player(player)
|
||||
scoreboard.add_player(player)
|
||||
scoreboard.add_participant(player.match_participant_component)
|
||||
print("Peer `%s` connected" % player.name)
|
||||
|
||||
func remove_player(peer_id : int) -> void:
|
||||
var node_name : String = str(peer_id)
|
||||
if players.has_node(node_name):
|
||||
var player : Player = players.get_node(node_name)
|
||||
scoreboard.remove_player(player)
|
||||
scoreboard.remove_participant(player.match_participant_component)
|
||||
player.died.disconnect(_on_player_died)
|
||||
$DeathmatchScoringComponent.unsubscribe_player(player)
|
||||
player.queue_free()
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue