Support /astro avec noms partiels ou numériques
=> fix /astro Château Dromant => support /astro chat => support /astro 12
This commit is contained in:
parent
3a8a8fa5fb
commit
080a8b51b3
@ -325,11 +325,26 @@ export class RdDCalendrier extends Application {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
findHeure(heure) {
|
||||||
|
heure = Grammar.toLowerCaseNoAccent(heure);
|
||||||
|
let parHeureOuLabel = Object.values(heuresDef).filter(it => (it.heure+1) == heure || Grammar.toLowerCaseNoAccent(it.label) == heure);
|
||||||
|
if (parHeureOuLabel.length == 1) {
|
||||||
|
return parHeureOuLabel[0];
|
||||||
|
}
|
||||||
|
let parLabelPartiel = Object.values(heuresDef).filter(it => Grammar.toLowerCaseNoAccent(it.label).includes(heure));
|
||||||
|
const matchLength = heure.length;
|
||||||
|
if(parLabelPartiel.length > 0) {
|
||||||
|
parLabelPartiel.sort((a,b)=> (a.label.length - matchLength)^2 - (b.label.length- matchLength)^2);
|
||||||
|
return parLabelPartiel[0];
|
||||||
|
}
|
||||||
|
return undefined;
|
||||||
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
getAjustementAstrologique(heureNaissance, name = 'inconnu') {
|
getAjustementAstrologique(heureNaissance, name = undefined) {
|
||||||
let heure = Grammar.toLowerCaseNoAccent(heureNaissance);
|
let defHeure = this.findHeure(heureNaissance);
|
||||||
if (heure && heuresDef[heure]) {
|
if (defHeure) {
|
||||||
let hn = heuresDef[heure].heure;
|
let hn = defHeure.heure;
|
||||||
let chiffreAstral = this.getCurrentNombreAstral() ?? 0;
|
let chiffreAstral = this.getCurrentNombreAstral() ?? 0;
|
||||||
let heureCourante = this.calendrier.heureRdD;
|
let heureCourante = this.calendrier.heureRdD;
|
||||||
let ecartChance = (hn + chiffreAstral - heureCourante) % 12;
|
let ecartChance = (hn + chiffreAstral - heureCourante) % 12;
|
||||||
@ -340,9 +355,12 @@ export class RdDCalendrier extends Application {
|
|||||||
case 3: case 9: return -2;
|
case 3: case 9: return -2;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else if (name) {
|
||||||
ui.notifications.warn(name + " n'a pas d'heure de naissance, ou elle est incorrecte : " + heureNaissance);
|
ui.notifications.warn(name + " n'a pas d'heure de naissance, ou elle est incorrecte : " + heureNaissance);
|
||||||
}
|
}
|
||||||
|
else{
|
||||||
|
ui.notifications.warn(heureNaissance+" ne correspond pas à une heure de naissance");
|
||||||
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -79,9 +79,11 @@ export class RdDCommands {
|
|||||||
<br><strong>/payer 10d</strong> permet d'envoyer un message pour payer 10 deniers`
|
<br><strong>/payer 10d</strong> permet d'envoyer un message pour payer 10 deniers`
|
||||||
});
|
});
|
||||||
rddCommands.registerCommand({
|
rddCommands.registerCommand({
|
||||||
path: ["/astro"], func: (content, msg, params) => RdDUtility.afficherHeuresChanceMalchance(params[0]),
|
path: ["/astro"], func: (content, msg, params) => RdDUtility.afficherHeuresChanceMalchance(RdDCommands.toParamString(params)),
|
||||||
descr: `Affiche les heures de chance et de malchance selon l'heure de naissance donnée en argument. Exemples:
|
descr: `Affiche les heures de chance et de malchance selon l'heure de naissance donnée en argument. Exemples pour l'heure de la Lyre:
|
||||||
<br><strong>/astro Lyre</strong>`
|
<br><strong>/astro 7</strong>
|
||||||
|
<br><strong>/astro Lyre</strong>
|
||||||
|
<br><strong>/astro Lyr</strong>`
|
||||||
});
|
});
|
||||||
|
|
||||||
rddCommands.registerCommand({
|
rddCommands.registerCommand({
|
||||||
@ -109,6 +111,10 @@ export class RdDCommands {
|
|||||||
this.commandsTable = {};
|
this.commandsTable = {};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static toParamString(params) {
|
||||||
|
return params.length == 1 ? params[0] : params.reduce((a, b) => `${a} ${b}`, '');
|
||||||
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
registerCommand(command) {
|
registerCommand(command) {
|
||||||
this._addCommand(this.commandsTable, command.path, '', command);
|
this._addCommand(this.commandsTable, command.path, '', command);
|
||||||
|
@ -830,13 +830,18 @@ export class RdDUtility {
|
|||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
static afficherHeuresChanceMalchance(heureNaissance) {
|
static afficherHeuresChanceMalchance(heureNaissance) {
|
||||||
if ( game.user.isGM) {
|
if ( game.user.isGM) {
|
||||||
if (heureNaissance) {
|
let heure = game.system.rdd.calendrier.findHeure(heureNaissance);
|
||||||
|
if (heureNaissance && heure) {
|
||||||
let ajustement = game.system.rdd.calendrier.getAjustementAstrologique(heureNaissance);
|
let ajustement = game.system.rdd.calendrier.getAjustementAstrologique(heureNaissance);
|
||||||
|
const current = game.system.rdd.calendrier.findHeure(game.system.rdd.calendrier.getCurrentHeure());
|
||||||
ChatMessage.create({
|
ChatMessage.create({
|
||||||
content: `A l'heure ${game.system.rdd.calendrier.getCurrentHeure()}, le modificateur de Chance/Malchance pour l'heure de naissance ${heureNaissance} est de : ${ajustement}.`,
|
content: `A l'heure de <strong>${current.label}</strong>, le modificateur de Chance/Malchance est de <strong>${Misc.toSignedString(ajustement)}</strong> pour l'heure de naissance <strong>${heure.label}</strong>.`,
|
||||||
whisper: ChatMessage.getWhisperRecipients("GM")
|
whisper: ChatMessage.getWhisperRecipients("GM")
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
else if (heureNaissance) {
|
||||||
|
ui.notifications.warn(heureNaissance+" ne correspond pas à une heure de naissance");
|
||||||
|
}
|
||||||
else {
|
else {
|
||||||
ui.notifications.warn("Pas d'heure de naissance selectionnée");
|
ui.notifications.warn("Pas d'heure de naissance selectionnée");
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user