forked from public/foundryvtt-reve-de-dragon
Généralisation des fréquences
Tout objet d'inventaire a une fréquence (en ville/village, ou autre milieu)
This commit is contained in:
@ -2,7 +2,7 @@ import { RdDItem } from '../item.js';
|
||||
import { HtmlUtility } from '../html-utility.js';
|
||||
import { Misc } from "../misc.js";
|
||||
import { CompendiumTableHelpers } from '../settings/system-compendiums.js';
|
||||
import { RdDRaretes } from './raretes.js';
|
||||
import { RdDRaretes } from '../item/raretes.js';
|
||||
|
||||
const FILTER_GROUPS = [
|
||||
{ group: 'type', label: "Type d'objet" },
|
||||
|
@ -1,64 +0,0 @@
|
||||
|
||||
const RARETE_COMMUNE = { code: 'Commune', label: 'Commune', frequence: 54, min: 27, max: 108 };
|
||||
const RARETE_FREQUENTE = { code: 'Frequente', label: 'Fréquente', frequence: 18, min: 9, max: 36 };
|
||||
const RARETE_RARE = { code: 'Rare', label: 'Rare', frequence: 6, min: 3, max: 12 };
|
||||
const RARETE_RARISSIME = { code: 'Rarissime', label: 'Rarissime', frequence: 2, min: 1, max: 4 };
|
||||
const RARETE_INEXISTANT = { code: 'Inexistant', label: 'Inexistant', frequence: 0, min: 0, max: 0 };
|
||||
|
||||
const RARETES = [
|
||||
RARETE_COMMUNE,
|
||||
RARETE_FREQUENTE,
|
||||
RARETE_RARE,
|
||||
RARETE_RARISSIME,
|
||||
RARETE_INEXISTANT,
|
||||
]
|
||||
|
||||
export class RdDRaretes {
|
||||
|
||||
static getRarete(code = undefined) {
|
||||
return RARETES.find(it => it.code == code) ?? RARETE_FREQUENTE;
|
||||
}
|
||||
|
||||
static getChamp(rarete, field = undefined) {
|
||||
const selected = this.getRarete(rarete);
|
||||
return field ? selected[field] : selected[frequence];
|
||||
}
|
||||
|
||||
static rareteFrequente() {
|
||||
return RARETE_FREQUENTE;
|
||||
}
|
||||
|
||||
static raretes() {
|
||||
return RARETES;
|
||||
}
|
||||
|
||||
static selonEnvironnement(item, milieux = undefined) {
|
||||
const list = item.getEnvironnement(milieux);
|
||||
const freqMax = Math.max(0, ...list.map(env => env.frequence));
|
||||
const env = list.find(env => env.frequence == freqMax);
|
||||
if (env) {
|
||||
return RdDRaretes.getRarete(env.rarete)
|
||||
}
|
||||
if (milieux == undefined) {
|
||||
return RdDRaretes.selonQualite(item)
|
||||
}
|
||||
return RARETE_INEXISTANT;
|
||||
}
|
||||
|
||||
static selonQualite(item) {
|
||||
const qualite = item.system.qualite ?? 0;
|
||||
if (qualite <= 0) {
|
||||
return RARETE_COMMUNE
|
||||
}
|
||||
if (qualite <= 3) {
|
||||
return RARETE_FREQUENTE
|
||||
}
|
||||
if (qualite <= 6) {
|
||||
return RARETE_RARE
|
||||
}
|
||||
if (qualite <= 9) {
|
||||
return RARETE_RARISSIME
|
||||
}
|
||||
return RARETE_INEXISTANT
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user