Base 55%
Bonus 60%
== 115%
DISMAYED 100% (overwrite)
Crit red -50%
Net Crit 50%
Instead of
Base 55%
DISMAYED 100% (overwrite)
Bonus 60%
== 115%
Crit red -50%
Net Crit 65%
Moving the DISMAYED check solves the problem:
Code: Select all
-- Computes physical crit for a damage
function _M:physicalCrit(dam, weapon, target, atk, def, add_chance, crit_power_add)
self.turn_procs.is_crit = nil
local tier_diff = self:getTierDiff(atk, def)
local chance = self:combatCrit(weapon) + (add_chance or 0)
crit_power_add = crit_power_add or 0
-- Move check to here to avoid cancelling bonuses
if target:hasEffect(target.EFF_DISMAYED) then
chance = 100
end
local crit = false
if self:knowTalent(self.T_BACKSTAB) and target:attr("stunned") then chance = chance + self:getTalentLevel(self.T_BACKSTAB) * 10 end
if target:attr("combat_crit_vulnerable") then
chance = chance + target:attr("combat_crit_vulnerable")
end
if target:hasEffect(target.EFF_SET_UP) then
local p = target:hasEffect(target.EFF_SET_UP)
if p and p.src == self then
chance = chance + p.power
end
end
chance = chance - target:combatCritReduction()
-- if target:hasEffect(target.EFF_DISMAYED) then
-- chance = 100
-- end
-- Scoundrel's Strategies
if self:attr("cut") and target:knowTalent(self.T_SCOUNDREL) then
chance = chance - (5 + (target:getTalentLevel(self.T_SCOUNDREL)*5))
end
if self:isTalentActive(self.T_STEALTH) and self:knowTalent(self.T_SHADOWSTRIKE) then
chance = 100
crit_power_add = crit_power_add + self:getTalentLevel(self.T_SHADOWSTRIKE) / 7
end
chance = util.bound(chance, 0, 100)
print("[PHYS CRIT %]", chance)
if rng.percent(chance) then
if target:hasEffect(target.EFF_OFFGUARD) then
crit_power_add = crit_power_add + 0.1
end
self.turn_procs.is_crit = "physical"
self.turn_procs.crit_power = (1.5 + crit_power_add + (self.combat_critical_power or 0) / 100)
dam = dam * (1.5 + crit_power_add + (self.combat_critical_power or 0) / 100)
crit = true
if self:knowTalent(self.T_EYE_OF_THE_TIGER) then self:triggerTalent(self.T_EYE_OF_THE_TIGER, nil, "physical") end
end
return dam, crit
end