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