Code: Select all
callbackOnHit = function(self, eff, cb, src)
local absorb = eff.power
if absorb > cb.value then absorb = absorb - cb.value end
if eff.src and not eff.src.dead and eff.src:knowTalent(eff.src.T_CAPACITOR_DISCHARGE) then
eff.src:setEffect(eff.src.EFF_CAPACITOR_DISCHARGE, 10, {power=absorb, max_power=eff.src:callTalent(eff.src.T_CAPACITOR_DISCHARGE, "getDamage")})
end
game:delayedLogDamage(src, self, 0, ("#LIGHT_BLUE#(%d lightning web)#LAST#"):format(absorb), false)
cb.value = cb.value - absorb
end,
}
This is obviously wrong.if absorb > cb.value then absorb = absorb - cb.value
It is usually used for effects like damage shield, but here we have flat damage reduction. As a result, we will get the wrong number if the damage is lower than reduction.