• 14.2.9 d41d0ca2e3

    14.2.9
    Release Creation / build (release) Successful in 2m31s
    Stable

    giteadmin released this 2026-10-22 09:36:17 +02:00 | 8 commits to main since this release

    14.2.9 - Les possessions de Tégragor

    Possessions

    • Les points de conjuration sont de nouveau enregistrés : le compteur de
      l'item de possession était déclaré avec une valeur minimale de 0, donc les
      valeurs négatives (la victime qui l'emporte) étaient rejetées par la
      validation et le compteur restait bloqué à 0 — la victime ne pouvait jamais
      gagner. Le compteur est désormais signé et borné à −2…+2 (victime possédée
      à +2, entité dissoute à −2)
    • Le message « Un point de possession/conjuration a été ajouté » et le compteur
      affichent possession ou conjuration selon le signe
    • La fiche d'entité affiche les possessions en cours (chaque victime et les
      points) : l'item étant stocké sur la victime, l'entité n'avait rien à
      afficher ; un double-clic sur une ligne ouvre l'item de la victime
    • La fenêtre d'attaque de possession pré-remplit la difficulté avec la
      difficulté libre par défaut de la compétence de possession (elle retombait
      auparavant sur 0)

    Entités de cauchemar et possessions

    • Seules les entités de cauchemar incarnées affichent les résonances et la
      possibilité d'accorder des personnages
    • Seules les entités de cauchemar non-incarnées affichent les possessions en cours
    • Ajout d'un bouton edit pour modifier les possessions depuis l'entité (en plus du double-clic)

    Empoignade

    • « Parade Empoignade » ouvre de nouveau la fenêtre de défense sur la
      parade.
      L'arme d'empoignade calculée (sans document) portait un identifiant
      invalide : le bouton du message de défense partait sans clé, la fenêtre
      s'ouvrait sur l'esquive et le choix « Parade Empoignade » ne tenait pas
    • Une défense d'empoignade peut de nouveau être lancée, esquive comme
      parade : la fenêtre de défense s'appuie sur le jet d'attaque d'empoignade
      complet. Elle recevait auparavant une reconstruction partielle (arme
      recalculée, dommages nuls) : la liste des défenses n'était pas proposée et le
      bouton Lancer échouait

    Fenêtre de défense

    • Le titre de la fenêtre de défense affiche maintenant de quel qttaquant on se défend

    Jets

    • Le jet de résistance respecte la difficulté choisie. Le type de jet
      forçait -8 dans les données à chaque ouverture de la fenêtre ET à chaque
      lancer : la fenêtre s'ouvrait à -8 (même en cliquant « Rêve » sur la fiche,
      qui demande 0) et la difficulté modifiée dans la fenêtre était écrasée par
      -8 juste avant le lancer. La valeur de l'appelant (fiche, jet de résistance
      standard) et la difficulté saisie sont désormais conservées ; -8 reste le
      défaut du jet de résistance standard
    • Nouveau bouton « Lancer sans fermer » dans les fenêtres de jet : effectue
      le jet et laisse la fenêtre ouverte, pour enchaîner plusieurs jets ; les jets
      à traitement particulier (ex. étapes de recette alchimique) continuent de
      s'exécuter normalement
    • Les difficultés positives s'affichent avec leur signe dans les messages de
      tchat (« Agilité à +1 » au lieu de « Agilité à 1 »), cohérent avec la table
      de résolution et les ajustements ; idem dans les messages de demande de
      défense et d'attaque (« se défendre à +1 », « Diff +1 »)

    Combat

    • Une attaque « non mortel » est encaissée sur la table non mortelle. La
      mortalité décochée dans la fenêtre d'attaque était perdue au lancer : la
      re-sélection interne de l'attaque ne conservait que la tactique, les
      dommages étaient recalculés avec la mortalité de l'arme et l'encaissement
      tombait sur les coups mortels. La mortalité choisie est désormais conservée
      jusqu'au jet, le message d'attaque l'affiche et l'encaissement en tient
      compte

    Fenêtre de jet

    • Nouveau bouton « Envoyer dans le tchat » (Gardien des Rêves) : ouvre un
      dialogue listant les joueurs (tout le monde ou sélection), reprend la
      sélection courante du jet (caractéristique, compétence, difficulté) et
      poste @roll[...] dans le tchat — publiquement ou murmuré aux joueurs
      choisis
    • La fenêtre de jet ne plante plus quand la compétence demandée n'existe pas
      sur le personnage (« Sans compétence ») : les valeurs par défaut de la
      fenêtre (caractéristique et difficulté) restaient alors inaccessibles
    • Les trois boutons de la fenêtre de jet (Lancer, Lancer sans fermer,
      Envoyer dans le tchat) sont alignés sur une même ligne, pleine largeur

    Sommeil

    • Château Dormant (nouveau mode de repos) : le stress saisi est de nouveau
      pris en compte.
      La valeur n'était lue qu'à l'événement change du champ :
      elle était perdue selon la façon de valider (touche Entrée). La valeur saisie
      est désormais lue au moment de la validation, et la touche Entrée valide le
      Château Dormant
    • Le jet de moral de Château Dormant ajuste à nouveau le moral. La
      situation de moral enregistrée valait « '' » par défaut : le jet était fait
      mais aucun ajustement ne s'appliquait (elle est désormais interprétée comme
      « neutre » ; l'icône correspondante est pré-sélectionnée dans le dialogue)
    • Fermer le dialogue Château Dormant ne déclenche plus la récupération.
      La croix (ou Échap) annule l'opération : aucun stress ni aucune
      transformation n'est appliqué. Pendant une nuit, annuler fait simplement
      continuer le sommeil sans passer à Château Dormant
    • Le stress peut de nouveau être distribué à un personnage qui n'a pas de
      joueur propriétaire (personnage géré par le MJ seul)
    • Le stress saisi dans le dialogue de nuit (Château Dormant) est de nouveau
      compté : distribuerStress était réservé au Gardien des Rêves, mais le repos
      est lancé par le propriétaire du personnage, le stress était donc
      silencieusement ignoré. Le propriétaire peut désormais ajouter du stress ;
      l'expérience reste réservée au Gardien des Rêves

    Fiche de personnage

    • Quand la compétence a atteint son niveau d'archétype, l'input du niveau a un
      fond doré ; la coche qui décalait l'alignement de la ligne est supprimée
    • Le bouton « Transformer le stress » (icône lune) est retiré de l'onglet
      principal : la transformation reste appliquée automatiquement lors du
      passage au Château Dormant

    Interne

    • RdDItemArme.$corpsACorps : l'arme d'empoignade/pugilat calculée reçoit un
      _id de 16 caractères alphanumériques (dérivé du nom de la phase
      d'initiative). La clé de phase, trop courte, était rejetée par la validation
      des documents et remplacée par null
    • RdDEmpoignade : l'attaque d'empoignade est désormais conservée dans le
      message de défense sous la forme sauvegardée d'un jet complet
      (RollDialog.saveParts, champ attackerRoll) au lieu d'une reconstruction
      partielle (attaque, dmg), que la fenêtre de défense ne pouvait pas
      relancer. Les messages plus anciens restent relisibles
      (reconstruction de secours). La préparation du jet pour la fenêtre se fait
      sur une copie : le tchat ne conserve aucune référence aux documents
    • RdDItemArme.getMainAttaque, RollPartDefense.$extractParade et
      getArmeDisparate : robustesse lorsque la compétence de défense ou l'arme
      d'attaque n'est pas résolue (créatures, attaque sans arme) — une erreur de
      type remplaçait la défense calculée
    • distribuerStress : la garde « personnage joueur » (propriétaire + token
      lié) est remplacée par « personnage », pour que le flux de sommeil
      fonctionne sans joueur propriétaire ; creature/entité/vehicule restent
      exclus
    • Le template du dialogue Château Dormant n'embarque plus de <form> (imbriqué
      dans celui du DialogV2, il perturbait la soumission par Entrée)

    Tests automatisés

    • TC-11 : six nouveaux cas (TC-11-013 à TC-11-018) sur la défense
      d'empoignade — identifiant stable de l'arme calculée, liste esquive + parade
      empoignade, pré-sélection par la clé (parade puis esquive), clic sur le bouton
      « Parade Empoignade » du tchat, maintien de la sélection après un appel à la
      chance, et défense lancée depuis la carte d'empoignade jusqu'au passage de
      l'empoignade à 2 points (9/9)
    • Les demandes de défense et les boutons sont cherchés dans le tchat latéral :
      les messages affichés en notification n'ont pas de gestionnaire de clic (les
      clics des cas TC-11-016/017 tombaient sur la notification et restaient sans
      effet)
    • Les boutons du tchat sont re-cherchés à chaque essai : un rendu du tchat
      remplace le message, et le bouton déjà cliqué ne répond plus (échecs
      intermittents de TC-11-016/017)
    • Plan de test et test/README.md mis à jour (TC-11 : 18 cas écrits, 9
      assertions exécutées)
    • TC-13 : dix nouveaux cas sur le sommeil v2 — stress lu à la validation sans
      change, moral « '' » = « neutre », croix → annulation (aucun changement ni
      message), Entrée = valider, CD valide (moral ajusté, sommeil réinitialisé,
      stress ajouté puis transformé), stress d'un personnage sans joueur
      propriétaire, insomnie vérifiée (stress conservé, pas de transformation)
    • TC-09-070 : le bouton « Envoyer dans le tchat » du MJ existe, le texte
      @roll[Agilité/Compétence/-2] est correct et le message est murmuré au
      joueur choisi
    • Plan de test et test/README.md mis à jour (TC-13 : 17 assertions ; 388 cas
      au total)
    • Nouveaux cas couvrant les correctifs récents : /repas externe et
      /repas rations (+ alias /manger), application d'un enchantement (et
      masquage des boutons après usage), message du jet d'éthylisme, possessions
      (compteur signé et borné, possessions en cours sur la fiche d'entité,
      difficulté par défaut de la compétence), stress saisi dans le dialogue de
      nuit, et bouton « Lancer sans fermer »
    • Scripts TC-01 à TC-07 : résolution de la page de jeu fiabilisée (la première
      page about:blank était utilisée au lieu de la page du jeu)
    • TC-38 : assertion obsolète corrigée (DialogGererHerbes.HOOK_ITEM_TYPES est
      un tableau, pas null)
    • Plan de test et test/README.md réalignés sur les cas réellement exécutés
      par les scripts
    Downloads