From 58b855389d8f5a5450e32f2935ea54b55c0eb31f Mon Sep 17 00:00:00 2001 From: WBHarry Date: Sun, 19 Apr 2026 11:36:33 +0200 Subject: [PATCH] Fixes --- .../sheets-configs/action-config.mjs | 2 +- .../sheets-configs/action-settings-config.mjs | 25 ++++++++++++++++--- module/data/activeEffect/baseEffect.mjs | 3 ++- .../data/regionBehavior/applyActiveEffect.mjs | 4 +-- module/helpers/handlebarsHelper.mjs | 6 ----- styles/less/global/inventory-item.less | 9 +++++++ styles/less/sheets/actions/actions.less | 6 +++++ templates/actionTypes/area.hbs | 21 ++++++++-------- 8 files changed, 52 insertions(+), 24 deletions(-) diff --git a/module/applications/sheets-configs/action-config.mjs b/module/applications/sheets-configs/action-config.mjs index e3117b6e..52067411 100644 --- a/module/applications/sheets-configs/action-config.mjs +++ b/module/applications/sheets-configs/action-config.mjs @@ -25,7 +25,7 @@ export default class DHActionConfig extends DHActionBaseConfig { const data = this.action.toObject(); const created = await this.action.item.createEmbeddedDocuments('ActiveEffect', [ - game.system.api.data.activeEffects.BaseEffect.getDefaultObject() + game.system.api.data.activeEffects.BaseEffect.getDefaultObject({ transfer: false }) ]); if (areaIndex !== undefined) diff --git a/module/applications/sheets-configs/action-settings-config.mjs b/module/applications/sheets-configs/action-settings-config.mjs index 9cb866bc..e525269f 100644 --- a/module/applications/sheets-configs/action-settings-config.mjs +++ b/module/applications/sheets-configs/action-settings-config.mjs @@ -31,21 +31,38 @@ export default class DHActionSettingsConfig extends DHActionBaseConfig { } static async addEffect(_event) { + const { areaIndex } = event.target.dataset; if (!this.action.effects) return; - const effectData = game.system.api.data.activeEffects.BaseEffect.getDefaultObject(); + + const effectData = game.system.api.data.activeEffects.BaseEffect.getDefaultObject({ transfer: false }); const data = this.action.toObject(); this.sheetUpdate(data, effectData); this.effects = [...this.effects, effectData]; - data.effects.push({ _id: effectData.id }); + + if(areaIndex !== undefined) + data.area[areaIndex].effects.push(effectData.id); + else + data.effects.push({ _id: effectData.id }); + this.constructor.updateForm.bind(this)(null, null, { object: foundry.utils.flattenObject(data) }); } static removeEffect(event, button) { if (!this.action.effects) return; - const index = button.dataset.index, + const { areaIndex, index } = button.dataset; + let effectId = null; + if (areaIndex !== undefined) { + effectId = this.action.area[areaIndex].effects[index]; + const data = this.action.toObject(); + data.area[areaIndex].effects.splice(index, 1); + this.constructor.updateForm.bind(this)(null, null, { object: foundry.utils.flattenObject(data) }); + } else { effectId = this.action.effects[index]._id; - this.constructor.removeElement.bind(this)(event, button); + this.constructor.removeElement.bind(this)(event, button); + } + + this.sheetUpdate( this.action.toObject(), this.effects.find(x => x.id === effectId), diff --git a/module/data/activeEffect/baseEffect.mjs b/module/data/activeEffect/baseEffect.mjs index e60cc024..46de63b0 100644 --- a/module/data/activeEffect/baseEffect.mjs +++ b/module/data/activeEffect/baseEffect.mjs @@ -134,13 +134,14 @@ export default class BaseEffect extends foundry.data.ActiveEffectTypeDataModel { return armorChange.getArmorData(); } - static getDefaultObject() { + static getDefaultObject(options = { transfer: true }) { return { name: 'New Effect', id: foundry.utils.randomID(), disabled: false, img: 'icons/magic/life/heart-cross-blue.webp', description: '', + transfer: options.transfer, statuses: [], changes: [], system: { diff --git a/module/data/regionBehavior/applyActiveEffect.mjs b/module/data/regionBehavior/applyActiveEffect.mjs index 0fc60bc2..4be262c2 100644 --- a/module/data/regionBehavior/applyActiveEffect.mjs +++ b/module/data/regionBehavior/applyActiveEffect.mjs @@ -1,7 +1,7 @@ export default class DhApplyActiveEffect extends CONFIG.RegionBehavior.dataModels.applyActiveEffect { static async #getApplicableEffects(token) { - const effects = await Promise.all(this.effects.map(fromUuid)); - return (effects).filter(effect => !effect.system.targetDispositions.size || effect.system.targetDispositions.has(token.disposition)); + const effects = await Promise.all(this.effects.map(foundry.utils.fromUuid)); + return effects.filter(effect => !effect.system.targetDispositions.size || effect.system.targetDispositions.has(token.disposition)); } static async #onTokenEnter(event) { diff --git a/module/helpers/handlebarsHelper.mjs b/module/helpers/handlebarsHelper.mjs index 3caf63a3..80e8df92 100644 --- a/module/helpers/handlebarsHelper.mjs +++ b/module/helpers/handlebarsHelper.mjs @@ -17,7 +17,6 @@ export default class RegisterHandlebarsHelpers { pluralize: this.pluralize, positive: this.positive, isNullish: this.isNullish, - debug: this.debug, }); } static add(a, b) { @@ -93,9 +92,4 @@ export default class RegisterHandlebarsHelpers { static isNullish(a) { return a === null || a === undefined; } - - static debug(a) { - console.log(a); - return a; - } } diff --git a/styles/less/global/inventory-item.less b/styles/less/global/inventory-item.less index 4bd4d0bb..a2b9ebd8 100644 --- a/styles/less/global/inventory-item.less +++ b/styles/less/global/inventory-item.less @@ -24,6 +24,15 @@ width: 100%; list-style-type: none; + &.bordered { + border: 1px solid; + border-radius: 6px; + + .inventory-item-header .img-portait img.item-img { + border-radius: 6px 0 0 6px; + } + } + &:not(.single-img) { .img-portait:has(.roll-img):hover { .roll-img { diff --git a/styles/less/sheets/actions/actions.less b/styles/less/sheets/actions/actions.less index 5a18d622..485f8e91 100644 --- a/styles/less/sheets/actions/actions.less +++ b/styles/less/sheets/actions/actions.less @@ -147,4 +147,10 @@ padding-bottom: 7px; } } + + .sub-section-header { + display: flex; + align-items: center; + gap: 4px; + } } diff --git a/templates/actionTypes/area.hbs b/templates/actionTypes/area.hbs index ffdd4b76..810e67b9 100644 --- a/templates/actionTypes/area.hbs +++ b/templates/actionTypes/area.hbs @@ -5,21 +5,23 @@ {{#each source as |area index|}} + {{#unless @first}}{{/unless}}
{{formField ../fields.type value=area.type name=(concat "area." index ".type") localize=true}} {{formField ../fields.shape value=area.shape name=(concat "area." index ".shape") localize=true}} {{formField ../fields.size value=area.size name=(concat "area." index ".size") localize=true}}
-
-
- {{localize "DAGGERHEART.GENERAL.Effect.plural"}} - -
- {{#each area.effects as |effectId index|}} - -
+
+ {{localize "DAGGERHEART.GENERAL.Effect.plural"}} + +
+
+ {{#each area.effects as |effectId index|}} + + +
{{#with (@root.getEffectDetails effectId) as | details |}}
@@ -29,9 +31,8 @@
{{name}}
{{/with}} -
- +