Jet V2 - Ajout des écailles

This commit is contained in:
2025-11-12 23:09:10 +01:00
parent 22b9e11021
commit 659ddbd0a4
7 changed files with 61 additions and 1 deletions

View File

@@ -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(),

View 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) }
}

View File

@@ -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 }