mirror of
https://github.com/Earth-Genesis-Games/Ajedrez_Purgatorio.git
synced 2026-09-11 09:47:35 +00:00
docs: roadmap session IV + CLAUDE.md current state sync
This commit is contained in:
@@ -60,17 +60,29 @@ See `docs/COLLABORATIVE-DESIGN-PRINCIPLE.md` for full protocol and examples.
|
||||
- **DimBG blocking input** — Full-screen overlay with `m_RaycastTarget:1` blocked all clicks. Fixed: deactivated in `PromotionUI.Awake()`.
|
||||
- **PauseMenuController** — Used non-existent "Pause" input button. Fixed: use `KeyCode.Escape` only.
|
||||
- **SceneTransitionManager** — Used `Time.deltaTime` with `timeScale=0`. Fixed: `Time.unscaledDeltaTime` + `WaitForSecondsRealtime`.
|
||||
- **DefeatUI callback race (Aug 25)** — Fade-out disabled the panel before the continue callback coroutine fired. Fixed: invoke callback synchronously in `OnContinueClick`.
|
||||
- **Dialogues empty on first run (Aug 25)** — `DialogueUI` subscribed only if `DialogueSystem.Instance` existed during its OnEnable (lost Awake race), never retried. Fixed: `[DefaultExecutionOrder(-100)]` on DialogueSystem + resilient deferred subscription.
|
||||
- **Memorial typing dead (Aug 25)** — Scene TMP_InputFields hollow (`m_TextViewport/m_TextComponent = 0`) AND `InputSystemUIInputModule` doesn't feed legacy `Input.inputString`. Fixed: deep wiring validation + runtime fallback panel + temporary StandaloneInputModule swap (restored in OnDestroy).
|
||||
- **Pause menu dead (Aug 25)** — Duplicate controllers per scene (one inactive canvas), unusable scene panel, HUD `PauseButton` with empty onClick. Fixed: runtime-built pause panel (Continuar / Reiniciar capítulo / Opciones / Menú principal) + HUD button wired in code + orphan overlay cleanup.
|
||||
- **Dialogue text over portrait (Aug 25)** — Text box overlapped speaker portrait geometry. Fixed: idempotent runtime relayout in `DialogueUI.OnEnable` (portrait left, text stretched right).
|
||||
- **CampaignConfig log spam (Aug 25)** — `CreateInstance` fires OnEnable before `SetJsonSource()`. Fixed: OnEnable silent until a JSON source exists.
|
||||
|
||||
### Architecture
|
||||
- **Purgatory mode** (`Mono/`) is main/production codebase
|
||||
- **Classic mode** (`Mono/Classic/`) is separate simpler mode
|
||||
- **Board tile size**: 10.24 units, Camera ortho size 45
|
||||
- **Campaign flow**: MainMenu → CampaignManager.StartCampaign() → Chapter1 scene → SetupBoard → TransitionToChapterIntro → dialogue → TransitionToPlaying
|
||||
- **Runtime UI fallback pattern**: scene UI panels are validated deeply in code; broken/hollow ones are hidden and rebuilt at runtime (DefeatUI, DeadKingInputUI, PauseMenuController). All runtime canvases: ScaleWithScreenSize reference 1920×1080.
|
||||
- **Campaigns**: "Nueva Campaña" = Inspector config on scene CampaignManager (`default`, Línea I, 3 chapters); "Gambito de Sombras" = `Resources/Campaigns/gambito_campaign.json` (30 chapters, 4 acts). Same engine/scenes/rules.
|
||||
|
||||
### Git History
|
||||
- `43f15eb` — chore: scene saves from playtesting session (Ch1-3 UI edits)
|
||||
- `bcc590f` — feat: runtime pause menu + Mi Memorial in main menu
|
||||
- `97677fb` — fix: defeat→Memorial chain, first-run dialogues, memorial typing, dialogue layout
|
||||
- `dc45653` — fix: pick best-wired DeadKingInputUI + runtime fallback inscription panel
|
||||
- `58fcf0f` — feat: draws trigger Purgatory Duel for the Queen + post-defeat restart menu
|
||||
- `916acd3` — test: raise EditMode coverage to 98.16% global, all classes >=95%
|
||||
- `351f9e1` — fix: StackOverflow in King.GetAvailableMoves → IsInCheck recursion
|
||||
- `801de79` — fix: empty board + state stuck in Dialogue
|
||||
- `c5915c2` — fix: DimBG, PauseMenu, SceneTransition
|
||||
- `0725372` — fix: CampaignManager race condition, DialogueUI null safety
|
||||
- `bf3bec3` — fix: compilation errors (stale csproj, InputSystem, Assembly)
|
||||
- `b539aa4` — Initial commit (568 files, 41786 insertions)
|
||||
|
||||
(Older history: `c5915c2`, `0725372`, `bf3bec3`, `b539aa4` initial commit.)
|
||||
|
||||
@@ -152,3 +152,32 @@ Commits `088d70d` y `0f0b3dd`:
|
||||
0 errores de compilación, EditMode **206/206** (6 tests nuevos en
|
||||
`DeathPresenceTriggerTests`: inyección completa, skip de eventos manuales,
|
||||
determinismo de variantes, ids únicos).
|
||||
|
||||
---
|
||||
|
||||
## Actualizaci�n 2026-08-25 (IV) - Cadena derrota���Memorial jugable, di�logos y pausa
|
||||
|
||||
Sesi�n de bugfixing guiada por Editor.log tras playtesting del usuario.
|
||||
Commits 97677fb (fixes), cc590f (features), 43f15eb (escenas).
|
||||
|
||||
| �tem | Estado |
|
||||
|------|--------|
|
||||
| Derrota no abr�a inscripci�n | RESUELTO - carrera en DefeatUI: el fade-out hac�a SetActive(false) antes de que la coroutina invocara el callback del bot�n Continuar (la mataba en silencio). Ahora el callback se invoca s�ncronamente en OnContinueClick; logs incondicionales en Show/clicks |
|
||||
| Di�logos vac�os en primera partida | RESUELTO - DialogueUI solo se suscrib�a si DialogueSystem.Instance ya exist�a en su OnEnable (perd�a la carrera de Awakes) y nunca reintentaba. Fix: [DefaultExecutionOrder(-100)] en DialogueSystem + suscripci�n resiliente diferida que sincroniza el nodo activo |
|
||||
| No se pod�a escribir en el Memorial | RESUELTO doble: (1) los 18 TMP_InputField de las escenas est�n huecos (m_TextViewport/m_TextComponent = {fileID: 0}); (2) el EventSystem usa InputSystemUIInputModule, que no alimenta el pipeline legacy Input.inputString que usa TMP para tipear. Fix: validaci�n profunda + panel fallback runtime + swap temporal a StandaloneInputModule mientras el panel est� abierto (restaurado en OnDestroy) |
|
||||
| Bot�n Inscribir muerto | RESUELTO - WaitForSeconds escalado con imeScale=0 congelaba la coroutina para siempre; ahora WaitForSecondsRealtime. Adem�s Show() activa el GO del componente si qued� inactivo (error "Coroutine couldn't be started... 'DeadKingInputPanel' is inactive") |
|
||||
| Panel de inscripci�n gigante / corrido | RESUELTO - CanvasScaler a referencia 1920��1080 (convenci�n de todos los canvases del proyecto) + layout centrado: t�tulo arriba, nombre, mensaje, bot�n sin solapes |
|
||||
| Pausa in-game muerta | RESUELTO - hab�a 2 PauseMenuController por escena (uno sobre canvas desactivado), panel de escena sin servir y bot�n HUD PauseButton con onClick: []. Ahora Show() construye panel runtime (orden 420): **Continuar / Reiniciar cap�tulo / Opciones** (OptionsMenuController.Toggle()) / **Salir al men� principal**; cablea el bot�n HUD en Awake y limpia overlays hu�rfanos acumulados |
|
||||
| Texto encimado con retrato en di�logos | RESUELTO - re-layout runtime en DialogueUI.OnEnable: retrato 240��300 anclado a la izquierda, texto estirado ocupando el resto (TopLeft), nombre alineado con el inicio del texto. Idempotente, aplica en las 3 escenas |
|
||||
| Error ruido "[CampaignConfig] No se asign� archivo JSON" | RESUELTO - CreateInstance<CampaignConfig>() dispara OnEnable antes de que CampaignManager llame SetJsonSource(); OnEnable ahora es silencioso sin fuente (el LogError se mantiene en LoadFromJson() expl�cito) |
|
||||
| Feature: Mi Memorial | NUEVO - bot�n "Mi Memorial" en men� principal: lista scrolleable newest-first de partidas perdidas desde DeadKingPool (persistente dead_kings.json) con mensaje en dorado + autor/cap�tulo; estado vac�o si no hay registros; toggle por segundo clic |
|
||||
| Campa�as default vs Gambito de Sombras | DOC - "Nueva Campa�a" = config del Inspector en el CampaignManager de escena (campa�a default, L�nea I, 3 cap�tulos); "Gambito de Sombras" = Resources/Campaigns/gambito_campaign.json (30 cap�tulos, 4 actos). Mismo motor, escenas y reglas |
|
||||
|
||||
**Verificaci�n**: juego manual del usuario (Editor.log como fuente de diagn�stico): cadena completa
|
||||
derrota���memorial���men� post-env�o, pausa con ESC y bot�n HUD, los 4 botones de pausa,
|
||||
di�logos con texto desde primera partida, Mi Memorial funcional.
|
||||
|
||||
**Pendientes menores conocidos**: VictoryUI.OnContinueClick tiene la misma carrera latente que
|
||||
DefeatUI (fix ofrecido, no aplicado a�n); limpieza opcional de paneles duplicados/huecos en escenas
|
||||
(9 DeadKingInputPanel por escena, 2 PauseMenuController, 18 input fields vac�os) hoy mitigada por
|
||||
los fallbacks runtime.
|
||||
|
||||
Reference in New Issue
Block a user