diff --git a/module/rdd-combat.js b/module/rdd-combat.js
index 09a9acbd..3c7f2ca8 100644
--- a/module/rdd-combat.js
+++ b/module/rdd-combat.js
@@ -833,7 +833,7 @@ export class RdDCombat {
// # utilisation esquive
const corpsACorps = this.defender.getCompetence("Corps à corps", { onMessage: it => console.info(it, this.defender) });
const esquives = duplicate(this.defender.getCompetences("esquive", { onMessage: it => console.info(it, this.defender) }))
- esquives.forEach(e => e.usages = e?.id ? this.defender.getItemUse(e.id) : 0);
+ esquives.forEach(e => e.system.nbUsage = e?._id ? this.defender.getItemUse(e._id) : 0);
const paramChatDefense = {
passeArme: attackerRoll.passeArme,
diff --git a/module/rdd-tmr-dialog.js b/module/rdd-tmr-dialog.js
index 7ff6d0c3..7d7d03d0 100644
--- a/module/rdd-tmr-dialog.js
+++ b/module/rdd-tmr-dialog.js
@@ -214,24 +214,12 @@ export class RdDTMRDialog extends Dialog {
this.actor.rollLireSigneDraconique(this._getActorCoord());
});
- html.find('#dir-top').click((event) => {
- this.moveFromKey("top");
- });
- html.find('#dir-top-left').click((event) => {
- this.moveFromKey("top-left");
- });
- html.find('#dir-top-right').click((event) => {
- this.moveFromKey("top-right");
- });
- html.find('#dir-bottom-left').click((event) => {
- this.moveFromKey("bottom-left");
- });
- html.find('#dir-bottom-right').click((event) => {
- this.moveFromKey("bottom-right");
- });
- html.find('#dir-bottom').click((event) => {
- this.moveFromKey("bottom");
- });
+ html.find('#dir-top').click((event) => this.moveFromKey("top"));
+ html.find('#dir-top-left').click((event) => this.moveFromKey("top-left"));
+ html.find('#dir-top-right').click((event) => this.moveFromKey("top-right"));
+ html.find('#dir-bottom-left').click((event) => this.moveFromKey("bottom-left"));
+ html.find('#dir-bottom-right').click((event) => this.moveFromKey("bottom-right"));
+ html.find('#dir-bottom').click((event) => this.moveFromKey("bottom"));
// Gestion du cout de montée en points de rêve
let reveCout = ((this.tmrdata.isRapide && !EffetsDraconiques.isDeplacementAccelere(this.actor)) ? -2 : -1) - this.actor.countMonteeLaborieuse();
@@ -243,13 +231,14 @@ export class RdDTMRDialog extends Dialog {
// Le reste...
this.updateValuesDisplay();
let tmr = TMRUtility.getTMR(this._getActorCoord());
- await this.manageRencontre(tmr, () => {
- this.postRencontre(tmr);
- });
+ await this.manageRencontre(tmr);
}
/* -------------------------------------------- */
async updateValuesDisplay() {
+ if (!this.rendered) {
+ return;
+ }
const coord = this._getActorCoord();
HtmlUtility._showControlWhen($(".lire-signe-draconique"), this.actor.isResonanceSigneDraconique(coord));
@@ -278,6 +267,7 @@ export class RdDTMRDialog extends Dialog {
/* -------------------------------------------- */
async close() {
+ this.descenteTMR = true;
if (this.actor.tmrApp) {
this.actor.tmrApp = undefined; // Cleanup reference
if (!this.viewOnly) {
@@ -483,12 +473,13 @@ export class RdDTMRDialog extends Dialog {
}
/* -------------------------------------------- */
- async manageRencontre(tmr, postRencontre) {
+ async manageRencontre(tmr) {
if (this.viewOnly) {
return;
}
+ this.descenteTMR = false;
this.currentRencontre = undefined;
- if (this._presentCite(tmr, postRencontre)) {
+ if (this._presentCite(tmr)) {
return;
}
let rencontre = await this._jetDeRencontre(tmr);
@@ -498,27 +489,27 @@ export class RdDTMRDialog extends Dialog {
console.log("manageRencontre", rencontre);
this.currentRencontre = duplicate(rencontre);
- let dialog = new RdDTMRRencontreDialog("", this, this.currentRencontre, postRencontre);
+ let dialog = new RdDTMRRencontreDialog(this, this.currentRencontre, () => this.postRencontre(tmr));
dialog.render(true);
}
else {
- postRencontre();
+ this.postRencontre(tmr);
}
}
/* -------------------------------------------- */
- _presentCite(tmr, postRencontre) {
+ _presentCite(tmr) {
const presentCite = this.casesSpeciales.find(c => EffetsDraconiques.presentCites.isCase(c, tmr.coord));
if (presentCite) {
this.minimize();
const caseData = presentCite;
- EffetsDraconiques.presentCites.choisirUnPresent(caseData, (type => this._utiliserPresentCite(presentCite, type, tmr, postRencontre)));
+ EffetsDraconiques.presentCites.choisirUnPresent(caseData, (type => this._utiliserPresentCite(presentCite, type, tmr)));
}
return presentCite;
}
/* -------------------------------------------- */
- async _utiliserPresentCite(presentCite, typeRencontre, tmr, postRencontre) {
+ async _utiliserPresentCite(presentCite, typeRencontre, tmr) {
this.currentRencontre = TMRRencontres.getRencontre(typeRencontre);
await TMRRencontres.evaluerForceRencontre(this.currentRencontre);
await EffetsDraconiques.presentCites.ouvrirLePresent(this.actor, presentCite);
@@ -537,7 +528,7 @@ export class RdDTMRDialog extends Dialog {
await this._tentativeMaitrise(rencontreData);
this.maximize();
- postRencontre();
+ this.postRencontre(tmr);
}
/* -------------------------------------------- */
@@ -608,7 +599,6 @@ export class RdDTMRDialog extends Dialog {
async _resultatMaitriseCaseHumide(rollData) {
await this.souffleSiEchecTotal(rollData);
- this.toclose = rollData.rolled.isEchec;
if (rollData.rolled.isSuccess && rollData.double) {
rollData.previous = { rolled: rollData.rolled, ajustements: rollData.ajustements };
rollData.double = undefined;
@@ -621,7 +611,7 @@ export class RdDTMRDialog extends Dialog {
content: await renderTemplate(`systems/foundryvtt-reve-de-dragon/templates/chat-resultat-maitrise-tmr.html`, rollData)
});
if (rollData.rolled.isEchec) {
- this.close();
+ await this.close();
}
}
@@ -731,8 +721,6 @@ export class RdDTMRDialog extends Dialog {
if (rollData.rolled.isETotal) {
rollData.souffle = await this.actor.ajouterSouffle({ chat: false });
}
- this.toclose = rollData.rolled.isEchec;
-
rollData.poesie = await Poetique.getExtrait();
ChatMessage.create({
whisper: ChatUtility.getWhisperRecipientsAndGMs(game.user.name),
@@ -979,7 +967,7 @@ export class RdDTMRDialog extends Dialog {
this.actor.notifyRefreshTMR();
if (deplacementType == 'normal') { // Pas de rencontres après un saut de type passeur/changeur/...
- await this.manageRencontre(tmr, () => this.postRencontre(tmr));
+ await this.manageRencontre(tmr);
}
else {
await this.postRencontre(tmr);
@@ -999,13 +987,13 @@ export class RdDTMRDialog extends Dialog {
async postRencontre(tmr) {
if (!(this.viewOnly || this.currentRencontre)) {
// TODO: vérifier que la méthode s'arrête en cas de non-maîtrise
- await this.manageCaseHumide(tmr);
- await this.conquerirCiteFermee(tmr);
- await this.purifierPeriple(tmr);
- await this.conquerirTMR(tmr);
- await this.validerVisite(tmr);
- await this.declencheSortEnReserve(tmr.coord);
- await this.actor.checkSoufflePeage(tmr);
+ if (!this.descenteTMR) await this.manageCaseHumide(tmr);
+ if (!this.descenteTMR) await this.conquerirCiteFermee(tmr);
+ if (!this.descenteTMR) await this.purifierPeriple(tmr);
+ if (!this.descenteTMR) await this.conquerirTMR(tmr);
+ if (!this.descenteTMR) await this.validerVisite(tmr);
+ if (!this.descenteTMR) await this.declencheSortEnReserve(tmr.coord);
+ if (!this.descenteTMR) await this.actor.checkSoufflePeage(tmr);
}
}
diff --git a/module/rdd-tmr-rencontre-dialog.js b/module/rdd-tmr-rencontre-dialog.js
index 50b03df2..ac21f161 100644
--- a/module/rdd-tmr-rencontre-dialog.js
+++ b/module/rdd-tmr-rencontre-dialog.js
@@ -2,7 +2,7 @@
export class RdDTMRRencontreDialog extends Dialog {
/* -------------------------------------------- */
- constructor(html, tmrApp, rencontre, postRencontre) {
+ constructor(tmrApp, rencontre, postRencontre) {
const dialogConf = {
title: "Rencontre en TMR!",
content: "Vous rencontrez un " + rencontre.name + " de force " + rencontre.force + "
",
diff --git a/styles/simple.css b/styles/simple.css
index 275c3375..7b121391 100644
--- a/styles/simple.css
+++ b/styles/simple.css
@@ -1146,9 +1146,16 @@ ul, li {
}
-#sidebar #sidebar-tabs i.fa-comments:before, #sidebar #sidebar-tabs i.fa-fist-raised:before, #sidebar #sidebar-tabs i.fa-users:before, #sidebar #sidebar-tabs i.fa-map:before, #sidebar #sidebar-tabs i.fa-suitcase:before, #sidebar #sidebar-tabs i.fa-book-open:before, #sidebar #sidebar-tabs i.fa-th-list:before, #sidebar #sidebar-tabs i.fa-music:before, #sidebar #sidebar-tabs i.fa-atlas:before, #sidebar #sidebar-tabs i.fa-cogs:before {content: "";}
+#sidebar #sidebar-tabs i:is(
+ .fa-comments, .fa-fist-raised, .fa-swords,
+ .fa-users, .fa-user, .fa-map, .fa-suitcase,
+ .fa-book-open, .fa-th-list, .fa-music,
+ .fa-atlas,.fa-cogs
+):before {content: "";}
#sidebar #sidebar-tabs i.fa-comments {background: url("img/ui/icon_sidebar_chat.svg") no-repeat;}
#sidebar #sidebar-tabs i.fa-fist-raised {background: url("img/ui/icon_sidebar_fight.svg") no-repeat;}
+#sidebar #sidebar-tabs i.fa-swords {background: url("img/ui/icon_sidebar_fight.svg") no-repeat;}
+#sidebar #sidebar-tabs i.fa-user {background: url("img/ui/icon_sidebar_actor.svg") no-repeat;}
#sidebar #sidebar-tabs i.fa-users {background: url("img/ui/icon_sidebar_actor.svg") no-repeat;}
#sidebar #sidebar-tabs i.fa-map {background: url("img/ui/icon_sidebar_scene.svg") no-repeat;}
#sidebar #sidebar-tabs i.fa-suitcase {background: url("img/ui/icon_sidebar_item.svg") no-repeat;}
diff --git a/templates/actor-sheet.html b/templates/actor-sheet.html
index 5e46beee..0c37d61d 100644
--- a/templates/actor-sheet.html
+++ b/templates/actor-sheet.html
@@ -464,24 +464,21 @@
{{/if}}