54 lines
1.4 KiB
JavaScript
54 lines
1.4 KiB
JavaScript
import { RDD_CONFIG } from "../constants.js"
|
|
import { ROLL_TYPE_ATTAQUE, ROLL_TYPE_DEFENSE } from "./roll-constants.mjs"
|
|
import { PART_ATTAQUE } from "./roll-part-attaque.mjs"
|
|
import { RollPartCheckbox } from "./roll-part-checkbox.mjs"
|
|
import { PART_DEFENSE } from "./roll-part-defense.mjs"
|
|
|
|
const ECAILLES = "ecailles"
|
|
|
|
export class RollPartEcailles extends RollPartCheckbox {
|
|
|
|
get code() { return ECAILLES }
|
|
|
|
isValid(rollData) {
|
|
return this.isRollType(rollData, ROLL_TYPE_ATTAQUE, ROLL_TYPE_DEFENSE)
|
|
}
|
|
|
|
visible(rollData) {
|
|
return this.getEcailles(rollData) != 0
|
|
|
|
}
|
|
|
|
getEcailles(rollData) {
|
|
const arme = this.getArme(rollData)
|
|
return arme?.system.magique ? arme?.system.ecaille_efficacite : 0
|
|
}
|
|
|
|
getArme(rollData) {
|
|
return this.isRollType(rollData, ROLL_TYPE_ATTAQUE)
|
|
? rollData.current[PART_ATTAQUE]?.arme
|
|
: this.isRollType(rollData, ROLL_TYPE_DEFENSE)
|
|
? rollData.current[PART_DEFENSE]?.arme
|
|
: undefined
|
|
}
|
|
|
|
prepareContext(rollData) {
|
|
this.loadRefs(rollData)
|
|
super.prepareContext(rollData)
|
|
}
|
|
|
|
getCheckboxIcon(rollData) {
|
|
return this.getEcailles(rollData) > 0
|
|
? `<img src="${RDD_CONFIG.icons.magique}">`
|
|
: `<img src="${RDD_CONFIG.icons.armebrisee}">`
|
|
}
|
|
|
|
getCheckboxLabel(rollData) {
|
|
return this.getEcailles(rollData) > 0
|
|
? "Efficacité"
|
|
: "Défauts"
|
|
}
|
|
|
|
getCheckboxValue(rollData) { return this.getEcailles(rollData) }
|
|
}
|