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

6.2 KiB

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 BoardManagerClassicBoardManager, SquareClickClassicSquareClick
    • 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: DefaultCompanyEarthGenesisGames
  • App IDs: com.DefaultCompany.com.unity.template.mobile2Dcom.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-CSharpAjedrezPurgatorio.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