Skip to content

Godot: autoloads (GameState, TurnManager, EconomyManager) #38

Description

@leocagli

Objetivo

Implementar los singletons globales que mantienen el estado del juego accesible desde cualquier escena y sincronizado con la capa Web3.

Alcance

  • GameState.gd: estado completo (mapa, unidades, ciudades, jugador activo, turno actual)
  • TurnManager.gd: fases de turno (ver #godot-turn-system)
  • EconomyManager.gd: acumulación de recursos por turno
  • WebBridge.gd: puente JS (ver #godot-web-bridge)
  • EventBus.gd: bus de señales (ver #godot-signals)
  • Serialización/deserialización del estado a Dictionary para enviar al contrato

Skill de referencia

/godot-autoload-architecture

Tareas

  • Registrar todos los autoloads en project.godot en orden de dependencia
  • GameState.gd: vars tipadas para units: Array[UnitData], cities: Array[CityData], map_seed: int
  • Método GameState.serialize() -> Dictionary y GameState.deserialize(data: Dictionary)
  • GameState.sync_from_chain(on_chain_state: Dictionary) llamado tras cada resolve()
  • EconomyManager.calculate_yields() recorre ciudades y actualiza GameState.resources
  • Tests mínimos: verificar que serialize → deserialize produce estado idéntico

Aceptación

Cualquier escena puede acceder a GameState.units sin importaciones adicionales y el estado se reconstruye correctamente desde los datos on-chain tras un turno.

Metadata

Metadata

Assignees

No one assigned

    Labels

    godotPort a Godot 4

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions