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)
5.1 KiB
5.1 KiB
Unity Editor Setup Guide — Items 1-4
Fecha: 17 agosto 2026 Objetivo: Hacer Chapter 1 jugable con IA yGameStateManager
Item 1: Añadir AIController a Chapter1.unity
Pasos:
- Abrir
Assets/Scenes/Chapter1.unityen el Editor - Crear GameObject vacío → renombrar a
AIController - Añadir componente
AIController(script enAssets/Game/Scripts/Mono/AI/) - En el Inspector, configurar:
Strategy→AIStrategyEasy(para chapter 1)Enabled→ true
- Verificar que
GameManagerClassic.Instancese auto-crea (lazy getter)
Verificación:
- Al dar Play, las piezas negras deben moverse automáticamente después del turno del jugador
Item 2: Añadir GameStateManager a Chapter1.unity
Pasos:
- En
Chapter1.unity, crear GameObject vacío → renombrar aGameStateManager - Añadir componente
GameStateManager(script enAssets/Game/Scripts/Mono/Core/) - En el Inspector,
Current Statedebe empezar enMenu - El script tiene
DontDestroyOnLoad— persistirá entre escenas
Verificación:
- Al dar Play, consola debe mostrar
[GameStateManager] Inicializado. CampaignManager.InitializeChapter()debe llamarTransitionTo(GameState.Playing)después del intro
Item 3: Crear Chapter2.unity y Chapter3.unity
Pasos:
- Abrir
Chapter1.unity File → Save As → Chapter2.unity- Guardar en
Assets/Scenes/ - Repetir para
Chapter3.unity - Abrir
Build Settings(File → Build Settings) - Añadir ambas escenas:
Chapter2yChapter3 - Verificar orden: MainMenu (0), Chapter1 (1), Chapter2 (2), Chapter3 (3)
Configuración por capítulo:
- Chapter2: Cambiar
_chapterIndexen CampaignConfig (o ajustar el JSON) - Chapter3: Cambiar
_chapterIndexen CampaignConfig
Nota:
- La difficuldad de IA se aplica automáticamente por
CampaignManager.ApplyChapterAIConfiguration() - Los diálogos se cargan por
chapter.introDialogueId/chapter.outroDialogueIddesde CampaignConfig
Item 4: Cablear DeadKingInputUI/RevealUI
DeadKingInputUI:
- En
Chapter1.unity, crear Canvas UI - Añadir panel con:
- TextMeshPro para "Nombre del Rey Muerto"
- InputField para nombre
- TextMeshPro para mensaje
- Botón "Aceptar"
- Añadir componente
DeadKingInputUI - Conectar references en Inspector
DeadKingRevealUI:
- Crear otro panel Canvas
- Añadir componente
DeadKingRevealUI - Conectar references en Inspector
CampaignManager:
ShowDeadKingReveal()ya usaFindObjectOfType<DeadKingRevealUI>()— no necesita SerializeFieldTransitionToDeadKings()ya usaFindObjectOfType<DeadKingInputUI>()
Verificación:
- Al perder un capítulo, debe aparecer la UI de Dead King input
- Al ganar con Dead King spawned, debe aparecer la UI de revelación
Item 6: Audio Clips (Requeridos)
Clips necesarios por AudioManager:
- Move — sonido de movimiento de pieza (corto, ~0.2s)
- Capture — sonido de captura (medio, ~0.3s)
- Check — alerta de jaque (agudo, ~0.5s)
- Checkmate — fanfarria o dramático (~1s)
- Promotion — sonido de promoción (~0.5s)
- GameOver — derrota (~1s)
Cómo asignar:
- Importar clips de audio a
Assets/Game/Audio/SFX/ - Seleccionar
AudioManageren la escena - Arrastrar clips a los campos
_moveSFX,_captureSFX, etc. - Los clips se reproducen automáticamente via eventos de GameManager
Item 7: SpeakerDatabase (ScriptableObject)
Crear asset:
Assets/Game/Data/→ Click derecho → Create → Ajedrez Purgatorio → Narrative → Speaker Database- Nombrar
SpeakerDatabase.asset - Mover a
Assets/Game/Data/Resources/(si se carga con Resources.Load) - En el Inspector, añadir entries:
speakerName: "La Muerte" → portrait: [sprite]speakerName: "Narrador" → portrait: [sprite]- etc.
Conectar en escena:
- Seleccionar
DialogueUIen Chapter1 - Asignar
_speakerDatabaseal asset creado
Item 12: Git Commit
# Ver estado
git status
# Stage todo
git add -A
# Commit
git commit -m "fix: resolve compilation errors, update docs, add unit tests
- Fix 9 CS0101 duplicate classes (BoardManager→ClassicBoardManager, etc.)
- Merge GetAttackSquares into Piece base class
- Fix King castling validation with IsSquareAttackedBy
- Assign URP pipeline to QualitySettings/GraphicsSettings
- Fix template identifiers (DefaultCompany→EarthGenesisGames)
- Delete orphaned SampleScene and duplicate URP assets
- Fix test assembly reference
- Remove 11 unused packages
- Write unit tests for CheckDetector, DrawDetector, MoveValidator
- Fix BalanceConfig JSON structure to match C# classes
- Update stale documentation across ~30 files
- Add Unity Editor setup guide for remaining integration"
Orden recomendado de ejecución:
- Git commit primero (para tener un checkpoint)
- Item 1 (AIController) — prioridad más alta
- Item 2 (GameStateManager) — prioridad alta
- Item 3 (Chapter2/3) — media
- Item 4 (DeadKing UI) — media
- Item 6 (Audio) — bajo
- Item 7 (SpeakerDatabase) — bajo