FEAT: add class prepareBaseData for domains

This commit is contained in:
Joaquin Pereyra 2025-05-31 13:31:59 -03:00
parent 527a0cd419
commit 996e72d4f2
4 changed files with 10 additions and 6 deletions

View file

@ -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];

View file

@ -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]

View file

@ -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]);
}
}

View file

@ -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 }),