Fréquences par milieu pour l'environnement

Les herbes et les ingrédients peuvent être cherchées/tirées
This commit is contained in:
Vincent Vandemeulebrouck
2022-11-28 11:31:19 +01:00
parent b7a8b0c08d
commit b7a0e5d034
23 changed files with 702 additions and 158 deletions

View File

@ -1,5 +1,5 @@
import { Grammar } from "./grammar.js";
import { SystemCompendiums } from "./settings/system-compendiums.js";
import { CompendiumTable, CompendiumTableHelpers, SystemCompendiums } from "./settings/system-compendiums.js";
export class RdDRollTables {
@ -37,7 +37,7 @@ export class RdDRollTables {
/* -------------------------------------------- */
static async getCompetence(toChat = false) {
if (toChat == 'liste') {
return await SystemCompendiums.chatTableItems('competences', 'Item', 'competence', it => 1);
return await RdDRollTables.listOrRoll('competences', 'Item', 'competence', toChat, it => 1);
}
else {
return await RdDRollTables.drawItemFromRollTable("Détermination aléatoire de compétence", toChat);
@ -55,13 +55,15 @@ export class RdDRollTables {
}
static async getDesirLancinant(toChat = false) {
return await RdDRollTables.listOrRoll('queues-de-dragon', 'Item', 'queue', toChat, it => it.system.frequence,
it => it.system.categorie == 'lancinant' );
return await RdDRollTables.listOrRoll('queues-de-dragon', 'Item', 'queue', toChat,
it => it.system.frequence,
it => it.system.categorie == 'lancinant');
}
static async getIdeeFixe(toChat = false) {
return await RdDRollTables.listOrRoll('queues-de-dragon', 'Item', 'queue', toChat, it => it.system.frequence,
it => it.system.categorie == 'ideefixe' );
return await RdDRollTables.listOrRoll('queues-de-dragon', 'Item', 'queue', toChat,
it => it.system.frequence,
it => it.system.categorie == 'ideefixe');
}
/* -------------------------------------------- */
@ -86,10 +88,15 @@ export class RdDRollTables {
/* -------------------------------------------- */
static async listOrRoll(compendium, type, subType, toChat, itemFrequence = it => it.system.frequence, filter = it => true) {
const table = new CompendiumTable(compendium, type, subType);
if (toChat == 'liste') {
return await SystemCompendiums.chatTableItems(compendium, type, subType, itemFrequence, filter);
return await table.toChatMessage(itemFrequence, filter);
}
return await SystemCompendiums.getRandom(compendium, type, subType, toChat, itemFrequence, filter);
const row = await table.getRandom(itemFrequence, filter);
if (row) {
await CompendiumTableHelpers.tableRowToChatMessage(row, type);
}
return row;
}
/* -------------------------------------------- */