diff --git a/module/config/itemConfig.mjs b/module/config/itemConfig.mjs index 851ddc32..36efc358 100644 --- a/module/config/itemConfig.mjs +++ b/module/config/itemConfig.mjs @@ -946,14 +946,9 @@ export const weaponFeatures = { value: '-1' }, { - key: 'system.bonuses.damage.primaryWeapon.extraDice', + key: 'system.bonuses.damage.primaryWeapon.addDiceAndDiscardLowest', mode: 2, - value: '1' - }, - { - key: 'system.rules.weapon.dropLowestDamageDice', - mode: 5, - value: '1' + value: true } ] } @@ -1048,31 +1043,16 @@ export const weaponFeatures = { powerful: { label: 'DAGGERHEART.CONFIG.WeaponFeature.powerful.name', description: 'DAGGERHEART.CONFIG.WeaponFeature.powerful.description', - actions: [ + effects: [ { - type: 'effect', - actionType: 'action', - chatDisplay: true, name: 'DAGGERHEART.CONFIG.WeaponFeature.powerful.name', description: 'DAGGERHEART.CONFIG.WeaponFeature.powerful.description', img: 'icons/magic/control/buff-flight-wings-runes-red-yellow.webp', - effects: [ + changes: [ { - name: 'DAGGERHEART.CONFIG.WeaponFeature.powerful.name', - description: 'DAGGERHEART.CONFIG.WeaponFeature.powerful.description', - img: 'icons/magic/control/buff-flight-wings-runes-red-yellow.webp', - changes: [ - { - key: 'system.bonuses.damage.primaryWeapon.extraDice', - mode: 2, - value: '1' - }, - { - key: 'system.rules.weapon.dropLowestDamageDice', - mode: 5, - value: '1' - } - ] + key: 'system.bonuses.damage.primaryWeapon.addDiceAndDiscardLowest', + mode: 2, + value: true } ] } diff --git a/module/dice/damageRoll.mjs b/module/dice/damageRoll.mjs index d74ae410..65ec4387 100644 --- a/module/dice/damageRoll.mjs +++ b/module/dice/damageRoll.mjs @@ -132,6 +132,16 @@ export default class DamageRoll extends DHRoll { criticalBonus = tmpRoll.total - this.constructor.calculateTotalModifiers(tmpRoll); part.roll.terms.push(...this.formatModifier(criticalBonus)); } + + if ( config.data.bonuses.damage.primaryWeapon?.addDiceAndDiscardLowest) { + const index = part.roll.terms.findIndex(t => t instanceof foundry.dice.terms.Die); + if (index !== -1) { + const diceTerm = part.roll.terms[index]; + diceTerm.modifiers = ['k' + diceTerm.number]; + diceTerm.number += 1; + } + } + return (part.roll._formula = this.constructor.getFormula(part.roll.terms)); } }