Implement Teams and disallow team damage in Rabbit

This commit is contained in:
Squinty 2024-04-26 15:49:43 +00:00
parent 1a19e5edfa
commit ac8bd2d07c
10 changed files with 46 additions and 23 deletions

View file

@ -29,6 +29,9 @@ var _map_manager : Map
var _flag : Flag
var _flag_carrier_scoring_timer : Timer = Timer.new()
var team_chasers : Team
var team_rabbit : Team
signal connected_to_server
signal connection_failed
@ -36,6 +39,10 @@ func _ready() -> void:
_flag_carrier_scoring_timer.wait_time = 10.0
_flag_carrier_scoring_timer.timeout.connect(_on_flag_carrier_scoring_timer_timeout)
add_child(_flag_carrier_scoring_timer)
team_chasers = Team.new()
team_chasers.team_id = 0
team_rabbit = Team.new()
team_rabbit.team_id = 1
func start_server(config : Dictionary) -> void:
# Check if required parameters are missing
@ -79,12 +86,13 @@ func _on_player_died(player : Player, killer_id : int) -> void:
func respawn_player(player : Player) -> void:
var spawn_location : Vector3 = _map_manager.get_player_spawn().position
player.respawn(spawn_location)
player.respawn.rpc(spawn_location)
func add_player(peer_id : int, nickname : String) -> void:
var player : Player = PLAYER.instantiate()
player.name = str(peer_id)
player.player_id = peer_id
player.team_id = team_chasers.team_id
player.nickname = nickname
player.global_position = _map_manager.get_player_spawn().position
players.add_child(player)
@ -122,10 +130,12 @@ func _join_match(nickname : String) -> void:
add_player(multiplayer.get_remote_sender_id(), nickname)
func _on_flag_grabbed(grabber : Player) -> void:
grabber.team_id = team_rabbit.team_id
scoreboard.add_score_to_player(grabber, 10)
_flag_carrier_scoring_timer.start()
func _on_flag_dropped() -> void:
func _on_flag_dropped(dropper : Player) -> void:
dropper.team_id = team_chasers.team_id
_flag_carrier_scoring_timer.stop()
func _on_flag_carrier_scoring_timer_timeout() -> void:

3
modes/team.gd Normal file
View file

@ -0,0 +1,3 @@
class_name Team extends Object
var team_id : int