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