From 4eeb2d026685cee9b05fbcfc5d24b8b7165a0adf Mon Sep 17 00:00:00 2001 From: sladecraven Date: Wed, 30 Dec 2020 15:56:17 +0100 Subject: [PATCH] #89 Gestion de de la conquete, pelerinage et montee laborieuse --- module/actor-sheet.js | 2 +- module/actor.js | 44 ++++++++++++++++++++++++++++++++++++---- module/rdd-tmr-dialog.js | 5 ++++- 3 files changed, 45 insertions(+), 6 deletions(-) diff --git a/module/actor-sheet.js b/module/actor-sheet.js index 8889dde5..05f15491 100644 --- a/module/actor-sheet.js +++ b/module/actor-sheet.js @@ -341,7 +341,7 @@ export class RdDActorSheet extends ActorSheet { ui.notifications.info("Impossible de lancer l'initiative sans être dans un combat."); } }); - // Display TMR, normal + // Display TMR, visuualisation html.find('#visu-tmr').click((event) => { this.actor.displayTMR( "visu"); }); diff --git a/module/actor.js b/module/actor.js index 207d62c9..470b539d 100644 --- a/module/actor.js +++ b/module/actor.js @@ -772,6 +772,30 @@ export class RdDActor extends Actor { return queue; } + /* -------------------------------------------- */ + displayTMRQueueInformation( ) { + let content + for ( let queue of this.data.items) { + if (queue.type == 'queue') { + if ( queue.name.toLowerCase() == 'conquête' ) { + content = "RAPPEL ! Vous souffrez d'une Conquête : " + queue.data.description; + } + else if ( queue.name.toLowerCase() == 'pélerinage' ) { + content = "RAPPEL ! Vous souffrez d'un Pélerinage : " + queue.data.description; + } + else if ( queue.name.toLowerCase() == 'urgence draconique' ) { + content = "RAPPEL ! Vous souffrez d'une Urgence Draconique : " + queue.data.description; + } + } + } + if (content) { + ChatMessage.create({ + whisper: ChatUtility.getWhisperRecipientsAndGMs( this.name ), + content: content + }); + } + } + /* -------------------------------------------- */ async deleteTMRRencontreAtPosition( ) { let rencontres = duplicate(this.data.data.reve.rencontre); @@ -1303,9 +1327,9 @@ export class RdDActor extends Actor { getTMRFatigue() { // Pour l'instant uniquement Inertie Draconique let inertieDraconique = this.data.items.find( item => item.type == 'queue' && item.name.toLowerCase().includes( 'inertie draconique' ) ); if ( inertieDraconique ) { - ChatUtility.chatWithRollMode( - { content:"Vous êtes sous le coup d'une Inertie Draconique : vous perdez 2 cases de Fatigue par déplacement au lieu d'1."}, - this.name); + ChatMessage.create( { + content: "Vous êtes sous le coup d'une Inertie Draconique : vous perdez 2 cases de Fatigue par déplacement au lieu d'1.", + whisper: ChatMessage.getWhisperRecipients(game.user.name) } ); return 2; } return 1; @@ -1703,10 +1727,22 @@ export class RdDActor extends Actor { return this.data.items.filter(item => item.data.categorie == 'draconic') } + /* -------------------------------------------- */ + checkMonteeLaborieuse( ) { // Return +1 si la queue Montée Laborieuse est présente, 0 sinon + let monteLaborieuse = this.data.items.find( item => item.type == 'queue' && item.name.toLowerCase().includes( 'montée laborieuse' ) ); + if ( monteLaborieuse ) { + ChatMessage.create( { + content: "Vous êtes sous le coup d'une Montée Laborieuse : vos montées en TMR coûtent 1 Point de Rêve de plus.", + whisper: ChatMessage.getWhisperRecipients(game.user.name) } ); + return 1; + } + return 0; + } + /* -------------------------------------------- */ async displayTMR(mode="normal") { - let isRapide= mode == "rapide" + let isRapide= mode == "rapide"; if (mode != "visu") { let minReveValue = (isRapide) ? 3 : 2; diff --git a/module/rdd-tmr-dialog.js b/module/rdd-tmr-dialog.js index 1641bb46..3e58cd84 100644 --- a/module/rdd-tmr-dialog.js +++ b/module/rdd-tmr-dialog.js @@ -552,13 +552,16 @@ export class RdDTMRDialog extends Dialog { if (this.viewOnly) { return; } - await this.actor.reveActuelIncDec((this.tmrdata.isRapide) ? -2 : -1); // 1 point defatigue + + let addMonteLaborieuse = this.actor.checkMonteeLaborieuse(); + await this.actor.reveActuelIncDec( (this.tmrdata.isRapide) ? -2-addMonteLaborieuse : -1-addMonteLaborieuse ); this.updateValuesDisplay(); let cellDescr = TMRUtility.getTMRDescription(this.actor.data.data.reve.tmrpos.coord); await this.manageRencontre(this.actor.data.data.reve.tmrpos.coord, cellDescr); this.manageCaseHumide(cellDescr); // Mise à jour du nb de cases de Fatigue this.nbFatigue = this.actor.getTMRFatigue(); + this.actor.displayTMRQueueInformation(); } /* -------------------------------------------- */