forked from public/foundryvtt-reve-de-dragon
Ajout feuille encart
Feuille de PNJ au format des encarts Scriptarium. Aucune possibilité de jets de dés pour l'instant.
This commit is contained in:
@ -5,12 +5,12 @@ import { Misc } from "./misc.js";
|
||||
import { TMRUtility } from "./tmr-utility.js";
|
||||
|
||||
const VOIES_DRACONIC = [
|
||||
{ code: 'O', label: "Voie d'Oniros", short: 'Oniros' },
|
||||
{ code: 'H', label: "Voie d'Hypnos", short: 'Hypnos' },
|
||||
{ code: 'N', label: "Voie de Narcos", short: 'Narcos' },
|
||||
{ code: 'T', label: "Voie de Thanatos", short: 'Thanatos' },
|
||||
{ code: 'O/H/N/T', label: "Oniros/Hypnos/Narcos/Thanatos", short: 'Oniros/Hypnos/Narcos/Thanatos' },
|
||||
{ code: 'O/H/N', label: "Oniros/Hypnos/Narcos" }
|
||||
{ code: 'O', label: "Voie d'Oniros", short: 'Oniros', ordre: 'a' },
|
||||
{ code: 'H', label: "Voie d'Hypnos", short: 'Hypnos', ordre: 'b' },
|
||||
{ code: 'N', label: "Voie de Narcos", short: 'Narcos', ordre: 'c' },
|
||||
{ code: 'T', label: "Voie de Thanatos", short: 'Thanatos', ordre: 'd' },
|
||||
{ code: 'O/H/N/T', label: "Oniros/Hypnos/Narcos/Thanatos", short: 'Oniros/Hypnos/Narcos/Thanatos', ordre: 'e' },
|
||||
{ code: 'O/H/N', label: "Oniros/Hypnos/Narcos", short: "Oniros/Hypnos/Narcos", ordre: 'f' }
|
||||
]
|
||||
|
||||
/* -------------------------------------------- */
|
||||
@ -27,17 +27,33 @@ export class RdDItemSort extends Item {
|
||||
return [RdDItemCompetence.getVoieDraconic(draconicList, sort.system.draconic)];
|
||||
}
|
||||
|
||||
static getCodeDraconic(sort) {
|
||||
static getOrdreCode(code) {
|
||||
return (VOIES_DRACONIC.find(it => it.code == code)?.ordre ?? '?')
|
||||
}
|
||||
|
||||
static getVoieCode(voie) {
|
||||
return VOIES_DRACONIC.find(it => voie.name.includes(it.short))?.code ?? '?'
|
||||
}
|
||||
|
||||
static getCodeDraconic(sort, voies = ['O', 'H', 'N', 'T']) {
|
||||
switch (Grammar.toLowerCaseNoAccent(sort.name)) {
|
||||
case "lecture d'aura":
|
||||
case "detection d'aura":
|
||||
return 'O/H/N/T'
|
||||
return RdDItemSort.$voiesConnues('O/H/N/T', voies)
|
||||
case "annulation de magie":
|
||||
return 'O/H/N'
|
||||
return RdDItemSort.$voiesConnues('O/H/N', voies)
|
||||
}
|
||||
const voie = VOIES_DRACONIC.find(it => it.label.includes(sort.system.draconic))
|
||||
return voie?.code ?? sort.system.draconic
|
||||
}
|
||||
|
||||
|
||||
static $voiesConnues(voiesSort, voies) {
|
||||
const codes = voies.filter(it => voiesSort.includes(it))
|
||||
.sort(Misc.ascending(it => RdDItemSort.getOrdreCode(it)))
|
||||
return Misc.join(codes ?? [''], '/');
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
static isDifficulteVariable(sort) {
|
||||
return sort && (sort.system.difficulte.toLowerCase() == "variable");
|
||||
@ -67,7 +83,7 @@ export class RdDItemSort extends Item {
|
||||
static buildBonusCaseList(bonuscase, newCase) {
|
||||
const list = RdDItemSort.bonuscaseStringToList(bonuscase)
|
||||
if (newCase) {
|
||||
list.push({ case: "Nouvelle", bonus: 0 })
|
||||
list.push({ case: "Nouvelle", bonus: 0 })
|
||||
}
|
||||
return list;
|
||||
}
|
||||
|
Reference in New Issue
Block a user