Files
Ajedrez_Purgatorio/BLOQUEADORES_JUGABILIDAD.md
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

205 lines
6.1 KiB
Markdown

# Bloqueadores Críticos para Jugabilidad
**Fecha de última actualización:** 17 de agosto de 2026
**Estado del Código:** ✅ Compilando, 0 errores, 0 warnings de compilación
**Estado del Proyecto:** Vertical Slice — MainMenu + Chapter1 ensambladas y en Build Settings
---
## ✅ BLOQUEADORES RESUELTOS
Los siguientes problemas fueron resueltos durante la revisión de código del 17 de agosto:
1. ~~**CS0101 duplicados**~~ — 9 clases tenían definiciones duplicadas entre `Mono/` y `Mono/Classic/`
- Piece, Pawn, King, Queen, Rook, Bishop, Knight eliminados de `Mono/Classic/Pieces/`
- `BoardManager``ClassicBoardManager`, `SquareClick``ClassicSquareClick`
- `GetAttackSquares` añadido a Piece base + overrides en Pawn y King
2. ~~**ProjectSetup.cs no compila**~~ — CameraFollow eliminado; SceneSetupStructs/PieceSetupStructs generados
3. ~~**SampleScene.huérfana**~~ — Eliminada junto con su .meta
4. ~~**URP pipeline no asignado**~~ — QualitySettings (6 niveles) y GraphicsSettings ahora apuntan al URP correcto
5. ~~**Template identifiers**~~ — Company y app IDs actualizados (DefaultCompany → EarthGenesisGames)
6. ~~**URP assets duplicados**~~ — Eliminados (Assets/Scenes/Settings/)
7. ~~**Test assembly ref rotta**~~ — tests asmdef ahora apunta a AjedrezPurgatorio.Runtime
---
## 🔴 BLOQUEADORES ACTUALES (Impiden juego completo)
### 1. Chapter2/3 no existen ⚠️ **CRÍTICO**
**Problema:**
- Solo `MainMenu.unity` y `Chapter1.unity` existen en Build Settings
- CampaignManager intenta cargar "Chapter2", "Chapter3" → Scene not found
**Impacto:**
- ❌ Campaña no puede continuar más allá del capítulo 1
- ❌ Dead King spawn solo funciona en chapter 1
**Solución:** Crear Chapter2.unity y Chapter3.unity (copiar estructura de Chapter1, cambiar contenido narrativo)
**Prioridad:** 🔴 **BLOQUEANTE**
---
### 2. GameStateManager no instanciado ⚠️ **CRÍTICO**
**Problema:**
- `GameStateManager.cs` existe pero no hay instancia en ninguna escena
- GameManager tiene null-checks para GameStateManager (no crashea, pero no funciona)
**Impacto:**
- ❌ Transiciones de estado del juego no están protegidas
- ❌ No hay flujo de estados formally controlado
**Solución:** Añadir GameStateManager a Chapter1.unity (y a Chapter2/3 cuando existan)
**Prioridad:** 🔴 **BLOQUEANTE**
---
### 3. AIController no instanciado ⚠️ **CRÍTICO**
**Problema:**
- `AIController.cs` existe pero no está en la escena
- GameManager usa `AIController.Instance` → null → IA no juega
**Impacto:**
- ❌ El jugador juega contra nadie (piezas negras no se mueven)
**Solución:** Añadir AIController a Chapter1.unity; `CampaignManager.ApplyChapterAIConfiguration()` ya está implementado
**Prioridad:** 🔴 **BLOQUEANTE**
---
## 🟡 PROBLEMAS IMPORTANTES (Afectan experiencia pero no bloquean)
### 4. Audio mudo
**Problema:**
- AudioManager tiene campos para clips, todos null en ambas escenas
**Impacto:** Juego funciona pero sin audio
**Solución:** Importar audio clips y asignar en Inspector
**Prioridad:** 🟡 **MEDIO**
---
### 5. GameHUD incompleto
**Problema:**
- `_pauseButton` y `_capturedPieceIconPrefab` null en Chapter1
- Eventos `OnPieceCaptured`/`OnCheckResolved` no están en GameManager
**Impacto:** HUD no muestra piezas capturadas ni indicador de check
**Solución:** Añadir eventos a GameManager; crear y asignar prefabs de iconos
**Prioridad:** 🟡 **MEDIO**
---
### 6. DialogueUI incompleto
**Problema:**
- `_speakerPortrait`, `_speakerDatabase`, `_advanceDialogueAction` null en Chapter1
**Impacto:** Diálogos se muestran pero sin retratos ni base de speakers
**Solución:** Crear SpeakerDatabase, asignar retratos de personajes
**Prioridad:** 🟡 **MEDIO**
---
### 7. PauseMenuController sin cablear
**Problema:**
- `_canvasGroup` null en Chapter1
**Impacto:** No hay menú de pausa funcional
**Prioridad:** 🟡 **MEDIO**
---
### 8. DeadKingInputUI/RevealUI no instanciadas
**Problema:**
- Scripts existen pero no están en escenas
- `CampaignManager.ShowDeadKingReveal()` tiene TODO
**Impacto:** Dead Kings se guardan al perder pero no hay UI de inscripción ni revelación
**Prioridad:** 🟡 **MEDIO**
---
### 9. SaveSystem restore parcial
**Problema:**
- `TotalPiecesLost`/`LastChapterWasVictory` no se restauran (props read-only en CampaignState)
**Impacto:** Al cargar partida, stats pueden no estar correctos
**Prioridad:** 🟡 **MEDIO**
---
## 🟢 POLISH (Nice to have)
### 10. Escenas sin commitear
- MainMenu.unity y Chapter1.unity están en el working tree pero no commiteadas
### 11. UI feedback faltante
- PieceSelectionFeedback no tiene prefab de MoveIndicator asignado
---
## 📊 RESUMEN EJECUTIVO
### PARA TENER CAMPAÑA JUGABLE (Chapter 1 completo):
1. ✅ Código compilando
2. ✅ Chapter1.unity ensamblada con BoardManager, GameManager, PurgatoryManager
3. ✅ MainMenu.unity ensamblada con CampaignManager, SaveSystem, AudioManager
4. ✅ Build Settings con MainMenu + Chapter1
5. ✅ BoardManager tiene prefabs asignados
6.**Añadir AIController a Chapter1** (sin esto, no hay oponente)
7.**Añadir GameStateManager a Chapter1**
### PARA CAMPAÑA COMPLETA (3 capítulos):
8.**Crear Chapter2.unity y Chapter3.unity**
9. ❌ Cablear DeadKingInputUI/RevealUI
10. Completar DialogueUI (speakerDatabase, portraits)
11. Añadir eventos OnPieceCaptured/OnCheckResolved a GameManager
### PARA POLISH:
12. Audio clips
13. GameHUD completeness
14. PauseMenu
15. SaveSystem restore completo
---
## 🎯 PLAN DE ACCIÓN RECOMENDADO
### Fase 1: Hacer Chapter 1 jugable (30 minutos)
1. Añadir AIController a Chapter1.unity
2. Añadir GameStateManager a Chapter1.unity
3. **Test:** MainMenu → New Campaign → Chapter 1 → Jugar contra IA
### Fase 2: Campaña funcional (2-3 horas)
4. Crear Chapter2.unity y Chapter3.unity
5. Añadir a Build Settings
6. Cablear DeadKingInputUI/RevealUI
7. **Test:** New Campaign → Chapter 1 → Ganar → Chapter 2 → Completar campaña
### Fase 3: Polish (1-2 horas)
8. Audio clips + asignación
9. GameHUD: eventos + prefabs
10. DialogueUI: speaker database + portraits
11. PauseMenu
**Tiempo total estimado:** 4-6 horas para campaña completamente funcional