----------------------------------- -- xi.effect.DEBILITATION ----------------------------------- ---@type TEffect local effectObject = {} local statsBits = { xi.mod.STR, xi.mod.DEX, xi.mod.VIT, xi.mod.AGI, xi.mod.INT, xi.mod.MND, xi.mod.CHR, xi.mod.HPP, xi.mod.MPP } effectObject.onEffectGain = function(target, effect) local power = effect:getPower() for statbit, mod in ipairs(statsBits) do if bit.band(bit.lshift(1, statbit - 1), power) > 0 then if mod == xi.mod.HPP or mod == xi.mod.MPP then target:addMod(mod, -40) else target:addMod(mod, -30) end end end target:setStatDebilitation(power) end effectObject.onEffectTick = function(target, effect) end effectObject.onEffectLose = function(target, effect) local power = effect:getPower() for statbit, mod in ipairs(statsBits) do if bit.band(bit.lshift(1, statbit - 1), power) > 0 then if mod == xi.mod.HPP or mod == xi.mod.MPP then target:delMod(mod, -40) else target:delMod(mod, -30) end end end target:setStatDebilitation(0) end return effectObject