Code: Select all
-- Reduce damage with resistance
if target.resists then
local pen = 0
if src.resists_pen then pen = (src.resists_pen.all or 0) + (src.resists_pen[type] or 0) end
local res = target:combatGetResist(type)
res = res * (100 - pen) / 100
print("[PROJECTOR] res", res, (100 - res) / 100, " on dam", dam)
if res >= 100 then dam = 0
elseif res <= -100 then dam = dam * 2
else dam = dam * ((100 - res) / 100)
end
end
So for example 50% penetration against a -100% resistance would bring that to -50%, which I don't think is intended.
Basically - check for res > 0 before applying penetration.