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)
205 lines
6.1 KiB
Markdown
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
|