# beta.027 — piles de joueurs ## Résultat attendu **Maj + clic droit sur un joueur** permet de monter sur sa tête, même lorsqu’il est lui-même assis sur un autre joueur. Chaque tête garde une seule place : pour agrandir la pile, viser une tête libre, à portée normale. Un porteur peut aussi grimper sur un autre joueur avec son groupe déjà porté. Chaque personne ou animal au-dessus multiplie la vitesse du porteur par **0,75**, avec un plancher de **25 %** de sa vitesse habituelle. Une personne au-dessus : 75 % ; deux : 56,25 % ; trois : 42,19 % ; quatre : 31,64 % ; cinq ou plus : 25 %. Le calcul s’applique à tous les porteurs de la pile. Les autres effets de vitesse continuent de s’appliquer. La pénalité se recalcule immédiatement à chaque montée ou descente et disparaît dès que le porteur est libre. Relâcher Maj après être monté, puis appuyer à nouveau pour descendre. **Maj + clic droit sans viser un joueur extérieur à la pile** dépose le groupe porté. Viser un joueur extérieur à la pile permet de grimper avec son groupe. Les coups entre tous les membres d’une même pile sont refusés. ## Limites et données Le serveur refuse les cycles, les têtes occupées, les montures ordinaires, les porteurs endormis/allongés/en vol plané et un plafond trop bas pour l’ensemble du groupe. Il vérifie aussi la bordure, la hauteur et les chunks déjà chargés. Une dépose cherche une place pour tout le groupe supérieur. Les passagers de ce groupe restent ensemble ; la disparition d’un joueur au milieu sépare les parties survivantes. Les contrôles de collision continuent pendant le déplacement. Les relations utilisent les passagers natifs et l’attachement temporaire existant `sanctuary:carried`. Aucun nouveau format de sauvegarde, aucune migration et aucune modification des inventaires, aptitudes ou règles de progression. Les animaux gardent leur identité native et les joueurs ne sont pas enregistrés dans la sauvegarde d’un autre joueur. Client et serveur beta.027 ensemble. ## Vérifications **27 tests serveur natifs réussis**, dont 8 nouveaux tests de portage : pile de huit joueurs, maintien sur 20 ticks, portée et siège unique, refus des cycles et des montures ordinaires, plafond du groupe complet, cumul des vitesses, retrait immédiat de la pénalité, coexistence avec les autres modificateurs, coups entre membres éloignés, dépose d’une pile, mort au milieu, déchargement, absence de passagers enregistrés dans les joueurs et identité de l’animal porté. Les régressions des familiers et mouvements passent dans la même suite. Validation finale et assemblage **réussis** (3 min 41 s) : `./gradlew check build assemblePack -PsanctuaryFocusedTests=carry,familiar,movement`. La session macOS est verrouillée : l’observation graphique reste à confirmer. Export local vérifié : [Sanctuary-beta.027.mrpack](../build/Sanctuary-beta.027.mrpack). Les 1 253 classes du JAR correspondent à la compilation. Seuls `CarryService` (et ses classes internes) et `CarryDropMixin` diffèrent de beta.026. La carte, Demeure et JEI gardent leur code précédent. Les JAR imbriqués correspondent aux modules construits ; l’export beta.026 est intact. Aucun déploiement effectué. SHA-256 MRpack : `13afddafca072151ba2b69ad5b3d7ee8de6f4f3841f3ace0cf598b87806e14f1`. Reçu : `build/carry027-artifact.json` ; vérificateur : `build/verify-carry027.py`.