Fixed team interactions

This commit is contained in:
Rendo 2025-11-27 11:30:42 +05:00
commit 917d52680c
5 changed files with 45 additions and 21 deletions

View file

@ -9,38 +9,30 @@ func _ready() -> void:
match team:
Session.TEAMS.ATTACK:
for attacker in Lobby.attack_team:
spawn_attacker(attacker)
spawn_player(attacker)
Session.TEAMS.DEFENCE:
for defender in Lobby.defence_team:
spawn_defender(defender)
spawn_player(defender)
Session.TEAMS.SPECTATE:
for specator in Lobby.specators_team:
spawn_spectator(specator)
func spawn_defender(id: int) -> void:
func spawn_player(id: int) -> void:
var player: PackedScene = load("res://scenes/molikman.tscn")
var inst: Player = player.instantiate()
inst.name = str(id)
inst.team = Session.TEAMS.DEFENCE
deferred_setup.bind(inst).call_deferred()
func spawn_attacker(id: int) -> void:
var player: PackedScene = load("res://scenes/molikman.tscn")
var inst: Player = player.instantiate()
inst.name = str(id)
inst.team = Session.TEAMS.ATTACK
deferred_setup.bind(inst).call_deferred()
deferred_setup.bind(inst,team).call_deferred()
func spawn_spectator(id: int) -> void:
var spectator: PackedScene = load("res://scenes/spectator.tscn")
var inst = spectator.instantiate()
inst.name = str(id)
deferred_setup.bind(inst).call_deferred()
deferred_setup.bind(inst,Session.TEAMS.SPECTATE).call_deferred()
func deferred_setup(what: Node3D):
func deferred_setup(what: Node3D, new_team: Session.TEAMS):
get_tree().current_scene.add_child(what)
var distance = randf_range(0,spawn_radius)
var angle = randf_range(0,TAU)
what.set_start_position.rpc_id(int(what.name),global_position + Vector3.RIGHT.rotated(Vector3.UP,angle) * distance)
var new_position = global_position + Vector3.RIGHT.rotated(Vector3.UP,angle) * distance
what.set_after_spawn.rpc_id(int(what.name),new_position,new_team)