diff --git a/src/module/sheets/characterSheet.mjs b/src/module/sheets/characterSheet.mjs index a36c7359..e4bf58fc 100644 --- a/src/module/sheets/characterSheet.mjs +++ b/src/module/sheets/characterSheet.mjs @@ -565,12 +565,33 @@ export class CharacterSheet extends ActorSheet { } } - _onAttributeRoll(event) { + async _onAttributeRoll(event) { event.preventDefault(); let actor = this.actor let dataset = event.currentTarget.dataset - let attribute = this.getData().attributes.find(item => item.eigenschaft === dataset.shortForm) - rollAttributeForActor(actor, attribute, "+0") + let data = await this.getData() + let attribute = data.attributes.find(item => item.name === dataset.label) + + let content = await foundry.applications.handlebars.renderTemplate("templates/dialog/attribute-roll.hbs", { + attribute: attribute.tooltip, + mod: 0, + }) + + let d = new Dialog({ + title: `${attribute.tooltip}-Probe`, + content: content, + buttons: { + one: { + label: "Würfeln", + callback: (html) => { + let mod = html.find('#mod-input').val() + rollAttributeForActor(actor, attribute, mod > 0 ? `+${mod}` : mod) + } + }, + }, + default: "two", + }); + d.render(true); } openEmbeddedDocument(documentId) { diff --git a/src/module/utils/rolls/rollEngine.mjs b/src/module/utils/rolls/rollEngine.mjs index 00546e98..63ed0d33 100644 --- a/src/module/utils/rolls/rollEngine.mjs +++ b/src/module/utils/rolls/rollEngine.mjs @@ -8,17 +8,16 @@ export async function rollAttributeForActor(actor, attribute, modifier, mode = foundry.CONFIG.Dice.rollModes.publicroll) { let result = await rollDice("1d20", mode) let resultRoll = result.results[0] - let success = attribute.wert >= resultRoll + let mod = parseInt(modifier) + let success = attribute.wert >= resultRoll + mod - let message = await foundry.applications.handlebars.renderTemplate("templates/chat-messages/attributeCheckMessage.hbs", { - attribute: { - name: attribute.name, - value: attribute.wert, - }, + let message = await foundry.applications.handlebars.renderTemplate("templates/chat-messages/attribute-check.hbs", { + attribute: attribute.name, + target: attribute.wert - mod, mod: modifier, result: resultRoll, success: success, - rest: attribute.wert - resultRoll, + rest: attribute.wert - (resultRoll + mod), }) let chatData = { diff --git a/src/style/dialogs.scss b/src/style/dialogs.scss index c7800b8d..2d0524e3 100644 --- a/src/style/dialogs.scss +++ b/src/style/dialogs.scss @@ -1 +1 @@ -@use "dialogs/attribute-roll-dialog"; \ No newline at end of file +@use "dialogs/attribute-roll"; \ No newline at end of file diff --git a/src/style/dialogs/attribute-roll-dialog.scss b/src/style/dialogs/attribute-roll-dialog.scss deleted file mode 100644 index e69de29b..00000000 diff --git a/src/style/dialogs/attribute-roll.scss b/src/style/dialogs/attribute-roll.scss new file mode 100644 index 00000000..8cc1508d --- /dev/null +++ b/src/style/dialogs/attribute-roll.scss @@ -0,0 +1,38 @@ +.attribute-roll-dialog-content { + display: grid; + grid-template-columns: 2fr 30px 1fr 30px 2fr; + grid-template-rows: auto auto 30px minmax(10px, 1fr); + align-items: center; + + .headline { + grid-row: 1; + grid-column: 1 / span 5; + text-align: center; + } + + #mod-type { + grid-row: 2; + grid-column: 1 / span 5; + text-align: center; + } + + .subtract-button { + grid-row: 3; + grid-column: 2; + } + + #mod-input { + display: none; + } + + #mod-display { + grid-row: 3; + grid-column: 3; + text-align: center; + } + + .add-button { + grid-row: 3; + grid-column: 4; + } +} \ No newline at end of file diff --git a/src/templates/chat-messages/attributeCheckMessage.hbs b/src/templates/chat-messages/attribute-check.hbs similarity index 67% rename from src/templates/chat-messages/attributeCheckMessage.hbs rename to src/templates/chat-messages/attribute-check.hbs index 6825e5b6..4080fc55 100644 --- a/src/templates/chat-messages/attributeCheckMessage.hbs +++ b/src/templates/chat-messages/attribute-check.hbs @@ -1,6 +1,6 @@
\ No newline at end of file diff --git a/src/templates/dialog/attribute-roll.hbs b/src/templates/dialog/attribute-roll.hbs new file mode 100644 index 00000000..37215aaf --- /dev/null +++ b/src/templates/dialog/attribute-roll.hbs @@ -0,0 +1,53 @@ + +