basketball-tactics/scripts/game_manager.gd

35 lines
1004 B
GDScript3
Raw Normal View History

2026-02-11 17:03:15 +00:00
@icon("res://assets/icons/game.svg")
2026-02-11 03:01:44 +00:00
class_name GameManager
extends Node2D
@export var ball: Ball
@export var court: Court
@export_group("Teams")
@export var home_team: Team
@export var away_team: Team
var players: Array
var active_player: Player: set = set_active_player
func _ready() -> void:
players = get_tree().get_nodes_in_group("players")
for player in players:
player.connect("turn_finished", on_player_turn_finished)
player.is_active = false
active_player = players[0] as Player
## Signal-handlers
func on_player_turn_finished() -> void:
print_debug("Moving to the next player in the turn order")
if players.find(active_player) < players.size() -1:
active_player = players.get(players.find(active_player) + 1)
else:
active_player = players.get(0)
## Setters
func set_active_player(new_active_player) -> void:
active_player = new_active_player
print_debug("The game is setting the active player to %s" % active_player.attributes.player_name)
active_player.is_active = true