class_name Game extends Node const DOWN_SPAWN_SCENE = preload("uid://d4ltd1geg7s2p") var turn: int = 0: set(value): turn = value controls.set_turn(turn) var player: Player var citizen_count: int = 0: set(value): print(value) citizen_count = value if citizen_count == 0: handle_turn_over() var spawn_placement_actions = 0 @onready var board: Board = %Board @onready var controls: Controls = %Controls func _init() -> void: Globals.game = self func _ready() -> void: player = Player.new() controls.set_players([player]) start_turn() func start_turn() -> void: turn += 1 if spawn_placement_actions > 0: board.set_active_tile(DOWN_SPAWN_SCENE.instantiate()) func select_tile(tile: Tile): board.set_active_tile(tile) func select_building(building: Building) -> void: if building is Home: board.set_active_building(building, player) else: board.set_active_building(building) func place_walls() -> void: board.is_placing_walls = !board.is_placing_walls func handle_turn_over() -> void: get_tree().call_group("PostTurnActions", "handle_post_turn_actions") controls.reset_turn() start_turn() func queue_spawn_placement(num: int) -> void: spawn_placement_actions += num func handle_spawn_placed() -> void: spawn_placement_actions = maxi(spawn_placement_actions - 1, 0) if spawn_placement_actions > 0: board.set_active_tile(DOWN_SPAWN_SCENE.instantiate())