xanarch-td/scripts/autoload/GameState.gd
2026-06-03 21:53:16 -04:00

23 lines
716 B
GDScript

## GameState.gd
## Tracks global game state: current phase, wave number, player registrations.
extends Node
enum Phase { LOBBY, BUILD, COMBAT, INCOME, GAME_OVER }
var current_phase: Phase = Phase.LOBBY
var wave_number: int = 0
var players: Dictionary = {} # player_id -> { race, lane_node }
var game_over: bool = false
func register_player(player_id: int, race: String, lane_node: Node) -> void:
players[player_id] = { "race": race, "lane": lane_node }
func set_phase(new_phase: Phase) -> void:
current_phase = new_phase
EventBus.phase_changed.emit(new_phase)
func advance_wave() -> void:
wave_number += 1
func get_player_race(player_id: int) -> String:
return players.get(player_id, {}).get("race", "")