mirror of
https://github.com/Foundryborne/daggerheart.git
synced 2026-01-12 03:31:07 +01:00
48 lines
No EOL
2.4 KiB
JavaScript
48 lines
No EOL
2.4 KiB
JavaScript
import { MappingField } from "./fields.mjs";
|
|
|
|
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({
|
|
minor: new fields.NumberField({ initial: 0, integer: true }),
|
|
major: new fields.NumberField({ initial: 0, integer: true }),
|
|
severe: new fields.NumberField({ initial: 0, integer: true }),
|
|
}),
|
|
experiences: new fields.ArrayField(new fields.SchemaField({
|
|
name: new fields.StringField({}),
|
|
value: new fields.NumberField({ integer: true, nullable: true, initial: null }),
|
|
})),
|
|
}
|
|
}
|
|
|
|
get moves(){
|
|
return this.parent.items.filter(x => x.type === 'feature');
|
|
}
|
|
} |