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 = reward mayor
- Acá no hay mucho visual que mostrar, así que la evidencia es la salida: tests, logs o respuestas, pegados como bloque de código. Con eso entrás a reward de GrantFox.
- Si además grabás un video corto de los tests corriendo o del flujo reproducido, califica para reward mayor.
- No es obligatorio, pero pesa mucho en la evaluación.
Qué conviene mostrar en esta issue:
- Salida de _DEBUG del EventBus pegada como bloque de código, mostrando la traza de señales de un turno completo con turn_started, unit_moved, unit_attacked y turn_ended.
- Captura del listado de autoloads en project.godot o en la pestaña Autoload del editor con EventBus registrado.
- Salida de una búsqueda sobre scripts/ y scenes/ que muestre que no quedan connect directos entre nodos no relacionados, todo pasa por EventBus.
Pegá las capturas directo en la descripción del PR, arrastrándolas al cuadro de texto de GitHub.
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 = reward mayor
Qué conviene mostrar en esta issue:
Pegá las capturas directo en la descripción del PR, arrastrándolas al cuadro de texto de GitHub.