Jet V2 - Ajout des écailles
This commit is contained in:
@@ -46,6 +46,7 @@ import { OptionsAvancees, ROLL_DIALOG_V2_TEST } from "../settings/options-avance
|
||||
import { ActorImpacts } from "../technical/actor-impacts.mjs";
|
||||
import { RollPartEmpoignade } from "./roll-part-empoignade.mjs";
|
||||
import { RollPartEmpoignadeTaille } from "./roll-part-empoignade-taille.mjs";
|
||||
import { RollPartEcailles } from "./roll-part-ecailles.mjs";
|
||||
|
||||
|
||||
const { HandlebarsApplicationMixin, ApplicationV2 } = foundry.applications.api
|
||||
@@ -83,6 +84,7 @@ const ROLL_PARTS = [
|
||||
|
||||
new RollPartSign(),
|
||||
|
||||
new RollPartEcailles(),
|
||||
new RollPartEtat(),
|
||||
new RollPartConditions(),
|
||||
new RollPartEthylisme(),
|
||||
|
||||
53
module/roll/roll-part-ecailles.mjs
Normal file
53
module/roll/roll-part-ecailles.mjs
Normal file
@@ -0,0 +1,53 @@
|
||||
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) }
|
||||
}
|
||||
@@ -78,7 +78,7 @@ export class RollPart {
|
||||
* @returns une chaîne vide si rien ne doit être affiché
|
||||
*/
|
||||
title() { return '' }
|
||||
isRollType(rollData, type) { return rollData.type.current == type }
|
||||
isRollType(rollData, ...type) { return type.includes(rollData.type.current)}
|
||||
|
||||
isActive(rollData) { return this.isValid(rollData) && this.visible(rollData) }
|
||||
isValid(rollData) { return true }
|
||||
|
||||
Reference in New Issue
Block a user