import { getTier } from "../helpers/utils.mjs"; import DhpFeature from "./feature.mjs"; export default class DhpClass extends foundry.abstract.TypeDataModel { static defineSchema() { const fields = foundry.data.fields; return { domains: new fields.ArrayField(new fields.StringField({})), classItems: new fields.ArrayField(new fields.SchemaField({ name: new fields.StringField({}), img: new fields.StringField({}), uuid: new fields.StringField({}), })), 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 }), }), evasion: new fields.NumberField({ initial: 0, integer: true}), features: new fields.ArrayField(new fields.SchemaField({ name: new fields.StringField({}), img: new fields.StringField({}), uuid: new fields.StringField({}), })), subclasses: new fields.ArrayField(new fields.SchemaField({ name: new fields.StringField({}), img: new fields.StringField({}), uuid: new fields.StringField({}), })), inventory: new fields.SchemaField({ take: new fields.ArrayField(new fields.SchemaField({ name: new fields.StringField({}), img: new fields.StringField({}), uuid: new fields.StringField({}), })), choiceA: new fields.ArrayField(new fields.SchemaField({ name: new fields.StringField({}), img: new fields.StringField({}), uuid: new fields.StringField({}), })), choiceB: new fields.ArrayField(new fields.SchemaField({ name: new fields.StringField({}), img: new fields.StringField({}), uuid: new fields.StringField({}), })), extra: new fields.SchemaField({ title: new fields.StringField({}), description: new fields.StringField({}) }, { initial: null, nullable: true }), }), characterGuide: new fields.SchemaField({ suggestedTraits: new fields.SchemaField({ agility: new fields.NumberField({ initial: 0, integer: true }), strength: new fields.NumberField({ initial: 0, integer: true }), finesse: new fields.NumberField({ initial: 0, integer: true }), instinct: new fields.NumberField({ initial: 0, integer: true }), presence: new fields.NumberField({ initial: 0, integer: true }), knowledge: new fields.NumberField({ initial: 0, integer: true }), }), suggestedPrimaryWeapon: new fields.SchemaField({ name: new fields.StringField({}), img: new fields.StringField({}), uuid: new fields.StringField({}), }, { initial: null, nullable: true }), suggestedSecondaryWeapon: new fields.SchemaField({ name: new fields.StringField({}), img: new fields.StringField({}), uuid: new fields.StringField({}), }, { initial: null, nullable: true }), suggestedArmor: new fields.SchemaField({ name: new fields.StringField({}), img: new fields.StringField({}), uuid: new fields.StringField({}), }, { initial: null, nullable: true }), characterDescription: new fields.SchemaField({ clothes: new fields.StringField({}), eyes: new fields.StringField({}), body: new fields.StringField({}), color: new fields.StringField({}), attitude: new fields.StringField({}), }), backgroundQuestions: new fields.ArrayField(new fields.StringField({}), { initial: ['', '', ''] }), connections: new fields.ArrayField(new fields.StringField({}), { initial: ['', '' ,''] }), }), multiclass: new fields.NumberField({ initial: null, nullable: true, integer: true }), description: new fields.HTMLField({}), } } get multiclassTier(){ return getTier(this.multiclass, true); } }