[Feature] ArmorEffect reworked into ChangeType on BaseEffect (#1739)

* Initial

* .

* Single armor rework start

* More fixes

* Fixed DamageReductionDialog

* Removed last traces of ArmorEffect

* .
This commit is contained in:
WBHarry 2026-03-21 00:53:03 +01:00 committed by GitHub
parent 0b5de79ca8
commit b5e0bb7c27
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
26 changed files with 339 additions and 416 deletions

View file

@ -12,6 +12,8 @@
* "Anything that uses another data model value as its value": +1 - Effects that increase traits have to be calculated first at Base priority. (EX: Raise evasion by half your agility)
*/
import { changeTypes } from './_module.mjs';
export default class BaseEffect extends foundry.data.ActiveEffectTypeDataModel {
static defineSchema() {
const fields = foundry.data.fields;
@ -30,7 +32,8 @@ export default class BaseEffect extends foundry.data.ActiveEffectTypeDataModel {
}),
value: new fields.AnyField({ required: true, nullable: true, serializable: true, initial: '' }),
phase: new fields.StringField({ required: true, blank: false, initial: 'initial' }),
priority: new fields.NumberField()
priority: new fields.NumberField(),
typeData: new fields.TypedSchemaField(changeTypes, { nullable: true, initial: null })
})
),
duration: new fields.SchemaField({
@ -86,6 +89,17 @@ export default class BaseEffect extends foundry.data.ActiveEffectTypeDataModel {
return true;
}
get armorChange() {
return this.changes.find(x => x.type === CONFIG.DH.GENERAL.activeEffectModes.armor.id);
}
get armorData() {
const armorChange = this.armorChange;
if (!armorChange) return null;
return armorChange.typeData.getArmorData(armorChange);
}
static getDefaultObject() {
return {
name: 'New Effect',