diff --git a/module/applications/sheets-configs/action-base-config.mjs b/module/applications/sheets-configs/action-base-config.mjs
index b3c79ff8..b98e2079 100644
--- a/module/applications/sheets-configs/action-base-config.mjs
+++ b/module/applications/sheets-configs/action-base-config.mjs
@@ -104,7 +104,7 @@ export default class DHActionBaseConfig extends DaggerheartSheet(ApplicationV2)
}
};
- static CLEAN_ARRAYS = ['damage.parts', 'cost', 'effects', 'summon'];
+ static CLEAN_ARRAYS = ['cost', 'effects', 'summon'];
_getTabs(tabs) {
for (const v of Object.values(tabs)) {
@@ -279,9 +279,10 @@ export default class DHActionBaseConfig extends DaggerheartSheet(ApplicationV2)
static removeDamage(_event, button) {
if (!this.action.damage.parts) return;
- const data = this.action.toObject(),
- index = button.dataset.index;
- data.damage.parts.splice(index, 1);
+ const data = this.action.toObject();
+ const key = button.dataset.key;
+ delete data.damage.parts[key];
+ data.damage.parts[`-=${key}`] = null;
this.constructor.updateForm.bind(this)(null, null, { object: foundry.utils.flattenObject(data) });
}
diff --git a/templates/actionTypes/damage.hbs b/templates/actionTypes/damage.hbs
index 96bb361c..ec556c17 100644
--- a/templates/actionTypes/damage.hbs
+++ b/templates/actionTypes/damage.hbs
@@ -16,75 +16,70 @@
{{formField directField value=source.direct name=(concat path "damage.direct") localize=true classes="checkbox"}}
{{/unless}}
- {{#each source.parts as |dmg index|}}
- {{#if (and @root.hasBaseDamage @root.source.damage.includeBase)}}
- {{setVar 'realIndex' (add index -1)}}
- {{else}}
- {{setVar 'realIndex' index}}
- {{/if}}
+ {{#each source.parts as |dmg key|}}
{{/each}}
{{#*inline "formula"}}
{{#unless dmg.base}}
- {{formField fields.custom.fields.enabled value=source.custom.enabled name=(concat path "damage.parts." realIndex "." target ".custom.enabled") classes="checkbox" localize=true}}
+ {{formField fields.custom.fields.enabled value=source.custom.enabled name=(concat path "damage.parts." key "." target ".custom.enabled") classes="checkbox" localize=true}}
{{/unless}}
{{#if source.custom.enabled}}
- {{formField fields.custom.fields.formula value=source.custom.formula name=(concat path "damage.parts." realIndex "." target ".custom.formula") localize=true}}
+ {{formField fields.custom.fields.formula value=source.custom.formula name=(concat path "damage.parts." key "." target ".custom.formula") localize=true}}
{{else}}
{{#unless @root.isNPC}}
- {{formField fields.multiplier value=source.multiplier name=(concat path "damage.parts." realIndex "." target ".multiplier") localize=true}}
+ {{formField fields.multiplier value=source.multiplier name=(concat path "damage.parts." key "." target ".multiplier") localize=true}}
{{/unless}}
- {{#if (eq source.multiplier 'flat')}}{{formField fields.flatMultiplier value=source.flatMultiplier name=(concat path "damage.parts." realIndex "." target ".flatMultiplier") localize=true }}{{/if}}
- {{formField fields.dice value=source.dice name=(concat path "damage.parts." realIndex "." target ".dice") localize=true}}
- {{formField fields.bonus value=source.bonus name=(concat path "damage.parts." realIndex "." target ".bonus") localize=true}}
+ {{#if (eq source.multiplier 'flat')}}{{formField fields.flatMultiplier value=source.flatMultiplier name=(concat path "damage.parts." key "." target ".flatMultiplier") localize=true }}{{/if}}
+ {{formField fields.dice value=source.dice name=(concat path "damage.parts." key "." target ".dice") localize=true}}
+ {{formField fields.bonus value=source.bonus name=(concat path "damage.parts." key "." target ".bonus") localize=true}}
{{/if}}
{{#if @root.isNPC}}
-
+
{{/if}}
{{/inline}}
\ No newline at end of file