mirror of
https://github.com/Foundryborne/daggerheart.git
synced 2026-01-15 13:11:08 +01:00
Added a basic BaseDataActor data model
This commit is contained in:
parent
70382df63c
commit
1129ff57a9
6 changed files with 67 additions and 12 deletions
|
|
@ -14,7 +14,6 @@
|
||||||
},
|
},
|
||||||
"Actor": {
|
"Actor": {
|
||||||
"character": "Character",
|
"character": "Character",
|
||||||
"npc": "NPC",
|
|
||||||
"adversary": "Adversary",
|
"adversary": "Adversary",
|
||||||
"environment": "Environment"
|
"environment": "Environment"
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,9 @@
|
||||||
export { default as DhCharacter } from './character.mjs';
|
export { default as DhCharacter } from './actor/character.mjs';
|
||||||
export { default as DhClass } from './item/class.mjs';
|
export { default as DhClass } from './item/class.mjs';
|
||||||
export { default as DhSubclass } from './item/subclass.mjs';
|
export { default as DhSubclass } from './item/subclass.mjs';
|
||||||
export { default as DhCombat } from './combat.mjs';
|
export { default as DhCombat } from './combat.mjs';
|
||||||
export { default as DhCombatant } from './combatant.mjs';
|
export { default as DhCombatant } from './combatant.mjs';
|
||||||
export { default as DhpAdversary } from './adversary.mjs';
|
export { default as DhpAdversary } from './actor/adversary.mjs';
|
||||||
export { default as DhpEnvironment } from './environment.mjs';
|
export { default as DhpEnvironment } from './environment.mjs';
|
||||||
|
|
||||||
export * as items from './item/_module.mjs';
|
export * as items from './item/_module.mjs';
|
||||||
|
|
|
||||||
|
|
@ -1,12 +1,21 @@
|
||||||
|
import BaseDataActor from './base.mjs';
|
||||||
|
|
||||||
const resourceField = () =>
|
const resourceField = () =>
|
||||||
new foundry.data.fields.SchemaField({
|
new foundry.data.fields.SchemaField({
|
||||||
value: new foundry.data.fields.NumberField({ initial: 0, integer: true }),
|
value: new foundry.data.fields.NumberField({ initial: 0, integer: true }),
|
||||||
max: new foundry.data.fields.NumberField({ initial: 0, integer: true })
|
max: new foundry.data.fields.NumberField({ initial: 0, integer: true })
|
||||||
});
|
});
|
||||||
|
|
||||||
export default class DhpAdversary extends foundry.abstract.TypeDataModel {
|
export default class DhpAdversary extends BaseDataActor {
|
||||||
static LOCALIZATION_PREFIXES = ['DAGGERHEART.Sheets.Adversary'];
|
static LOCALIZATION_PREFIXES = ['DAGGERHEART.Sheets.Adversary'];
|
||||||
|
|
||||||
|
static get metadata() {
|
||||||
|
return foundry.utils.mergeObject(super.metadata, {
|
||||||
|
label: 'TYPES.Actor.adversary',
|
||||||
|
type: 'adversary'
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
static defineSchema() {
|
static defineSchema() {
|
||||||
const fields = foundry.data.fields;
|
const fields = foundry.data.fields;
|
||||||
return {
|
return {
|
||||||
|
|
@ -20,7 +29,6 @@ export default class DhpAdversary extends foundry.abstract.TypeDataModel {
|
||||||
choices: SYSTEM.ACTOR.adversaryTypes,
|
choices: SYSTEM.ACTOR.adversaryTypes,
|
||||||
initial: SYSTEM.ACTOR.adversaryTypes.standard.id
|
initial: SYSTEM.ACTOR.adversaryTypes.standard.id
|
||||||
}),
|
}),
|
||||||
description: new fields.HTMLField(),
|
|
||||||
motivesAndTactics: new fields.HTMLField(),
|
motivesAndTactics: new fields.HTMLField(),
|
||||||
difficulty: new fields.NumberField({ required: true, initial: 1, integer: true }),
|
difficulty: new fields.NumberField({ required: true, initial: 1, integer: true }),
|
||||||
damageThresholds: new fields.SchemaField({
|
damageThresholds: new fields.SchemaField({
|
||||||
34
module/data/actor/base.mjs
Normal file
34
module/data/actor/base.mjs
Normal file
|
|
@ -0,0 +1,34 @@
|
||||||
|
/**
|
||||||
|
* Describes metadata about the actor data model type
|
||||||
|
* @typedef {Object} ItemDataModelMetadata
|
||||||
|
* @property {string} label - A localizable label used on application.
|
||||||
|
* @property {string} type - The system type that this data model represents.
|
||||||
|
*/
|
||||||
|
export default class BaseDataActor extends foundry.abstract.TypeDataModel {
|
||||||
|
/** @returns {ItemDataModelMetadata}*/
|
||||||
|
static get metadata() {
|
||||||
|
return {
|
||||||
|
label: 'Base Actor',
|
||||||
|
type: 'base'
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
/** @inheritDoc */
|
||||||
|
static defineSchema() {
|
||||||
|
const fields = foundry.data.fields;
|
||||||
|
|
||||||
|
return {
|
||||||
|
description: new fields.HTMLField({ required: true, nullable: true })
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Obtain a data object used to evaluate any dice rolls associated with this Item Type
|
||||||
|
* @param {object} [options] - Options which modify the getRollData method.
|
||||||
|
* @returns {object}
|
||||||
|
*/
|
||||||
|
getRollData(options = {}) {
|
||||||
|
const data = this.getRollData();
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
import { burden } from '../config/generalConfig.mjs';
|
import { burden } from '../../config/generalConfig.mjs';
|
||||||
import ForeignDocumentUUIDField from './fields/foreignDocumentUUIDField.mjs';
|
import ForeignDocumentUUIDField from '../fields/foreignDocumentUUIDField.mjs';
|
||||||
import { LevelOptionType } from './levelTier.mjs';
|
import { LevelOptionType } from '../levelTier.mjs';
|
||||||
|
import BaseDataActor from './base.mjs';
|
||||||
|
|
||||||
const attributeField = () =>
|
const attributeField = () =>
|
||||||
new foundry.data.fields.SchemaField({
|
new foundry.data.fields.SchemaField({
|
||||||
|
|
@ -14,7 +15,14 @@ const resourceField = max =>
|
||||||
max: new foundry.data.fields.NumberField({ initial: max, integer: true })
|
max: new foundry.data.fields.NumberField({ initial: max, integer: true })
|
||||||
});
|
});
|
||||||
|
|
||||||
export default class DhCharacter extends foundry.abstract.TypeDataModel {
|
export default class DhCharacter extends BaseDataActor {
|
||||||
|
static get metadata() {
|
||||||
|
return foundry.utils.mergeObject(super.metadata, {
|
||||||
|
label: 'TYPES.Actor.character',
|
||||||
|
type: 'character'
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
static defineSchema() {
|
static defineSchema() {
|
||||||
const fields = foundry.data.fields;
|
const fields = foundry.data.fields;
|
||||||
|
|
||||||
|
|
@ -60,7 +68,6 @@ export default class DhCharacter extends foundry.abstract.TypeDataModel {
|
||||||
})
|
})
|
||||||
),
|
),
|
||||||
story: new fields.HTMLField(),
|
story: new fields.HTMLField(),
|
||||||
description: new fields.HTMLField(),
|
|
||||||
class: new fields.SchemaField({
|
class: new fields.SchemaField({
|
||||||
value: new ForeignDocumentUUIDField({ type: 'Item', nullable: true }),
|
value: new ForeignDocumentUUIDField({ type: 'Item', nullable: true }),
|
||||||
subclass: new ForeignDocumentUUIDField({ type: 'Item', nullable: true })
|
subclass: new ForeignDocumentUUIDField({ type: 'Item', nullable: true })
|
||||||
|
|
@ -1,9 +1,17 @@
|
||||||
import { environmentTypes } from '../config/actorConfig.mjs';
|
import { environmentTypes } from '../config/actorConfig.mjs';
|
||||||
|
import BaseDataActor from './base.mjs';
|
||||||
import ForeignDocumentUUIDField from './fields/foreignDocumentUUIDField.mjs';
|
import ForeignDocumentUUIDField from './fields/foreignDocumentUUIDField.mjs';
|
||||||
|
|
||||||
export default class DhEnvironment extends foundry.abstract.TypeDataModel {
|
export default class DhEnvironment extends BaseDataActor {
|
||||||
static LOCALIZATION_PREFIXES = ['DAGGERHEART.Sheets.Environment'];
|
static LOCALIZATION_PREFIXES = ['DAGGERHEART.Sheets.Environment'];
|
||||||
|
|
||||||
|
static get metadata() {
|
||||||
|
return foundry.utils.mergeObject(super.metadata, {
|
||||||
|
label: 'TYPES.Actor.environment',
|
||||||
|
type: 'environment'
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
static defineSchema() {
|
static defineSchema() {
|
||||||
const fields = foundry.data.fields;
|
const fields = foundry.data.fields;
|
||||||
return {
|
return {
|
||||||
|
|
@ -13,7 +21,6 @@ export default class DhEnvironment extends foundry.abstract.TypeDataModel {
|
||||||
initial: SYSTEM.GENERAL.tiers.tier1.id
|
initial: SYSTEM.GENERAL.tiers.tier1.id
|
||||||
}),
|
}),
|
||||||
type: new fields.StringField({ choices: environmentTypes }),
|
type: new fields.StringField({ choices: environmentTypes }),
|
||||||
description: new fields.HTMLField(),
|
|
||||||
impulses: new fields.HTMLField(),
|
impulses: new fields.HTMLField(),
|
||||||
difficulty: new fields.NumberField({ required: true, initial: 11, integer: true }),
|
difficulty: new fields.NumberField({ required: true, initial: 11, integer: true }),
|
||||||
potentialAdversaries: new fields.TypedObjectField(
|
potentialAdversaries: new fields.TypedObjectField(
|
||||||
Loading…
Add table
Add a link
Reference in a new issue