Files
Ajedrez_Purgatorio/design/quick-designs/purgatorio-final.md
T
jimmyabv f7d56066c0 feat: Purgatory Final duel vs La Muerte + SFX wiring + runtime options menu
- Duel flow: mating piece vs boss while board collapses (PurgatoryDuelManager/Rules/UI/MuerteQuotes)
- GameState.PurgatoryDuel + CampaignManager rescue/restart hooks + SquareClick routing
- Dice-based rescue of most valuable dead identity; final defeat restarts Chapter 1
- 6 SFX clips wired in Ch1/2/3 via AudioClipAssigner
- OptionsMenuController runtime audio/graphics panel, wired to MainMenu
- Tests migrated to Assets/Tests/EditMode subfolders + PurgatoryDuelRulesTests (200 total)
- Editor tools: DiagAssign, SpeakerDatabaseSetup, PurgatoryCanvasMaintenance
2026-08-24 19:39:52 -03:00

3.8 KiB

Quick Design — Purgatorio Final (Duelo contra La Muerte)

Fecha: 2026-08-22 · Estado: Aprobado por el usuario Tipo: Rediseño del clímax de campaña · Reemplaza: victoria instantánea al dar jaque mate

Resumen

Al dar jaque mate al Rey enemigo, en lugar de victoria instantánea se abre el Duelo del Purgatorio: la pieza que dio el mate queda sola sobre el tablero contra La Muerte (pieza-jefe única), mientras el tablero se devora a sí mismo casilla a casilla.

El flujo de dados actual (recuperar piezas capturadas durante la partida) convive con este sistema — no lo reemplaza.

Reglas

Trigger

  • El jugador da jaque mate (GameManager.OnCheckmate con whiteWins == true).
  • No aparece VictoryUI: se transiciona a GameState.PurgatoryDuel.

Arena

  • Mismo tablero, misma escena. Se desactivan todas las piezas salvo:
    • La pieza de mate del jugador (queda en su casilla).
    • El Jefe (La Muerte): sprite de Rey oscuro/rojo en el centro del tablero.
  • Niebla desactivada durante el duelo.

Turnos

  1. Turno del jugador: mueve su pieza con su movimiento normal de ajedrez (validación estándar). Una jugada por turno. Sin movimientos legales → pasa turno.
  2. Colapso (después del movimiento del jugador):
    • Turnos 1-2: sin devorar.
    • Turno 3+: 1 casilla aleatoria por turno.
    • Turno 8+: 2 casillas por turno.
    • Casilla devorada = vacío (oscurecida, intransitable para ambas piezas).
    • La casilla bajo el Jefe está EXCLUIDA del colapso (La Muerte es dueña del Purgatorio). Si la casilla devorada está bajo el jugador → derrota.
  3. Turno del Jefe: avanza hasta 2 casillas hacia el jugador (paso greedy, evitando vacíos). Si termina en la casilla del jugador → derrota.

Fin del duelo

  • Victoria: el jugador captura al Jefe → victoria final de campaña (VictoryUI).
  • Derrota (te atrapa / caes al vacío):
    1. Oferta única de rescate por dados: usa DiceSystem sobre UNA identidad muerta este capítulo (la más valiosa disponible). Éxito → esa pieza vuelve al tablero original. Fallo o rechazo → nada.
    2. Reinicio al Capítulo 1 / tablero original ("el juego continúa en el primer tablero original").

Voz de La Muerte

Frases solemnes mostradas en el banner del duelo:

  • Al iniciar el duelo.
  • Cada 5 turnos (aviso del colapso).
  • Al capturar al Jefe / al perder.

Arquitectura

Componente Responsabilidad Creación
PurgatoryDuelManager Orquesta turnos, estado, fin de duelo, rescate Runtime, hijo de CampaignManager
BossAI Movimiento de persecución del Jefe (2 pasos greedy) Hijo del manager
BoardCollapseController Devora casillas aleatorias según curva Hijo del manager
PurgatoryDuelUI Banner + contador + frases + paneles de fin Runtime sobre canvas existente
MuerteQuotes Pools data-driven de frases (JSON Resources) Estático

Sin edición de escenas: todo se construye en runtime siguiendo el patrón de DialogueTriggerSystem (ADR-0001: jerarquías independientes por modo).

Fuera de alcance

  • Modificar el flujo de dados existente (oferta → tirada → resultado).
  • Arte final del Jefe (usa sprite de Rey tintado; reemplazable después).
  • Portraits nuevos de La Muerte para SpeakerDatabase.

Criterios de aceptación

  1. Dar jaque mate abre el duelo (no VictoryUI).
  2. Solo quedan la pieza de mate y el Jefe; el resto de piezas desaparece.
  3. El colapso empieza en el turno 3 y escala en el 8; las casillas devoradas bloquean movimiento de ambas piezas.
  4. El Jefe persigue y puede capturar; el jugador pierde si es atrapado o si su casilla colapsa.
  5. Capturar al Jefe muestra victoria de campaña.
  6. Perder ofrece rescate por dados una vez y luego reinicia al Capítulo 1.
  7. Tests EditMode cubren curva de colapso, paso del jefe y transiciones de estado.