70 lines
2.3 KiB
Lua
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
|