Afficher l'interface tactique en surimpression dans World (#8) #11

Merged
Reliodas merged 1 commit from feature/8-overlay-tactique-monde into develop 2026-06-19 16:02:16 +00:00
Owner

Closes #8.

Extrait le HUD de combat dans un CombatOverlay (CanvasLayer réutilisable) affiché au-dessus de la carte d'exploration conservée, sans recréer la caméra ni la carte.

Changements

  • CombatOverlay (scenes/combat/combat_overlay.tscn + .gd) : barre d'actions (Attaquer / Esquiver / Second Wind / Fin du tour), panneaux de PV, journal, prompt et écran de fin, branchés sur le CombatController actif via bind(). unbind() masque l'overlay et coupe toutes les connexions (aucun résidu d'entrée hors combat).
  • World instancie l'overlay masqué, le lie au contrôleur à l'entrée en combat (phase FIGHTING) et le retire au retour à l'exploration.
  • EncounterFlow se maintient en RESUMING jusqu'à l'acquittement de l'écran de fin (acknowledge_resume), déclenché par [Entrée] dans l'overlay.

Critères d'acceptation

  • l'overlay apparaît uniquement pendant une rencontre ;
  • les actions utilisent le CombatController actif de World ;
  • la caméra et la carte ne sont pas recréées (overlay sur la carte conservée) ;
  • la fin de combat retire l'overlay sans résidu d'entrée ;
  • un smoke test vérifie l'instanciation et le cycle visibilité.

Tests

Suite complète 93/93 (312 assertions) — smoke test de l'overlay + mise à jour des tests EncounterFlow/World pour la reprise acquittée.

Effet

Le combat est désormais jouable de bout en bout : contact → overlay → actions du héros → écran de fin → [Entrée] → reprise de l'exploration.

Hors périmètre, repris en #3 : bouton « Se déplacer », sélection et surbrillance des cases (tributaires d'une TacticalGrid, absente en combat abstrait).

Closes #8. Extrait le HUD de combat dans un **`CombatOverlay`** (`CanvasLayer` réutilisable) affiché **au-dessus de la carte d'exploration conservée**, sans recréer la caméra ni la carte. ## Changements - **`CombatOverlay`** (`scenes/combat/combat_overlay.tscn` + `.gd`) : barre d'actions (Attaquer / Esquiver / Second Wind / Fin du tour), panneaux de PV, journal, prompt et écran de fin, branchés sur le `CombatController` actif via `bind()`. `unbind()` masque l'overlay et coupe toutes les connexions (aucun résidu d'entrée hors combat). - **`World`** instancie l'overlay masqué, le lie au contrôleur à l'entrée en combat (phase `FIGHTING`) et le retire au retour à l'exploration. - **`EncounterFlow`** se maintient en `RESUMING` jusqu'à l'acquittement de l'écran de fin (`acknowledge_resume`), déclenché par [Entrée] dans l'overlay. ## Critères d'acceptation - [x] l'overlay apparaît uniquement pendant une rencontre ; - [x] les actions utilisent le `CombatController` actif de World ; - [x] la caméra et la carte ne sont pas recréées (overlay sur la carte conservée) ; - [x] la fin de combat retire l'overlay sans résidu d'entrée ; - [x] un smoke test vérifie l'instanciation et le cycle visibilité. ## Tests Suite complète **93/93** (312 assertions) — smoke test de l'overlay + mise à jour des tests `EncounterFlow`/`World` pour la reprise acquittée. ## Effet Le combat est désormais **jouable de bout en bout** : contact → overlay → actions du héros → écran de fin → [Entrée] → reprise de l'exploration. Hors périmètre, repris en **#3** : bouton « Se déplacer », sélection et surbrillance des cases (tributaires d'une `TacticalGrid`, absente en combat abstrait).
Reliodas added this to the 0.15.0 milestone 2026-06-19 15:59:53 +00:00
feat: affiche l'interface de combat en surimpression dans World (#8)
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
ci/woodpecker/pr/woodpecker Pipeline was successful
ci/woodpecker/pull_request_metadata/woodpecker Pipeline was successful
ci/woodpecker/pull_request_closed/woodpecker Pipeline was successful
805248b64b
Extrait le HUD de combat dans un CombatOverlay (CanvasLayer réutilisable)
affiché au-dessus de la carte d'exploration conservée, sans recréer la caméra
ni la carte.

- CombatOverlay : barre d'actions (Attaquer / Esquiver / Second Wind / Fin du
  tour), panneaux de PV, journal, prompt et écran de fin, branchés sur le
  CombatController actif via bind() ; unbind() masque l'overlay et coupe toutes
  les connexions (aucun résidu d'entrée hors combat).
- World instancie l'overlay (masqué), le lie au contrôleur à l'entrée en combat
  (phase FIGHTING) et le retire au retour à l'exploration.
- EncounterFlow se maintient en RESUMING jusqu'à l'acquittement de l'écran de
  fin (acknowledge_resume), déclenché par [Entrée] dans l'overlay.

Hors périmètre, repris en #3 : bouton « Se déplacer », sélection et surbrillance
des cases (tributaires d'une TacticalGrid, absente en combat abstrait).

Tests : suite complète 93/93 — smoke test de l'overlay (instanciation, cycle de
visibilité, routage des actions, absence de résidu d'entrée) et mise à jour des
tests EncounterFlow/World pour la reprise acquittée.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Reliodas merged commit 3070f63bca into develop 2026-06-19 16:02:16 +00:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: jeux/beaulieu-sur-brume#11
No description provided.