59 lines
3.4 KiB
Markdown
59 lines
3.4 KiB
Markdown
# 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`.
|