mirror of
https://github.com/Foundryborne/daggerheart.git
synced 2026-01-12 19:51:08 +01:00
* Updated to make use of setup tabs. Ancestry now has primary/secondary features * Changed so ancestry uses a single Features field * Revert "Changed so ancestry uses a single Features field" This reverts commit0bda6b5dbe. * Reapply "Changed so ancestry uses a single Features field" This reverts commit1febafd441. * Made it work again the bad way \._./ * Changed so that Feature(Item) has a primary field * Feature(Item) now has subtype instead of primary as a field * Fixed experience/evasion * Moved light styling to appTheme mixing * Added svg and style rules
49 lines
1.8 KiB
JavaScript
49 lines
1.8 KiB
JavaScript
import BaseDataItem from './base.mjs';
|
|
import ActionField from '../fields/actionField.mjs';
|
|
|
|
export default class DHFeature extends BaseDataItem {
|
|
/** @inheritDoc */
|
|
static get metadata() {
|
|
return foundry.utils.mergeObject(super.metadata, {
|
|
label: 'TYPES.Item.feature',
|
|
type: 'feature',
|
|
hasDescription: true,
|
|
hasResource: true
|
|
});
|
|
}
|
|
|
|
/** @inheritDoc */
|
|
static defineSchema() {
|
|
const fields = foundry.data.fields;
|
|
return {
|
|
...super.defineSchema(),
|
|
originItemType: new fields.StringField({
|
|
choices: CONFIG.DH.ITEM.featureTypes,
|
|
nullable: true,
|
|
initial: null
|
|
}),
|
|
subType: new fields.StringField({ choices: CONFIG.DH.ITEM.featureSubTypes, nullable: true, initial: null }),
|
|
originId: new fields.StringField({ nullable: true, initial: null }),
|
|
identifier: new fields.StringField(),
|
|
actions: new fields.ArrayField(new ActionField())
|
|
};
|
|
}
|
|
|
|
get spellcastingModifier() {
|
|
let traitValue = 0;
|
|
if (this.actor && this.originId && ['class', 'subclass'].includes(this.originItemType)) {
|
|
if (this.originItemType === 'subclass') {
|
|
traitValue =
|
|
this.actor.system.traits[this.actor.items.get(this.originId).system.spellcastingTrait]?.value ?? 0;
|
|
} else {
|
|
const subclass =
|
|
this.actor.system.multiclass.value?.id === this.originId
|
|
? this.actor.system.multiclass.subclass
|
|
: this.actor.system.class.subclass;
|
|
traitValue = this.actor.system.traits[subclass.system.spellcastingTrait]?.value ?? 0;
|
|
}
|
|
}
|
|
|
|
return traitValue;
|
|
}
|
|
}
|