import { ITEM_TYPES } from "./item.js"; import { RdDCombatManager } from "./rdd-combat.js"; export const CATEGORIES_COMPETENCES_CREATURES = { "generale": { base: 0, label: "Générale" }, "naturelle": { base: 0, label: "Arme naturelle" }, "melee": { base: 0, label: "Mêlée" }, "parade": { base: 0, label: "Parade" }, "tir": { base: 0, label: "Tir" }, "lancer": { base: 0, label: "Lancer" }, "possession": { base: 0, label: "Possession" }, } /* -------------------------------------------- */ export class RdDItemCompetenceCreature extends Item { /* -------------------------------------------- */ static setRollDataCreature(rollData) { rollData.carac = { "carac_creature": { label: rollData.competence.name, value: rollData.competence.system.carac_value } } rollData.competence.system.defaut_carac = "carac_creature" rollData.selectedCarac = rollData.carac.carac_creature rollData.arme = RdDItemCompetenceCreature.armeCreature(rollData.competence); } /* -------------------------------------------- */ static armeCreature(item) { const categorieAttaque = RdDItemCompetenceCreature.getCategorieAttaque(item) if (categorieAttaque != undefined) { // cloner pour ne pas modifier la compétence return foundry.utils.mergeObject(item, { action: item.isCompetencePossession() ? 'possession' : 'attaque', system: { competence: item.name, cac: categorieAttaque == "naturelle" ? "naturelle" : "", niveau: item.system.niveau, initiative: RdDCombatManager.calculInitiative(item.system.niveau, item.system.carac_value), equipe: true, resistance: 100, dommagesReels: item.system.dommages, penetration: 0, force: 0, rapide: true, } }, { inplace: false, }); } return undefined; } /* -------------------------------------------- */ static isAttaque(item) { return RdDItemCompetenceCreature.getCategorieAttaque(item) != undefined } static getCategorieAttaque(item) { if (item.type == ITEM_TYPES.competencecreature) { switch (item.system.categorie) { case "melee": case "tir": case "lancer": case "naturelle": case "possession": return item.system.categorie } } return undefined } static isDommages(item) { if (item.type == ITEM_TYPES.competencecreature) { switch (item.system.categorie) { case "melee": case "tir": case "lancer": case "naturelle": return true } } return false } static isParade(item) { if (item.type == ITEM_TYPES.competencecreature) { return armeData.system.categorie_parade || armeData.system.isparade } return false } }