basketball-tactics/scripts/game_manager.gd

38 lines
1.0 KiB
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)
active_player = players[0] as Player
#func _input(event: InputEvent) -> void:
#if event.is_action_pressed("")
## 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