Objetivo
Definir un bus de eventos central (EventBus) con todas las señales del juego para desacoplar los sistemas entre sí.
Alcance
- Autoload
EventBus.gd como única fuente de verdad de señales
- Señales de unidades:
unit_moved, unit_attacked, unit_died, unit_promoted
- Señales de ciudad:
city_built, city_captured, production_complete
- Señales de turno:
turn_started, turn_phase_changed, turn_ended
- Señales Web3:
wallet_connected, proof_generated, tx_confirmed, web3_error
- Señales de UI:
hex_hovered, unit_selected, city_selected, panel_opened
Skill de referencia
/godot-signal-architecture
Tareas
Aceptación
Todos los sistemas se comunican exclusivamente a través de EventBus; no hay llamadas directas entre escenas no relacionadas y el bus imprime en _DEBUG cada señal emitida si OS.is_debug_build().
🎁 Evidencia visual = reward extra
- Si tu PR incluye video demo o capturas de pantalla mostrando la funcionalidad pedida funcionando end-to-end, va a ser considerado para rewards de GrantFox en esta issue. No es obligatorio, pero suma mucho para la evaluación.
Objetivo
Definir un bus de eventos central (EventBus) con todas las señales del juego para desacoplar los sistemas entre sí.
Alcance
EventBus.gdcomo única fuente de verdad de señalesunit_moved,unit_attacked,unit_died,unit_promotedcity_built,city_captured,production_completeturn_started,turn_phase_changed,turn_endedwallet_connected,proof_generated,tx_confirmed,web3_errorhex_hovered,unit_selected,city_selected,panel_openedSkill de referencia
/godot-signal-architectureTareas
autoloads/EventBus.gdcon todos lossignaldeclarados y tipadosEventBusa la lista de autoloads enproject.godotscripts/EventBusTypes.gdcon enums compartidos (Phase,TerrainType,UnitType)Aceptación
Todos los sistemas se comunican exclusivamente a través de EventBus; no hay llamadas directas entre escenas no relacionadas y el bus imprime en
_DEBUGcada señal emitida siOS.is_debug_build().🎁 Evidencia visual = reward extra