diff --git a/module/actor.js b/module/actor.js
index 7997bbed..6aa2251a 100644
--- a/module/actor.js
+++ b/module/actor.js
@@ -365,6 +365,8 @@ export class RdDActor extends Actor {
message.content += "
Vous êtes bien reposé";
}
}
+
+ /* -------------------------------------------- */
_calculRecuperationSegment(actuel)
{
const segments = RdDUtility.getSegmentsFatigue(this.data.data.sante.endurance.max);
diff --git a/module/rdd-tmr-dialog.js b/module/rdd-tmr-dialog.js
index 3c6069cc..de07c6d1 100644
--- a/module/rdd-tmr-dialog.js
+++ b/module/rdd-tmr-dialog.js
@@ -123,23 +123,44 @@ export class RdDTMRDialog extends Dialog {
/* -------------------------------------------- */
/** Gère les rencontres avec du post-processing graphique (passeur, messagers, tourbillons, ...) */
- rencontrePostProcess( rencontreData) {
+ async rencontrePostProcess( rencontreData) {
if (!rencontreData) return; // Sanity check
this.rencontreState = rencontreData.state; // garder la trace de l'état en cours
- if ( this.rencontreState == 'passeur') {
- console.log("Processing passeur");
+ let locList
+ if ( this.rencontreState == 'passeur' || this.rencontreState == 'messager' ) {
// Récupère la liste des cases à portées
- let locList = TMRUtility.getTMRArea(this.actor.data.data.reve.tmrpos.coord, this.currentRencontre.force, tmrConstants );
- this.colorierZoneRencontre( locList );
- } else if ( this.rencontreState == 'messager') {
- console.log("Processing messager");
- // Récupère la liste des cases à portées
- let locList = TMRUtility.getTMRArea(this.actor.data.data.reve.tmrpos.coord, this.currentRencontre.force, tmrConstants );
- this.colorierZoneRencontre( locList );
+ locList = TMRUtility.getTMRArea(this.actor.data.data.reve.tmrpos.coord, this.currentRencontre.force, tmrConstants );
+
+ } else if ( this.rencontreState == 'changeur' ) {
+ // Liste des cases de même type
+ locList = TMRUtility.getLocationTypeList( this.actor.data.data.reve.tmrpos.coord );
+
+ } else if ( this.rencontreState == 'reflet' ) {
+ this.nbFatigue += 1;
+
} else {
this.currentRencontre = undefined; // Cleanup, not used anymore
}
+
+ if ( locList )
+ this.colorierZoneRencontre( locList );
+
+ }
+ /* -------------------------------------------- */
+ checkQuitterTMR() {
+ if ( this.actor.data.data.reve.reve.value == 0) {
+ ChateMessage.create( { content: "Vos Points de Rêve sont à 0 : vous quittez les Terres médianes !"} );
+ this.close();
+ }
+ if ( this.nbFatigue == this.actor.data.data.sante.fatigue.max ) {
+ ChateMessage.create({ content: "Vous vous écroulez de fatigue : vous quittez les Terres médianes !"});
+ this.close();
+ }
+ if ( this.actor.data.data.sante.vie.value == 0 ) {
+ ChateMessage.create({ content: "Vous n'avez plus de Points de Vie : vous quittez les Terres médianes !"});
+ this.close();
+ }
}
/* -------------------------------------------- */
@@ -150,9 +171,9 @@ export class RdDTMRDialog extends Dialog {
const draconic = this.actor.getBestDraconic();
const carac = this.actor.getReveActuel();
// TODO: ajouter l'état général?
- const etatGeneral = this.actor.data.data.compteurs.etat.value
- const difficulte = draconic.data.niveau - this.currentRencontre.force;
- console.log("Maitriser", carac, draconic.data.niveau, this.currentRencontre.force);
+ const etatGeneral = this.actor.data.data.compteurs.etat.value;
+ const difficulte = draconic.data.niveau - this.currentRencontre.force + etatGeneral;
+ console.log("Maitriser", carac, draconic.data.niveau, this.currentRencontre.force, etatGeneral);
let rolled = RdDResolutionTable.roll(carac, difficulte);
let message = "
Test : Rêve actuel / " + draconic.name + " / " + this.currentRencontre.name + "" + "
"
@@ -172,10 +193,14 @@ export class RdDTMRDialog extends Dialog {
this._tellToUser("Vous avez réussi à maîtriser un " + this.currentRencontre.name + " de force " + this.currentRencontre.force + message);
}
- this.rencontrePostProcess( rencontreData );
+ await this.rencontrePostProcess( rencontreData );
console.log("-> matriser", this.currentRencontre);
this.updateValuesDisplay();
+
+ this.checkQuitterTMR();
+ if ( this.rencontreState == 'reflet')
+ this.maitriser();
}
/* -------------------------------------------- */
@@ -247,6 +272,7 @@ export class RdDTMRDialog extends Dialog {
refoulement.innerHTML = this.actor.data.data.reve.refoulement.value;
let fatigueItem = document.getElementById("tmr-fatigue-table");
+ console.log("Refresh : ", this.actor.data.data.sante.fatigue.value);
fatigueItem.innerHTML = "