From f5418493068de0f6aad9d28069798f3bc539fea4 Mon Sep 17 00:00:00 2001 From: Vincent Vandemeulebrouck Date: Fri, 21 Apr 2023 22:27:47 +0200 Subject: [PATCH] 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)