fix: efface les positions individuelles aux réinitialisations (#73) #79

Merged
Reliodas merged 1 commit from feature/73-clear-member-positions into develop 2026-06-22 11:09:12 +00:00
Owner

Closes #73.

GameState.begin_new_game() et reset_run() vidaient player_pos_by_map mais pas member_pos_by_map : une nouvelle partie pouvait donc conserver les positions individuelles d'anciens compagnons (reproduction : après begin_new_game(), l'entrée old_map/companion_bran subsistait), faisant apparaître un compagnon recruté à une position héritée plutôt que près du leader. Premier correctif de l'audit 0.16.0.

Changements

  • scripts/game_state.gd : ajout de member_pos_by_map.clear() dans begin_new_game() et reset_run(), à côté du player_pos_by_map.clear() existant. apply_save() continue de restaurer les positions de la sauvegarde chargée.

Critères d'acceptation

  • begin_new_game() efface toutes les positions individuelles ;
  • reset_run() les efface également ;
  • charger une sauvegarde valide continue de restaurer ses propres positions ;
  • aucune position d'une partie précédente n'influence l'apparition d'un compagnon.

Tests

Suite GUT complète verte : 275 tests (depuis 272).

  • tests/unit/test_game_state_party.gd : begin_new_game() et reset_run() vident member_pos_by_map ; nouvelle partie après une sauvegarde plaçant Bran sur une autre carte → aucune position résiduelle, puis apply_save restaure bien la position enregistrée.
Closes #73. `GameState.begin_new_game()` et `reset_run()` vidaient `player_pos_by_map` mais **pas** `member_pos_by_map` : une nouvelle partie pouvait donc conserver les positions individuelles d'anciens compagnons (reproduction : après `begin_new_game()`, l'entrée `old_map/companion_bran` subsistait), faisant apparaître un compagnon recruté à une position héritée plutôt que près du leader. Premier correctif de l'audit 0.16.0. ## Changements - `scripts/game_state.gd` : ajout de `member_pos_by_map.clear()` dans `begin_new_game()` **et** `reset_run()`, à côté du `player_pos_by_map.clear()` existant. `apply_save()` continue de restaurer les positions de la sauvegarde chargée. ## Critères d'acceptation - [x] begin_new_game() efface toutes les positions individuelles ; - [x] reset_run() les efface également ; - [x] charger une sauvegarde valide continue de restaurer ses propres positions ; - [x] aucune position d'une partie précédente n'influence l'apparition d'un compagnon. ## Tests Suite GUT complète verte : **275 tests** (depuis 272). - `tests/unit/test_game_state_party.gd` : `begin_new_game()` et `reset_run()` vident `member_pos_by_map` ; nouvelle partie après une sauvegarde plaçant Bran sur une autre carte → aucune position résiduelle, puis `apply_save` restaure bien la position enregistrée.
fix: efface les positions individuelles aux réinitialisations (#73)
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
ci/woodpecker/pr/woodpecker Pipeline was successful
ci/woodpecker/pull_request_closed/woodpecker Pipeline was successful
4a5997f916
begin_new_game() et reset_run() vidaient player_pos_by_map mais pas
member_pos_by_map : une nouvelle partie pouvait conserver la position d'un
ancien compagnon (ex. old_map/companion_bran). Les deux vident désormais
aussi member_pos_by_map. apply_save continue de restaurer ses propres
positions.

Tests : begin_new_game/reset_run vident les positions ; nouvelle partie
après une sauvegarde plaçant Bran ailleurs (aucune position résiduelle) ;
apply_save restaure toujours les positions enregistrées. Suite 275 tests.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Reliodas merged commit f26bef9fab into develop 2026-06-22 11:09:12 +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#79
No description provided.