41 lines
1.4 KiB
JavaScript
41 lines
1.4 KiB
JavaScript
import { RDD_CONFIG } from "../constants.js"
|
|
import { ATTAQUE_TYPE_MELEE } from "../item/arme.js"
|
|
import { RdDEmpoignade } from "../rdd-empoignade.js"
|
|
import { COMBAT_ROLL_TYPES } from "./roll-constants.mjs"
|
|
import { PART_ATTAQUE } from "./roll-part-attaque.mjs"
|
|
import { RollPartCheckbox } from "./roll-part-checkbox.mjs"
|
|
|
|
const EMPOIGNADE_TAILLE = "empoignade-taille"
|
|
|
|
export class RollPartEmpoignadeTaille extends RollPartCheckbox {
|
|
|
|
get code() { return EMPOIGNADE_TAILLE }
|
|
|
|
isValid(rollData) {
|
|
return RdDEmpoignade.isCombatantEmpoignade(rollData.ids.actorId, rollData.ids.actorTokenId)
|
|
}
|
|
|
|
visible(rollData) {
|
|
return COMBAT_ROLL_TYPES.includes(rollData.type.current) &&
|
|
RdDEmpoignade.isEmpoignadeEnCours(rollData.active.actor) &&
|
|
this.getTailleDiff(rollData) != 0
|
|
}
|
|
|
|
getTailleDiff(rollData) {
|
|
const taille = rollData.active.actor.getTaille()
|
|
const tailleOpponent = rollData.opponent.actor.getTaille()
|
|
const diff = taille - tailleOpponent
|
|
const diffTailleAbs = Math.max(0, Math.abs(diff) - 1)
|
|
const signDiff = Math.sign(diff)
|
|
return signDiff * diffTailleAbs
|
|
}
|
|
|
|
getCheckboxIcon(rollData) { return `<img src="${RDD_CONFIG.icons.empoignade}">` }
|
|
getCheckboxLabel(rollData) {
|
|
return `Taille ${rollData.active.actor.getTaille()} vs ${rollData.opponent.actor.getTaille()} `
|
|
}
|
|
getCheckboxValue(rollData) {
|
|
return this.getTailleDiff(rollData)
|
|
}
|
|
}
|