Files
jimmyabv b539aa403e fix: resolve compilation errors, add tests, fix configs, update docs
- 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)
2026-08-17 20:40:02 -03:00

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`