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)