mirror of
https://github.com/Earth-Genesis-Games/Ajedrez_Purgatorio.git
synced 2026-09-11 09:47:35 +00:00
- Fix 9 CS0101 duplicate classes between Mono/ and Mono/Classic/ - BoardManager -> ClassicBoardManager, SquareClick -> ClassicSquareClick - Delete duplicate Piece/Pawn/King/Queen/Rook/Bishop/Knight from Classic/ - Merge GetAttackSquares into Piece base class with overrides - Fix King castling: reject castling through/while in check - Assign URP pipeline to QualitySettings (6 levels) and GraphicsSettings - Fix template identifiers (DefaultCompany -> EarthGenesisGames) - Delete orphaned SampleScene.unity and duplicate URP assets - Fix test assembly reference (Assembly-CSharp -> AjedrezPurgatorio.Runtime) - Remove 11 unused packages (multiplayer, visualscripting, terrain, etc.) - Update BoardInputSystemSpike for ClassicSquareClick - Write unit tests: CheckDetector, DrawDetector, MoveValidator - Fix BalanceConfig JSON structure to match C# class fields - Update stale documentation (~30 files) - architecture.md, ADR-0001, roadmap, gate-check, EPIC.md - PROJECT_STATUS.md, BLOQUEADORES_JUGABILIDAD.md - tech-debt-register.md - Add Unity Editor setup guide (production/UNITY_EDITOR_SETUP.md)
151 lines
6.2 KiB
Markdown
151 lines
6.2 KiB
Markdown
# Ajedrez Purgatorio — Estado del Proyecto
|
|
**Fecha**: 17 de agosto de 2026
|
|
**Milestone Actual**: Vertical Slice
|
|
**Estado Global**: Compilation-blocking duplicate classes resolved; URP pipeline assigned; template identifiers fixed; package bloat reduced. Core chess logic merged (GetAttackSquares + castling fixes).
|
|
|
|
---
|
|
|
|
## 🔧 Correcciones de Infraestructura (17 Ago 2026)
|
|
|
|
### CRITICAL: Clases Duplicadas Resueltas
|
|
- **Problema**: 9 clases con nombres idénticos en `Mono/` y `Mono/Classic/` causaban CS0101 (compilation blocker)
|
|
- **Solución**:
|
|
- Fusionada funcionalidad crítica de Classic → Purgatory (`GetAttackSquares` en Piece, Pawn, King)
|
|
- Corregido enroque del King Purgatory (agregada guardia "rey no en jaque" + simplificación)
|
|
- Renombrado `BoardManager` → `ClassicBoardManager`, `SquareClick` → `ClassicSquareClick`
|
|
- Eliminadas 7 piezas Classic duplicadas (Piece, Pawn, King, Queen, Rook, Bishop, Knight)
|
|
- Actualizadas referencias en Spike y GameManagerClassic
|
|
|
|
### HIGH: URP Pipeline Asignado
|
|
- **Problema**: 6 niveles de calidad tenían `customRenderPipeline: {fileID: 0}` (null)
|
|
- **Solución**: Asignado GUID `f129fa08335309540b185f083eeb490e` (Assets/Settings/UniversalRP.asset)
|
|
- **También**: Corregido GraphicsSettings para apuntar al asset canónico
|
|
|
|
### HIGH: Identificadores de Template Corregidos
|
|
- Company: `DefaultCompany` → `EarthGenesisGames`
|
|
- App IDs: `com.DefaultCompany.com.unity.template.mobile2D` → `com.earthgenesisgames.ajedrezpurgatorio`
|
|
|
|
### MEDIUM: Assets Duplicados Limpiados
|
|
- Eliminado directorio `Assets/Scenes/Settings/` (duplicado de `Assets/Settings/`)
|
|
- Corregidas referencias cruzadas GUID en UniversalRP.asset y Lit2DSceneTemplate
|
|
|
|
### MEDIUM: Test Assembly Corregido
|
|
- `tests/AjedrezPurgatorio.Tests.asmdef`: referencia `Assembly-CSharp` → `AjedrezPurgatorio.Runtime`
|
|
|
|
### LOW: Limpieza
|
|
- Eliminado `SampleScene.unity` (huérfana, no en Build Settings)
|
|
- Eliminado `.gitignore copy` (duplicado)
|
|
- Eliminados 11 paquetes no utilizados: multiplayer, visualscripting, mobile feature, terrain, vehicles, VR, XR, wind, AI, cloth, adaptiveperformance
|
|
|
|
---
|
|
|
|
## 📊 Progreso General
|
|
|
|
### Sprints Completados: 5/5
|
|
|
|
| Sprint | Estado | Tareas | Fechas |
|
|
|--------|--------|--------|--------|
|
|
| Sprint 1: Foundation | ✅ Complete | 9/9 | 23 Mar - 04 Abr 2026 |
|
|
| Sprint 2: Chess + AI | ✅ Complete | 11/11 | 07 Abr - 25 Abr 2026 |
|
|
| Sprint 3: Purgatorio | ✅ Complete | 7/9 (Must Have 100%) | 10 May - 23 May 2026 |
|
|
| Sprint 4: Narrative | ✅ Complete | 8/8 (100%) | 26 May - 06 Jun 2026 |
|
|
| Sprint 5: Meta + Polish | ✅ Complete | 11/11 (36/36 pts) | 10 May - 12 May 2026 |
|
|
|
|
---
|
|
|
|
## ✅ Sistemas Implementados
|
|
|
|
### Core Systems
|
|
- ✅ **Board System** — Tablero 8x8 + `SetupBoard(CampaignState)` + indicadores de movimiento
|
|
- ✅ **Piece Movement** — 6 tipos de piezas con movimiento completo + `GetAttackSquares`
|
|
- ✅ **Turn System** — Alternancia blancas/negras
|
|
- ✅ **Check/Checkmate** — Detección completa via CheckDetector (POCO, testable)
|
|
- ✅ **Draw Detection** — Stalemate, material insuficiente, repetición triple, regla 50 movimientos
|
|
- ✅ **Servicios POCO** — CheckDetector, DrawDetector, MoveValidator
|
|
|
|
### Chess Rules
|
|
- ✅ **Castling** — Enroque con validación de jaque en casillas de tránsito
|
|
- ✅ **En Passant** — Captura al paso con tracking de último movimiento
|
|
- ✅ **Pawn Promotion** — Con PromotionUI y selección de pieza
|
|
- ✅ **GetAttackSquares** — Separación correcta de "movimientos legales" vs "casillas atacadas"
|
|
|
|
### AI System
|
|
- ✅ **Strategy Pattern** — 3 dificultades (Easy/Medium/Hard, minimax alpha-beta)
|
|
- ✅ **AIPositionTables** — ScriptableObject con valores de posición
|
|
- ⚠️ AIController no instanciado en escenas (ver bloqueadores)
|
|
|
|
### Piece Identity System
|
|
- ✅ **16 PieceIdentity assets** — Characters: Ricardo (King), Elena (Queen), etc.
|
|
- ✅ **PieceIdentityManager** — Asignación automática
|
|
- ✅ **CampaignState** — ScriptableObject persistente
|
|
|
|
### Purgatorio System
|
|
- ✅ **DiceSystem** — Lógica de dados 2d6 con bonos/penalizaciones
|
|
- ✅ **PurgatoryManager** — Orquestador completo (3 visitas, pausa/resume)
|
|
- ✅ **3 UIs** — Offer/Roll/Result
|
|
|
|
### Narrative System
|
|
- ✅ **DialogueSystem** — Branching, 6 JSON (ch1-3 intro+outro)
|
|
- ✅ **DialogueUI** — Typewriter, avatar, opciones
|
|
- ✅ **CampaignManager** — Orquestador con SetupBoard integrado
|
|
|
|
### Meta Systems
|
|
- ✅ **DeadKingPool** — JSON persistente, FIFO, filtro profanity
|
|
- ✅ **SaveSystem** — 3 slots, autosave
|
|
- ✅ **MainMenuController** — Cableado en MainMenu
|
|
- ✅ **AudioManager** — Script en escenas (⚠️ clips null)
|
|
|
|
### Classic Mode (Separate)
|
|
- ✅ **GameManagerClassic** — Modo clásico self-contained con IA inline
|
|
- ✅ **ClassicBoardManager** — Generación de tablero y piezas
|
|
|
|
---
|
|
|
|
## 🔴 Bloqueadores Pendientes
|
|
|
|
1. ❌ **Chapter2/3 no existen** — campaña incompleta
|
|
2. ❌ **GameStateManager sin cablear** — transiciones de estado no funcionan
|
|
3. ❌ **AIController no instanciado** — sin oponente IA
|
|
4. ❌ **DeadKing UI no cableadas** — input de derrota no fluye
|
|
5. ⚠️ **Audio mudo** — clips null en ambas escenas
|
|
6. ⚠️ **BalanceConfig.LoadFromJSON()** placeholder
|
|
|
|
---
|
|
|
|
## 🧪 Estado de Testing
|
|
|
|
### Tests implementados (8 archivos):
|
|
- ✅ `tests/unit/Chess/CheckDetectorTests.cs`
|
|
- ✅ `tests/unit/Chess/DrawDetectorTests.cs`
|
|
- ✅ `tests/unit/Chess/MoveValidatorTests.cs`
|
|
- ✅ `tests/unit/Campaign/CampaignStateTests.cs`
|
|
- ✅ `tests/unit/Dialogue/DialogueSystemBranchingTests.cs`
|
|
- ✅ `tests/unit/Meta/DeadKingPoolTests.cs`
|
|
- ✅ `tests/unit/Meta/SaveSystemTests.cs`
|
|
- ✅ `tests/unit/Purgatory/DiceSystemTests.cs`
|
|
- ✅ `Assets/Tests/EditMode/Classic/CheckDetectionTests.cs`
|
|
|
|
### Tests pendientes:
|
|
- ❌ Integración Save/Load + Dead King spawn
|
|
- ❌ Playtest completo (bloqueado por Chapter2/3)
|
|
|
|
---
|
|
|
|
## 🎯 Siguiente Acción
|
|
|
|
1. 🔴 Crear Chapter2/3 y agregar a Build Settings
|
|
2. 🔴 Instanciar GameStateManager y AIController
|
|
3. 🔴 Cablear DeadKingInputUI/RevealUI
|
|
4. 🟡 Completar AudioClips y referencias UI faltantes
|
|
5. 🟢 Completar restore de SaveSystem
|
|
6. 🟢 Crear test plan Sprint 5
|
|
|
|
---
|
|
|
|
## 📞 Contacto
|
|
|
|
- **GDDs**: `/design/gdd/`
|
|
- **Arquitectura**: `/docs/architecture/`
|
|
- **Sprints**: `/production/sprints/`
|
|
- **Tech Debt**: `/docs/tech-debt-register.md`
|