Skip to content

Godot: sistema de turnos con fases commit/reveal (integración Soroban) #35

Description

@leocagli

Objetivo

Implementar el sistema de turnos con las fases Commit → Reveal → Resolve integradas con el flujo ZK del contrato Soroban existente.

Alcance

  • Autoload TurnManager con máquina de estados de fases
  • Fases: COMMIT (el jugador envía acción cifrada), REVEAL (revela clave), RESOLVE (aplica resultado on-chain)
  • Integración con funciones del contrato contracts/src/lib.rs: init_game, commit_action, reveal_action, finalise_turn
  • Botón "Finalizar turno" en HUD que dispara la fase correcta
  • Ejecución de turno de bots (aleatoria / IA simple en primer sprint)
  • Señales emitidas al EventBus en cada cambio de fase

Skill de referencia

/godot-turn-system

Tareas

  • Crear autoloads/TurnManager.gd con enum Phase y var current_phase
  • Métodos begin_commit(), submit_commit(hash), begin_reveal(), submit_reveal(key), resolve()
  • Conectar submit_commit / submit_reveal con JavaScriptBridge (ver #godot-web-bridge)
  • Lógica de turno de bot: recopilar acciones aleatorias y llamar a commit_action vía bridge
  • Botón "Fin de turno" en HUD que llama TurnManager.begin_commit()
  • Emitir EventBus.turn_phase_changed(phase) en cada transición

Aceptación

Una partida completa de 3 turnos finaliza sin errores, las transacciones Soroban se invocan en orden correcto y el estado on-chain refleja las acciones del jugador.

🎁 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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    godotPort a Godot 4web3-zkStellar / Soroban / ZK

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions