Chessistics/docs/PLAN.md
Samuel Bouchet c4f6ecbf44 Add collision camera pan/zoom and toast notification
EventAnimator now emits CollisionOccurred at the end of the collision
phase, carrying the struck cell and victim/destroyer identity. Main pans
and zooms the camera onto the cell over 0.45s and shows a fading toast
("Pion détruit par Tour — retourné au stock", or "collision mutuelle"
for same-status ties). The toast fades out after 3s and leaves the
camera framing the collision so the player can inspect the aftermath
before resuming.
2026-04-17 22:21:36 +02:00

3 KiB

Chessistics — Plan de travail (restant)

Consolidation des sections non implementees des anciens PLAN_missions.md et PLAN_leveldesign.md. Le moteur (black-box sim, campagne, transformateurs, missions 1-7) est en place. Ce qui suit concerne la finition UX, les visuels et l'extension de la campagne.


1. UX / Presentation — gaps Godot

Le moteur expose deja les commandes et events requis ; cote Godot il manque les surfaces d'interaction et d'animation.

1.3 Collision — camera pan/zoom + notification

L'engine emet deja PieceReturnedToStockEvent + auto-pause. Il reste a :

  • Animer un pan + zoom de la camera vers la case de collision.
  • Afficher une notification dans un coin de l'ecran (ex : "Tour II detruite par Dame — retournee au stock").
  • Reprise a Espace apres lecture.

1.4 Touche Suppr pour retirer une piece

Le bouton [Retirer] du DetailPanel existe. Ajouter en complement : selection + Delete → meme effet que le bouton.

1.5 Cinematique de transition de mission

Sur MissionStartedEvent (hors mission 0) :

  • Titre "Nouvelle mission" plein ecran en fade-in.
  • Lock pan/zoom ; la camera se deplace vers la nouvelle zone.
  • Animation d'expansion pour les cases debloquees par le TerrainPatch.
  • Le titre glisse ensuite vers le panneau d'objectifs avant de disparaitre (guide l'oeil).
  • Unlock pan/zoom, la simulation reprend.

1.6 Visualisation des trajets

TrajectView existe. Manque :

  • Fleches directionnelles sur le trait.
  • Pulsation legere du trait quand la piece est en mouvement.
  • Couleur unique par piece pour distinguer les chaines.

2. Extension de la campagne

campaign_01.json compte actuellement 7 missions (Pion → Tour → Cavalier → Fou → Dame + 2 transformateurs). La vision GDD/plan prevoit une campagne plus longue et un final orchestrant toutes les chaines.

2.1 Missions supplementaires

  • "L'Expansion Finale" (14x14) : multiples transformateurs, murs complexes. Defi : maintenir toutes les chaines en s'etendant ; gestion de la congestion / collisions.
  • "Le Couronnement final" (14x14) : Cathedrale qui demande or + armes + outils simultanement. Orchestrer l'ensemble des chaines logistiques.

Actuel mission 7 "Le Couronnement" = transformation outils→or seule. La renommer ou l'inserer comme mission intermediaire et ajouter les deux missions ci-dessus pour retrouver la progression 10 missions de la vision initiale.

2.2 Demandes recurrentes (post-campagne 1)

Pour forcer la preservation des automatisations entre missions :

  • Une demande consomme N unites par tour.
  • Si plus approvisionnee → etat "en penurie".
  • Condition : aucune demande en penurie pendant X tours consecutifs.

Implique : nouveau champ sur DemandState, flag shortage, regle de victoire parametrable par mission. A valider via playtest avant d'ajouter au scope.


3. Polish visuel des transformateurs

Couleur de cellule dediee (orange cuivre), animation flash input → flash output sur CargoConvertedEvent, icones de cargo sur les pieces porteuses.