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) {
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 += "<br>" + troncName;
}
ChatMessage.create({
@ -3447,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;
}
}

View File

@ -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 [];
}
/* -------------------------------------------- */

View File

@ -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()));
}
/* -------------------------------------------- */