v2.4.4 : affichage des bonus phys/mag clarifie (plus de faux double comptage)
fmtStatLine affichait a la fois le +X agrege ET (phy +X . mag +X) quand les deux saveurs etaient egales -> illusion d'un triple comptage. On n'affiche plus le detail phys/mag QUE lorsqu'ils different reellement, sinon un seul +X. degBonus reporte des deux cotes. Le combat etait deja juste (pickFlat choisit une seule saveur). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
+13
-9
@@ -405,18 +405,22 @@ function sumPotionMods(effects) {
|
||||
* (équipement), M = magique (potions, parchemins). */
|
||||
function fmtStatLine(base, eff, faces, flat = 0, extra = 0, split = null) {
|
||||
const diceDelta = eff - base;
|
||||
const jetBonus = (flat || 0) + (extra || 0);
|
||||
const f = v => `${v > 0 ? "+" : ""}${v}`;
|
||||
let main = `${eff}D${faces}`;
|
||||
if (jetBonus) main += jetBonus > 0 ? ` +${jetBonus}` : ` ${jetBonus}`;
|
||||
const hints = [];
|
||||
if (split && (split.phys || split.mag)) {
|
||||
const f = v => `${(v || 0) > 0 ? "+" : ""}${v || 0}`;
|
||||
hints.push(`phy ${f(split.phys)} · mag ${f(split.mag)}`);
|
||||
}
|
||||
if (diceDelta !== 0) {
|
||||
const sign = diceDelta > 0 ? "+" : "";
|
||||
hints.push(`${base}D${faces} ${sign}${diceDelta}`);
|
||||
// `extra` (degBonus) s'applique quel que soit le type d'attaque ; il s'ajoute
|
||||
// donc aux deux saveurs. On ne détaille « phy/mag » QUE si les deux diffèrent
|
||||
// réellement — sinon un seul « +X » suffit (un bonus identique des deux côtés
|
||||
// affiché en double laisse croire à tort à un cumul).
|
||||
if (split && split.phys !== split.mag) {
|
||||
// bonus fixe différent selon le type d'attaque → on détaille les deux
|
||||
hints.push(`phy ${f((split.phys || 0) + (extra || 0))} · mag ${f((split.mag || 0) + (extra || 0))}`);
|
||||
} else {
|
||||
// bonus identique quelle que soit la saveur → une seule valeur
|
||||
const jetBonus = (flat || 0) + (extra || 0);
|
||||
if (jetBonus) main += ` ${f(jetBonus)}`;
|
||||
}
|
||||
if (diceDelta !== 0) hints.push(`${base}D${faces} ${diceDelta > 0 ? "+" : ""}${diceDelta}`);
|
||||
if (hints.length) return `${main} <small class="stat-hint">(${hints.join(" · ")})</small>`;
|
||||
return main;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user