This commit is contained in:
WBHarry 2025-07-21 03:14:41 +02:00
parent 42a705a870
commit f614456e86
10 changed files with 68 additions and 90 deletions

View file

@ -20,18 +20,10 @@ export default class DHAncestry extends BaseDataItem {
}
get primaryFeature() {
return (
this.features.find(x => x?.system?.subType === CONFIG.DH.ITEM.featureSubTypes.primary) ??
(this.features.filter(x => !x).length > 0 ? {} : null)
);
return this.features.find(x => x.system.itemLinks[this.parent.id] === CONFIG.DH.ITEM.featureSubTypes.primary);
}
get secondaryFeature() {
return (
this.features.find(x => x?.system?.subType === CONFIG.DH.ITEM.featureSubTypes.secondary) ??
(this.features.filter(x => !x || x.system.subType === CONFIG.DH.ITEM.featureSubTypes.primary).length > 1
? {}
: null)
);
return this.features.find(x => x.system.itemLinks[this.parent.id] === CONFIG.DH.ITEM.featureSubTypes.secondary);
}
}

View file

@ -8,6 +8,8 @@
* @property {boolean} isInventoryItem- Indicates whether items of this type is a Inventory Item
*/
import ItemLinksField from '../fields/itemLinksField.mjs';
const fields = foundry.data.fields;
export default class BaseDataItem extends foundry.abstract.TypeDataModel {
@ -21,7 +23,8 @@ export default class BaseDataItem extends foundry.abstract.TypeDataModel {
hasDescription: false,
hasResource: false,
isQuantifiable: false,
isInventoryItem: false
isInventoryItem: false,
isItemLinkable: true
};
}
@ -69,6 +72,10 @@ export default class BaseDataItem extends foundry.abstract.TypeDataModel {
if (this.metadata.isQuantifiable)
schema.quantity = new fields.NumberField({ integer: true, initial: 1, min: 0, required: true });
if (this.metadata.isItemLinkable) {
schema.itemLinks = new ItemLinksField();
}
return schema;
}

View file

@ -8,7 +8,8 @@ export default class DHFeature extends BaseDataItem {
label: 'TYPES.Item.feature',
type: 'feature',
hasDescription: true,
hasResource: true
hasResource: true,
isItemLinkable: true
});
}