fix(combat): re-render tracker après suppression + initiative par Réaction + lisibilité + malus PNJ
Release Creation / build (release) Failing after 1m41s

- fight.mjs : _onDelete appelle super._onDelete() → le tracker se vide immédiatement après « Terminer » (plus de F5)
- fight.mjs : _getInitiativeFormula type-dépendante — PNJ/Créature roulent leur pool de Réaction (computed.reaction + reactionBonus) au lieu de 0D → classement par Réaction correct
- dialogs.less : total des dés (.total-value) en blanc au lieu du vert sombre (illisible sur fond foncé)
- npc-roll-dialog : champ « Malus temporaires » + logique pool (dés malus dans le dialogue PNJ/Créature)
This commit is contained in:
2026-08-07 21:04:24 +02:00
parent 9f88a66b72
commit c7e6660d9d
4 changed files with 37 additions and 12 deletions
+22 -8
View File
@@ -210,14 +210,16 @@ export class VermineCombat extends Combat {
}
/************************************************************************************/
_onDelete() {
/*let combatants = this.combatants.contents
for (let c of combatants) {
let actor = game.actors.get(c.actorId)
actor.clearInitiative()
actor.displayRecuperation()
}
super._onDelete()*/
/**
* Nettoyage lors de la suppression du combat (bouton « Terminer » / suppression).
* Doit appeler le handler de base : c'est lui qui re-rend le CombatTracker
* (`ui.combat.render({combat: null})`) — sans cela le tracker reste figé sur
* l'ancien ordre de tour jusqu'au rechargement de la page (F5).
* @param {object} options
* @param {string} userId
*/
_onDelete(options, userId) {
super._onDelete(options, userId);
}
}
@@ -376,6 +378,18 @@ export class VermineCombatant extends Combatant {
}
}
_getInitiativeFormula() {
// Personnage : jet de Réaction (Réflexes + Vigilance) contre la
// Difficulté du statut de combat — les Réussites = valeur de Réaction.
// PNJ et Créature : n'ont pas de caractéristiques/compétences — ils
// roulent leur pool de Réaction (computed.reaction) contre la même
// Difficulté, majoré de leur bonus de Réaction.
const actor = this.actor
if ( actor?.type === 'npc' || actor?.type === 'creature' ) {
const reaction = parseInt(actor.system?.computed?.reaction, 10) || 0
const difficulty = parseInt(actor.system?.combatStatus?.difficulty, 10) || 7
const bonus = parseInt(actor.system?.computed?.reactionBonus, 10) || 0
return `${reaction}d10cs>=${difficulty}+${bonus}`
}
return String(CONFIG.Combat.initiative.formula || game.system.initiative)
}
}