landsandboat/scripts/effects/overdrive.lua

71 lines
2.3 KiB
Lua
Raw Permalink Normal View History

2021-01-18 12:48:07 -05:00
-----------------------------------
2021-04-01 15:10:15 -04:00
-- xi.effect.OVERDRIVE
2021-01-18 12:48:07 -05:00
-----------------------------------
---@type TEffect
local effectObject = {}
2016-01-16 01:26:33 -05:00
effectObject.onEffectGain = function(target, effect)
2021-04-01 15:10:15 -04:00
target:addMod(xi.mod.OVERLOAD_THRESH, 5000)
2017-04-08 20:31:19 -05:00
local pet = target:getPet()
2021-04-14 07:47:34 -04:00
local jpBonus = target:getJobPointLevel(xi.jp.OVERDRIVE_EFFECT) * 5
2017-04-08 20:31:19 -05:00
if pet then
pet:setLocalVar('overdrive', 1)
2021-04-01 15:10:15 -04:00
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)
2021-04-14 07:47:34 -04:00
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
2017-04-08 20:31:19 -05:00
end
end
2016-01-16 01:26:33 -05:00
effectObject.onEffectTick = function(target, effect)
2017-04-08 20:31:19 -05:00
end
2016-01-16 01:26:33 -05:00
effectObject.onEffectLose = function(target, effect)
2021-04-01 15:10:15 -04:00
target:delMod(xi.mod.OVERLOAD_THRESH, 5000)
2017-04-08 20:31:19 -05:00
local pet = target:getPet()
2021-04-14 07:47:34 -04:00
local jpBonus = target:getJobPointLevel(xi.jp.OVERDRIVE_EFFECT) * 5
if pet and pet:getLocalVar('overdrive') ~= 0 then
pet:setLocalVar('overdrive', 0)
2021-04-01 15:10:15 -04:00
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)
2021-04-14 07:47:34 -04:00
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
2017-04-08 20:31:19 -05:00
end
end
return effectObject