From 996e72d4f224e55130a667e3c592ab600e8c90a2 Mon Sep 17 00:00:00 2001 From: Joaquin Pereyra Date: Sat, 31 May 2025 13:31:59 -0300 Subject: [PATCH] FEAT: add class prepareBaseData for domains --- module/applications/multiclassDialog.mjs | 2 ++ module/applications/sheets/pc.mjs | 1 + module/data/items/class.mjs | 12 +++++++----- module/data/items/feature.mjs | 1 - 4 files changed, 10 insertions(+), 6 deletions(-) diff --git a/module/applications/multiclassDialog.mjs b/module/applications/multiclassDialog.mjs index fbd0bb56..f9e53c17 100644 --- a/module/applications/multiclassDialog.mjs +++ b/module/applications/multiclassDialog.mjs @@ -67,6 +67,8 @@ export default class DhpMulticlassDialog extends HandlebarsApplicationMixin(Appl this.data.subclass = null; this.data.domain = null; this.subclassChoices = this.data.class ? this.data.class.system.subclasses : []; + + //FIXME this.domainChoices = this.data.class ? this.data.class.system.domains.map(x => { const config = SYSTEM.DOMAIN.domains[x]; diff --git a/module/applications/sheets/pc.mjs b/module/applications/sheets/pc.mjs index 153d1e58..c1f692c9 100644 --- a/module/applications/sheets/pc.mjs +++ b/module/applications/sheets/pc.mjs @@ -203,6 +203,7 @@ export default class PCSheet extends DaggerheartSheet(ActorSheetV2) { if (!context.abilityScoreArray.includes(0)) context.abilityScoreArray.push({ name: 0, value: 0 }); context.abilityScoresFinished = context.abilityScoreArray.every(x => x.value === 0); + //FIXME: context.domains = this.document.system.class ? { first: this.document.system.class.system.domains[0] diff --git a/module/data/items/class.mjs b/module/data/items/class.mjs index 42267ccb..05550e0a 100644 --- a/module/data/items/class.mjs +++ b/module/data/items/class.mjs @@ -16,10 +16,7 @@ export default class DHClass extends BaseDataItem { const fields = foundry.data.fields; return { ...super.defineSchema(), - - //TODO: USE SetField instead ArrayField - //set choices for this field - domains: new fields.ArrayField(new fields.StringField({})), + domains: new fields.ArrayField(new fields.StringField(), { max: 2 }), classItems: new fields.ArrayField( //TODO: use DocumentUUIDField, DocumentIdField or create LocalDocumentField @@ -39,7 +36,6 @@ export default class DHClass extends BaseDataItem { }) ), - //TODO: use SetField intead of ArrayField subclasses: new fields.ArrayField( //TODO: use DocumentUUIDField, DocumentIdField or create LocalDocumentField new fields.SchemaField({ @@ -129,4 +125,10 @@ export default class DHClass extends BaseDataItem { get multiclassTier() { return getTier(this.multiclass, true); } + + /** @inheritDoc */ + prepareBaseData() { + super.prepareBaseData() + this.domains = this.domains.map(k => SYSTEM.DOMAIN.domains[k]); + } } diff --git a/module/data/items/feature.mjs b/module/data/items/feature.mjs index 47d69d5b..ceed1f47 100644 --- a/module/data/items/feature.mjs +++ b/module/data/items/feature.mjs @@ -15,7 +15,6 @@ export default class DHFeature extends BaseDataItem { /** @inheritDoc */ static defineSchema() { const fields = foundry.data.fields; - console.log(SYSTEM.EFFECTS.applyLocations) return { ...super.defineSchema(), type: new fields.StringField({ choices: SYSTEM.ITEM.featureTypes }),