landsandboat/scripts/effects/magic_shield.lua

43 lines
1.4 KiB
Lua

-----------------------------------
-- xi.effect.MAGIC_SHIELD
-- Blocks Magic damage and effects depending on power
-- Power Notes:
-- 0 - 50% DMGMAGIC (e.g. Fool's Tonic)
-- 1 -100% UDMGMAGIC (e.g. Spiritual Incense, Polar Bulwark, Fool's Drink)
-- 2 All Element Specific Absorb 100% (Arcane Stomp)
-- 3 All Magic (incl. non-elemental) Absorb 100% (e.g. Mind Wall)
--
-- subPower Notes:
-- 0 Standard Magic Shield (adds magic immunity)
-- 1 Fake Magic Shield (does not resist non-damage spells)
-----------------------------------
---@type TEffect
local effectObject = {}
effectObject.onEffectGain = function(target, effect)
local power = effect:getPower()
if power == 3 then
effect:addMod(xi.mod.MAGIC_ABSORB, 100)
elseif power == 2 then
effect:addMod(xi.mod.FIRE_ABSORB, 100)
effect:addMod(xi.mod.EARTH_ABSORB, 100)
effect:addMod(xi.mod.WATER_ABSORB, 100)
effect:addMod(xi.mod.WIND_ABSORB, 100)
effect:addMod(xi.mod.ICE_ABSORB, 100)
effect:addMod(xi.mod.LTNG_ABSORB, 100)
effect:addMod(xi.mod.LIGHT_ABSORB, 100)
effect:addMod(xi.mod.DARK_ABSORB, 100)
elseif power == 1 then
effect:addMod(xi.mod.UDMGMAGIC, -10000)
else
effect:addMod(xi.mod.DMGMAGIC, -5000)
end
end
effectObject.onEffectTick = function(target, effect)
end
effectObject.onEffectLose = function(target, effect)
end
return effectObject