Merge branch 'v1.5-fix-mineurs' into 'v1.5'

Fixes mineurs

See merge request LeRatierBretonnien/foundryvtt-reve-de-dragon!317
This commit is contained in:
Leratier Bretonnien 2022-03-30 11:29:09 +00:00
commit 9492edd29a
3 changed files with 32 additions and 18 deletions

View File

@ -964,11 +964,15 @@ export class RdDActor extends Actor {
async updateCompetence(idOrName, compValue) { async updateCompetence(idOrName, compValue) {
let competence = this.getCompetence(idOrName); let competence = this.getCompetence(idOrName);
if (competence) { if (competence) {
let troncList = RdDItemCompetence.isTronc(competence.name);
let nouveauNiveau = compValue ?? RdDItemCompetence.getNiveauBase(Misc.data(competence).data.categorie); 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 : "; 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 += "<br>" + troncName; message += "<br>" + troncName;
} }
ChatMessage.create({ ChatMessage.create({
@ -3447,8 +3451,8 @@ export class RdDActor extends Actor {
else { else {
encaissement.critiques += count; encaissement.critiques += count;
encaissement.graves -= count; encaissement.graves -= count;
encaissement.endurance = -endActuelle; encaissement.endurance = endActuelle;
encaissement.vie = -4; encaissement.vie = 4;
break; break;
} }
} }

View File

@ -113,14 +113,14 @@ export class RdDItemCompetence extends Item {
} }
/* -------------------------------------------- */ /* -------------------------------------------- */
static isTronc(compName) { static getListTronc(compName) {
for (let troncList of competenceTroncs) { for (let troncList of competenceTroncs) {
for (let troncName of troncList) { for (let troncName of troncList) {
if (troncName == compName) if (troncName == compName)
return troncList; return troncList;
} }
} }
return false; return [];
} }
/* -------------------------------------------- */ /* -------------------------------------------- */

View File

@ -62,7 +62,6 @@ export class RdDTMRDialog extends Dialog {
this.pixiApp = new PIXI.Application({ width: 720, height: 860 }); this.pixiApp = new PIXI.Application({ width: 720, height: 860 });
this.pixiTMR = new PixiTMR(this, this.pixiApp); this.pixiTMR = new PixiTMR(this, this.pixiApp);
this.cacheTMR = (game.user.isGM) ? false : actor.isTMRCache();
this.callbacksOnAnimate = []; this.callbacksOnAnimate = [];
if (!this.viewOnly) { if (!this.viewOnly) {
@ -73,6 +72,10 @@ export class RdDTMRDialog extends Dialog {
this.pixiTMR.load((loader, resources) => this.createPixiSprites()); this.pixiTMR.load((loader, resources) => this.createPixiSprites());
} }
isDemiReveCache() {
return !game.user.isGM && this.actor.isTMRCache();
}
/* -------------------------------------------- */ /* -------------------------------------------- */
loadCasesSpeciales() { loadCasesSpeciales() {
this.casesSpeciales = this.actor.data.items.filter(item => Draconique.isCaseTMR(item)); this.casesSpeciales = this.actor.data.items.filter(item => Draconique.isCaseTMR(item));
@ -153,10 +156,7 @@ export class RdDTMRDialog extends Dialog {
_updateDemiReve() { _updateDemiReve() {
this.notifierResonanceSigneDraconique(this._getActorCoord()); this.notifierResonanceSigneDraconique(this._getActorCoord());
this._setTokenPosition(this.demiReve);
if (!this.cacheTMR) {
this._setTokenPosition(this.demiReve);
}
} }
_getActorCoord() { _getActorCoord() {
@ -252,7 +252,7 @@ export class RdDTMRDialog extends Dialog {
ptsreve.innerHTML = actorData.data.reve.reve.value; ptsreve.innerHTML = actorData.data.reve.reve.value;
let tmrpos = document.getElementById("tmr-pos"); let tmrpos = document.getElementById("tmr-pos");
if (this.cacheTMR) { if (this.isDemiReveCache()) {
tmrpos.innerHTML = '?? (' + TMRUtility.getTMRType(coord) + ')'; tmrpos.innerHTML = '?? (' + TMRUtility.getTMRType(coord) + ')';
} else { } else {
tmrpos.innerHTML = coord + " (" + TMRUtility.getTMRLabel(coord) + ")"; tmrpos.innerHTML = coord + " (" + TMRUtility.getTMRLabel(coord) + ")";
@ -542,7 +542,9 @@ export class RdDTMRDialog extends Dialog {
if (rencontre) { if (rencontre) {
return 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"); let myRoll = await RdDDice.rollTotal("1dt");
if (TMRUtility.isForceRencontre() || myRoll == 7) { if (TMRUtility.isForceRencontre() || myRoll == 7) {
@ -872,6 +874,14 @@ export class RdDTMRDialog extends Dialog {
/* -------------------------------------------- */ /* -------------------------------------------- */
async _onClickTMRPos(clickOddq) { 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()); let currentOddq = TMRUtility.coordTMRToOddq(this._getActorCoord());
console.log("deplacerDemiReve >>>>", currentOddq, clickOddq); 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 } else if (deplacementType == 'messager') { // Dans ce cas, ouverture du lancement de sort sur la case visée
await this._messagerDemiReve(targetCoord); await this._messagerDemiReve(targetCoord);
} else { } 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); console.log("STATUS :", this.rencontreState, this.currentRencontre);
} }
this.checkQuitterTMR(); this.checkQuitterTMR();
@ -923,7 +933,6 @@ export class RdDTMRDialog extends Dialog {
/* -------------------------------------------- */ /* -------------------------------------------- */
externalRefresh(tmrData) { externalRefresh(tmrData) {
this.cacheTMR = (game.user.isGM) ? false : this.actor.isTMRCache();
this.createPixiSprites(); this.createPixiSprites();
this.forceDemiRevePositionView(); this.forceDemiRevePositionView();
this.updateValuesDisplay(); this.updateValuesDisplay();
@ -1018,9 +1027,10 @@ export class RdDTMRDialog extends Dialog {
/* -------------------------------------------- */ /* -------------------------------------------- */
_setTokenPosition(token) { _setTokenPosition(token) {
if (!this.cacheTMR) { if (this.isDemiReveCache() && this.demiReve === token ) {
this.pixiTMR.setPosition(token.sprite, TMRUtility.coordTMRToOddq(token.coordTMR())); return;
} }
this.pixiTMR.setPosition(token.sprite, TMRUtility.coordTMRToOddq(token.coordTMR()));
} }
/* -------------------------------------------- */ /* -------------------------------------------- */