- Duel flow: mating piece vs boss while board collapses (PurgatoryDuelManager/Rules/UI/MuerteQuotes) - GameState.PurgatoryDuel + CampaignManager rescue/restart hooks + SquareClick routing - Dice-based rescue of most valuable dead identity; final defeat restarts Chapter 1 - 6 SFX clips wired in Ch1/2/3 via AudioClipAssigner - OptionsMenuController runtime audio/graphics panel, wired to MainMenu - Tests migrated to Assets/Tests/EditMode subfolders + PurgatoryDuelRulesTests (200 total) - Editor tools: DiagAssign, SpeakerDatabaseSetup, PurgatoryCanvasMaintenance
5.9 KiB
Roadmap — Ajedrez Purgatorio
Last Updated: 2026-08-16 Current Stage: Vertical Slice — Scene Assembly & Integration Current Milestone: Vertical Slice (código 100%, MainMenu+Chapter1 cableadas, faltan Ch2/3)
Timeline
Apr 2026 Jun 2026
│ Sprint 1 │ Sprint 2 │ Sprint 3 │Sprint 4│Sprint 5│
│ Foundation│ Chess+AI │ Purgatorio│Narrative│Meta+UI │
│ 23Mar-4Abr│ 07-25 Abr │ 10-23 May │26May-6J │10-12May│
│ │ │ │ │ │
│ Scenes │ En Passant│ DiceSystem│Campaign│DeadKing│
│ States │ Draws │ DiceUI │Dialogue│Save │
│ PieceID │ Promotion │ Muerte │Content │Menu │
│ Campaign │ AI x3 │ Purgatory │Flow │HUD │
│ State │ │ Flow │ │Polish │
│ │ │ │ │ ◆ VS │
Nota: El deadline del Vertical Slice (2026-06-07) fue superado. Los 5 sprints están implementados y compilando. MainMenu.unity y Chapter1.unity ya existen en el working tree (sin commitear) con el BoardManager/Purgatorio/Diálogos cableados. Falta: commit del trabajo, Chapter2/3, y cablear GameStateManager/IA/Dead Kings UI. Alpha/Beta/Release sin planificar.
Milestones
| Milestone | Target | Sprints | Status |
|---|---|---|---|
| Vertical Slice | 2026-06-07 (superado) | 5 | Código ✅ / Escenas ~40% ⏳ |
| Alpha | TBD | TBD | Not Planned |
| Beta | TBD | TBD | Not Planned |
| Release | TBD | TBD | Not Planned |
Vertical Slice Feature Checklist
Leyenda: ✅ implementado · ⏳ código listo, falta integración en escena · ❌ pendiente
Ajedrez Core
- Tablero 8x8 con casillas clickeables
- 6 tipos de piezas con movimiento correcto
- Selección y movimiento por click
- Turnos alternados blancas/negras
- Detección de jaque y jaque mate
- Enroque (corto y largo)
- Promoción de peón (auto-queen)
- En Passant
- Detección de tablas (ahogado, material insuficiente, 50 movs, repetición triple)
- Promoción con elección de pieza
Mecánicas Purgatorio
- Piece Identity System (16 piezas con nombre)
- Dice System (2d6 + modificadores vs Muerte)
- Purgatory flow (oferta → dados → resultado) — cableado en Chapter1
- La Muerte como personaje con diálogos (pendiente de escenas/diálogos)
Campaña y Narrativa
- Campaign System (3 capítulos) — CampaignManager + CampaignState cableados
- Dialogue System (typewriter, branching básico) — cableado en Chapter1
- Contenido narrativo (6 JSON, ch1/2/3 intro+outro)
- IA escalada (Easy → Medium → Hard) — ⏳ código listo; AIController no instanciado, integración TODO
Meta / Social
- Dead Kings (input al perder → pool local → spawn) — ⏳ pool ✅; UIs no cableadas
- Save/Load (entre capítulos) — ⏳ código listo, restore parcial
UI
- Main Menu — ✅ MainMenuController + MainMenu.unity cableados (escena sin commitear)
- HUD (turno, capturadas) — ⏳ GameHUD en Chapter1, faltan eventos GameManager + CapturedPieceIcon
- Dialogue UI — ⏳ DialogueUI en Chapter1, faltan portrait/speakerDatabase/advanceAction
- Dice UI (oferta, tirada, resultado) — cableada
- Dead King Input UI — ⏳ código listo, no instanciada en escena
- Scene transitions (fade) — ⚠️ duplicado Core/UI; Chapter1 usa versión sin fade
Infraestructura
- Scene Management (5 escenas) — ⏳ MainMenu + Chapter1 existen y en Build Settings; faltan Ch2/3
- Game State Manager — ⚠️ script existe, no instanciado en escenas
- Campaign State persistence (ScriptableObject + SaveSystem JSON)
Bloqueantes actuales (ver PROJECT_STATUS.md)
- Commit del trabajo sin commitear (escenas, prefabs, editor tools, assets)
- Crear Chapter2/3 y agregar a Build Settings
- Instanciar GameStateManager y AIController en escenas
- Cablear DeadKingInputUI/RevealUI en el flujo de campaña
- Añadir eventos OnPieceCaptured/OnCheckResolved a GameManager
- Escribir tests pendientes (SaveSystem, servicios POCO)
- Resolver duplicación BoardManager/ClassicBoardManager (normalización de nombres)
Actualización 2026-08-22 — Auditoría de bloqueantes
Verificación de los 7 bloqueantes listados arriba:
| # | Bloqueante | Estado |
|---|---|---|
| 1 | Commit del trabajo sin commitear | RESUELTO — commit 9fdafe8 (+ TestResults*.xml a .gitignore) |
| 2 | Chapter2/3 en Build Settings | RESUELTO — 4 escenas habilitadas, GUIDs verificados |
| 3 | Instanciar GameStateManager y AIController | YA ESTABA — presente y habilitado en Ch1/2/3; dificultad aplicada por CampaignManager en runtime |
| 4 | Cablear DeadKingInputUI/RevealUI | CABLEADO OK (CampaignManager usa FindObjectOfType(true)) — PENDIENTE usuario: correr Tools > Purgatory UI para dedup (8-9 copias por escena) y copiar Victory/Defeat/MemorialPanel a Ch1/2 |
| 5 | Eventos OnPieceCaptured/OnCheckResolved + HUD | RESUELTO — eventos declarados e invocados; GameHUD suscripto con CapturedPieceIcon.prefab asignado en las 3 escenas |
| 6 | Tests pendientes | RESUELTO — suites migradas de ests/ (invisible para Unity) a Assets/Tests/EditMode/: CampaignState, DiceSystem, DeadKingPool, SaveSystem, DialogueBranching + 3 chess actualizadas a versiones más completas. Nuevas: TypewriterTests (8 tests), CampaignManagerConfigTests (11 tests) |
| 7 | Duplicación BoardManager/ClassicBoardManager | CERRADO POR DISEÑO — nombres ya normalizados (sin colisión); la duplicación de lógica es consecuencia aceptada de ADR-0001 (arquitectura por modo) |
Pendiente tras esta auditoría: correr los menús Tools > Purgatory UI en Unity (Ch1, Ch2, Ch3), guardar escenas, verificar consola sin errores de compilación, y commitear.