Merge branch 'main' into feature/148-Character-Setup

This commit is contained in:
WBHarry 2025-06-18 15:48:30 +02:00
commit d4ac696f7d
20 changed files with 33 additions and 632 deletions

View file

@ -5,7 +5,6 @@
* @property {string} type - The system type that this data model represents.
* @property {boolean} hasDescription - Indicates whether items of this type have description field
* @property {boolean} isQuantifiable - Indicates whether items of this type have quantity field
* @property {Record<string,string>} embedded - Record of document names of pseudo-documents and the path to the collection
*/
const fields = foundry.data.fields;
@ -18,7 +17,6 @@ export default class BaseDataItem extends foundry.abstract.TypeDataModel {
type: "base",
hasDescription: false,
isQuantifiable: false,
embedded: {},
};
}

View file

@ -1,5 +1,6 @@
import BaseDataItem from './base.mjs';
import ForeignDocumentUUIDField from '../fields/foreignDocumentUUIDField.mjs';
import ForeignDocumentUUIDArrayField from '../fields/foreignDocumentUUIDArrayField.mjs';
import ActionField from '../fields/actionField.mjs';
export default class DHClass extends BaseDataItem {
@ -18,23 +19,16 @@ export default class DHClass extends BaseDataItem {
return {
...super.defineSchema(),
domains: new fields.ArrayField(new fields.StringField(), { max: 2 }),
classItems: new fields.ArrayField(new ForeignDocumentUUIDField({ type: 'Item' })),
classItems: new ForeignDocumentUUIDArrayField({type: 'Item', required: false}),
evasion: new fields.NumberField({ initial: 0, integer: true }),
hopeFeatures: new foundry.data.fields.ArrayField(new ActionField()),
classFeatures: new foundry.data.fields.ArrayField(new ActionField()),
subclasses: new fields.ArrayField(
new ForeignDocumentUUIDField({ type: 'Item', required: false, nullable: true, initial: undefined })
),
subclasses: new ForeignDocumentUUIDArrayField({type: 'Item', required: false}),
inventory: new fields.SchemaField({
take: new fields.ArrayField(
new ForeignDocumentUUIDField({ type: 'Item', required: false, nullable: true, initial: undefined })
),
choiceA: new fields.ArrayField(
new ForeignDocumentUUIDField({ type: 'Item', required: false, nullable: true, initial: undefined })
),
choiceB: new fields.ArrayField(
new ForeignDocumentUUIDField({ type: 'Item', required: false, nullable: true, initial: undefined })
)
take: new ForeignDocumentUUIDArrayField({type: 'Item', required: false}),
choiceA: new ForeignDocumentUUIDArrayField({type: 'Item', required: false}),
choiceB: new ForeignDocumentUUIDArrayField({type: 'Item', required: false}),
}),
characterGuide: new fields.SchemaField({
suggestedTraits: new fields.SchemaField({

View file

@ -1,11 +1,11 @@
import ActionField from '../fields/actionField.mjs';
import ForeignDocumentUUIDField from '../fields/foreignDocumentUUIDField.mjs';
import ForeignDocumentUUIDArrayField from '../fields/foreignDocumentUUIDArrayField.mjs';
import BaseDataItem from './base.mjs';
const featureSchema = () => {
return new foundry.data.fields.SchemaField({
name: new foundry.data.fields.StringField({ required: true }),
effects: new foundry.data.fields.ArrayField(new ForeignDocumentUUIDField({ type: 'ActiveEffect' })),
effects: new ForeignDocumentUUIDArrayField({type: 'Item', required: false}),
actions: new foundry.data.fields.ArrayField(new ActionField())
});
};