31 lines
1,020 B
GDScript
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()
|