Gestion des significatives

This commit is contained in:
2025-10-21 01:37:54 +02:00
parent 7f4f942d50
commit 147e49f2cb
8 changed files with 26 additions and 15 deletions

View File

@@ -26,7 +26,7 @@ export class RollBasicParts {
static loadSurprise(who, forceRequise) {
if (who?.actor) {
foundry.utils.mergeObject(who,
StatusEffects.getActorEffetSurprise(who.actor, forceRequise),
StatusEffects.getActorEffetSurprise(who.actor),
{ overwrite: true, inPlace: true })
}
}

View File

@@ -5,6 +5,7 @@ import { PART_CARAC } from "./roll-part-carac.mjs"
import { PART_COMP } from "./roll-part-comp.mjs"
import { PART_DIFF } from "./roll-part-diff.mjs"
import { RollPartSelect } from "./roll-part-select.mjs"
import { PART_SIGN } from "./roll-part-sign.mjs"
import { ROLLDIALOG_SECTION } from "./roll-part.mjs"
export const PART_ATTAQUE = 'attaque'
@@ -111,7 +112,9 @@ export class RollPartAttaque extends RollPartSelect {
part.setDiff(rollData, { type: DIFF.ATTAQUE, value: current.initialDiff })
current.initialDiff = undefined
}
break
}
case PART_SIGN: return part.setArme(rollData, false, current.forceRequise)
}
}
return undefined

View File

@@ -101,7 +101,7 @@ export class RollPartDefense extends RollPartSelect {
case PART_CARAC: return part.filterCaracs(rollData, [current.carac])
case PART_COMP: return part.filterComps(rollData, [current.comp?.name])
case PART_DIFF: return part.setDiff(rollData, this.getDiffDefense(rollData))
case PART_SIGN: return part.setArmeDisparate(rollData, this.isArmeDisparate(rollData))
case PART_SIGN: return part.setArme(rollData, this.isArmeDisparate(rollData), current.forceRequise)
}
}
return undefined

View File

@@ -40,8 +40,8 @@ export class RollPartSign extends RollPart {
const isCombat = this.isCombat(rollData)
const current = this.getCurrent(rollData)
current.armeDisparate = isCombat && current.armeDisparate
current.surprise = actor.getSurprise(isCombat) // TODO: could be from rollData.active.surprise??
current.reasons = actor.getEffects(it => StatusEffects.niveauSurprise(it) > 0)
current.surprise = actor.getSurprise(isCombat, current.forceRequise ?? 0)
current.reasons = actor.getEffects(it => StatusEffects.niveauSurprise(it, isCombat) > 0, current.forceRequise ?? 0)
.map(it => { return { img: it.img, label: game.i18n.localize(it.name) } })
current.diviseur = 1
if (current.surprise == 'demi') {
@@ -102,7 +102,9 @@ export class RollPartSign extends RollPart {
})
}
setArmeDisparate(rollData, armeDisparate) {
this.getCurrent(rollData).armeDisparate = armeDisparate
setArme(rollData, armeDisparate, forceRequise) {
const current = this.getCurrent(rollData)
current.armeDisparate = armeDisparate
current.forceRequise = forceRequise
}
}