Roll V2 sur compétences&combat

Corrections associées
Maintenant, active en mode rollV2
This commit is contained in:
2025-10-03 22:34:07 +02:00
parent 52065fd6f6
commit 47c4478303
12 changed files with 118 additions and 70 deletions

View File

@@ -1,7 +1,8 @@
import { RdDBonus } from "../rdd-bonus.js"
import { ROLL_TYPE_ATTAQUE } from "./roll-constants.mjs"
import { DIFF, ROLL_TYPE_ATTAQUE } from "./roll-constants.mjs"
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 { ROLLDIALOG_SECTION } from "./roll-part.mjs"
@@ -22,7 +23,8 @@ export class RollPartAttaque extends RollPartSelect {
refs.attaques = attaques.map(it => RollPartAttaque.$extractAttaque(it, rollData.active.actor))
refs.tactiques = TACTIQUES
if (refs.attaques.length > 0) {
this.$selectAttaque(rollData)
const attaque = this.findAttaque(refs.attaques, this.getSaved(rollData))
this.$selectAttaque(rollData, attaque?.key)
}
}
@@ -32,19 +34,34 @@ export class RollPartAttaque extends RollPartSelect {
}
restore(rollData) {
const saved = this.getSaved(rollData)
super.restore(rollData)
this.getCurrent(rollData).dmg = this.getSaved(rollData).dmg
if (saved.dmg) {
this.getCurrent(rollData).dmg = this.getSaved(rollData).dmg
}
}
findAttaque(attaques, saved) {
return attaques.find(at => at.arme.id == saved?.arme?.id &&
at.comp.id == saved?.comp?.id
)
}
choices(refs) { return refs.attaques }
static $extractAttaque(attaque, actor) {
return foundry.utils.mergeObject({
key: `${attaque.action}::${attaque.label}`,
tactique: TACTIQUES[0]
},
attaque
)
// const extracted = foundry.utils.mergeObject({
// key: `${attaque.action}::${attaque.label}`,
// tactique: TACTIQUES[0]
// },
// attaque
// )
// return extracted
// extracted.initialDiff = attaque.comp?.system.default_diffLibre ?? 0
attaque.key = `${attaque.action}::${attaque.label}`
attaque.tactique = TACTIQUES[0]
attaque.initialDiff = attaque.comp?.system.default_diffLibre ?? 0
return attaque
}
prepareContext(rollData) {
@@ -101,6 +118,12 @@ export class RollPartAttaque extends RollPartSelect {
switch (part.code) {
case PART_CARAC: return part.filterCaracs(rollData, [current.carac.key])
case PART_COMP: return part.filterComps(rollData, [current.comp.name])
case PART_DIFF: {
if (current.initialDiff) {
part.setDiff(rollData, { type: DIFF.ATTAQUE, value: current.initialDiff })
current.initialDiff = undefined
}
}
}
}
return undefined