forked from public/foundryvtt-reve-de-dragon
Amélioration recherche dans un milieu
Si la recherche est sur un milieu exact, seul ce millieu est considéré. ie: chercher en "Forêts" ne cherchera pas en "Forêts humides". Le recherche en "for" cherchera dans tous les milieux contenant "for". Un message d'avertissement est affiché, et la description de la table contient la liste des milieux correspondants. Si plusieurs milieux cherchés ont une fréquence pour une ressource, la fréquence la plus élevée est utilisée.
This commit is contained in:
@ -382,15 +382,20 @@ export class RdDCommands {
|
||||
async tableMilieu(msg, params, toChat) {
|
||||
if (params && params.length > 0) {
|
||||
const search = Misc.join(params, ' ');
|
||||
const searches = game.system.rdd.environnement.findEnvironnementsLike(search);
|
||||
if (searches.length == 0) {
|
||||
const milieux = await game.system.rdd.environnement.findEnvironnementsLike(search);
|
||||
if (milieux.length == 0) {
|
||||
return RdDCommands._chatAnswer(msg, 'Aucun milieu correspondant à ' + search);
|
||||
}
|
||||
if (milieux.length > 1) {
|
||||
ui.notifications.warn(`<strong>Plusieurs milieux correspondent à '${search}'</strong>:
|
||||
<br><ul><li>${milieux.reduce(Misc.joining('</li><li>'))}</li></ul>`);
|
||||
}
|
||||
const tableName = `ressources en ${milieux.reduce(Misc.joining(', '))}`;
|
||||
if (toChat == 'liste') {
|
||||
return await game.system.rdd.environnement.searchToChatMessage(search);
|
||||
return await game.system.rdd.environnement.searchToChatMessage(milieux, tableName);
|
||||
}
|
||||
else {
|
||||
const row = await game.system.rdd.environnement.getRandom(search);
|
||||
const row = await game.system.rdd.environnement.getRandom(milieux, tableName);
|
||||
await CompendiumTableHelpers.tableRowToChatMessage(row, 'Item');
|
||||
return true;
|
||||
}
|
||||
|
Reference in New Issue
Block a user