From d700fc7b6c198fbd3fbf610dc16c3ff9656715fe Mon Sep 17 00:00:00 2001 From: Vincent Vandemeulebrouck Date: Fri, 12 Feb 2021 13:05:09 +0100 Subject: [PATCH] =?UTF-8?q?Gestion=20des=20pr=C3=A9sents=20des=20cit=C3=A9?= =?UTF-8?q?s?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix present des cités passeur/messager * suppression des tokens de conquête --- module/rdd-tmr-dialog.js | 24 ++++++++++++++---------- module/tmr/conquete.js | 5 +++-- module/tmr/fermeture-cites.js | 5 +++-- 3 files changed, 20 insertions(+), 14 deletions(-) diff --git a/module/rdd-tmr-dialog.js b/module/rdd-tmr-dialog.js index af838ce3..2b09c6b6 100644 --- a/module/rdd-tmr-dialog.js +++ b/module/rdd-tmr-dialog.js @@ -321,7 +321,7 @@ export class RdDTMRDialog extends Dialog { RollDataAjustements.calcul(rencontreData, this.actor); - rencontreData.rolled = presentCite + rencontreData.rolled = rencontreData.presentCite ? this._rollPresentCite(rencontreData) : await RdDResolutionTable.roll(rencontreData.reve, RollDataAjustements.sum(rencontreData.ajustements)); @@ -419,19 +419,23 @@ export class RdDTMRDialog extends Dialog { } async _utiliserPresentCite(presentCite, typeRencontre, tmr, postRencontre) { - const rencontre = TMRRencontres.getRencontre(typeRencontre); + this.currentRencontre = TMRRencontres.getRencontre(typeRencontre); + await TMRRencontres.evaluerForceRencontre(this.currentRencontre); + await EffetsDraconiques.presentCites.ouvrirLePresent(this.actor, presentCite); + this.removeToken(tmr, presentCite); + + // simuler une rencontre let rencontreData = { actor: this.actor, alias: this.actor.name, reveDepart: this.actor.getReveActuel(), competence: this.actor.getBestDraconic(), - rencontre: rencontre, - tmr: tmr + rencontre: this.currentRencontre, + tmr: tmr, + presentCite: presentCite }; - await TMRRencontres.evaluerForceRencontre(rencontre); - await EffetsDraconiques.presentCites.ouvrirLePresent(this.actor, presentCite); - this.removeToken(tmr, presentCite); - await this._tentativeMaitrise(rencontreData, presentCite); + await this._tentativeMaitrise(rencontreData); + this.maximize(); postRencontre(); } @@ -554,7 +558,7 @@ export class RdDTMRDialog extends Dialog { await this._conquerir(tmr, { difficulte: -9, action: 'Conquérir la cité', - onConqueteReussie: r => EffetsDraconiques.fermetureCites.onConquete(r.actor, tmr.coord), + onConqueteReussie: r => EffetsDraconiques.fermetureCites.onConquete(r.actor, tmr, (casetmr) => this.removeToken(tmr, casetmr)), onConqueteEchec: r => this.close(), canClose: false }); @@ -572,7 +576,7 @@ export class RdDTMRDialog extends Dialog { await this._conquerir(tmr, { difficulte: -7, action: 'Conquérir', - onConqueteReussie: r => EffetsDraconiques.conquete.onConquete(r.actor, tmr.coord, (casetmr) => this.removeToken(tmr, casetmr)), + onConqueteReussie: r => EffetsDraconiques.conquete.onConquete(r.actor, tmr, (casetmr) => this.removeToken(tmr, casetmr)), onConqueteEchec: r => { }, canClose: false }); diff --git a/module/tmr/conquete.js b/module/tmr/conquete.js index fc3579b2..d4b3b6bf 100644 --- a/module/tmr/conquete.js +++ b/module/tmr/conquete.js @@ -31,11 +31,12 @@ export class Conquete extends Draconique { await this.createCaseTmr(actor, 'Conquête: ' + conquete.label, conquete, queue._id); } - async onConquete(actor, coord) { - let existants = actor.data.items.filter(it => this.isCase(it, coord)); + async onConquete(actor, tmr, onRemoveToken) { + let existants = actor.data.items.filter(it => this.isCase(it, tmr.coord)); for (let casetmr of existants) { await actor.deleteOwnedItem(casetmr._id); await actor.deleteOwnedItem(casetmr.data.sourceid); + onRemoveToken(tmr, casetmr); } } } diff --git a/module/tmr/fermeture-cites.js b/module/tmr/fermeture-cites.js index 84516a85..0a8c94b5 100644 --- a/module/tmr/fermeture-cites.js +++ b/module/tmr/fermeture-cites.js @@ -31,9 +31,10 @@ export class FermetureCites extends Draconique { } } - async onConquete(actor, coord) { - const citeFermee = actor.data.items.find(it => this.isCase(it, coord)); + async onConquete(actor, tmr, onRemoveToken) { + const citeFermee = actor.data.items.find(it => this.isCase(it, tmr.coord)); await actor.deleteOwnedItem(citeFermee._id); + onRemoveToken(tmr, citeFermee); } }