From 781b6353a849c8c4496b0b8dc2135714562c7164 Mon Sep 17 00:00:00 2001 From: Vincent Vandemeulebrouck Date: Thu, 4 Feb 2021 01:00:17 +0100 Subject: [PATCH 1/5] =?UTF-8?q?Fix:=20recalcul=20nombre=20astral=20pour=20?= =?UTF-8?q?retour=20arri=C3=A8re?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit quand on remet la date en arrière (suite à erreur sur l'avancement du calendrier), le nombre astral est maintenant correctement initialisé (nombres aléatoires) Ce qui permet de ne plus tomber sur le cas "N/A" ou sur un nombre non disponible, et donc débloque la fenêtre de jets de dés (bloquée à cause de l'ajustement astrologique) --- module/rdd-calendrier.js | 42 ++++++++++++++-------------------------- 1 file changed, 15 insertions(+), 27 deletions(-) diff --git a/module/rdd-calendrier.js b/module/rdd-calendrier.js index 18facb1e..d0f7c47b 100644 --- a/module/rdd-calendrier.js +++ b/module/rdd-calendrier.js @@ -117,45 +117,33 @@ export class RdDCalendrier extends Application { /* -------------------------------------------- */ getCurrentNombreAstral() { - let index = this.getCurrentDayIndex(); - return this.getNombreAstral(index); + let indexDate = this.getCurrentDayIndex(); + return this.getNombreAstral(indexDate); } /* -------------------------------------------- */ - getNombreAstral( index ) { - const liste = this.listeNombreAstral || this._loadListNombreAstral(); - let astralData = liste.find( (nombreAstral, i) => nombreAstral.index == index ); - if ( astralData == undefined ) { + getNombreAstral( indexDate ) { + const liste = this.listeNombreAstral ?? this._loadListNombreAstral(); + let astralData = liste.find( (nombreAstral, i) => nombreAstral.index == indexDate ); + if (! astralData?.nombreAstral ) { this.rebuildListeNombreAstral(); - astralData = liste.find( (nombreAstral, i) => nombreAstral.index == index ); + astralData = liste.find( (nombreAstral, i) => nombreAstral.index == indexDate ); } - return astralData.nombreAstral || "N/A"; + return astralData?.nombreAstral ?? "N/A"; } - + /* -------------------------------------------- */ rebuildListeNombreAstral() { - // Auto-create if needed - if ( this.listeNombreAstral == undefined) - this.listeNombreAstral = []; - - // Nettoyage des nombres astraux anciens let jourCourant = this.getCurrentDayIndex(); let jourFin = jourCourant + 12; - let newList = this.listeNombreAstral.filter( (nombreAstral, i) => nombreAstral && nombreAstral.index >= jourCourant && nombreAstral.index < jourFin); - //console.log("LSTES", this.listeNombreAstral, newList ); - - let lastDay = jourCourant; - for (let i=0; i < MAX_NOMBRE_ASTRAL; i++) { - let nombreAstral = newList[i]; - if ( nombreAstral ) { - lastDay = nombreAstral.index + 1; - } else { - newList.push( this.ajouterNombreAstral( lastDay) ); - lastDay += 1; + let newList = [0,1,2,3,4,5,6,7,8,9,10,11].map( i => this.ajouterNombreAstral(jourCourant + i)); + if (this.listeNombreAstral) { + for (const na of this.listeNombreAstral) { + if (na && na.index >= jourCourant && na.index < jourFin) { + newList[na.index - jourCourant] = na; + } } } - this.listeNombreAstral = newList; - game.settings.set("foundryvtt-reve-de-dragon", "liste-nombre-astral", this.listeNombreAstral ); } From b194491f6b686f81a0585c236addb30da91c9505 Mon Sep 17 00:00:00 2001 From: Vincent Vandemeulebrouck Date: Thu, 4 Feb 2021 01:02:06 +0100 Subject: [PATCH 2/5] =?UTF-8?q?Fix=20capacit=C3=A9=20des=20contenants=20(m?= =?UTF-8?q?erge)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit L'encombrement du contenant n'est plus pris sur sa capacité --- module/actor.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/module/actor.js b/module/actor.js index 62173d13..a22e56bf 100644 --- a/module/actor.js +++ b/module/actor.js @@ -790,12 +790,12 @@ export class RdDActor extends Actor { let conteneur = this.items.find(conteneur => conteneurId == conteneur._id); // recup conteneur //console.log("Conteneur trouvé : ", conteneur); if (conteneur && conteneur.type == "conteneur") { - let currentEnc = this.getRecursiveEnc( conteneur ) - Number(conteneur.data.data.encombrement); - //let currentEnc = this.getRecursiveEnc( conteneur ); // Calculer le total actuel des contenus + // Calculer le total actuel des contenus + let encContenu = this.getRecursiveEnc( conteneur ) - Number(conteneur.data.data.encombrement); let nouvelObjet = this.items.find(objet => (itemId == objet._id)); // On chope l'objet let newEnc = (nouvelObjet) ? this.getRecursiveEnc( nouvelObjet ) : 0; // Calculer le total actuel du nouvel objet //console.log( currentEnc, newEnc, conteneur.data.data.capacite, conteneur.name); - if (nouvelObjet && ( (currentEnc + newEnc) > Number(conteneur.data.data.capacite)) ) { + if (nouvelObjet && ( (encContenu + newEnc) > Number(conteneur.data.data.capacite)) ) { ui.notifications.warn("Capacité d'encombrement insuffisante dans le conteneur !"); return false; } From 1c22f6858f34ced72cd5d887240734a2225017de Mon Sep 17 00:00:00 2001 From: Vincent Vandemeulebrouck Date: Thu, 4 Feb 2021 01:03:47 +0100 Subject: [PATCH 3/5] =?UTF-8?q?Fix:=20les=20armes=20normales=20font=20auss?= =?UTF-8?q?i=20des=20d=C3=A9g=C3=A2ts?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit l'introduction des armes magiques avait mis toutes les autres armes à 0 --- module/rdd-bonus.js | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/module/rdd-bonus.js b/module/rdd-bonus.js index fbeedf57..fa2233e6 100644 --- a/module/rdd-bonus.js +++ b/module/rdd-bonus.js @@ -74,13 +74,12 @@ export class RdDBonus { /* -------------------------------------------- */ static _dmgArme(rollData) { - let dmg1 = 0; if ( rollData.arme) { let dmgBase = rollData.arme.data.dommagesReels ?? Number(rollData.arme.data.dommages ?? 0); - dmg1 = dmgBase + (rollData.arme.data.magique) ? rollData.arme.data.ecaille_efficacite : 0; - if (dmg1 > (dmgBase*2) ) dmg1 = dmgBase*2; // Le bonus déats magiques ne peut pas faire dépasser 2x le bonus de l'arme (cf p.278) + //Le bonus dégats magiques ne peut pas faire dépasser le bonus de l'arme (cf p.278) + return dmgBase + Math.min(dmgBase, rollData.arme.data.magique ? rollData.arme.data.ecaille_efficacite : 0); } - return dmg1; + return 0; } /* -------------------------------------------- */ From fc2420bfe1feb77ca686d3491c446ee1e560a5aa Mon Sep 17 00:00:00 2001 From: Vincent Vandemeulebrouck Date: Thu, 4 Feb 2021 01:21:29 +0100 Subject: [PATCH 4/5] =?UTF-8?q?Tirage=20des=20queues=20priv=C3=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit utilisation de rollMode: "gmroll" --- module/rdd-rolltables.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/module/rdd-rolltables.js b/module/rdd-rolltables.js index 644cce6c..8d7ba802 100644 --- a/module/rdd-rolltables.js +++ b/module/rdd-rolltables.js @@ -6,7 +6,7 @@ export class RdDRollTables { const index = await pack.getIndex(); const entry = index.find(e => e.name === tableName); const table = await pack.getEntity(entry._id); - const draw = await table.draw({ displayChat: toChat }); + const draw = await table.draw({ displayChat: toChat, rollMode: "gmroll"}); console.log("RdDRollTables", tableName, toChat, ":", draw); return draw; } From 9d219c5d2b408c306ea3aa985ce88b7e577651d8 Mon Sep 17 00:00:00 2001 From: Vincent Vandemeulebrouck Date: Thu, 4 Feb 2021 01:35:16 +0100 Subject: [PATCH 5/5] Fix rencontre RdD MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit pas de méthode async pour construire les messages dans une operation arrow --- module/tmr-rencontres.js | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/module/tmr-rencontres.js b/module/tmr-rencontres.js index 2f10f491..da24a414 100644 --- a/module/tmr-rencontres.js +++ b/module/tmr-rencontres.js @@ -227,9 +227,10 @@ const typeRencontres = { }, rdd: { - msgSucces: (data) => TMRRencontres.onSuccessReveDeDragon(data), - msgEchec: (data) => TMRRencontres.onEchecReveDeDragon(data), - postEchec: (tmrDialog, data) => tmrDialog.close(), + msgSucces: (data) => `A tout seigneur, tout honneur, vous faites face à un ${data.rencontre.name}. Vous le maîtrisez et récupérez ses rêves. Vous gagnez ses ${data.rencontre.force} points de rêve`, + msgEchec: (data) => `A tout seigneur, tout honneur, vous faites face à un ${data.rencontre.name}. La rencontre tourne au cauchemar, dans la lutte épique, vous subissez ${data.rolled.isETotal ? 'deux queues' : 'une queue'} de dragon!`, + postSucces: (tmrDialog, data) => TMRRencontres.onPostSuccessReveDeDragon(tmrDialog, data), + postEchec: (tmrDialog, data) => TMRRencontres.onPostSuccessReveDeDragon(tmrDialog, data), poesieSucces: { reference: "Rêve de Dragon, Denis Gerfaud", extrait: `Le monde est Rêve de Dragons, mais nous ne savons @@ -469,19 +470,16 @@ export class TMRRencontres { await tmrDialog.forceDemiRevePosition(coord) } - static async onSuccessReveDeDragon(data) { + static async onPostSuccessReveDeDragon(tmrDialog, data) { await data.actor.appliquerReveDeDragon(data.rolled, data.rencontre.force); if (data.rolled.isPart) { await data.actor.appliquerExperience(data.rolled, 'reve', data.competence); } - return `A tout seigneur, tout honneur, vous faites face à un ${data.rencontre.name}. Vous le maîtrisez et récupérez ses rêves. Vous gagnez ses ${data.rencontre.force} points de rêve, votre nouveau total est de " + tmrDialog.actor.data.data.reve.reve.value `; } - static async onEchecReveDeDragon(data) { + static async onPostEchecReveDeDragon(tmrDialog, data) { await data.actor.appliquerReveDeDragon(data.rolled, data.rencontre.force); - const queues = data.rolled.isETotal ? 'deux queues' : 'une queue'; - return `A tout seigneur, tout honneur, vous faites face à un ${data.rencontre.name}. La rencontre tourne au cauchemar, dans la lutte épique, vous subissez ${queues} de dragon!`; + tmrDialog.close(); } - }