Files
fvtt-les-oublies/modules/models/metier.mjs
T
2026-05-02 09:16:24 +02:00

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 }),
}),
}
}
}