Skip to content

Latest commit

 

History

History
95 lines (75 loc) · 4.26 KB

File metadata and controls

95 lines (75 loc) · 4.26 KB

Nota de coordinación para Claude

Trabajá sobre este repositorio de Windows:

C:\Users\usuario\Grantfox\runa
origin: https://github.com/Bitcoindefi/runa.git

Antes de modificar nada, actualizá desde origin/main y revisá el estado real del árbol. No uses /root/runa-bd: esa copia WSL quedó con objetos Git corruptos después de llenar el disco y no contiene la versión canónica del trabajo visual ya publicado en main.

División de responsabilidades

Codex mantiene el arte ASCII, los mapas y la integración visual. Claude debe concentrarse en la infraestructura de red, las reglas verificables y los contratos. No redibujes la ciudad, el Coliseo, el jefe ni los actores sin una petición explícita del usuario.

El Coliseo ya existe

No busques un lote libre ni incrustes otro edificio en MAPS.city. Los duelos ocurren en el mapa separado MAPS.coliseum, definido en:

  • lib/coliseum.js: arte 128x52 y coordenadas estables.
  • lib/map.js: registro del mapa y salida Q hacia la ciudad.
  • docs/coliseum.md: contrato de integración.

La adaptación de duelos debe:

  1. Guardar el mapa y la posición previa de ambos participantes.
  2. Asignar de forma determinista los lados west y east.
  3. Colocar cada jugador con las coordenadas de MAPS.coliseum.duelSpawns, sin copiar números a otro módulo.
  4. Mantener a los combatientes dentro de arenaBounds y bloquear la salida Q mientras el duelo esté activo.
  5. Usar refereeSpawn si el protocolo necesita árbitro o autoridad visible.
  6. Replicar al rival en el mapa coliseum mediante la capa de presencia, sin abrir el combate rígido contra monstruos ni crear una segunda arena visual.
  7. Al terminar, desconectarse o rendirse, devolver a cada jugador a su ubicación previa y restaurar la última revisión del jefe mundial.

Los duelos, los encuentros PvE y el jefe mundial son sesiones distintas. No mezcles sus estados, daño, temporizadores ni condiciones de salida.

Jefe mundial existente

El diseño y la ejecución local ya están en lib/world-boss.js, lib/world-boss-event.js, lib/field.js, lib/game.js y lib/render.js. El contrato multijugador esperado está descrito en docs/world-boss.md mediante { spawnId, hp, phase, revision }.

Si recuperás el contrato Soroban de tu scratchpad, hacelo en una rama nueva creada desde el origin/main de este repositorio. No reemplaces la simulación JavaScript ni declares equivalencia de daño hasta agregar un test cruzado que ejecute la misma semilla y los mismos ticks en JavaScript y Rust. No agregues contracts/target, cachés, snapshots generados ni dependencias compiladas al repositorio.

Verificación obligatoria

Antes de entregar cambios:

npm.cmd test
npm.cmd run lint
git diff --check

El estado publicado por Codex parte de 103 pruebas y 745 aserciones verdes. Si una integración cambia ese número, documentá por qué y probá el recorrido completo: aceptar desafío, entrar al Coliseo, combatir, finalizar y regresar.

Estado actual del PvP

  • lib/duel.js ya contiene Duel y DuelCombat: lados deterministas, retorno, límites, vida, equipo, alcance, defensa, enfriamiento, rendición y resultado.
  • Runa.startDuel() entra al mapa y Runa.duelInput() es el borde para inputs locales o remotos ordenados. No dupliques estas reglas en net.js.
  • La interfaz dibuja ambos stickmans, vida, dirección, alcance y recarga; R rinde y la salida Q queda bloqueada mientras la sesión vive.
  • El guardado conserva la ubicación anterior al duelo y el daño PvP no modifica la vida persistente de PvE.
  • lib/net.js ya transporta desafío/aceptación, inputs ordenados, resultado y desconexión. El peer con id menor es la autoridad de orden; no agregues un segundo reloj ni apliques predicción de daño del lado invitado.
  • V abre la interfaz de wallet. lib/wallet.js guarda solo la dirección pública y acepta un firmante externo inyectado; nunca agregues una seed secreta al guardado. Detalles en docs/wallet.md.
  • Pendiente: desplegar/configurar el id de contracts/duel-arena, construir el XDR de sus llamadas y conectar Wallets Kit/WalletConnect o SEP-7 para firmar.
  • contracts/duel-arena liquida commit-reveal y consenso; no ejecuta ni debe fingir que ejecuta cada cuadro del combate visual.