Utilise une regex pour détecter les formules invalides avant
d'appeler super.prepareDerivedData(). Fallback sur try-catch
qui vide les rolls en dernier recours.
Les anciens messages d'initiative stockaient des formules comme
'3 de Bâton (3)' qui cassent Roll.parse(). Le override de
prepareDerivedData dans HamalronChatMessage valide chaque formule
via Roll.parse() et remplace par '1d6' si invalide.
- Trailing comma dans fr.json qui cassait le parsing JSON (critique)
- RANG_MAGICIEN utilisait val.name au lieu de val.label
- Bouton tirage MJ accessible aux non-GM (ajout guard game.user.isGM)
- style='flex:1' et style='display:none' externalisés dans roll.less
1. Tirage MJ dans le dialogue de compétence :
- Bouton tirer une carte dans la section difficulté
- Pioche dans le deck, affiche la carte tirée
- Calcule la difficulté sous tension
2. Drag & drop vers barre de raccourcis :
- Acteurs → ouvre la feuille
- Compétences → lance le jet de compétence
- Sorts → ouvre le dialogue de lancement
- Armes → lance le jet d'arme
3. Blessures incapacitantes (règle p.159) :
- Champs blessureIncapacitante / malusBlessure
- Dialogue proposant la blessure quand Épée diminue
- Malus -2 appliqué aux jets de compétence
- Bannière dans la feuille (mode jeu)
- Bouton guérison