Skip to content

Commit

Permalink
Fix Frost Blades of Katabasis DoT not scaling with Tinctures and Mult…
Browse files Browse the repository at this point in the history
…istrike (#8281)

* Fix Frost Blades of Katabasis DoT not scaling with some mods

The DoT portion of the skill was not scaling with the `(70-100)% increased Elemental Damage with Melee Weapons` mod on Tinctures.
It was also not scaling with the repeat damage on Multistrike. I tested it in game and the repeat damage definitely applies to the DoT component.
The PR removes the skill hit tag from the DoT component so it doesn't incorrectly show hit damage and stats
It also removes crit chance from showing up unless a skill part has a hit component

* Fix DoT Multi mod not working correctly

---------

Co-authored-by: LocalIdentity <localidentity2@gmail.com>
  • Loading branch information
LocalIdentity and LocalIdentity authored Sep 3, 2024
1 parent 5a94286 commit 5667a34
Show file tree
Hide file tree
Showing 5 changed files with 9 additions and 6 deletions.
2 changes: 2 additions & 0 deletions src/Data/Skills/act_dex.lua
Original file line number Diff line number Diff line change
Expand Up @@ -7924,6 +7924,7 @@ skills["FrostBladesAltX"] = {
{
name = "Ground DoT",
attack = false,
hit = false,
melee = false,
projectile = false,
area = true,
Expand All @@ -7940,6 +7941,7 @@ skills["FrostBladesAltX"] = {
melee = true,
projectile = true,
area = true,
dotFromAttack = true,
},
baseMods = {
skill("dotIsArea", true, { type = "SkillPart", skillPart = 2 }),
Expand Down
3 changes: 2 additions & 1 deletion src/Export/Skills/act_dex.txt
Original file line number Diff line number Diff line change
Expand Up @@ -1626,7 +1626,7 @@ local skills, mod, flag, skill = ...
#mods

#skill FrostBladesAltX
#flags attack melee projectile area
#flags attack melee projectile area dotFromAttack
parts = {
{
name = "Melee Hit",
Expand All @@ -1638,6 +1638,7 @@ local skills, mod, flag, skill = ...
{
name = "Ground DoT",
attack = false,
hit = false,
melee = false,
projectile = false,
area = true,
Expand Down
4 changes: 2 additions & 2 deletions src/Modules/Build.lua
Original file line number Diff line number Diff line change
Expand Up @@ -383,8 +383,8 @@ function buildMode:Init(dbFileName, buildName, buildXML, convertBuild, importLin
{ stat = "TrapThrowCount", label = "Avg. Traps per Throw", fmt = ".2f"},
{ stat = "MineThrowCount", label = "Avg. Mines per Throw", fmt = ".2f"},
{ stat = "TotemPlacementTime", label = "Totem Placement Time", fmt = ".2fs", compPercent = true, lowerIsBetter = true, condFunc = function(v,o) return not o.TriggerTime end },
{ stat = "PreEffectiveCritChance", label = "Crit Chance", fmt = ".2f%%" },
{ stat = "CritChance", label = "Effective Crit Chance", fmt = ".2f%%", condFunc = function(v,o) return v ~= o.PreEffectiveCritChance end },
{ stat = "PreEffectiveCritChance", label = "Crit Chance", fmt = ".2f%%", flag = "hit" },
{ stat = "CritChance", label = "Effective Crit Chance", fmt = ".2f%%", flag = "hit", condFunc = function(v,o) return v ~= o.PreEffectiveCritChance end },
{ stat = "CritMultiplier", label = "Crit Multiplier", fmt = "d%%", pc = true, condFunc = function(v,o) return (o.CritChance or 0) > 0 end },
{ stat = "HitChance", label = "Hit Chance", fmt = ".0f%%", flag = "attack" },
{ stat = "HitChance", label = "Hit Chance", fmt = ".0f%%", condFunc = function(v,o) return o.enemyHasSpellBlock end },
Expand Down
4 changes: 2 additions & 2 deletions src/Modules/CalcActiveSkill.lua
Original file line number Diff line number Diff line change
Expand Up @@ -279,7 +279,7 @@ function calcs.buildActiveSkillModList(env, activeSkill)
weapon1Flags, weapon1Info = ModFlag[env.data.weaponTypeInfo["None"].flag], env.data.weaponTypeInfo["None"]
end
if weapon1Flags then
if skillFlags.attack then
if skillFlags.attack or skillFlags.dotFromAttack then
activeSkill.weapon1Flags = weapon1Flags
skillFlags.weapon1Attack = true
if weapon1Info.melee and skillFlags.melee then
Expand All @@ -296,7 +296,7 @@ function calcs.buildActiveSkillModList(env, activeSkill)
if not skillTypes[SkillType.MainHandOnly] and not skillFlags.forceMainHand then
local weapon2Flags, weapon2Info = getWeaponFlags(env, activeSkill.actor.weaponData2, weaponTypes)
if weapon2Flags then
if skillFlags.attack then
if skillFlags.attack or skillFlags.dotFromAttack then
activeSkill.weapon2Flags = weapon2Flags
skillFlags.weapon2Attack = true
end
Expand Down
2 changes: 1 addition & 1 deletion src/Modules/ModParser.lua
Original file line number Diff line number Diff line change
Expand Up @@ -855,7 +855,7 @@ local modFlagList = {
["to unarmed attacks"] = { flags = bor(ModFlag.Unarmed, ModFlag.Hit) },
["to unarmed melee hits"] = { flags = bor(ModFlag.Unarmed, ModFlag.Melee, ModFlag.Hit) },
["with melee weapons"] = { flags = ModFlag.WeaponMelee },
["with melee weapon attacks"] = { flags = bor(ModFlag.WeaponMelee, ModFlag.Hit) },
["with melee weapon attacks"] = { flags = ModFlag.WeaponMelee }, --Tincture mod doesn't care about it being a Hit
["from melee weapons"] = { flags = ModFlag.WeaponMelee },
["from melee weapon attacks"] = { flags = bor(ModFlag.WeaponMelee, ModFlag.Hit) },
["melee weapon"] = { flags = ModFlag.WeaponMelee },
Expand Down

0 comments on commit 5667a34

Please sign in to comment.