mirror of
https://github.com/Foundryborne/daggerheart.git
synced 2026-01-11 19:25:21 +01:00
52 lines
2.6 KiB
JavaScript
52 lines
2.6 KiB
JavaScript
export default class DhpAdversary extends foundry.abstract.TypeDataModel {
|
|
static defineSchema() {
|
|
const fields = foundry.data.fields;
|
|
return {
|
|
resources: new fields.SchemaField({
|
|
health: new fields.SchemaField({
|
|
value: new fields.NumberField({ initial: 0, integer: true }),
|
|
min: new fields.NumberField({ initial: 0, integer: true }),
|
|
max: new fields.NumberField({ initial: 0, integer: true })
|
|
}),
|
|
stress: new fields.SchemaField({
|
|
value: new fields.NumberField({ initial: 0, integer: true }),
|
|
min: new fields.NumberField({ initial: 0, integer: true }),
|
|
max: new fields.NumberField({ initial: 0, integer: true })
|
|
})
|
|
}),
|
|
tier: new fields.StringField({ choices: Object.keys(SYSTEM.GENERAL.tiers), integer: false }),
|
|
type: new fields.StringField({
|
|
choices: Object.keys(SYSTEM.ACTOR.adversaryTypes),
|
|
integer: false,
|
|
initial: Object.keys(SYSTEM.ACTOR.adversaryTypes).find(x => x === 'standard')
|
|
}),
|
|
description: new fields.StringField({}),
|
|
motivesAndTactics: new fields.ArrayField(new fields.StringField({})),
|
|
attackModifier: new fields.NumberField({ integer: true, nullabe: true, initial: null }),
|
|
attack: new fields.SchemaField({
|
|
name: new fields.StringField({}),
|
|
range: new fields.StringField({ choices: Object.keys(SYSTEM.GENERAL.range), integer: false }),
|
|
damage: new fields.SchemaField({
|
|
value: new fields.StringField({}),
|
|
type: new fields.StringField({ choices: Object.keys(SYSTEM.GENERAL.damageTypes), integer: false })
|
|
})
|
|
}),
|
|
difficulty: new fields.NumberField({ initial: 1, integer: true }),
|
|
damageThresholds: new fields.SchemaField({
|
|
major: new fields.NumberField({ initial: 0, integer: true }),
|
|
severe: new fields.NumberField({ initial: 0, integer: true })
|
|
}),
|
|
experiences: new fields.TypedObjectField(
|
|
new fields.SchemaField({
|
|
id: new fields.StringField({ required: true }),
|
|
name: new fields.StringField(),
|
|
value: new fields.NumberField({ integer: true, nullable: true, initial: null })
|
|
})
|
|
)
|
|
};
|
|
}
|
|
|
|
get features() {
|
|
return this.parent.items.filter(x => x.type === 'feature');
|
|
}
|
|
}
|