Empêcher le réengagement immédiat après rechargement d’une fuite #42

Closed
opened 2026-06-20 11:11:17 +00:00 by Reliodas · 1 comment
Owner

Le verrou de désengagement ajouté par #26 ne vit que dans l’instance de . Une fuite écrit pourtant immédiatement une autosave avec le héros et l’ennemi encore en perception mutuelle. Lors du chargement, est vide et l’appel différé à relance directement le combat.

Reproduction confirmée en headless :

  1. engager le gobelin au contact ;
  2. fuir ;
  3. sauvegarder/recharger l’état de fuite ;
  4. instancier ;
  5. constater au lieu de l’exploration.

Critères d’acceptation :

  • charger une sauvegarde prise après une fuite laisse le joueur en exploration ;
  • l’hostile fui ne réengage pas tant que sa perception du héros n’a pas été rompue ;
  • le verrou survit au save/load, ou une politique équivalente garantit ce comportement ;
  • le contact direct reste capable de réengager ;
  • après rupture puis nouvelle acquisition de perception, l’hostile peut réengager ;
  • un test de régression couvre fuite, save/load, absence de réengagement immédiat, rupture et réacquisition.
Le verrou de désengagement ajouté par #26 ne vit que dans l’instance de . Une fuite écrit pourtant immédiatement une autosave avec le héros et l’ennemi encore en perception mutuelle. Lors du chargement, est vide et l’appel différé à relance directement le combat. Reproduction confirmée en headless : 1. engager le gobelin au contact ; 2. fuir ; 3. sauvegarder/recharger l’état de fuite ; 4. instancier ; 5. constater au lieu de l’exploration. Critères d’acceptation : - charger une sauvegarde prise après une fuite laisse le joueur en exploration ; - l’hostile fui ne réengage pas tant que sa perception du héros n’a pas été rompue ; - le verrou survit au save/load, ou une politique équivalente garantit ce comportement ; - le contact direct reste capable de réengager ; - après rupture puis nouvelle acquisition de perception, l’hostile peut réengager ; - un test de régression couvre fuite, save/load, absence de réengagement immédiat, rupture et réacquisition.
Reliodas added this to the 0.15.0 milestone 2026-06-20 11:11:17 +00:00
Author
Owner

Complément technique : les identifiants supprimés de la description par le shell sont _disengaged, World, evaluate_perception() et EncounterFlow.Phase.FIGHTING. La reproduction headless a confirmé que la nouvelle instance de World revient directement en phase de combat après le chargement.

Complément technique : les identifiants supprimés de la description par le shell sont `_disengaged`, `World`, `evaluate_perception()` et `EncounterFlow.Phase.FIGHTING`. La reproduction headless a confirmé que la nouvelle instance de `World` revient directement en phase de combat après le chargement.
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#42
No description provided.