Libérer la case tactique de tout allié tombé, protagoniste inclus #75

Closed
opened 2026-06-22 10:50:53 +00:00 by Reliodas · 0 comments
Owner

Le nettoyage des morts retire les ennemis et allies, mais jamais hero. Quand le protagoniste tombe et qu’un compagnon poursuit le combat, sa case peut rester occupée dans TacticalGrid, bloquant déplacement et pathfinding.

Périmètre :

  • nettoyer uniformément tous les combattants morts ;
  • conserver la Creature et le PartyMember au roster ;
  • ne pas rendre un membre mort sélectionnable ou déplaçable ;
  • éviter tout double retrait ;
  • garder la reprise d’exploration et le choix du nouveau leader cohérents.

Critères d’acceptation :

  • la case du protagoniste tombé devient libre pendant que le combat continue ;
  • même comportement pour tout allié ;
  • l’IA et les acteurs contrôlés peuvent traverser ou occuper la case libérée ;
  • le membre tombé reste sérialisable dans le roster ;
  • le nettoyage reste idempotent.

Tests automatisés à ajouter :

  • héros à 0 PV avec allié vivant : grid.occupant_at(hero_cell) == null après nettoyage ;
  • déplacement d’un allié vers la case libérée ;
  • mort d’un allié PLAYER et AUTO_ALLY ;
  • appels répétés au nettoyage sans corruption ;
  • victoire après chute du leader puis save/load du groupe.
Le nettoyage des morts retire les ennemis et `allies`, mais jamais `hero`. Quand le protagoniste tombe et qu’un compagnon poursuit le combat, sa case peut rester occupée dans `TacticalGrid`, bloquant déplacement et pathfinding. Périmètre : - nettoyer uniformément tous les combattants morts ; - conserver la Creature et le PartyMember au roster ; - ne pas rendre un membre mort sélectionnable ou déplaçable ; - éviter tout double retrait ; - garder la reprise d’exploration et le choix du nouveau leader cohérents. Critères d’acceptation : - la case du protagoniste tombé devient libre pendant que le combat continue ; - même comportement pour tout allié ; - l’IA et les acteurs contrôlés peuvent traverser ou occuper la case libérée ; - le membre tombé reste sérialisable dans le roster ; - le nettoyage reste idempotent. Tests automatisés à ajouter : - héros à 0 PV avec allié vivant : `grid.occupant_at(hero_cell) == null` après nettoyage ; - déplacement d’un allié vers la case libérée ; - mort d’un allié PLAYER et AUTO_ALLY ; - appels répétés au nettoyage sans corruption ; - victoire après chute du leader puis save/load du groupe.
Reliodas added this to the 0.16.0 milestone 2026-06-22 10:50:53 +00:00
Sign in to join this conversation.
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#75
No description provided.