forked from public/foundryvtt-reve-de-dragon
Armes sur la fiche de PNJ
This commit is contained in:
@ -39,7 +39,8 @@ export class RdDActorExportSheet extends RdDActorSheet {
|
||||
async getData() {
|
||||
const formData = await super.getData()
|
||||
// Add any structured, precomputed list of data
|
||||
formData.export = this.getMappingValues();
|
||||
formData.context = Mapping.prepareContext(this.actor)
|
||||
formData.export = this.getMappingValues(formData.context, this.actor)
|
||||
formData.competences = this.getCompetences(CATEGORIES_COMPETENCES)
|
||||
formData.draconic = this.getCompetences(CATEGORIES_DRACONIC)
|
||||
const legeres = this.actor.nbBlessuresLegeres()
|
||||
@ -59,13 +60,12 @@ export class RdDActorExportSheet extends RdDActorSheet {
|
||||
return formData
|
||||
}
|
||||
|
||||
getMappingValues() {
|
||||
const context = Mapping.prepareContext(this.actor)
|
||||
getMappingValues(context, actor) {
|
||||
return Object.fromEntries(Mapping.getMapping().map(it => [it.column, {
|
||||
colName: it.colName ?? it.column,
|
||||
column: it.column,
|
||||
rollClass: it.rollClass,
|
||||
value: String(it.getter(this.actor, context))
|
||||
value: String(it.getter(actor, context))
|
||||
}]))
|
||||
}
|
||||
|
||||
|
@ -142,11 +142,11 @@ export class Mapping {
|
||||
const armes = actor.items.filter(it => it.type == ITEM_TYPES.arme)
|
||||
return armes.map(arme =>
|
||||
[
|
||||
arme.system.tir != "" ? Mapping.prepareArme(actor, arme, 'tir') : undefined,
|
||||
arme.system.lancer = "" ? Mapping.prepareArme(actor, arme, 'lancer') : undefined,
|
||||
arme.system.unemain ? Mapping.prepareArme(actor, arme, 'unemain') : undefined,
|
||||
arme.system.deuxmains ? Mapping.prepareArme(actor, arme, 'deuxmains') : undefined,
|
||||
!(arme.system.unemain || arme.system.deuxmains) ? Mapping.prepareArme(actor, arme, 'competence') : undefined
|
||||
!(arme.system.unemain || arme.system.deuxmains) ? Mapping.prepareArme(actor, arme, 'competence') : undefined,
|
||||
arme.system.lancer != "" ? Mapping.prepareArme(actor, arme, 'lancer') : undefined,
|
||||
arme.system.tir != "" ? Mapping.prepareArme(actor, arme, 'tir') : undefined
|
||||
]
|
||||
.filter(it => it != undefined)
|
||||
).reduce((a, b) => a.concat(b), [])
|
||||
@ -160,14 +160,27 @@ export class Mapping {
|
||||
}
|
||||
const dmgArme = RdDItemArme.dommagesReels(arme, maniement)
|
||||
const dommages = dmgArme + RdDBonus.bonusDmg(actor, maniement, dmgArme)
|
||||
const categorie = Mapping.complementCategorie(arme, maniement)
|
||||
return {
|
||||
name: arme.name,
|
||||
name: arme.name + categorie,
|
||||
niveau: Misc.toSignedString(competence.system.niveau),
|
||||
init: Mapping.calculBaseInit(actor, competence.system.categorie) + competence.system.niveau,
|
||||
dommages: Misc.toSignedString(dommages)
|
||||
dommages: Misc.toSignedString(dommages),
|
||||
competence: competence,
|
||||
arme: arme
|
||||
}
|
||||
}
|
||||
|
||||
static complementCategorie(arme, maniement) {
|
||||
switch (maniement) {
|
||||
case 'unemain': return (arme.system.deuxmains) ? ' 1 main' : (arme.system.lancer||arme.system.tir) ? ' mêlée': ''
|
||||
case 'deuxmains': return (arme.system.unemain) ? ' 2 mains' : (arme.system.lancer||arme.system.tir) ? ' mêlée': ''
|
||||
case 'lancer': return (arme.system.unemain || arme.system.deuxmains || arme.system.tir) ? ' jet' : ''
|
||||
case 'tir': return (arme.system.unemain || arme.system.deuxmains || arme.system.lancer) ? ' tir' : ''
|
||||
}
|
||||
return ''
|
||||
}
|
||||
|
||||
static calculBaseInit(actor, categorie) {
|
||||
const mapping = MAPPING_BASE.find(it => it.column == categorie)
|
||||
if (mapping) {
|
||||
|
Reference in New Issue
Block a user