Empêcher le retour d'un ennemi vaincu après une fuite et un rechargement (#16) #19
No reviewers
Labels
No labels
Compat/Breaking
Kind/Bug
Kind/Documentation
Kind/Enhancement
Kind/Feature
Kind/Security
Kind/Testing
Priority
Critical
Priority
High
Priority
Low
Priority
Medium
Reviewed
Confirmed
Reviewed
Duplicate
Reviewed
Invalid
Reviewed
Won't Fix
Status
Abandoned
Status
Blocked
Status
Need More Info
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: jeux/beaulieu-sur-brume#19
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "feature/16-fix-retour-ennemi-fuite"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Closes #16. Bug critique introduit par #5, corrigé sur les entités stables de #2.
Le bug
Un ennemi en fuite change de case. L'identité de rencontre étant dérivée de la cellule, une victoire ultérieure marquait la mauvaise case, tandis que
ZoneDatarecréait l'ennemi à son origine au chargement → réapparition. SaCreatureétait aussi reconstruite à chaque engagement, restaurant ses PV.Correctif
entity_id(dérivé de la case d'apparition, indépendant de la case courante).start_encounterposecurrent_encounter_id = ent.entity_id; la victoire marque l'entité, pas la cellule.WorldEntityconstruit saCreatureune fois et la conserve ;CombatController/EncounterFlowacceptent uneCreaturefournie → les PV survivent à une fuite (plus de régénération).GameSave.entity_state_by_mapet restauré parWorldà l'entrée sur la carte ; libéré à la victoire.Critères d'acceptation
Tests
Suite complète 115/115 (+4) —
test_encounter_persistence.gdreproduit l'issue de bout en bout, plus PV conservés au réengagement, position+PV de fuite survivant au save/load, identité stable au réengagement.