diff --git a/module/actor.js b/module/actor.js index 470b539d..c1ad3fe5 100644 --- a/module/actor.js +++ b/module/actor.js @@ -773,26 +773,38 @@ export class RdDActor extends Actor { } /* -------------------------------------------- */ - 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; + displayTMRQueueSouffleInformation( ) { + for ( let item of this.data.items) { + let content + if (item.type == 'queue') { + if ( item.name.toLowerCase() == 'conquête' ) { + content = "RAPPEL ! Vous souffrez d'une Conquête : " + item.data.description; } - else if ( queue.name.toLowerCase() == 'pélerinage' ) { - content = "RAPPEL ! Vous souffrez d'un Pélerinage : " + queue.data.description; + else if ( item.name.toLowerCase() == 'pélerinage' ) { + content = "RAPPEL ! Vous souffrez d'un Pélerinage : " + item.data.description; } - else if ( queue.name.toLowerCase() == 'urgence draconique' ) { - content = "RAPPEL ! Vous souffrez d'une Urgence Draconique : " + queue.data.description; + else if ( item.name.toLowerCase() == 'urgence draconique' ) { + content = "RAPPEL ! Vous souffrez d'une Urgence Draconique : " + item.data.description; + } + } else if ( item.type == 'souffle') { + if ( item.name.toLowerCase() == 'périple' ) { + content = "RAPPEL ! Vous souffrez du Souffle Périple. Vous devez gérer manuellement le détail du Périple.
" + item.data.description; + } else if ( item.name.toLowerCase() == 'fermeture des cités' ) { + content = "RAPPEL ! Vous souffrez du Souffle Fermeture des Cités. Vous devez gérer manuellement le détail des Citées ré-ouvertes.
" + item.data.description; + } else if ( item.name.toLowerCase() == 'désorientation' ) { + content = "RAPPEL ! Vous souffrez du Souffle Désorientation. Vous devez gérer avec votre MJ les effets de ce souffle.
" + item.data.description; + } else if ( item.name.toLowerCase() == 'péage' ) { + content = "RAPPEL ! Vous souffrez du Souffle Péage. Vous devez gérer avec votre MJ les effets de ce souffle.
" + item.data.description; + } else if ( item.name.toLowerCase() == 'double résistance du fleuve' ) { + content = "RAPPEL ! Vous souffrez du Souffle Double Résistance du Fleuve. Vous devez gérer avec votre MJ les effets de ce souffle.
" + item.data.description; } } - } - if (content) { - ChatMessage.create({ - whisper: ChatUtility.getWhisperRecipientsAndGMs( this.name ), - content: content - }); + if (content) { + ChatMessage.create({ + whisper: ChatUtility.getWhisperRecipientsAndGMs( this.name ), + content: content + }); + } } } @@ -1311,14 +1323,20 @@ export class RdDActor extends Actor { } /* -------------------------------------------- */ - isRencontreSpeciale( ) { // Gestion queue 'Mauvaise Rencontre en Perpective' - let rencSpecial = this.data.items.find( item => item.type == 'queue' && item.name.toLowerCase().includes( 'mauvaise rencontre' ) ); + isRencontreSpeciale( ) { // Gestion queue/souffle 'Mauvaise Rencontre en Perpective' + let addMsg = ""; + let rencSpecial = this.data.items.find( item => (item.type == 'queue' || item.type == 'souffle') && item.name.toLowerCase().includes( 'mauvaise rencontre' ) ); if ( rencSpecial ) { rencSpecial = duplicate(rencSpecial); // To keep it - this.deleteOwnedItem( rencSpecial._id ); // Suppression dans la liste des queues - ChatUtility.chatWithRollMode( - { content:"Votre rencontre en TMR est spéciale à cause de votre Queue de Dragon : Mauvaise Rencontre en Perspective. La queue a été supprimée de votre état."}, - this.name); + if ( rencSpecial.type == 'queue') { + this.deleteOwnedItem( rencSpecial._id ); // Suppression dans la liste des queues + addMsg = " La queue a été supprimée de votre fiche automatiquement"; + } else { + addMsg = " Vous devez gérer manuellement le décompte de mauvaises rencontres manuellement."; + } + ChatMessage.create( { + content: "Vous êtes sous le coup d'une Mauvaise Rencontre en Persective." + addMsg, + whisper: ChatMessage.getWhisperRecipients(game.user.name) } ); } return rencSpecial; } @@ -1335,6 +1353,18 @@ export class RdDActor extends Actor { return 1; } + /* -------------------------------------------- */ + checkIsAdditionnalHumide( cellDescr ) { + let pontHumide = this.data.items.find( item => item.type == 'souffle' && item.name.toLowerCase().includes( ' des ponts' ) ); + if ( pontHumide && cellDescr.type == 'pont') { + ChatMessage.create( { + content: "Vous êtes sous le coup d'une Impraticabilité des Ponts : ils doivent être maîtrisés comme des cases humides.", + whisper: ChatMessage.getWhisperRecipients(game.user.name) } ); + return true; + } + return false; + } + /* -------------------------------------------- */ async _rollUnSortResult(rollData, isSortReserve = false) { rollData.isSortReserve = isSortReserve; @@ -1729,7 +1759,7 @@ export class RdDActor extends Actor { /* -------------------------------------------- */ 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' ) ); + let monteLaborieuse = this.data.items.find( item => (item.type == 'queue' || item.type == 'souffle') && 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.", diff --git a/module/rdd-tmr-dialog.js b/module/rdd-tmr-dialog.js index 3e58cd84..826e37be 100644 --- a/module/rdd-tmr-dialog.js +++ b/module/rdd-tmr-dialog.js @@ -333,7 +333,8 @@ export class RdDTMRDialog extends Dialog { if (this.viewOnly) { return; } - if (cellDescr.type == "lac" || cellDescr.type == "fleuve" || cellDescr.type == "marais") { + let isHumide = this.actor.checkIsAdditionnalHumide(cellDescr); + if (cellDescr.type == "lac" || cellDescr.type == "fleuve" || cellDescr.type == "marais" || isHumide) { // TODO: permettre de choisir la voie de draconic? let draconic = this.actor.getBestDraconic(); @@ -561,7 +562,7 @@ export class RdDTMRDialog extends Dialog { this.manageCaseHumide(cellDescr); // Mise à jour du nb de cases de Fatigue this.nbFatigue = this.actor.getTMRFatigue(); - this.actor.displayTMRQueueInformation(); + this.actor.displayTMRQueueSouffleInformation(); } /* -------------------------------------------- */