Windblade/steamsaws?
Posted: Thu Jul 13, 2017 1:26 am
Noticed a while back (tome1.3.5?) that Sawbutchers can't learn Windblade prodigy without workaround shenanigans... apparently because the logic in attackTargetWith() returns mode="shield" instead of mode="dualwield" as the prodigy requires. This also results in an Ogre using 2h+shield being unable to unlock Massive Blow.
Unless there's a particular reason to consider shields with a higher priority or some drawback to having steamsaw damage logged as dualwield, the simplest solution that doesn't require adding a separate operation (in data/damage_types.lua around line555) to determine the mode again in order to record multiple combat modes... would be to reorder the checks (mod/interface/Combat.lua around line405)
from
to
Which still results in a odd workaround for the corner-case of an Ogre with 2h+dagger needing to use 1h+dagger for a while to get Windblade instead of Massive Blow, but derails gameplay a lot less than requiring sawbutchers to use daggers, which leaves them unable to use their class talents.
Also the same logic structure of checking if hasShield() ... elseif hasDualWeapon() ... results in dual-steamsaw users having the x75% Arcane Combat proc penalty instead of x50% for dual wielding. Which may or may not be intentional because Arcane Chainsaw is kinda fun. (The relevant checks appear in mod/class/interface/Combat.lua~line813 and data/talents/techniques/magical-combat.lua~line66)
Unless there's a particular reason to consider shields with a higher priority or some drawback to having steamsaw damage logged as dualwield, the simplest solution that doesn't require adding a separate operation (in data/damage_types.lua around line555) to determine the mode again in order to record multiple combat modes... would be to reorder the checks (mod/interface/Combat.lua around line405)
from
Code: Select all
local mode = "other"
if self:hasShield() then mode = "shield"
elseif self:hasTwoHandedWeapon() then mode = "twohanded"
elseif self:hasDualWeapon() then mode = "dualwield"
end
Code: Select all
if self:hasTwoHandedWeapon() then mode = "twohanded"
elseif self:hasDualWeapon() then mode = "dualwield"
elseif self:hasShield() then mode = "shield"
end
Also the same logic structure of checking if hasShield() ... elseif hasDualWeapon() ... results in dual-steamsaw users having the x75% Arcane Combat proc penalty instead of x50% for dual wielding. Which may or may not be intentional because Arcane Chainsaw is kinda fun. (The relevant checks appear in mod/class/interface/Combat.lua~line813 and data/talents/techniques/magical-combat.lua~line66)