self.Calculation["Shield Slam"] = function( calculation, ActiveAuras, Talents )
local dr = 24.5 * calculation.playerLevel --1960 at level 80
local cap = 39.5 * calculation.playerLevel --3160 at level 80
local bv = calculation.blockValue
local bonus = 0
if ActiveAuras["Shield Block"] then
local mult = self.MetaGem_BlockBonus + (Talents["Shield Mastery"] or 0) + (ActiveAuras["Glyph of Blocking"] and 0.1 or 0)
bonus = bv / (2 + mult)
bv = bonus * (1 + mult)
--TODO: Improve this?
if Talents["Shield Mastery"] and bv > dr then
bonus = bonus * (1 + math_min(0.13,(bv - dr) * 0.055))
end
end
if bv > dr then
--At level 80 true bonus is 2072 with 3160 blockvalue. 112 effective block value from 1200 block value.
bv = math_min(cap, bv)
bv = dr + (bv - dr) * (112/1200)
end
calculation.minDam = calculation.minDam + bv + bonus
calculation.maxDam = calculation.maxDam + bv + bonus
calculation.coeff = (bv + bonus) / calculation.blockValue
calculation.coeffv = calculation.blockValue
if self:GetSetAmount("T7 - Prot") >= 2 then
calculation.dmgM_Add = calculation.dmgM_Add + 0.1
end
if self:GetSetAmount( "T10 - Prot" ) >= 2 then
calculation.dmgM_Add = calculation.dmgM_Add + 0.2
end
end
[свернуть]