From c0dd5b584a0f51266ece331ecb77f09f721ac49b Mon Sep 17 00:00:00 2001 From: mstein Date: Mon, 2 Jan 2023 17:37:14 +0100 Subject: [PATCH] Fixes attribute roll click. --- source/module/rolls/M5Roll.ts | 17 +++++++++++++++++ source/module/sheets/M5CharacterSheet.ts | 15 ++++++++++++--- templates/sheets/character/attribute.hbs | 4 ++-- 3 files changed, 31 insertions(+), 5 deletions(-) diff --git a/source/module/rolls/M5Roll.ts b/source/module/rolls/M5Roll.ts index bcbc679..460c8b6 100644 --- a/source/module/rolls/M5Roll.ts +++ b/source/module/rolls/M5Roll.ts @@ -141,6 +141,23 @@ export class M5Roll { // extends Roll return new M5Roll(rollData, actor, (game as Game).i18n.localize(`midgard5.actor-${attributeKey}-long`)) } + static fromAttributeValue(actor: any, attributeKey: string, attributeValue: number) { + const rollData = actor.getRollData() as M5RollData + rollData.i = attributeValue + rollData.rolls["0"] = { + formula: "@i - 1d100", + enabled: true, + label: (game as Game).i18n.localize("midgard5.pw"), + result: "", + total: 0, + totalStr: "", + dice: {}, + css: "" + } as M5RollResult + + return new M5Roll(rollData, actor, (game as Game).i18n.localize(`midgard5.actor-${attributeKey}-long`)) + } + static brawl(actor: any) { const rollData = actor.getRollData() as M5RollData rollData.i = { diff --git a/source/module/sheets/M5CharacterSheet.ts b/source/module/sheets/M5CharacterSheet.ts index a64b29b..2bbdf59 100644 --- a/source/module/sheets/M5CharacterSheet.ts +++ b/source/module/sheets/M5CharacterSheet.ts @@ -70,9 +70,18 @@ export default class M5CharacterSheet extends ActorSheet { }) html.find(".roll-attribute-button").on("click", async (event) => { - const attributeStr = event.target.dataset["attribute"] - const roll = M5Roll.fromAttribute(this.actor, attributeStr) - console.log("roll-attribute-button", roll) + let elem = event.target + let attributeStr = elem.dataset["attribute"] + while (!attributeStr) { + elem = elem.parentElement + if (!elem) + return + attributeStr = elem.dataset["attribute"] + } + const attributeValue = parseInt(elem.dataset["value"]) + + const roll = M5Roll.fromAttributeValue(this.actor, attributeStr, attributeValue) + //console.log("roll-attribute-button", parent, attributeStr, attributeValue, roll) await roll.toMessage() }) diff --git a/templates/sheets/character/attribute.hbs b/templates/sheets/character/attribute.hbs index 7c05dfe..610e0c3 100644 --- a/templates/sheets/character/attribute.hbs +++ b/templates/sheets/character/attribute.hbs @@ -1,7 +1,7 @@ -
+
{{localize (m5concat "midgard5.actor-" attributeId "-long")}}
-
+
{{calc.value}}
{{calc.bonus}}