feat: changement de leader en jeu et reconstruction de formation (#76) #85
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 milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: jeux/beaulieu-sur-brume#85
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "feature/76-leader-switch"
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 #76.
GameState.set_leader()existait, mais aucun contrôle joueur ne l'appelait, et changer le leader par code ne reconstruisait pas les rôles visuels Player/Follower : le critère d'exploration avec un leader restait essentiellement technique. Ce ticket câble une surface jouable et la reconstruction immédiate de la formation.Changements
member_leader_requested→World.World._on_member_leader_requested(): refuse un membre absent, hors groupe actif (viaset_leader) ou à terre. En cas de succès, le leader sortant garde sa case courante (celle du jeton joueur), le jeton joueur (caméra + entrées) saute sur la case mémorisée du nouveau leader, puisrebuild_formation()recrée les suiveurs (l'ancien leader redevient suiveur). Les deux échangent donc leur place, sans doublon ni chevauchement, en préservant les positions individuelles.World.rebuild_formation()reste neutre en position (il ne déplace pas le jeton joueur — posé par l'entrée de zoneplayer_start_forou par un changement de leader explicite), ce qui corrige une régression de position du joueur au rechargement.Critères d'acceptation
ensure_valid_leader+rebuild_formation, cf. #55).Tests
Suite GUT complète verte : 304 tests (depuis 299), stable sur plusieurs exécutions.
tests/unit/test_world_leader_switch.gd(chemin panneau réel) : désigner Bran leader → le jeton joueur suit (case du nouveau leader), l'ancien leader devient suiveur sans doublon et conserve sa position ; aller-retour protagoniste↔Bran ; refus d'un membre à terre (bouton absent + handler), hors groupe actif et absent ; persistance save/load du leader.Validation manuelle (différée au #78)
Le ressenti (caméra, file de suiveurs, collisions après changement de leader) sera validé dans Godot au #78.