#89 Gestion de de la conquete, pelerinage et montee laborieuse

This commit is contained in:
sladecraven 2020-12-30 15:56:17 +01:00
parent 8f2daee22a
commit 4eeb2d0266
3 changed files with 45 additions and 6 deletions

View File

@ -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");
});

View File

@ -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;

View File

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