From 31d97439d421ba831f16aa05f210a70a713d255c Mon Sep 17 00:00:00 2001 From: Vincent Vandemeulebrouck Date: Wed, 30 Mar 2022 01:18:34 +0200 Subject: [PATCH] =?UTF-8?q?Fix=20d=C3=A9placement=20apr=C3=A8s=20r=C3=A9in?= =?UTF-8?q?sertion?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit On pouvait clicker sur les cases, jusqu'à tomber sur une case adjacente pour trouver son demi-rêve... --- module/rdd-tmr-dialog.js | 32 +++++++++++++++++++++----------- 1 file changed, 21 insertions(+), 11 deletions(-) diff --git a/module/rdd-tmr-dialog.js b/module/rdd-tmr-dialog.js index 3d62ddac..e8a043c4 100644 --- a/module/rdd-tmr-dialog.js +++ b/module/rdd-tmr-dialog.js @@ -62,7 +62,6 @@ export class RdDTMRDialog extends Dialog { this.pixiApp = new PIXI.Application({ width: 720, height: 860 }); this.pixiTMR = new PixiTMR(this, this.pixiApp); - this.cacheTMR = (game.user.isGM) ? false : actor.isTMRCache(); this.callbacksOnAnimate = []; if (!this.viewOnly) { @@ -73,6 +72,10 @@ export class RdDTMRDialog extends Dialog { this.pixiTMR.load((loader, resources) => this.createPixiSprites()); } + isDemiReveCache() { + return !game.user.isGM && this.actor.isTMRCache(); + } + /* -------------------------------------------- */ loadCasesSpeciales() { this.casesSpeciales = this.actor.data.items.filter(item => Draconique.isCaseTMR(item)); @@ -153,10 +156,7 @@ export class RdDTMRDialog extends Dialog { _updateDemiReve() { this.notifierResonanceSigneDraconique(this._getActorCoord()); - - if (!this.cacheTMR) { - this._setTokenPosition(this.demiReve); - } + this._setTokenPosition(this.demiReve); } _getActorCoord() { @@ -252,7 +252,7 @@ export class RdDTMRDialog extends Dialog { ptsreve.innerHTML = actorData.data.reve.reve.value; let tmrpos = document.getElementById("tmr-pos"); - if (this.cacheTMR) { + if (this.isDemiReveCache()) { tmrpos.innerHTML = '?? (' + TMRUtility.getTMRType(coord) + ')'; } else { tmrpos.innerHTML = coord + " (" + TMRUtility.getTMRLabel(coord) + ")"; @@ -542,7 +542,9 @@ export class RdDTMRDialog extends Dialog { if (rencontre) { return rencontre; } - let locTMR = (this.cacheTMR) ? Misc.upperFirst(tmr.type) + " ??" : tmr.label + " (" + tmr.coord + ")"; + let locTMR = (this.isDemiReveCache() + ? Misc.upperFirst(tmr.type) + " ??" + : tmr.label + " (" + tmr.coord + ")"); let myRoll = await RdDDice.rollTotal("1dt"); if (TMRUtility.isForceRencontre() || myRoll == 7) { @@ -872,6 +874,14 @@ export class RdDTMRDialog extends Dialog { /* -------------------------------------------- */ async _onClickTMRPos(clickOddq) { + if (this.isDemiReveCache()) { + ui.notifications.error(`Vous ne connaissez plus votre position dans les TMR. + Vous devez utiliser les boutons de direction pour vous déplacer. + Une fois que vous aurez retrouvé votre demi-rêve, demandez au gardien de vérifier et rendre les TMR visibles. + `); + return; + } + let currentOddq = TMRUtility.coordTMRToOddq(this._getActorCoord()); console.log("deplacerDemiReve >>>>", currentOddq, clickOddq); @@ -888,7 +898,7 @@ export class RdDTMRDialog extends Dialog { } else if (deplacementType == 'messager') { // Dans ce cas, ouverture du lancement de sort sur la case visée await this._messagerDemiReve(targetCoord); } else { - ui.notifications.error("Vous ne pouvez vous déplacer que sur des cases adjacentes à votre position ou valides dans le cas d'une rencontre"); + ui.notifications.error("Vous ne pouvez pas vous déplacer que sur des cases adjacentes à votre position ou valides dans le cas d'une rencontre"); console.log("STATUS :", this.rencontreState, this.currentRencontre); } this.checkQuitterTMR(); @@ -923,7 +933,6 @@ export class RdDTMRDialog extends Dialog { /* -------------------------------------------- */ externalRefresh(tmrData) { - this.cacheTMR = (game.user.isGM) ? false : this.actor.isTMRCache(); this.createPixiSprites(); this.forceDemiRevePositionView(); this.updateValuesDisplay(); @@ -1018,9 +1027,10 @@ export class RdDTMRDialog extends Dialog { /* -------------------------------------------- */ _setTokenPosition(token) { - if (!this.cacheTMR) { - this.pixiTMR.setPosition(token.sprite, TMRUtility.coordTMRToOddq(token.coordTMR())); + if (this.isDemiReveCache() && this.demiReve === token ) { + return; } + this.pixiTMR.setPosition(token.sprite, TMRUtility.coordTMRToOddq(token.coordTMR())); } /* -------------------------------------------- */