61 lines
2.2 KiB
JavaScript
61 lines
2.2 KiB
JavaScript
import HawkmoonActorSheet from "./base-actor-sheet.mjs"
|
|
import { HawkmoonUtility } from "../../hawkmoon-utility.js"
|
|
|
|
export default class HawkmoonCreatureSheet extends HawkmoonActorSheet {
|
|
/** @override */
|
|
static DEFAULT_OPTIONS = {
|
|
...super.DEFAULT_OPTIONS,
|
|
classes: [...super.DEFAULT_OPTIONS.classes],
|
|
window: {
|
|
...super.DEFAULT_OPTIONS.window,
|
|
title: "SHEETS.Actor.creature",
|
|
},
|
|
}
|
|
|
|
/** @override */
|
|
static PARTS = {
|
|
sheet: {
|
|
template: "systems/fvtt-hawkmoon-cyd/templates/creature-sheet.hbs",
|
|
},
|
|
}
|
|
|
|
/** @override */
|
|
tabGroups = { primary: "principal" }
|
|
|
|
/** @override */
|
|
async _prepareContext() {
|
|
const context = await super._prepareContext()
|
|
const actor = this.document
|
|
|
|
// Add creature-specific data
|
|
context.skills = actor.getSkills ? actor.getSkills() : []
|
|
context.armes = foundry.utils.duplicate(actor.getWeapons ? actor.getWeapons() : [])
|
|
context.protections = foundry.utils.duplicate(actor.getArmors ? actor.getArmors() : [])
|
|
context.combat = actor.getCombatValues ? actor.getCombatValues() : {}
|
|
context.equipements = foundry.utils.duplicate(actor.getEquipments ? actor.getEquipments() : [])
|
|
context.talents = foundry.utils.duplicate(actor.getTalents ? actor.getTalents() : [])
|
|
context.talentsCell = this.#getCelluleTalents()
|
|
context.nbCombativite = actor.system.sante?.nbcombativite || 0
|
|
context.combativiteList = HawkmoonUtility.getCombativiteList(actor.system.sante?.nbcombativite || 0)
|
|
context.initiative = actor.getFlag("world", "last-initiative") || -1
|
|
context.enrichedDescription = await foundry.applications.ux.TextEditor.implementation.enrichHTML(actor.system.biodata?.description || "", { async: true })
|
|
context.enrichedHabitat = await foundry.applications.ux.TextEditor.implementation.enrichHTML(actor.system.biodata?.habitat || "", { async: true })
|
|
|
|
return context
|
|
}
|
|
|
|
/**
|
|
* Get talents from attached cellule
|
|
* @private
|
|
*/
|
|
#getCelluleTalents() {
|
|
const celluleId = this.actor.system?.details?.celluleid
|
|
if (!celluleId) return []
|
|
|
|
const cellule = game.actors.get(celluleId)
|
|
if (!cellule) return []
|
|
|
|
return foundry.utils.duplicate(cellule.getTalents?.() || [])
|
|
}
|
|
}
|