More work on actionConfig outcomes

This commit is contained in:
WBHarry 2026-05-14 18:51:14 +02:00
parent f260d221a8
commit ec404a61d9
7 changed files with 180 additions and 58 deletions

View file

@ -1,3 +1,4 @@
import { AltDamageOutcome } from '../../data/fields/action/damageField.mjs';
import DHActionBaseConfig from './action-base-config.mjs';
export default class DHActionConfig extends DHActionBaseConfig {
@ -5,6 +6,8 @@ export default class DHActionConfig extends DHActionBaseConfig {
...DHActionBaseConfig.DEFAULT_OPTIONS,
actions: {
...DHActionBaseConfig.DEFAULT_OPTIONS.actions,
addOutcome: this.addOutcome,
removeOutcome: this.removeOutcome,
addEffect: this.addEffect,
removeEffect: this.removeEffect,
editEffect: this.editEffect
@ -19,6 +22,28 @@ export default class DHActionConfig extends DHActionBaseConfig {
return context;
}
static addOutcome() {
const data = this.action.toObject();
DHActionBaseConfig.selectOutcome(this.action, key => {
if (!key) return;
data.damage.altOutcomes[key] = new AltDamageOutcome();
this.outcomeTabs = DHActionBaseConfig.getOutcomeTabs(data);
this.constructor.updateForm.bind(this)(null, null, { object: foundry.utils.flattenObject(data) });
});
}
static removeOutcome(_event, button) {
const { outcome } = button.dataset;
const data = this.action.toObject();
data.damage.altOutcomes[outcome] = null;
this.outcomeTabs = DHActionBaseConfig.getOutcomeTabs(data);
this.constructor.updateForm.bind(this)(null, null, { object: foundry.utils.flattenObject(data) });
}
static async addEffect(event) {
const { areaIndex } = event.target.dataset;
if (!this.action.effects) return;