58 lines
2.1 KiB
Lua
58 lines
2.1 KiB
Lua
-----------------------------------
|
|
-- xi.effect.SIGIL
|
|
-----------------------------------
|
|
---@type TEffect
|
|
local effectObject = {}
|
|
|
|
effectObject.onEffectGain = function(target, effect)
|
|
local power = effect:getPower() -- Tracks which bonus effects are in use.
|
|
|
|
if utils.mask.getBit(power, 1) then
|
|
local percentage = 70 -- TODO: This should be based off of controlled areas in Campaign
|
|
target:addLatent(xi.latent.SIGIL_REGEN_BONUS, percentage, xi.mod.REGEN, 1)
|
|
end
|
|
|
|
if utils.mask.getBit(power, 2) then
|
|
local percentage = 60 -- TODO: This should be based off of controlled areas in Campaign
|
|
target:addLatent(xi.latent.SIGIL_REFRESH_BONUS, percentage, xi.mod.REFRESH, 1)
|
|
end
|
|
|
|
if utils.mask.getBit(power, 3) then
|
|
-- TODO: Power varies with controlled areas
|
|
target:addLatent(xi.latent.SIGIL_FOOD_BONUS, 0, xi.mod.FOOD_DURATION, 100)
|
|
end
|
|
|
|
if utils.mask.getBit(power, 4) then
|
|
-- target:addMod(xi.mod.EXPLOSS_REDUCTION), ???)
|
|
-- exp loss reduction not implemented.
|
|
end
|
|
end
|
|
|
|
effectObject.onEffectTick = function(target, effect)
|
|
end
|
|
|
|
effectObject.onEffectLose = function(target, effect)
|
|
local power = effect:getPower() -- Tracks which bonus effects are in use.
|
|
-- local subPower = effect:getSubPower() -- subPower sets % required to trigger regen/refresh.
|
|
|
|
if utils.mask.getBit(power, 1) then
|
|
local percentage = 70 -- TODO: This should be based off of controlled areas in Campaign
|
|
target:delLatent(xi.latent.SIGIL_REGEN_BONUS, percentage, xi.mod.REGEN, 1)
|
|
end
|
|
|
|
if utils.mask.getBit(power, 2) then
|
|
local percentage = 60 -- TODO: This should be based off of controlled areas in Campaign
|
|
target:delLatent(xi.latent.SIGIL_REFRESH_BONUS, percentage, xi.mod.REFRESH, 1)
|
|
end
|
|
|
|
if utils.mask.getBit(power, 3) then
|
|
target:delLatent(xi.latent.SIGIL_FOOD_BONUS, 0, xi.mod.FOOD_DURATION, 100)
|
|
end
|
|
|
|
if utils.mask.getBit(power, 4) then
|
|
-- target:delMod(xi.mod.EXPLOSS_REDUCTION), ???)
|
|
-- exp loss reduction not implemented.
|
|
end
|
|
end
|
|
|
|
return effectObject
|