From 7db9834b9a1672f0149500408ffabf53583702e4 Mon Sep 17 00:00:00 2001 From: Vincent Vandemeulebrouck Date: Tue, 19 Jan 2021 23:39:35 +0100 Subject: [PATCH] =?UTF-8?q?Fix=20double=20effet=20cr=C3=A9atures?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- module/actor-creature-sheet.js | 124 ++++++--------------------- module/actor-entite-sheet.js | 4 +- module/actor-sheet.js | 3 +- module/actor.js | 20 ++--- templates/actor-creature-sheet.html | 2 +- templates/actor-entite-sheet.html | 2 +- templates/actor-humanoide-sheet.html | 2 +- templates/actor-sheet.html | 2 +- 8 files changed, 38 insertions(+), 121 deletions(-) diff --git a/module/actor-creature-sheet.js b/module/actor-creature-sheet.js index 823c6495..b9a820d7 100644 --- a/module/actor-creature-sheet.js +++ b/module/actor-creature-sheet.js @@ -8,18 +8,18 @@ import { HtmlUtility } from "./html-utility.js"; import { RdDUtility } from "./rdd-utility.js"; import { RdDActorSheet } from "./actor-sheet.js"; -/* -------------------------------------------- */ +/* -------------------------------------------- */ export class RdDActorCreatureSheet extends RdDActorSheet { /** @override */ - static get defaultOptions() { - return mergeObject(super.defaultOptions, { - classes: ["rdd", "sheet", "actor"], - template: "systems/foundryvtt-reve-de-dragon/templates/actor-creature-sheet.html", + static get defaultOptions() { + return mergeObject(super.defaultOptions, { + classes: ["rdd", "sheet", "actor"], + template: "systems/foundryvtt-reve-de-dragon/templates/actor-creature-sheet.html", width: 640, height: 720, - tabs: [{navSelector: ".sheet-tabs", contentSelector: ".sheet-body", initial: "carac"}], - dragDrop: [{dragSelector: ".item-list .item", dropSelector: null}] + tabs: [{ navSelector: ".sheet-tabs", contentSelector: ".sheet-body", initial: "carac" }], + dragDrop: [{ dragSelector: ".item-list .item", dropSelector: null }] }); } @@ -41,30 +41,30 @@ export class RdDActorCreatureSheet extends RdDActorSheet { // Compute current carac sum let sum = 0; - Object.values(data.data.carac).forEach(carac => { if (!carac.derivee) { sum += parseInt(carac.value) } } ); + Object.values(data.data.carac).forEach(carac => { if (!carac.derivee) { sum += parseInt(carac.value) } }); data.data.caracSum = sum; - + data.data.carac.taille.isTaille = true; // To avoid button link; data.data.blessures.resume = this.actor.computeResumeBlessure(data.data.blessures); data.data.isGM = game.user.isGM; data.data.competencecreature = data.itemsByType["competencecreature"]; - + this.actor.computeEncombrementTotalEtMalusArmure(); - RdDUtility.filterItemsPerTypeForSheet(data ); - RdDUtility.buildArbreDeConteneur( this, data ); + RdDUtility.filterItemsPerTypeForSheet(data); + RdDUtility.buildArbreDeConteneur(this, data); data.data.encTotal = this.actor.encTotal; data.data.isGM = game.user.isGM; - console.log("Creature : ", this.objetVersConteneur , data); + console.log("Creature : ", this.objetVersConteneur, data); return data; } /* -------------------------------------------- */ /** @override */ - activateListeners(html) { + activateListeners(html) { super.activateListeners(html); HtmlUtility._showControlWhen($(".gm-only"), game.user.isGM); @@ -72,101 +72,25 @@ export class RdDActorCreatureSheet extends RdDActorSheet { // Everything below here is only needed if the sheet is editable if (!this.options.editable) return; - // Update Inventory Item - html.find('.item-edit').click(ev => { - const li = $(ev.currentTarget).parents(".item"); - const item = this.actor.getOwnedItem(li.data("itemId")); - item.sheet.render(true); - }); - - // Delete Inventory Item - html.find('.item-delete').click(ev => { - const li = $(ev.currentTarget).parents(".item"); - this.actor.deleteOwnedItem(li.data("itemId")); - li.slideUp(200, () => this.render(false)); - }); - - // Blessure control - html.find('.blessure-control').click(ev => { - const li = $(ev.currentTarget).parents(".item"); - let btype = li.data("blessure-type"); - let index = li.data('blessure-index'); - let active = $(ev.currentTarget).data('blessure-active'); - //console.log(btype, index, active); - this.actor.manageBlessureFromSheet(btype, index, active).then( this.render(true) ); - }); - - // Blessure data - html.find('.blessures-soins').change(ev => { - const li = $(ev.currentTarget).parents(".item"); - let btype = li.data('blessure-type'); - let index = li.data('blessure-index'); - let psoins = li.find('input[name=premiers_soins]').val(); - let pcomplets = li.find('input[name=soins_complets]').val(); - let jours = li.find('input[name=jours]').val(); - let loc = li.find('input[name=localisation]').val(); - //console.log(btype, index, psoins, pcomplets, jours, loc); - this.actor.setDataBlessureFromSheet(btype, index, psoins, pcomplets, jours, loc).then( this.render(true) ); - }); - - // Roll Carac - html.find('.carac-label a').click((event) => { - let caracName = event.currentTarget.attributes.name.value; - this.actor.rollCarac( caracName.toLowerCase() ); - }); - // On competence change html.find('.creature-carac').change((event) => { - let compName = event.currentTarget.attributes.compname.value; - this.actor.updateCreatureCompetence( compName, "carac_value", parseInt(event.target.value) ); - } ); + let compName = event.currentTarget.attributes.compname.value; + this.actor.updateCreatureCompetence(compName, "carac_value", parseInt(event.target.value)); + }); html.find('.creature-niveau').change((event) => { - let compName = event.currentTarget.attributes.compname.value; - this.actor.updateCreatureCompetence( compName, "niveau", parseInt(event.target.value) ); - } ); - html.find('.creature-dommages').change((event) => { - let compName = event.currentTarget.attributes.compname.value; - this.actor.updateCreatureCompetence( compName, "dommages", parseInt(event.target.value) ); - } ); - - // Roll Skill - html.find('.competence-label a').click((event) => { - let compName = event.currentTarget.text; - this.actor.rollCompetenceCreature( compName ); + let compName = event.currentTarget.attributes.compname.value; + this.actor.updateCreatureCompetence(compName, "niveau", parseInt(event.target.value)); }); - - html.find('#vie-plus').click((event) => { - this.actor.santeIncDec("vie", 1); - this.render(true); - }); - html.find('#vie-moins').click((event) => { - this.actor.santeIncDec("vie", -1); - this.render(true); - }); - html.find('#endurance-plus').click((event) => { - this.actor.santeIncDec("endurance", 1); - this.render(true); - }); - html.find('#endurance-moins').click((event) => { - this.actor.santeIncDec("endurance", -1); - this.render(true); - }); - - html.find('#encaisser-direct').click(ev => { - this.actor.encaisser(); - }); - - html.find('#remise-a-neuf').click(ev => { - if (game.user.isGM) { - this.actor.remiseANeuf(); - } + html.find('.creature-dommages').change((event) => { + let compName = event.currentTarget.attributes.compname.value; + this.actor.updateCreatureCompetence(compName, "dommages", parseInt(event.target.value)); }); } - + /* -------------------------------------------- */ /** @override */ - setPosition(options={}) { + setPosition(options = {}) { const position = super.setPosition(options); const sheetBody = this.element.find(".sheet-body"); const bodyHeight = position.height - 192; diff --git a/module/actor-entite-sheet.js b/module/actor-entite-sheet.js index ea5a1e23..8e9f3c93 100644 --- a/module/actor-entite-sheet.js +++ b/module/actor-entite-sheet.js @@ -96,7 +96,7 @@ export class RdDActorEntiteSheet extends ActorSheet { // Roll Skill html.find('.competence-label a').click((event) => { let compName = event.currentTarget.text; - this.actor.rollCompetenceCreature( compName ); + this.actor.rollCompetence( compName ); }); html.find('#endurance-plus').click((event) => { @@ -112,7 +112,7 @@ export class RdDActorEntiteSheet extends ActorSheet { this.actor.encaisser(); }); - html.find('#remise-a-neuf').click(ev => { + html.find('.remise-a-neuf').click(ev => { if (game.user.isGM) { this.actor.remiseANeuf(); } diff --git a/module/actor-sheet.js b/module/actor-sheet.js index 293f4f47..33e4f2c3 100644 --- a/module/actor-sheet.js +++ b/module/actor-sheet.js @@ -207,9 +207,10 @@ export class RdDActorSheet extends ActorSheet { this.actor.encaisser(); }); - html.find('#remise-a-neuf').click(ev => { + html.find('.remise-a-neuf').click(ev => { if (game.user.isGM) { this.actor.remiseANeuf(); + ev.preventDefault(); } }); html.find('#creer-tache').click(ev => { diff --git a/module/actor.js b/module/actor.js index 5dff7740..1e89f187 100644 --- a/module/actor.js +++ b/module/actor.js @@ -1753,8 +1753,13 @@ export class RdDActor extends Actor { /* -------------------------------------------- */ async rollCompetence(name) { let rollData = { competence: this.getCompetence(name) } - + if (rollData.competence.type == 'competencecreature') { + if (rollData.competence.data.iscombat) { + const arme = RdDItemCompetenceCreature.toArme(competence); + RdDCombat.createUsingTarget(this).attaque(competence, arme); + return; + } // Fake competence pour créature RdDItemCompetenceCreature.setRollDataCreature(rollData); } @@ -2125,19 +2130,6 @@ export class RdDActor extends Actor { this.currentTMR.render(true); } - - /* -------------------------------------------- */ - async rollCompetenceCreature(compName) { - const competence = this.getCompetence(compName); - if (competence.type == 'competencecreature' && competence.data.iscombat) { - const arme = RdDItemCompetenceCreature.toArme(competence); - RdDCombat.createUsingTarget(this).attaque(competence, arme); - } - else { - this.rollCompetence(competence.name); - } - } - /* -------------------------------------------- */ rollArme(compName, armeName = undefined) { let arme = armeName ? this.data.items.find(item => item.name == armeName && RdDItemArme.isArme(item)) : undefined; diff --git a/templates/actor-creature-sheet.html b/templates/actor-creature-sheet.html index 12e5a346..1901d9eb 100644 --- a/templates/actor-creature-sheet.html +++ b/templates/actor-creature-sheet.html @@ -10,7 +10,7 @@
Encaisser des dommages - Remise à neuf + Remise à neuf
diff --git a/templates/actor-entite-sheet.html b/templates/actor-entite-sheet.html index 16bc64f3..1f03d5cd 100644 --- a/templates/actor-entite-sheet.html +++ b/templates/actor-entite-sheet.html @@ -10,7 +10,7 @@
Encaisser des dommages - Remise à neuf + Remise à neuf
diff --git a/templates/actor-humanoide-sheet.html b/templates/actor-humanoide-sheet.html index eb441bc3..39126bc7 100644 --- a/templates/actor-humanoide-sheet.html +++ b/templates/actor-humanoide-sheet.html @@ -10,7 +10,7 @@
Encaisser des dommages - Remise à neuf + Remise à neuf
diff --git a/templates/actor-sheet.html b/templates/actor-sheet.html index 5c6c1e6d..c545c781 100644 --- a/templates/actor-sheet.html +++ b/templates/actor-sheet.html @@ -57,7 +57,7 @@
Encaisser des dommages - Remise à neuf + Remise à neuf Dormir une heure Chateau Dormant Montée dans les Terres Médianes !