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