landsandboat/scripts/effects/overdrive.lua
claywar 7bba1bdc3a
[type] Add type annotations to Effect scripts
Fix delStatusEffect in atma.lua
2024-08-24 21:26:29 -04:00

70 lines
2.3 KiB
Lua

-----------------------------------
-- xi.effect.OVERDRIVE
-----------------------------------
---@type TEffect
local effectObject = {}
effectObject.onEffectGain = function(target, effect)
target:addMod(xi.mod.OVERLOAD_THRESH, 5000)
local pet = target:getPet()
local jpBonus = target:getJobPointLevel(xi.jp.OVERDRIVE_EFFECT) * 5
if pet then
pet:setLocalVar('overdrive', 1)
pet:addMod(xi.mod.HASTE_MAGIC, 2500)
pet:addMod(xi.mod.MAIN_DMG_RATING, 30)
pet:addMod(xi.mod.RANGED_DMG_RATING, 30)
pet:addMod(xi.mod.ATTP, 50)
pet:addMod(xi.mod.RATTP, 50)
pet:addMod(xi.mod.ACC, 100)
pet:addMod(xi.mod.RACC, 100)
pet:addMod(xi.mod.EVA, 50)
pet:addMod(xi.mod.MEVA, 50)
pet:addMod(xi.mod.REVA, 50)
pet:addMod(xi.mod.DMG, -5000)
if jpBonus > 0 then
pet:addMod(xi.mod.STR, jpBonus)
pet:addMod(xi.mod.DEX, jpBonus)
pet:addMod(xi.mod.VIT, jpBonus)
pet:addMod(xi.mod.AGI, jpBonus)
pet:addMod(xi.mod.INT, jpBonus)
pet:addMod(xi.mod.MND, jpBonus)
pet:addMod(xi.mod.CHR, jpBonus)
end
end
end
effectObject.onEffectTick = function(target, effect)
end
effectObject.onEffectLose = function(target, effect)
target:delMod(xi.mod.OVERLOAD_THRESH, 5000)
local pet = target:getPet()
local jpBonus = target:getJobPointLevel(xi.jp.OVERDRIVE_EFFECT) * 5
if pet and pet:getLocalVar('overdrive') ~= 0 then
pet:setLocalVar('overdrive', 0)
pet:delMod(xi.mod.HASTE_MAGIC, 2500)
pet:delMod(xi.mod.MAIN_DMG_RATING, 30)
pet:delMod(xi.mod.RANGED_DMG_RATING, 30)
pet:delMod(xi.mod.ATTP, 50)
pet:delMod(xi.mod.RATTP, 50)
pet:delMod(xi.mod.ACC, 100)
pet:delMod(xi.mod.RACC, 100)
pet:delMod(xi.mod.EVA, 50)
pet:delMod(xi.mod.MEVA, 50)
pet:delMod(xi.mod.REVA, 50)
pet:delMod(xi.mod.DMG, -5000)
if jpBonus > 0 then
pet:delMod(xi.mod.STR, jpBonus)
pet:delMod(xi.mod.DEX, jpBonus)
pet:delMod(xi.mod.VIT, jpBonus)
pet:delMod(xi.mod.AGI, jpBonus)
pet:delMod(xi.mod.INT, jpBonus)
pet:delMod(xi.mod.MND, jpBonus)
pet:delMod(xi.mod.CHR, jpBonus)
end
end
end
return effectObject