80 lines
2.4 KiB
JavaScript
80 lines
2.4 KiB
JavaScript
Hooks.once("init", function() {
|
|
console.log("INIT");
|
|
|
|
CONFIG.Actor.dataModels.Player = DSA41_CharacterData;
|
|
|
|
//DocumentSheetConfig.unregisterSheet(Actor, "core", ActorSheet);
|
|
DocumentSheetConfig.registerSheet(Actor, "dsa41", DSA41_ActorSheet, {
|
|
makeDefault: true,
|
|
types: [
|
|
"Player",
|
|
]
|
|
});
|
|
|
|
//DocumentSheetConfig.unregisterSheet(Item, "core", ItemSheet);
|
|
DocumentSheetConfig.registerSheet(Item, "dsa41", DSA41_ItemSheet, {
|
|
makeDefault: true,
|
|
types: [
|
|
"Generic Item",
|
|
"Melee Weapon",
|
|
"Ranged Weapon",
|
|
"Armor",
|
|
"Shield",
|
|
]
|
|
});
|
|
});
|
|
|
|
const { SchemaField, NumberField, StringField } = foundry.data.fields;
|
|
|
|
class AttributeField extends foundry.data.fields.SchemaField {
|
|
constructor() {
|
|
return super({
|
|
initial: new NumberField({ integer: true, initial: 8, min: 8, max: 14, }),
|
|
advancement: new NumberField({ integer: true, initial: 0, min: 0, max: 4, }),
|
|
modifier: new NumberField({ integer: true, initial: 0, min: 0, }),
|
|
});
|
|
}
|
|
}
|
|
|
|
class DSA41_CharacterData extends foundry.abstract.TypeDataModel {
|
|
static defineSchema() {
|
|
return {
|
|
race: new StringField(),
|
|
culture: new StringField(),
|
|
profession: new StringField(),
|
|
|
|
attributes: new SchemaField({
|
|
courage: new AttributeField(),
|
|
cleverness: new AttributeField(),
|
|
intuition: new AttributeField(),
|
|
charisma: new AttributeField(),
|
|
dexterity: new AttributeField(),
|
|
agility: new AttributeField(),
|
|
constitution: new AttributeField(),
|
|
strength: new AttributeField(),
|
|
}),
|
|
}
|
|
}
|
|
|
|
prepareDerivedData() {
|
|
super.prepareDerivedData();
|
|
this.computed = {};
|
|
|
|
for (const [attribute, values] of Object.entries(this.attributes)) {
|
|
this.computed[attribute] = Object.values(values).reduce((a, b) => a + b, 0);
|
|
}
|
|
}
|
|
}
|
|
|
|
class DSA41_ActorSheet extends ActorSheet {
|
|
get template() {
|
|
return "systems/dsa-4th-edition/src/ActorSheet.html";
|
|
}
|
|
}
|
|
|
|
class DSA41_ItemSheet extends ItemSheet {
|
|
get template() {
|
|
return "systems/dsa-4th-edition/src/ItemSheets/" + this.item.type + ".html";
|
|
}
|
|
}
|