40 lines
2.0 KiB
JavaScript
40 lines
2.0 KiB
JavaScript
import { BaseItemDataModel } from "./base-item.mjs"
|
|
|
|
export default class MetierDataModel extends BaseItemDataModel {
|
|
static defineSchema() {
|
|
const fields = foundry.data.fields
|
|
return {
|
|
...this.defineBaseSchema(),
|
|
specialRules: new fields.HTMLField({ initial: "" }),
|
|
roleplayNotes: new fields.HTMLField({ initial: "" }),
|
|
skillBonuses: new fields.ArrayField(new fields.SchemaField({
|
|
key: new fields.StringField({ initial: "" }),
|
|
alternativeKeys: new fields.ArrayField(new fields.StringField(), { initial: [] }),
|
|
base: new fields.NumberField({ initial: 0, integer: true, min: 0 }),
|
|
domainsGranted: new fields.ArrayField(new fields.StringField(), { initial: [] }),
|
|
domainsToChoose: new fields.NumberField({ initial: 0, integer: true, min: 0 }),
|
|
domainsChoiceText: new fields.StringField({ initial: "" }),
|
|
}), { initial: [] }),
|
|
startingEquipment: new fields.ArrayField(new fields.SchemaField({
|
|
name: new fields.StringField({ initial: "" }),
|
|
type: new fields.StringField({ initial: "equipement" }),
|
|
quantity: new fields.NumberField({ initial: 1, integer: true, min: 0 }),
|
|
details: new fields.StringField({ initial: "" }),
|
|
choiceText: new fields.StringField({ initial: "" }),
|
|
ecorces: new fields.NumberField({ initial: 0, integer: true, min: 0 }),
|
|
}), { initial: [] }),
|
|
spellGrants: new fields.ArrayField(new fields.SchemaField({
|
|
tradition: new fields.StringField({ initial: "" }),
|
|
skillKey: new fields.StringField({ initial: "" }),
|
|
polarity: new fields.StringField({ initial: "" }),
|
|
amount: new fields.NumberField({ initial: 0, integer: true, min: 0 }),
|
|
}), { initial: [] }),
|
|
revenues: new fields.SchemaField({
|
|
beginner: new fields.NumberField({ initial: 0, integer: true, min: 0 }),
|
|
intermediate: new fields.NumberField({ initial: 0, integer: true, min: 0 }),
|
|
expert: new fields.NumberField({ initial: 0, integer: true, min: 0 }),
|
|
}),
|
|
}
|
|
}
|
|
}
|