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

31 lines
1,020 B
GDScript

## EventBus.gd
## Global signal bus for decoupled communication between systems.
## Usage: EventBus.wave_started.emit(wave_number)
extends Node
# Phase signals
signal phase_changed(new_phase: GameState.Phase)
# Wave signals
signal wave_started(wave_number: int)
signal wave_completed(wave_number: int)
signal creep_died(creep: Node, bounty: int)
signal creep_reached_exit(creep: Node, hp_damage: int)
# Economy signals
signal minerals_changed(player_id: int, amount: int)
signal gas_changed(player_id: int, amount: int)
signal income_earned(player_id: int, amount: int)
signal send_executed(player_id: int, send_id: String)
# Tower signals
signal tower_placed(player_id: int, tower_id: String, slot: Node)
signal tower_upgraded(player_id: int, tower: Node, new_tower_id: String)
# Security system signals
signal security_system_damaged(damage: int, hp_remaining: int)
signal security_system_destroyed()
# UI → GameLoop signals
signal slot_clicked_in_lane(player_id: int, slot: Node)
signal next_wave_requested()