The fix is to have ReplaceModInternal recurse into the parent mod list when looking for a mod to replace.
- The logic to add the mod if it doesn't exist has been moved to ReplaceMod if the function returns false.
This means that the Master of Metal, Watcher's Eye with impale stacks, and the Deep Cuts notable now display the real DPS change when hovered as long as the "# of Impales on Enemy" stacks config is blank or large enough.
Changes to impale:
- Removed the clamp to 9 stacks from the config
- If the config value isn't set, the calculated maximum number of impales is used
- If the config value is 0, then 0 impales are used
- If the config value is too large, then it is clamped down to the maximum number of impales
- The "Stacks on Enemy" value in the Impale section is now properly displayed
Added some useful utility functions:
- modStore:ReplaceMod will find an exact match to the mod and update the value
- modStore:HasMod will check to see if modStore:Sum would find any matching mods to sum up, so it can be distinguished from a result of 0.
- Added the "countAllowZero" config type, which works like "count" but will add the mod if its value is 0. This way 0 can be distinguished from blank.
This works essentially the same as PerStat, with the following differences:
- Does not work off of thresholds, so fractions of a stat can be used. PerStat is for "1 per 25 int" whereas PercentStat is for "0.1% of life"
- Specifies the percentage as-is, and divides by 100 for you in the calculations.
- Displays as a percentage in the calcs breakdown, e.g. "+0.1% of life"
Converted some mods which were previously changed to use "PerStat" to now use the now more appropriate "PercentStat"
- This fixes calculation issues with mods like the "Rite of Ruin" ascendancy node for Berserker, where 999 life was 0 degen and 1000 life was 50 degen at 50 rage stacks.
Implemented logic for melee distance scaling attack multipliers (Close combat and Slayers Impact node)
Add counterattack double damage bonus from Gladiators Painforged node
Implement parsing for all of Slayer's nodes
Add support for Assassins Mistwalker node and Ascendants node for Assassin
Add support for travel skills cooldown recovery
Add Badge of Brotherhood mod parsing
Add incremental shock values instead of the default locked value of 50%
- Added support for item-granted notables
- Fixed Feeding Frenzy buff
- Added new spectres
- Fixed buff effect modifiers not applying to minion modifiers
- Added/updated skills for 3.8
- Applied minion/mine changes
- Updated bases and mods
- Added support for Self flat damage on enemies
- Fixed Assassin's Mark crit
- Fixed "less Mana Cost" applying to reservations
- Fixed "+x to level of all Minion Skill Gems" applying to supports
- Added All Projctiles skill parts to Ice Spear
- Added support for Brand/Banner passives
- Fixed node power calculation bugs
- Fixed incorrect removable charge counts
- Added new uniques
- Updated new unique rolls
- Fixed many broken stat parsing
- Added Charge count override options
- Fixed error when adding custom prefix/suffix mod