diff --git a/lang/en.json b/lang/en.json index 70ee521c..9fb87580 100755 --- a/lang/en.json +++ b/lang/en.json @@ -3331,7 +3331,6 @@ "rangeAndTarget": "Range & Target", "dragApplyEffect": "Drag effect to apply it to an actor", "appliedEvenIfSuccessful": "Applied even if save succeeded", - "diceIsRerolled": "The dice has been rerolled (x{times})", "pendingSaves": "Pending Reaction Rolls", "openSheetSettings": "Open Settings", "compendiumBrowser": "Compendium Browser", diff --git a/module/applications/ui/chatLog.mjs b/module/applications/ui/chatLog.mjs index 5fb61857..fcef7786 100644 --- a/module/applications/ui/chatLog.mjs +++ b/module/applications/ui/chatLog.mjs @@ -247,7 +247,7 @@ export default class DhpChatLog extends foundry.applications.sidebar.tabs.ChatLo } const message = game.messages.get(messageData._id); - const target = event.target.closest('[data-result]'); + const target = event.target.closest('[data-type]'); if (target.dataset.type === 'damage') { const { isResource, damageType, dice, result } = target.dataset; @@ -268,6 +268,8 @@ export default class DhpChatLog extends foundry.applications.sidebar.tabs.ChatLo isReaction: message.system.roll.options.actionType === 'reaction' } }); + rerollDice.results[rerollDice.results.length - 1].rerolled = true; + await message.update({ rolls: [message.system.roll.toJSON()] }); diff --git a/module/data/chat-message/chatDamageData.mjs b/module/data/chat-message/chatDamageData.mjs index 404cda43..1595ac6d 100644 --- a/module/data/chat-message/chatDamageData.mjs +++ b/module/data/chat-message/chatDamageData.mjs @@ -37,10 +37,9 @@ export class ChatDamageData extends foundry.abstract.DataModel { async rerollDamageDie(isResource, damageType, dice, resultIndex) { const reroll = isResource ? this.resources[damageType] : this.main; const rerollDice = reroll.dice[dice]; - await rerollDice.rerollResult(resultIndex); + const rerolledResult = await rerollDice.rerollResult(resultIndex); await reroll._evaluate(); - const rerolledResult = rerollDice.results[rerollDice.results.length - 1]; if (rerolledResult) { const fakeRoll = { _evaluated: true, diff --git a/module/dice/die/baseDie.mjs b/module/dice/die/baseDie.mjs index eb38d804..c503b265 100644 --- a/module/dice/die/baseDie.mjs +++ b/module/dice/die/baseDie.mjs @@ -20,7 +20,10 @@ export default class BaseDie extends foundry.dice.terms.Die { if (['c', 'cc'].some(x => this.modifiers.includes(x))) { await this.handleComboDiceReroll(resultIndex, result); - } + } + + rerolledResult.rerolled = true; + return rerolledResult; } /** @inheritDoc */ diff --git a/module/dice/die/dualityDie.mjs b/module/dice/die/dualityDie.mjs index 1e51e851..b0f02200 100644 --- a/module/dice/die/dualityDie.mjs +++ b/module/dice/die/dualityDie.mjs @@ -8,6 +8,10 @@ export default class DualityDie extends BaseDie { this.modifiers = []; } + get isRerolled() { + return this.results.some(x => x.rerolled); + } + #getDualityState(roll) { if (!roll) return null; return roll.withHope ? 1 : roll.withFear ? -1 : 0; diff --git a/templates/ui/chat/parts/damage-part.hbs b/templates/ui/chat/parts/damage-part.hbs index 8d5a3423..2797a889 100644 --- a/templates/ui/chat/parts/damage-part.hbs +++ b/templates/ui/chat/parts/damage-part.hbs @@ -65,7 +65,7 @@ class="dice reroll-button {{coalesce dieResult.denomination dice.denomination}}" data-type="damage" data-dice="{{diceKey}}" data-result="{{resultKey}}" {{#if ../../resource}}data-damage-type="{{../../resource}}" data-is-resource="true"{{/if}} > - {{#if hasRerolls}}{{/if}} + {{#if dieResult.rerolled}}{{/if}} {{result}} diff --git a/templates/ui/chat/parts/roll-part.hbs b/templates/ui/chat/parts/roll-part.hbs index f4cb4807..697b2f64 100644 --- a/templates/ui/chat/parts/roll-part.hbs +++ b/templates/ui/chat/parts/roll-part.hbs @@ -47,14 +47,14 @@