Files
DeltaGreen/module/other/inline.js
T
reyzor1991andJalen d22e3c919f Update module/other/inline.js
This need to avoid updating rollbackFlag

actor.update sometime set additional fields

Co-authored-by: Jalen <72114365+jalensailin@users.noreply.github.com>
2025-07-18 07:55:28 +03:00

36 lines
1.0 KiB
JavaScript

export async function handleInlineActions(btnWithAction, messageId) {
let action = btnWithAction.dataset?.action;
let message = game.messages.get(messageId);
let actor = message?.speakerActor;
if (!action || !message || !actor) {
return;
}
if (action === 'rollback-skill-failure-state') {
const rollbackFlag =message.getFlag("deltagreen", "rollbacks");
await actor.update(rollbackFlag);
toggleAllSkillFailures(rollbackFlag)
let label = btnWithAction
.closest(".rollback-section")
?.querySelector("label");
let oldHtml = label.outerHTML;
label.classList.toggle('strike');
message.update({
[`flags.deltagreen.rollbacks`]: rollbackFlag,
content: message.content
.replace(oldHtml, label.outerHTML)
})
}
}
function toggleAllSkillFailures(data) {
for (const skill of Object.values(data.system?.skills || {})) {
skill.failure = !skill.failure;
}
for (const skill of Object.values(data.system?.typedSkills || {})) {
skill.failure = !skill.failure;
}
}