#89 Gestion des souffles en lien avec TMR - partiel

This commit is contained in:
sladecraven 2020-12-30 16:33:56 +01:00
parent 4eeb2d0266
commit 5e3e4e6c41
2 changed files with 56 additions and 25 deletions

View File

@ -773,19 +773,30 @@ export class RdDActor extends Actor {
} }
/* -------------------------------------------- */ /* -------------------------------------------- */
displayTMRQueueInformation( ) { displayTMRQueueSouffleInformation( ) {
for ( let item of this.data.items) {
let content let content
for ( let queue of this.data.items) { if (item.type == 'queue') {
if (queue.type == 'queue') { if ( item.name.toLowerCase() == 'conquête' ) {
if ( queue.name.toLowerCase() == 'conquête' ) { content = "RAPPEL ! Vous souffrez d'une <strong>Conquête</strong> : " + item.data.description;
content = "RAPPEL ! Vous souffrez d'une Conquête : " + queue.data.description;
} }
else if ( queue.name.toLowerCase() == 'pélerinage' ) { else if ( item.name.toLowerCase() == 'pélerinage' ) {
content = "RAPPEL ! Vous souffrez d'un Pélerinage : " + queue.data.description; content = "RAPPEL ! Vous souffrez d'un <strong>Pélerinage</strong> : " + item.data.description;
} }
else if ( queue.name.toLowerCase() == 'urgence draconique' ) { else if ( item.name.toLowerCase() == 'urgence draconique' ) {
content = "RAPPEL ! Vous souffrez d'une Urgence Draconique : " + queue.data.description; content = "RAPPEL ! Vous souffrez d'une <strong>Urgence Draconique</strong> : " + item.data.description;
} }
} else if ( item.type == 'souffle') {
if ( item.name.toLowerCase() == 'périple' ) {
content = "RAPPEL ! Vous souffrez du Souffle <strong>Périple</strong>. Vous devez gérer manuellement le détail du Périple.<br>" + item.data.description;
} else if ( item.name.toLowerCase() == 'fermeture des cités' ) {
content = "RAPPEL ! Vous souffrez du Souffle <strong>Fermeture des Cités</strong>. Vous devez gérer manuellement le détail des Citées ré-ouvertes.<br>" + item.data.description;
} else if ( item.name.toLowerCase() == 'désorientation' ) {
content = "RAPPEL ! Vous souffrez du Souffle <strong>Désorientation</strong>. Vous devez gérer avec votre MJ les effets de ce souffle.<br>" + item.data.description;
} else if ( item.name.toLowerCase() == 'péage' ) {
content = "RAPPEL ! Vous souffrez du Souffle <strong>Péage</strong>. Vous devez gérer avec votre MJ les effets de ce souffle.<br>" + item.data.description;
} else if ( item.name.toLowerCase() == 'double résistance du fleuve' ) {
content = "RAPPEL ! Vous souffrez du Souffle <strong>Double Résistance du Fleuve</strong>. Vous devez gérer avec votre MJ les effets de ce souffle.<br>" + item.data.description;
} }
} }
if (content) { if (content) {
@ -795,6 +806,7 @@ export class RdDActor extends Actor {
}); });
} }
} }
}
/* -------------------------------------------- */ /* -------------------------------------------- */
async deleteTMRRencontreAtPosition( ) { async deleteTMRRencontreAtPosition( ) {
@ -1311,14 +1323,20 @@ export class RdDActor extends Actor {
} }
/* -------------------------------------------- */ /* -------------------------------------------- */
isRencontreSpeciale( ) { // Gestion queue 'Mauvaise Rencontre en Perpective' isRencontreSpeciale( ) { // Gestion queue/souffle 'Mauvaise Rencontre en Perpective'
let rencSpecial = this.data.items.find( item => item.type == 'queue' && item.name.toLowerCase().includes( 'mauvaise rencontre' ) ); let addMsg = "";
let rencSpecial = this.data.items.find( item => (item.type == 'queue' || item.type == 'souffle') && item.name.toLowerCase().includes( 'mauvaise rencontre' ) );
if ( rencSpecial ) { if ( rencSpecial ) {
rencSpecial = duplicate(rencSpecial); // To keep it rencSpecial = duplicate(rencSpecial); // To keep it
if ( rencSpecial.type == 'queue') {
this.deleteOwnedItem( rencSpecial._id ); // Suppression dans la liste des queues this.deleteOwnedItem( rencSpecial._id ); // Suppression dans la liste des queues
ChatUtility.chatWithRollMode( addMsg = " La queue a été supprimée de votre fiche automatiquement";
{ 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."}, } else {
this.name); 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; return rencSpecial;
} }
@ -1335,6 +1353,18 @@ export class RdDActor extends Actor {
return 1; 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) { async _rollUnSortResult(rollData, isSortReserve = false) {
rollData.isSortReserve = isSortReserve; 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 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 ) { if ( monteLaborieuse ) {
ChatMessage.create( { 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.", 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.",

View File

@ -333,7 +333,8 @@ export class RdDTMRDialog extends Dialog {
if (this.viewOnly) { if (this.viewOnly) {
return; 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? // TODO: permettre de choisir la voie de draconic?
let draconic = this.actor.getBestDraconic(); let draconic = this.actor.getBestDraconic();
@ -561,7 +562,7 @@ export class RdDTMRDialog extends Dialog {
this.manageCaseHumide(cellDescr); this.manageCaseHumide(cellDescr);
// Mise à jour du nb de cases de Fatigue // Mise à jour du nb de cases de Fatigue
this.nbFatigue = this.actor.getTMRFatigue(); this.nbFatigue = this.actor.getTMRFatigue();
this.actor.displayTMRQueueInformation(); this.actor.displayTMRQueueSouffleInformation();
} }
/* -------------------------------------------- */ /* -------------------------------------------- */