#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
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;
if (item.type == 'queue') {
if ( item.name.toLowerCase() == 'conquête' ) {
content = "RAPPEL ! Vous souffrez d'une <strong>Conquête</strong> : " + 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 <strong>Pélerinage</strong> : " + 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 <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) {
@ -795,6 +806,7 @@ export class RdDActor extends Actor {
});
}
}
}
/* -------------------------------------------- */
async deleteTMRRencontreAtPosition( ) {
@ -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
if ( rencSpecial.type == 'queue') {
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);
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.",

View File

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