forked from public/foundryvtt-reve-de-dragon
Création du compendium Faune, Flore, Minéraux
- les tables d'environnement se basent sur ce seul compendium - les tables de compendiums peuvent chercher plusieurs types d'items - déplacement de la botanique - déplacement des sels alchimiques depuis l'équipement - modification de l'équipement de départ - modification des acteurs (lien vers compendium de l'item source)
This commit is contained in:
@ -26,18 +26,13 @@ const MILIEUX = [
|
||||
const ITEM_ENVIRONNEMENT_TYPES = [
|
||||
'herbe', 'ingredient'
|
||||
]
|
||||
const COMPENDIUMS_ENVIRONNEMENT = [
|
||||
{ type: 'Item', subType: 'herbe', compendium: 'botanique' },
|
||||
{ type: 'Item', subType: 'ingredient', compendium: 'botanique' },
|
||||
{ type: 'Item', subType: 'ingredient', compendium: 'equipement' },
|
||||
]
|
||||
|
||||
export class Environnement {
|
||||
|
||||
static init() {
|
||||
game.settings.register(SYSTEM_RDD, SETTINGS_LISTE_MILIEUX, {
|
||||
name: "Liste des milieux proposés",
|
||||
hint: "Liste des noms de milieux proposés, séparés par des virgules",
|
||||
hint: "Liste des milieux proposés pour la faune&flore, séparés par des virgules",
|
||||
scope: "world",
|
||||
config: true,
|
||||
default: MILIEUX.reduce(Misc.joining(',')),
|
||||
@ -63,7 +58,7 @@ export class Environnement {
|
||||
const milieux = new Set(this.getMilieuxSettings());
|
||||
const elements = await this.getElements(it => 1, it => ITEM_ENVIRONNEMENT_TYPES.includes(it.type));
|
||||
elements.forEach(it => it.system.environnement.forEach(env => milieux.add(env.milieu)))
|
||||
return [...milieux];
|
||||
return [...milieux];
|
||||
}
|
||||
|
||||
getMilieuxSettings() {
|
||||
@ -76,32 +71,25 @@ export class Environnement {
|
||||
|
||||
async searchToChatMessage(search) {
|
||||
const table = await this.buildEnvironnementTable(search);
|
||||
await CompendiumTableHelpers.tableToChatMessage(table, 'Item', 'herbe', 'Ressource naturelle');
|
||||
await CompendiumTableHelpers.tableToChatMessage(table, 'Item', ITEM_ENVIRONNEMENT_TYPES, `ressources en "${search}"`);
|
||||
return true
|
||||
}
|
||||
|
||||
async getRandom(search) {
|
||||
const table = await this.buildEnvironnementTable(search);
|
||||
const row = await CompendiumTableHelpers.getRandom(table, 'Item', 'herbe', undefined, 'Ressource naturelle');
|
||||
return row
|
||||
return await CompendiumTableHelpers.getRandom(table, 'Item', ITEM_ENVIRONNEMENT_TYPES, undefined, `ressources en "${search}"`);
|
||||
}
|
||||
|
||||
async buildEnvironnementTable(search) {
|
||||
const itemRareteEnMilieu = item => item.system?.environnement.find(env => Grammar.includesLowerCaseNoAccent(env.milieu, search));
|
||||
const itemFrequenceEnMilieu = item => itemRareteEnMilieu(item)?.frequence ?? 0;
|
||||
const isPresentEnMilieu = item => itemFrequenceEnMilieu(item) > 0;
|
||||
let elements = await this.getElements(itemFrequenceEnMilieu, isPresentEnMilieu);
|
||||
return CompendiumTableHelpers.buildTable(elements, itemFrequenceEnMilieu);
|
||||
return await this.table.buildTable(itemFrequenceEnMilieu, isPresentEnMilieu);
|
||||
}
|
||||
|
||||
|
||||
async getElements(itemFrequence, filter) {
|
||||
let elements = [];
|
||||
for (let c of COMPENDIUMS_ENVIRONNEMENT) {
|
||||
const fromCompendium = await c.table.getContent(itemFrequence, filter);
|
||||
elements = elements.concat(fromCompendium);
|
||||
}
|
||||
return elements;
|
||||
return await this.table.getContent(itemFrequence, filter);
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user