clockwork-city/game.gd
duncgibbs cb0c6e18f5
Some checks failed
linting & formatting / build (push) Failing after 22s
creates all initial tiles and buildings
2026-04-15 10:45:43 -05:00

68 lines
1.4 KiB
GDScript

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())