Pristine copy of the installed deltagreen 1.7.0 release build. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
37 lines
1.1 KiB
JavaScript
37 lines
1.1 KiB
JavaScript
/* eslint-disable import/prefer-default-export */
|
|
|
|
export async function handleInlineActions(btnWithAction, messageId) {
|
|
const action = btnWithAction.dataset?.action;
|
|
const message = game.messages.get(messageId);
|
|
const actor = message?.speakerActor;
|
|
if (!actor) return;
|
|
|
|
if (action === "rollback-skill-failure-state") {
|
|
const rollbackFlag = message.getFlag("deltagreen", "rollbacks");
|
|
await actor.update(foundry.utils.deepClone(rollbackFlag));
|
|
|
|
// eslint-disable-next-line no-use-before-define
|
|
toggleAllSkillFailures(rollbackFlag);
|
|
|
|
const label = btnWithAction
|
|
.closest(".rollback-section")
|
|
?.querySelector("label");
|
|
const 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;
|
|
}
|
|
}
|