diff --git a/changelog.md b/changelog.md index c1355261..286af35e 100644 --- a/changelog.md +++ b/changelog.md @@ -6,8 +6,9 @@ - Affichage du niveau d'esquive - Un clic sur l'initiative permet de lancer l'initiative - les boutons +/- pour la vie, l'endurance et la fatigue changent si on est à la valeur normale -- Fix: les achats des commerces sont de nouveau possibles - +- Fix + - les achats des commerces sont de nouveau possibles + - la commande /astro fonctionne de nouveau ## 12.0.16 - Le secret d'Astrobazzarh - Fix: les jets envoyés messages uniquement au MJ ne sont plus envoyés à tous les autres joueurs (et dupliqués) diff --git a/module/misc.js b/module/misc.js index a3f5f43d..76a93ff3 100644 --- a/module/misc.js +++ b/module/misc.js @@ -139,7 +139,7 @@ export class Misc { } static join(params, separator = '') { - return params?.reduce(Misc.joining(separator)) ?? ''; + return (!params || params.length == 0) ? '' : params.reduce(Misc.joining(separator)) } static joining(separator = '') { diff --git a/module/rdd-utility.js b/module/rdd-utility.js index 70950c74..59bc9809 100644 --- a/module/rdd-utility.js +++ b/module/rdd-utility.js @@ -609,12 +609,12 @@ export class RdDUtility { const encaissement = RdDUtility._selectEncaissement(jetTotal, rollData.dmg.mortalite); const over20 = Math.max(jetTotal - 20, 0); encaissement.dmg = rollData.dmg - if (ReglesOptionnelles.isUsing('localisation-aleatoire')){ + if (ReglesOptionnelles.isUsing('localisation-aleatoire')) { encaissement.dmg.loc = rollData.dmg.loc ?? await RdDUtility.getLocalisation(actor.type) encaissement.dmg.loc.label = encaissement.dmg.loc.label ?? 'Corps;' } - else{ - encaissement.dmg.loc = {label:''} + else { + encaissement.dmg.loc = { label: '' } } encaissement.dmg.bonusDegatsDiffLibre = bonusDegatsDiffLibre encaissement.roll = roll; @@ -749,7 +749,7 @@ export class RdDUtility { static getSelectedToken(actor) { if (canvas.tokens.controlled.length > 0) { const tokens = canvas.tokens.controlled - .filter(it => it.actor.id == actor.id) + .filter(it => it.actor.id == actor.id) return tokens[0] } return undefined @@ -881,10 +881,10 @@ export class RdDUtility { /* -------------------------------------------- */ static afficherHeuresChanceMalchance(heureNaissance) { if (game.user.isGM) { - const heure = RdDTimestamp.findHeure(heureNaissance - 1); + const heure = RdDTimestamp.findHeure(heureNaissance) if (heureNaissance && heure) { - let ajustement = game.system.rdd.calendrier.getAjustementAstrologique(heureNaissance); - const current = game.system.rdd.calendrier.heureCourante(); + const ajustement = game.system.rdd.calendrier.getAjustementAstrologique(heureNaissance) + const current = game.system.rdd.calendrier.heureCourante() ChatMessage.create({ content: `A l'heure de ${current.label}, le modificateur de Chance/Malchance est de ${Misc.toSignedString(ajustement)} pour l'heure de naissance ${heure.label}.`, whisper: ChatUtility.getGMs() diff --git a/module/time/rdd-timestamp.js b/module/time/rdd-timestamp.js index 27a5a80f..b1cb827b 100644 --- a/module/time/rdd-timestamp.js +++ b/module/time/rdd-timestamp.js @@ -160,15 +160,21 @@ export class RdDTimestamp { } static findHeure(heure) { - heure = Grammar.toLowerCaseNoAccentNoSpace(heure); - let parHeureOuLabel = DEFINITION_HEURES.filter(it => Grammar.toLowerCaseNoAccentNoSpace(it.label) == heure || it.heure == Misc.modulo(parseInt(heure), RDD_HEURES_PAR_JOUR)); - if (parHeureOuLabel.length == 1) { - return parHeureOuLabel[0]; + let filtered + if (Number.isInteger(Number(heure))) { + filtered = DEFINITION_HEURES.filter(it => it.heure == Misc.modulo(Number(heure) - 1, RDD_HEURES_PAR_JOUR)) } - let parLabelPartiel = DEFINITION_HEURES.filter(it => Grammar.toLowerCaseNoAccentNoSpace(it.label).includes(heure)); - if (parLabelPartiel.length > 0) { - parLabelPartiel.sort(Misc.ascending(h => h.label.length)); - return parLabelPartiel[0]; + else { + heure = Grammar.toLowerCaseNoAccentNoSpace(heure); + filtered = DEFINITION_HEURES.filter(it => Grammar.toLowerCaseNoAccentNoSpace(it.label) == heure || it.heure == Misc.modulo(parseInt(heure), RDD_HEURES_PAR_JOUR)); + } + if (filtered.length == 1) { + return filtered[0] + } + filtered = DEFINITION_HEURES.filter(it => Grammar.toLowerCaseNoAccentNoSpace(it.label).includes(heure)); + if (filtered.length > 0) { + filtered.sort(Misc.ascending(h => h.label.length)); + return filtered[0] } return undefined; }