landsandboat/scripts/effects/companions_roll.lua

68 lines
2.5 KiB
Lua

-----------------------------------
-- xi.effect.COMPANIONS_ROLL
-----------------------------------
---@type TEffect
local effectObject = {}
effectObject.onEffectGain = function(target, effect)
local effectregain = { 20, 50, 20, 20, 30, 30, 30, 40, 40, 10, 60, 0 }
local effectregen = { 4, 20, 6, 8, 10, 12, 14, 16, 18, 3, 25, 0 }
if effect:getPower() > 69 then
local rollnum = effect:getPower() - 70
target:addPetMod(xi.mod.REGAIN, (effectregain[rollnum] + 35))
target:addPetMod(xi.mod.REGEN, (effectregen[rollnum] + 14))
end
if effect:getPower() > 49 and effect:getPower() < 69 then
local rollnum = effect:getPower() - 50
target:addPetMod(xi.mod.REGAIN, (effectregain[rollnum] + 25))
target:addPetMod(xi.mod.REGEN, (effectregen[rollnum] + 10))
end
if effect:getPower() > 29 and effect:getPower() < 49 then
local rollnum = effect:getPower() - 30
target:addPetMod(xi.mod.REGAIN, (effectregain[rollnum] + 15))
target:addPetMod(xi.mod.REGEN, (effectregen[rollnum] + 6))
end
if effect:getPower() < 19 then
local rollnum = effect:getPower()
target:addPetMod(xi.mod.REGAIN, effectregain[rollnum])
target:addPetMod(xi.mod.REGEN, effectregen[rollnum])
end
end
effectObject.onEffectTick = function(target, effect)
end
effectObject.onEffectLose = function(target, effect)
local effectregain = { 20, 50, 20, 20, 30, 30, 30, 40, 40, 10, 60, 0 }
local effectregen = { 4, 20, 6, 8, 10, 12, 14, 16, 18, 3, 25, 0 }
if effect:getPower() > 69 then
local rollnum = effect:getPower() - 70
target:delPetMod(xi.mod.REGAIN, (effectregain[rollnum] + 35))
target:delPetMod(xi.mod.REGEN, (effectregen[rollnum] + 14))
end
if effect:getPower() > 49 and effect:getPower() < 69 then
local rollnum = effect:getPower() - 50
target:delPetMod(xi.mod.REGAIN, (effectregain[rollnum] + 25))
target:delPetMod(xi.mod.REGEN, (effectregen[rollnum] + 10))
end
if effect:getPower() > 29 and effect:getPower() < 49 then
local rollnum = effect:getPower() - 30
target:delPetMod(xi.mod.REGAIN, (effectregain[rollnum] + 15))
target:delPetMod(xi.mod.REGEN, (effectregen[rollnum] + 6))
end
if effect:getPower() < 19 then
local rollnum = effect:getPower()
target:delPetMod(xi.mod.REGAIN, effectregain[rollnum])
target:delPetMod(xi.mod.REGEN, effectregen[rollnum])
end
xi.job_utils.corsair.onRollEffectLose(target, effect)
end
return effectObject