From 40c45c30de7d71fda3ceb2071898c61e12d5f7ea Mon Sep 17 00:00:00 2001 From: Vincent Vandemeulebrouck Date: Tue, 18 Apr 2023 22:16:18 +0200 Subject: [PATCH 1/5] =?UTF-8?q?Equiper=20des=20v=C3=AAtements,=20bijoux,?= =?UTF-8?q?=20...?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Permettre d'équiper les objets "de base" en plus des armes et armures --- module/actor.js | 2 +- module/item.js | 14 ++++++++++---- template.json | 2 +- templates/actor/inventaire-item.html | 2 +- 4 files changed, 13 insertions(+), 7 deletions(-) diff --git a/module/actor.js b/module/actor.js index b4c90d44..87bd3385 100644 --- a/module/actor.js +++ b/module/actor.js @@ -3163,7 +3163,7 @@ export class RdDActor extends RdDBaseActor { /* -------------------------------------------- */ async equiperObjet(itemID) { let item = this.getEmbeddedDocument('Item', itemID); - if (item && ['arme', 'armure'].includes(item.type)) { + if (item?.isEquipable()) { const isEquipe = !item.system.equipe; await this.updateEmbeddedDocuments('Item', [{ _id: item.id, "system.equipe": isEquipe }]); this.computeEncTotal(); // Mise à jour encombrement diff --git a/module/item.js b/module/item.js index 4fc78004..679dd9da 100644 --- a/module/item.js +++ b/module/item.js @@ -34,6 +34,7 @@ const typesObjetsConnaissance = ["meditation", "recettealchimique", "sort"] const typesObjetsEffet = ["possession", "poison", "maladie", "blessure"] const typesObjetsCompetence = ["competence", "competencecreature"] const typesObjetsTemporels = ["blessure", "poison", "maladie", "queue", "ombre", "souffle", "signedraconique", "rencontre"] +const typesObjetsEquipable = ['arme', 'armure', 'objet']; const typesEnvironnement = typesInventaireMateriel; const encBrin = 0.00005; // un brin = 1 décigramme = 1/10g = 1/10000kg = 1/20000 enc const encPepin = 0.0007; /* un pépin de gemme = 1/10 cm3 = 1/1000 l = 3.5/1000 kg = 7/2000 kg = 7/1000 enc @@ -81,6 +82,10 @@ export const defaultItemImg = { /* -------------------------------------------- */ export class RdDItem extends Item { + static get defaultIcon() { + return undefined; + } + static getDefaultImg(itemType) { return game.system.rdd.itemClasses[itemType]?.defaultIcon ?? defaultItemImg[itemType]; } @@ -139,10 +144,6 @@ export class RdDItem extends Item { super(docData, context); } - static get defaultIcon() { - return undefined; - } - getUniteQuantite() { switch (this.type) { case "monnaie": return "(Pièces)" @@ -158,6 +159,10 @@ export class RdDItem extends Item { return ''; } + isEquipable() { + return typesObjetsEquipable.includes(this.type) + } + isCompetencePersonnage() { return this.type == 'competence' } isCompetenceCreature() { return this.type == 'competencecreature' } isConteneur() { return this.type == 'conteneur'; } @@ -367,6 +372,7 @@ export class RdDItem extends Item { } this.system.actionPrincipale = this.getActionPrincipale({ warnIfNot: false }); } + this.equipable = this.isEquipable(); } prepareDataPotion() { diff --git a/template.json b/template.json index 785059c7..2c7bf2e6 100644 --- a/template.json +++ b/template.json @@ -692,7 +692,7 @@ "capacite": 0 }, "objet": { - "templates": ["description", "inventaire"] + "templates": ["description", "equipement", "inventaire"] }, "monnaie": { "templates": ["description", "inventaire"] diff --git a/templates/actor/inventaire-item.html b/templates/actor/inventaire-item.html index a658fb12..79ba1eaf 100644 --- a/templates/actor/inventaire-item.html +++ b/templates/actor/inventaire-item.html @@ -28,7 +28,7 @@ {{#if options.isOwner}} {{#unless item.estContenu}} - {{#if (or (eq item.type 'arme') (eq item.type 'armure') )}} + {{#if item.equipable}} {{#if item.system.equipe}}{{else}}{{/if}} {{/if}} {{/unless}} From 5580b6d59c9ad04d5e5656312119c559e1ecf5d5 Mon Sep 17 00:00:00 2001 From: Vincent Vandemeulebrouck Date: Tue, 18 Apr 2023 22:59:15 +0200 Subject: [PATCH 2/5] =?UTF-8?q?Debug:=20=C3=A0=20la=20recherche=20de=20l'I?= =?UTF-8?q?tem=20qui=20ne=20se=20vend=20pas?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- module/actor/base-actor.js | 8 ++++++-- module/dialog-item-achat.js | 3 +-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/module/actor/base-actor.js b/module/actor/base-actor.js index fde04a4f..1a19bede 100644 --- a/module/actor/base-actor.js +++ b/module/actor/base-actor.js @@ -244,12 +244,16 @@ export class RdDBaseActor extends Actor { }); return; } - console.log('achatVente', achat); const cout = Number(achat.prixTotal ?? 0); const vendeur = achat.vendeurId ? game.actors.get(achat.vendeurId) : undefined; const acheteur = achat.acheteurId ? game.actors.get(achat.acheteurId) : undefined; const quantite = (achat.choix.nombreLots ?? 1) * (achat.vente.tailleLot); - const itemVendu = vendeur?.getItem(achat.vente.item._id); + const itemVendu = vendeur?.getItem(achat.vente.item._id) ?? game.items.get(achat.vente.item._id) ?? achat.vente.item; + if (!itemVendu) { + ui.notifications.warn("Erreur sur achat: rien à acheter
Si possible, transmettez les logs de la console aux développeurs"); + console.log('Erreur sur achat: rien à acheter', achat); + return; + } if (!this.verifierQuantite(vendeur, itemVendu, quantite)) { ChatUtility.notifyUser(achat.userId, 'warn', `Le vendeur n'a pas assez de ${itemVendu.name} !`); return diff --git a/module/dialog-item-achat.js b/module/dialog-item-achat.js index e43ea5d8..25e591c0 100644 --- a/module/dialog-item-achat.js +++ b/module/dialog-item-achat.js @@ -18,7 +18,7 @@ export class DialogItemAchat extends Dialog { } return { - item: (json ? JSON.parse(json) : undefined), + item: JSON.parse(json), vendeur, acheteur, nbLots: parseInt(chatButton.attributes['data-quantiteNbLots']?.value), @@ -34,7 +34,6 @@ export class DialogItemAchat extends Dialog { const venteData = { item, actingUserId: game.user.id, - vendeurId: vendeur?.id, vendeur, acheteur, tailleLot, From d2d18918387d5c6a3597a9fbe5b435d1bfc9320c Mon Sep 17 00:00:00 2001 From: Vincent Vandemeulebrouck Date: Fri, 21 Apr 2023 22:23:40 +0200 Subject: [PATCH 3/5] cleanup itemTypes MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Utilisation de itemTypes plutôt que de méthode listItems ou de filtrer les items par type. Potentiellement, itemTypes peut être précalculé par Foundry C'est aussi un peu plus lisibles (conditions du filter moins longues, et le filtrage par type est mis en avant en premier) --- module/actor.js | 35 +++++++++++--------------------- module/actor/base-actor.js | 5 ++--- module/rdd-combat.js | 8 ++++---- module/rdd-empoignade.js | 17 ++++++++-------- module/sommeil/app-astrologie.js | 2 +- 5 files changed, 27 insertions(+), 40 deletions(-) diff --git a/module/actor.js b/module/actor.js index 87bd3385..ac06c38f 100644 --- a/module/actor.js +++ b/module/actor.js @@ -98,7 +98,7 @@ export class RdDActor extends RdDBaseActor { /* -------------------------------------------- */ async cleanupConteneurs() { - let updates = this.listItems('conteneur') + let updates = this.itemTypes['conteneur'] .filter(c => c.system.contenu.filter(id => this.getItem(id) == undefined).length > 0) .map(c => { return { _id: c._id, 'system.contenu': c.system.contenu.filter(id => this.getItem(id) != undefined) } }); if (updates.length > 0) { @@ -333,8 +333,7 @@ export class RdDActor extends RdDBaseActor { /* -------------------------------------------- */ hasArmeeMeleeEquipee() { // Return true si l'acteur possède au moins 1 arme de mêlée équipée - let melee = this.items.filter(it => it.type == "arme" && it.system.equipe && it.system.competence != "") - return (melee.length > 0) + return this.itemTypes['arme'].find(it => it.system.equipe && it.system.competence != "") } isEmpoignadeEnCours() { return this.items.find(it => it.type == "empoignade" && it.system.pointsemp > 0) @@ -1101,16 +1100,12 @@ export class RdDActor extends RdDBaseActor { /* -------------------------------------------- */ computeIsHautRevant() { if (this.isPersonnage()) { - this.system.attributs.hautrevant.value = this.hasItemNamed('tete', 'don de haut-reve') + this.system.attributs.hautrevant.value = this.itemTypes['tete'].find(it => Grammar.equalsInsensitive(it.name, 'don de haut-reve')) ? "Haut rêvant" : ""; } } - hasItemNamed(type, name) { - name = Grammar.toLowerCaseNoAccent(name); - return this.listItems(type).find(it => Grammar.toLowerCaseNoAccent(it.name) == name); - } /* -------------------------------------------- */ async computeMalusArmure() { @@ -1672,9 +1667,9 @@ export class RdDActor extends RdDBaseActor { await this.rollTache(tache.id); } } - async actionHerbe(item, onActionItem = async () => {}) { + async actionHerbe(item, onActionItem = async () => { }) { if (item.isHerbeAPotion()) { - return DialogFabriquerPotion.create(this, item, onActionItem); + return DialogFabriquerPotion.create(this, item, onActionItem); } return; } @@ -2085,7 +2080,7 @@ export class RdDActor extends RdDBaseActor { return; } // Duplication car les pts de reve sont modifiés dans le sort - let sorts = duplicate(this.$filterSortList(this.getSortList(), coord)); + let sorts = duplicate(this.$filterSortList(this.itemTypes['sort'], coord)); if (sorts.length == 0) { ui.notifications.info(`Aucun sort disponible en ${TMRUtility.getTMR(coord).label} !`); return; @@ -2365,7 +2360,7 @@ export class RdDActor extends RdDBaseActor { async getTacheBlessure(blesse, blessure) { const gravite = blessure?.system.gravite ?? 0; if (gravite > 0) { - const tache = this.listItems('tache').find(it => it.system.itemId == blessure.id) + const tache = this.itemTypes['tache'].find(it => it.system.itemId == blessure.id) ?? await RdDItemBlessure.createTacheSoinBlessure(this, gravite); await blessure?.updateTacheSoinBlessure(tache); return tache @@ -2668,7 +2663,7 @@ export class RdDActor extends RdDBaseActor { /* -------------------------------------------- */ _getSignesDraconiques(coord) { const type = TMRUtility.getTMRType(coord); - return this.listItems("signedraconique").filter(it => it.system.typesTMR.includes(type)); + return this.itemTypes["signedraconique"].filter(it => it.system.typesTMR.includes(type)); } /* -------------------------------------------- */ @@ -2875,8 +2870,7 @@ export class RdDActor extends RdDBaseActor { /* -------------------------------------------- */ async resetNombresAstraux() { - let toDelete = this.listItems('nombreastral'); - const deletions = toDelete.map(it => it._id); + const deletions = this.itemTypes['nombreastral'].map(it => it._id); await this.deleteEmbeddedDocuments("Item", deletions); } @@ -2900,7 +2894,7 @@ export class RdDActor extends RdDBaseActor { async supprimerAnciensNombresAstraux() { const calendrier = game.system.rdd.calendrier; if (calendrier) { - const toDelete = this.listItems('nombreastral') + const toDelete = this.itemTypes['nombreastral'] .filter(it => calendrier.isAfterIndexDate(it.system.jourindex)) .map(it => it._id); await this.deleteEmbeddedDocuments("Item", toDelete); @@ -2958,11 +2952,6 @@ export class RdDActor extends RdDBaseActor { return entry && entry.length > 0 ? carac[entry[0]] : undefined; } - /* -------------------------------------------- */ - getSortList() { - return this.listItems("sort"); - } - /* -------------------------------------------- */ countMonteeLaborieuse() { // Return +1 par queue/ombre/souffle Montée Laborieuse présente let countMonteeLaborieuse = EffetsDraconiques.countMonteeLaborieuse(this); @@ -3022,8 +3011,8 @@ export class RdDActor extends RdDBaseActor { mode: mode, fatigue: RdDUtility.calculFatigueHtml(fatigue, endurance), draconic: this.getDraconicList(), - sort: this.getSortList(), - signes: this.listItems("signedraconique"), + sort: this.itemTypes['sort'], + signes: this.itemTypes['signedraconique'], caracReve: this.system.carac.reve.value, pointsReve: this.getReveActuel(), isRapide: isRapide, diff --git a/module/actor/base-actor.js b/module/actor/base-actor.js index 1a19bede..92746eea 100644 --- a/module/actor/base-actor.js +++ b/module/actor/base-actor.js @@ -32,7 +32,7 @@ export class RdDBaseActor extends Actor { case "msg_refresh_nombre_astral": Hooks.callAll(APP_ASTROLOGIE_REFRESH); return; - } + } } static remoteActorCall(callData, userId = undefined) { @@ -109,7 +109,6 @@ export class RdDBaseActor extends Actor { isEntite() { return this.type == 'entite'; } isPersonnage() { return this.type == 'personnage'; } isVehicule() { return this.type == 'vehicule'; } - getItem(id, type = undefined) { const item = this.items.get(id); if (type == undefined || (item?.type == type)) { @@ -119,7 +118,7 @@ export class RdDBaseActor extends Actor { } listItems(type = undefined) { return (type ? this.itemTypes[type] : this.items); } - filterItems(filter, type = undefined) { return this.listItems(type)?.filter(filter) ?? []; } + filterItems(filter, type = undefined) { return type ? this.itemTypes[type]?.filter(filter) ?? [] : []; } findItemLike(idOrName, type) { return this.getItem(idOrName, type) ?? Misc.findFirstLike(idOrName, this.listItems(type), { description: Misc.typeName('Item', type) }); diff --git a/module/rdd-combat.js b/module/rdd-combat.js index 0851b208..a8b5bbfe 100644 --- a/module/rdd-combat.js +++ b/module/rdd-combat.js @@ -96,15 +96,15 @@ export class RdDCombatManager extends Combat { let compName = "Corps à corps" if (armeCombat) { if (armeCombat.system.competence != "") { - compName = armeCombat.system.competence + compName = armeCombat.system.competence } if (armeCombat.system.lancer != "") { - compName = armeCombat.system.lancer + compName = armeCombat.system.lancer } if (armeCombat.system.tir != "") { - compName = armeCombat.system.tir + compName = armeCombat.system.tir } - } + } const competence = RdDItemCompetence.findCompetence(combatant.actor.items, compName); if (competence && competence.system.defaut_carac) { const carac = combatant.actor.system.carac[competence.system.defaut_carac].value; diff --git a/module/rdd-empoignade.js b/module/rdd-empoignade.js index 605b6fee..2af4c949 100644 --- a/module/rdd-empoignade.js +++ b/module/rdd-empoignade.js @@ -17,20 +17,21 @@ export class RdDEmpoignade { /* -------------------------------------------- */ static getEmpoignadeById(actor, id) { - let emp = actor.items.find(emp => emp.type == 'empoignade' && emp.system.empoignadeid == id) + let emp = actor.itemTypes['empoignade'].find(it => it.system.empoignadeid == id) return emp && duplicate(emp) || undefined; } /* -------------------------------------------- */ static getEmpoignade(attacker, defender) { - let emp = attacker.items.find(emp => emp.type == 'empoignade' && emp.system.empoigneurid == attacker.id && emp.system.empoigneid == defender.id) + let emp = attacker.itemTypes['empoignade'].find(it => it.system.empoigneurid == attacker.id && it.system.empoigneid == defender.id) if (!emp) { - emp = attacker.items.find(emp => emp.type == 'empoignade' && emp.system.empoigneurid == defender.id && emp.system.empoigneid == attacker.id) + emp = attacker.itemTypes['empoignade'].find(it => it.system.empoigneurid == defender.id && it.system.empoigneid == attacker.id) } if (emp) { // TODO ? central storage ? + return duplicate(emp); } - return emp && duplicate(emp) || undefined; + return undefined; } /* -------------------------------------------- */ static getMalusTaille(emp, attacker, defender) { @@ -270,13 +271,11 @@ export class RdDEmpoignade { /* -------------------------------------------- */ static async deleteAllEmpoignades() { for (let actor of game.actors) { - let empList = actor.items.filter(it => it.type == "empoignade") - for (let emp of empList) { - await actor.deleteEmbeddedDocuments('Item', [emp.id]) - } + let empIds = actor.itemTypes["empoignade"].map(it => it.id) + await actor.deleteEmbeddedDocuments('Item', empIds) } } - + /* -------------------------------------------- */ static async deleteLinkedEmpoignade(actorId, empoignade) { let actorDeleteId = (actorId == empoignade.system.empoigneurid) ? empoignade.system.empoigneid : empoignade.system.empoigneurid diff --git a/module/sommeil/app-astrologie.js b/module/sommeil/app-astrologie.js index cbe8daa4..82915238 100644 --- a/module/sommeil/app-astrologie.js +++ b/module/sommeil/app-astrologie.js @@ -57,7 +57,7 @@ export class AppAstrologie extends Application { if (this.actor) { return { actor: this.actor, - nombres: this._organizeNombresAstraux(this.actor.listItems('nombreastral')), + nombres: this._organizeNombresAstraux(this.actor.itemTypes['nombreastral']), ajustements: CONFIG.RDD.difficultesLibres, etat: this.actor.getEtatGeneral(), astrologie: this.actor.getCompetence('Astrologie') From f5418493068de0f6aad9d28069798f3bc539fea4 Mon Sep 17 00:00:00 2001 From: Vincent Vandemeulebrouck Date: Fri, 21 Apr 2023 22:27:47 +0200 Subject: [PATCH 4/5] Centralisation du message empoignade MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Déplacement dans le module empoignade du message et de la vérification d'empoignade en cours. Le message est donc centralisé (possible de le modifier une fois pour toutes les utilisations) --- module/actor.js | 32 ++++++-------------------------- module/rdd-combat.js | 4 +--- module/rdd-empoignade.js | 15 +++++++++++++++ 3 files changed, 22 insertions(+), 29 deletions(-) diff --git a/module/actor.js b/module/actor.js index ac06c38f..abcfb45b 100644 --- a/module/actor.js +++ b/module/actor.js @@ -335,15 +335,10 @@ export class RdDActor extends RdDBaseActor { hasArmeeMeleeEquipee() { // Return true si l'acteur possède au moins 1 arme de mêlée équipée return this.itemTypes['arme'].find(it => it.system.equipe && it.system.competence != "") } - isEmpoignadeEnCours() { - return this.items.find(it => it.type == "empoignade" && it.system.pointsemp > 0) - } /* -------------------------------------------- */ async roll() { - if (this.isEmpoignadeEnCours()) { - ui.notifications.warn("Une empoignade est en cours ! Normalement, vous ne pouvez rien faire d'autre que continuer l'empoignade ou la rompre.") - } + RdDEmpoignade.checkEmpoignadeEnCours(this) const carac = mergeObject(duplicate(this.system.carac), { @@ -2071,10 +2066,7 @@ export class RdDActor extends RdDBaseActor { /* -------------------------------------------- */ async rollUnSort(coord) { - if (this.isEmpoignadeEnCours()) { - ui.notifications.warn("Une empoignade est en cours ! Normalement, vous ne pouvez rien faire d'autre que continuer l'empoignade ou la rompre.") - } - + RdDEmpoignade.checkEmpoignadeEnCours(this) if (EffetsDraconiques.isSortImpossible(this)) { ui.notifications.error("Une queue ou un souffle vous empèche de lancer de sort!"); return; @@ -2214,10 +2206,7 @@ export class RdDActor extends RdDBaseActor { /* -------------------------------------------- */ async rollCarac(caracName, jetResistance = undefined) { - if (this.isEmpoignadeEnCours()) { - ui.notifications.warn("Une empoignade est en cours ! Normalement, vous ne pouvez rien faire d'autre que continuer l'empoignade ou la rompre.") - } - + RdDEmpoignade.checkEmpoignadeEnCours(this) let selectedCarac = this.getCaracByName(caracName) await this._openRollDialog({ name: 'jet-' + caracName, @@ -2285,10 +2274,7 @@ export class RdDActor extends RdDBaseActor { /* -------------------------------------------- */ async rollCompetence(idOrName, options = { tryTarget: true }) { - if (this.isEmpoignadeEnCours()) { - ui.notifications.warn("Une empoignade est en cours ! Normalement, vous ne pouvez rien faire d'autre que continuer l'empoignade ou la rompre.") - } - + RdDEmpoignade.checkEmpoignadeEnCours(this) let rollData = { carac: this.system.carac, competence: this.getCompetence(idOrName) @@ -2369,10 +2355,7 @@ export class RdDActor extends RdDBaseActor { } async rollCaracCompetence(caracName, compName, diff, options = { title: "" }) { - if (this.isEmpoignadeEnCours()) { - ui.notifications.warn("Une empoignade est en cours ! Normalement, vous ne pouvez rien faire d'autre que continuer l'empoignade ou la rompre.") - } - + RdDEmpoignade.checkEmpoignadeEnCours(this) const competence = this.getCompetence(compName); await this._openRollDialog({ name: 'jet-competence', @@ -2393,10 +2376,7 @@ export class RdDActor extends RdDBaseActor { /* -------------------------------------------- */ async rollTache(id, options = {}) { - if (this.isEmpoignadeEnCours()) { - ui.notifications.warn("Une empoignade est en cours ! Normalement, vous ne pouvez rien faire d'autre que continuer l'empoignade ou la rompre.") - } - + RdDEmpoignade.checkEmpoignadeEnCours(this) const tacheData = this.getTache(id) const compData = this.getCompetence(tacheData.system.competence) compData.system.defaut_carac = tacheData.system.carac; // Patch ! diff --git a/module/rdd-combat.js b/module/rdd-combat.js index a8b5bbfe..b3beda45 100644 --- a/module/rdd-combat.js +++ b/module/rdd-combat.js @@ -756,9 +756,7 @@ export class RdDCombat { RdDEmpoignade.onAttaqueEmpoignade(this.attacker, this.defender) return; } - if ( this.attacker.isEmpoignadeEnCours() ) { - ui.notifications.warn("Une empoignade est en cours ! Normalement, vous ne pouvez rien faire d'autre que continuer l'empoignade ou la rompre.") - } + RdDEmpoignade.checkEmpoignadeEnCours(this.attacker) let rollData = this._prepareAttaque(competence, arme); console.log("RdDCombat.attaque >>>", rollData); diff --git a/module/rdd-empoignade.js b/module/rdd-empoignade.js index 2af4c949..e7e1dd8d 100644 --- a/module/rdd-empoignade.js +++ b/module/rdd-empoignade.js @@ -15,6 +15,21 @@ export class RdDEmpoignade { static init() { } + /* -------------------------------------------- */ + static checkEmpoignadeEnCours(actor) { + // TODO: autoriser la perception? la comédie/séduction? + if (RdDEmpoignade.isEmpoignadeEnCours(actor)) { + ui.notifications.warn("Une empoignade est en cours ! Normalement, vous ne pouvez rien faire d'autre que continuer l'empoignade ou la rompre.") + return true; + } + return false; + } + + /* -------------------------------------------- */ + static isEmpoignadeEnCours(actor) { + return actor.itemTypes['empoignade'].find(it => it.system.pointsemp > 0) + } + /* -------------------------------------------- */ static getEmpoignadeById(actor, id) { let emp = actor.itemTypes['empoignade'].find(it => it.system.empoignadeid == id) From cfbfad27bde0a5400a1fb0cf1a31d6349059bf9f Mon Sep 17 00:00:00 2001 From: Vincent Vandemeulebrouck Date: Fri, 21 Apr 2023 22:28:51 +0200 Subject: [PATCH 5/5] cleanup Empoignade --- module/actor-sheet.js | 2 +- module/rdd-empoignade.js | 14 +++++++------- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/module/actor-sheet.js b/module/actor-sheet.js index 66ff36a1..d19ef734 100644 --- a/module/actor-sheet.js +++ b/module/actor-sheet.js @@ -84,7 +84,7 @@ export class RdDActorSheet extends RdDBaseActorSheet { RdDItemArme.ajoutCorpsACorps(formData.combat, formData.competences, formData.system.carac); formData.esquives = this.actor.getCompetences("Esquive"); formData.combat = RdDCombatManager.listActionsArmes(formData.combat, formData.competences, formData.system.carac); - formData.empoignades = this.actor.getEmpoignades("Esquive"); + formData.empoignades = this.actor.getEmpoignades(); this.armesList = formData.combat; diff --git a/module/rdd-empoignade.js b/module/rdd-empoignade.js index e7e1dd8d..56094841 100644 --- a/module/rdd-empoignade.js +++ b/module/rdd-empoignade.js @@ -1,10 +1,9 @@ /* -------------------------------------------- */ -import { RdDCombat } from "./rdd-combat.js"; import { RdDResolutionTable } from "./rdd-resolution-table.js"; import { RdDRoll } from "./rdd-roll.js"; import { RdDItemCompetenceCreature } from "./item-competencecreature.js"; import { ChatUtility } from "./chat-utility.js"; -import { STATUSES, StatusEffects } from "./settings/status-effects.js"; +import { STATUSES } from "./settings/status-effects.js"; /* -------------------------------------------- */ @@ -268,16 +267,16 @@ export class RdDEmpoignade { console.log("Perte d'endurance :!!!", perteMode) let endValue = defender.system.sante.endurance.value if (perteMode == "end0") { - await defender.santeIncDec("endurance", -defender.system.sante.endurance.value); + await defender.santeIncDec("endurance", -endValue); } if (perteMode == "end1") { - await defender.santeIncDec("endurance", -(defender.system.sante.endurance.value - 1)); + await defender.santeIncDec("endurance", -(endValue - 1)); } if (perteMode == "endmoitie") { - await defender.santeIncDec("endurance", -Math.floor(defender.system.sante.endurance.value / 2)); + await defender.santeIncDec("endurance", -Math.floor(endValue / 2)); } if (perteMode == "endquart") { - await defender.santeIncDec("endurance", -(3 * Math.floor(defender.system.sante.endurance.value / 4))); + await defender.santeIncDec("endurance", -(3 * Math.floor(endValue / 4))); } let msg = await RdDResolutionTable.displayRollData(rollData, attacker, 'chat-empoignade-perte-endurance.html'); ChatUtility.setMessageData(msg, "empoignade-roll-data", rollData) @@ -304,7 +303,8 @@ export class RdDEmpoignade { /* -------------------------------------------- */ static async createEmpoignade(attacker, defender) { return await Item.create({ - name: "Empoignade en cours de " + attacker.name + ' sur ' + defender.name, type: 'empoignade', + name: "Empoignade en cours de " + attacker.name + ' sur ' + defender.name, + type: 'empoignade', img: "systems/foundryvtt-reve-de-dragon/icons/entites/possession2.webp", system: { description: "", empoignadeid: randomID(16), compteempoigne: 0, empoigneurid: attacker.id, empoigneid: defender.id, ptsemp: 0, empoigneurname: attacker.name, empoignename: defender.name } },