diff --git a/daggerheart.mjs b/daggerheart.mjs index e418401a..1987ec12 100644 --- a/daggerheart.mjs +++ b/daggerheart.mjs @@ -252,7 +252,7 @@ Hooks.on('setup', () => { ); const actorCommon = { bar: ['resources.stress'], - value: [...resistance] + value: [...resistance, 'advantageSources', 'disadvantageSources'] }; CONFIG.Actor.trackableAttributes = { character: { @@ -270,7 +270,7 @@ Hooks.on('setup', () => { }, adversary: { bar: [...actorCommon.bar, 'resources.hitPoints'], - value: [...actorCommon.value, ...damageThresholds, 'criticalThreshold'] + value: [...actorCommon.value, ...damageThresholds, 'criticalThreshold', 'difficulty'] }, companion: { bar: [...actorCommon.bar], diff --git a/module/data/actor/adversary.mjs b/module/data/actor/adversary.mjs index d3844bcb..78964720 100644 --- a/module/data/actor/adversary.mjs +++ b/module/data/actor/adversary.mjs @@ -1,11 +1,12 @@ import DHAdversarySettings from '../../applications/sheets-configs/adversary-settings.mjs'; import { ActionField } from '../fields/actionField.mjs'; -import BaseDataActor, { commonActorRules } from './base.mjs'; +import { commonActorRules } from './base.mjs'; +import DhCreature from './creature.mjs'; import { resourceField, bonusField } from '../fields/actorField.mjs'; import { calculateExpectedValue, parseTermsFromSimpleFormula } from '../../helpers/utils.mjs'; import { adversaryExpectedDamage, adversaryScalingData } from '../../config/actorConfig.mjs'; -export default class DhpAdversary extends BaseDataActor { +export default class DhpAdversary extends DhCreature { static LOCALIZATION_PREFIXES = ['DAGGERHEART.ACTORS.Adversary']; static get metadata() { diff --git a/module/data/actor/character.mjs b/module/data/actor/character.mjs index c79bb078..aca87c5c 100644 --- a/module/data/actor/character.mjs +++ b/module/data/actor/character.mjs @@ -1,12 +1,13 @@ import { burden } from '../../config/generalConfig.mjs'; import ForeignDocumentUUIDField from '../fields/foreignDocumentUUIDField.mjs'; import DhLevelData from '../levelData.mjs'; -import BaseDataActor, { commonActorRules } from './base.mjs'; +import { commonActorRules } from './base.mjs'; +import DhCreature from './creature.mjs'; import { attributeField, resourceField, stressDamageReductionRule, bonusField } from '../fields/actorField.mjs'; import { ActionField } from '../fields/actionField.mjs'; import DHCharacterSettings from '../../applications/sheets-configs/character-settings.mjs'; -export default class DhCharacter extends BaseDataActor { +export default class DhCharacter extends DhCreature { /**@override */ static LOCALIZATION_PREFIXES = ['DAGGERHEART.ACTORS.Character']; @@ -131,14 +132,6 @@ export default class DhCharacter extends BaseDataActor { } } }), - advantageSources: new fields.ArrayField(new fields.StringField(), { - label: 'DAGGERHEART.ACTORS.Character.advantageSources.label', - hint: 'DAGGERHEART.ACTORS.Character.advantageSources.hint' - }), - disadvantageSources: new fields.ArrayField(new fields.StringField(), { - label: 'DAGGERHEART.ACTORS.Character.disadvantageSources.label', - hint: 'DAGGERHEART.ACTORS.Character.disadvantageSources.hint' - }), levelData: new fields.EmbeddedDataField(DhLevelData), bonuses: new fields.SchemaField({ roll: new fields.SchemaField({ diff --git a/module/data/actor/companion.mjs b/module/data/actor/companion.mjs index 40cece72..6f51b593 100644 --- a/module/data/actor/companion.mjs +++ b/module/data/actor/companion.mjs @@ -1,4 +1,4 @@ -import BaseDataActor from './base.mjs'; +import DhCreature from './creature.mjs'; import DhLevelData from '../levelData.mjs'; import ForeignDocumentUUIDField from '../fields/foreignDocumentUUIDField.mjs'; import { ActionField } from '../fields/actionField.mjs'; @@ -6,7 +6,7 @@ import { adjustDice, adjustRange } from '../../helpers/utils.mjs'; import DHCompanionSettings from '../../applications/sheets-configs/companion-settings.mjs'; import { resourceField, bonusField } from '../fields/actorField.mjs'; -export default class DhCompanion extends BaseDataActor { +export default class DhCompanion extends DhCreature { static LOCALIZATION_PREFIXES = ['DAGGERHEART.ACTORS.Companion']; /**@inheritdoc */ diff --git a/module/data/actor/creature.mjs b/module/data/actor/creature.mjs new file mode 100644 index 00000000..4b927aed --- /dev/null +++ b/module/data/actor/creature.mjs @@ -0,0 +1,20 @@ +import BaseDataActor from './base.mjs'; + +export default class DhCreature extends BaseDataActor { + /**@inheritdoc */ + static defineSchema() { + const fields = foundry.data.fields; + + return { + ...super.defineSchema(), + advantageSources: new fields.ArrayField(new fields.StringField(), { + label: 'DAGGERHEART.ACTORS.Character.advantageSources.label', + hint: 'DAGGERHEART.ACTORS.Character.advantageSources.hint' + }), + disadvantageSources: new fields.ArrayField(new fields.StringField(), { + label: 'DAGGERHEART.ACTORS.Character.disadvantageSources.label', + hint: 'DAGGERHEART.ACTORS.Character.disadvantageSources.hint' + }) + }; + } +} diff --git a/system.json b/system.json index 96636bab..fb23ad7b 100644 --- a/system.json +++ b/system.json @@ -2,7 +2,7 @@ "id": "daggerheart", "title": "Daggerheart", "description": "An unofficial implementation of the Daggerheart system", - "version": "1.7.1", + "version": "1.7.2", "compatibility": { "minimum": "13.346", "verified": "13.351",