From 8ab796400460f0e934b335fd3a4b9165958fe83c Mon Sep 17 00:00:00 2001 From: Vincent Vandemeulebrouck Date: Tue, 22 Mar 2022 23:36:46 +0100 Subject: [PATCH 1/3] =?UTF-8?q?Message=20sur=20les=20comp=C3=A9tences=20tr?= =?UTF-8?q?onc?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Amélioration: ne liste que les compétences inférieures --- module/actor.js | 10 +++++++--- module/item-competence.js | 4 ++-- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/module/actor.js b/module/actor.js index 71a82c8a..354bb2e4 100644 --- a/module/actor.js +++ b/module/actor.js @@ -964,11 +964,15 @@ export class RdDActor extends Actor { async updateCompetence(idOrName, compValue) { let competence = this.getCompetence(idOrName); if (competence) { - let troncList = RdDItemCompetence.isTronc(competence.name); let nouveauNiveau = compValue ?? RdDItemCompetence.getNiveauBase(Misc.data(competence).data.categorie); - if (troncList) { + const tronc = RdDItemCompetence.getListTronc(competence.name).filter(it => { + const comp = this.getCompetence(it); + const niveauTr = comp? Misc.data(comp).data.niveau : 0; + return niveauTr < 0 && niveauTr < nouveauNiveau; + }); + if (tronc.length > 0) { let message = "Vous avez modifié une compétence 'tronc'. Vérifiez que les compétences suivantes évoluent ensemble jusqu'au niveau 0 : "; - for (let troncName of troncList) { + for (let troncName of tronc) { message += "
" + troncName; } ChatMessage.create({ diff --git a/module/item-competence.js b/module/item-competence.js index 268e4116..5c7f3156 100644 --- a/module/item-competence.js +++ b/module/item-competence.js @@ -113,14 +113,14 @@ export class RdDItemCompetence extends Item { } /* -------------------------------------------- */ - static isTronc(compName) { + static getListTronc(compName) { for (let troncList of competenceTroncs) { for (let troncName of troncList) { if (troncName == compName) return troncList; } } - return false; + return []; } /* -------------------------------------------- */ From f41369a751b6cec521e92f665251c5207230088e Mon Sep 17 00:00:00 2001 From: Vincent Vandemeulebrouck Date: Tue, 29 Mar 2022 20:34:00 +0200 Subject: [PATCH 2/3] =?UTF-8?q?Fix:=20grave=20transform=C3=A9e=20en=20crit?= =?UTF-8?q?ique?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit La transformation de grave en critique ajoutait de l'endurance et de la vie --- module/actor.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/module/actor.js b/module/actor.js index 354bb2e4..aa5a01ac 100644 --- a/module/actor.js +++ b/module/actor.js @@ -3451,8 +3451,8 @@ export class RdDActor extends Actor { else { encaissement.critiques += count; encaissement.graves -= count; - encaissement.endurance = -endActuelle; - encaissement.vie = -4; + encaissement.endurance = endActuelle; + encaissement.vie = 4; break; } } From 31d97439d421ba831f16aa05f210a70a713d255c Mon Sep 17 00:00:00 2001 From: Vincent Vandemeulebrouck Date: Wed, 30 Mar 2022 01:18:34 +0200 Subject: [PATCH 3/3] =?UTF-8?q?Fix=20d=C3=A9placement=20apr=C3=A8s=20r?= =?UTF-8?q?=C3=A9insertion?= 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())); } /* -------------------------------------------- */