newlon/scripts/level_event_bus.gd
2025-08-01 05:27:07 +05:00

60 lines
1.7 KiB
GDScript

extends Node
## Event bus for levels in Liberation Of Neighborville
class_name LevelSignals
#region Field
## Emitted when entity is placed by player via seedpacket
signal entity_placed(entity : SeedpacketResource)
#endregion
#region Entity
## Called for every entity that enters game
signal entity_created(entity : Entity)
## Called for every entity that exits game
signal entity_killed(context : Entity.KilledContext)
## Called for every entity that gets damage
signal entity_hp_changed(context : Entity.HPChangedContext)
#endregion
#region Seedpacket manipulation
## Called when player selects SeedpacketResource
signal packet_selected(packet : SeedpacketResource)
## Called when player selects SeedpacketResource during game phase
signal packet_selected_during_game(packet : SeedpacketResource)
## Called when something requests SeedpacketResource to be added to hotbar collection
signal requested_packet_add(packet : SeedpacketResource)
## Called when something requests SeedpacketResourcesource to be deleted from hotbar collection
signal requested_packet_remove(packet : SeedpacketResource)
## Called when selected packets are updated
signal hotbar_packets_update(selected : Array[SeedpacketResource])
#endregion
#region Level Running
## Called when huge wave is incoming, yet has not come
signal huge_wave_coming
## Called when huge wave has come
signal huge_wave
## Called when final wave has come
signal final_wave
## Called when game is progressing through level stages
signal state_changed(state : LevelData.LevelStates)
## Called when something requests state to advance
signal state_advance_requested
## Called when sun counter updates to value [code]to[/code]
signal sun_count_updated(to : float)
#endregion