Skip to content

Commit 556a5cf

Browse files
authored
Fix up update resource rule action not rendering on damage rule trigger (#975)
1 parent 3122673 commit 556a5cf

File tree

4 files changed

+23
-7
lines changed

4 files changed

+23
-7
lines changed

module/documents/effects/actions/update-resource-rule-action.mjs

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,10 @@ import { ExpressionContext, Expressions } from '../../../expressions/expressions
44
import { ResourcePipeline, ResourceRequest } from '../../../pipelines/resource-pipeline.mjs';
55
import { RuleActionDataModel } from './rule-action-data-model.mjs';
66
import { SETTINGS } from '../../../settings.js';
7+
import { CommonSections } from '../../../checks/common-sections.mjs';
8+
import { ChatSectionOrder } from '../../../checks/default-section-order.mjs';
9+
import { Pipeline } from '../../../pipelines/pipeline.mjs';
10+
import { Flags } from '../../../helpers/flags.mjs';
711

812
const fields = foundry.data.fields;
913

@@ -48,12 +52,18 @@ export class UpdateResourceRuleAction extends RuleActionDataModel {
4852
const request = new ResourceRequest(context.sourceInfo, targets, this.resource, amount);
4953
request.fromOrigin(context.origin);
5054

55+
const targetAction = ResourcePipeline.getTargetedAction(request);
56+
if (selected.length === 1 && selected[0] === context.character) {
57+
targetAction.forActor(context.character.actor);
58+
}
59+
5160
if (context.config) {
52-
const targetAction = ResourcePipeline.getTargetedAction(request);
53-
if (selected.length === 1 && selected[0] === context.character) {
54-
targetAction.forActor(context.character.actor);
55-
}
5661
context.config.addTargetedAction(targetAction);
62+
} else if (context.renderData) {
63+
let flags = Pipeline.initializedFlags(Flags.ChatMessage.Source, context.sourceInfo);
64+
flags = Pipeline.setFlag(flags, Flags.ChatMessage.Item, context.item.uuid);
65+
context.renderData.flags = flags;
66+
CommonSections.chatActions(context.renderData.sections, [targetAction], flags, ChatSectionOrder.actions);
5767
}
5868

5969
if (game.settings.get(SYSTEM, SETTINGS.automationApplyDamage)) {

module/helpers/chat-action.mjs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,8 @@ export class ChatAction {
7777
*/
7878
forActor(actor) {
7979
return this.withDataset({
80-
actorId: actor.uuid,
80+
['actor-id']: actor.uuid,
81+
['actor-img']: actor.img,
8182
}).notTargeted();
8283
}
8384

module/helpers/chat-builder.mjs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import { ChatSectionOrder } from '../checks/default-section-order.mjs';
77
* @property {CheckSectionRenderData} sections
88
* @property {Promise[]} postRenderActions
99
* @property {Tag[]} tags
10+
* @property {Object} flags
1011
*/
1112

1213
/**
@@ -46,6 +47,7 @@ export class FUChatBuilder {
4647
tags: [],
4748
sections: [],
4849
postRenderActions: [],
50+
flags: [],
4951
};
5052
}
5153

@@ -83,9 +85,8 @@ export class FUChatBuilder {
8385
getMergedFlags() {
8486
// Merge all current flags
8587
let merged = {};
86-
for (const current of this.#flags) {
88+
for (const current of this.#flags.concat(this.renderData.flags)) {
8789
foundry.utils.mergeObject(merged, current, { overwrite: false });
88-
//ObjectUtils.mergeRecursive(merged, flag);
8990
}
9091
return merged;
9192
}

templates/chat/partials/chat-actions.hbs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,10 @@
6161
data-tooltip="{{localize tooltip}}">
6262
<span class='fu-tag button flex-group-center gap-5 fu-target-action__icon__container'
6363
style="width: 100%;white-space: nowrap;">
64+
{{#if dataset.actor-img}}
65+
<img class="fu-target-action__icon {{classes}}" alt="{{localize tooltip}}"
66+
src="{{dataset.actor-img}}" />
67+
{{/if}}
6468
{{~localize action.label}}
6569
{{#if img}}
6670
<img class="fu-target-action__icon {{classes}}" alt="{{localize tooltip}}"

0 commit comments

Comments
 (0)