133 lines
5.1 KiB
Lua
133 lines
5.1 KiB
Lua
-----------------------------------
|
|
-- func: godmode
|
|
-- desc: Toggles god mode on the player, granting them several special abilities.
|
|
-- Pass variable of 1 to command to enable a 'soft' god mode.
|
|
-----------------------------------
|
|
---@type TCommand
|
|
local commandObj = {}
|
|
|
|
commandObj.cmdprops =
|
|
{
|
|
permission = 1,
|
|
parameters = 'i'
|
|
}
|
|
|
|
local godModeOn = function(player)
|
|
-- Add bonus effects to the player..
|
|
player:addStatusEffect(xi.effect.MAX_HP_BOOST, { power = 1000, origin = player })
|
|
player:addStatusEffect(xi.effect.MAX_MP_BOOST, { power = 1000, origin = player })
|
|
player:addStatusEffect(xi.effect.MIGHTY_STRIKES, { power = 1, origin = player })
|
|
player:addStatusEffect(xi.effect.HUNDRED_FISTS, { power = 1, origin = player })
|
|
player:addStatusEffect(xi.effect.CHAINSPELL, { power = 1, origin = player })
|
|
player:addStatusEffect(xi.effect.PERFECT_DODGE, { power = 1, origin = player })
|
|
player:addStatusEffect(xi.effect.INVINCIBLE, { power = 1, origin = player })
|
|
player:addStatusEffect(xi.effect.ELEMENTAL_SFORZO, { power = 1, origin = player })
|
|
player:addStatusEffect(xi.effect.MANAFONT, { power = 1, origin = player })
|
|
player:addStatusEffect(xi.effect.REGAIN, { power = 300, origin = player })
|
|
player:addStatusEffect(xi.effect.REFRESH, { power = 99, origin = player })
|
|
player:addStatusEffect(xi.effect.REGEN, { power = 99, origin = player })
|
|
|
|
-- Add bonus mods to the player..
|
|
player:addMod(xi.mod.RACC, 2500)
|
|
player:addMod(xi.mod.RATT, 2500)
|
|
player:addMod(xi.mod.ACC, 2500)
|
|
player:addMod(xi.mod.ATT, 2500)
|
|
player:addMod(xi.mod.MATT, 2500)
|
|
player:addMod(xi.mod.MACC, 2500)
|
|
player:addMod(xi.mod.RDEF, 2500)
|
|
player:addMod(xi.mod.DEF, 2500)
|
|
player:addMod(xi.mod.MDEF, 2500)
|
|
|
|
-- Heal the player from the new buffs..
|
|
player:addHP(50000)
|
|
player:setMP(50000)
|
|
end
|
|
|
|
local godModeOff = function(player)
|
|
-- Remove bonus effects..
|
|
player:delStatusEffect(xi.effect.MAX_HP_BOOST)
|
|
player:delStatusEffect(xi.effect.MAX_MP_BOOST)
|
|
player:delStatusEffect(xi.effect.MIGHTY_STRIKES)
|
|
player:delStatusEffect(xi.effect.HUNDRED_FISTS)
|
|
player:delStatusEffect(xi.effect.CHAINSPELL)
|
|
player:delStatusEffect(xi.effect.PERFECT_DODGE)
|
|
player:delStatusEffect(xi.effect.INVINCIBLE)
|
|
player:delStatusEffect(xi.effect.ELEMENTAL_SFORZO)
|
|
player:delStatusEffect(xi.effect.MANAFONT)
|
|
player:delStatusEffect(xi.effect.REGAIN)
|
|
player:delStatusEffect(xi.effect.REFRESH)
|
|
player:delStatusEffect(xi.effect.REGEN)
|
|
|
|
-- Remove bonus mods..
|
|
player:delMod(xi.mod.RACC, 2500)
|
|
player:delMod(xi.mod.RATT, 2500)
|
|
player:delMod(xi.mod.ACC, 2500)
|
|
player:delMod(xi.mod.ATT, 2500)
|
|
player:delMod(xi.mod.MATT, 2500)
|
|
player:delMod(xi.mod.MACC, 2500)
|
|
player:delMod(xi.mod.RDEF, 2500)
|
|
player:delMod(xi.mod.DEF, 2500)
|
|
player:delMod(xi.mod.MDEF, 2500)
|
|
end
|
|
|
|
local godModeTierOneOn = function(player)
|
|
-- Add bonus effects to the player..
|
|
player:addStatusEffect(xi.effect.MAX_HP_BOOST, { power = 200, origin = player })
|
|
player:addStatusEffect(xi.effect.REGAIN, { power = 50, origin = player })
|
|
player:addStatusEffect(xi.effect.REFRESH, { power = 999, origin = player })
|
|
player:addStatusEffect(xi.effect.REGEN, { power = 999, origin = player })
|
|
player:addStatusEffect(xi.effect.CHAINSPELL, { power = 1, origin = player })
|
|
player:addStatusEffect(xi.effect.MANAFONT, { power = 1, origin = player })
|
|
|
|
-- Heal the player from the new buffs..
|
|
player:addHP(50000)
|
|
player:setMP(50000)
|
|
end
|
|
|
|
local godModeTierOneOff = function(player)
|
|
-- Remove bonus effects..
|
|
player:delStatusEffect(xi.effect.MAX_HP_BOOST)
|
|
player:delStatusEffect(xi.effect.REGAIN)
|
|
player:delStatusEffect(xi.effect.REFRESH)
|
|
player:delStatusEffect(xi.effect.REGEN)
|
|
player:delStatusEffect(xi.effect.CHAINSPELL)
|
|
player:delStatusEffect(xi.effect.MANAFONT)
|
|
end
|
|
|
|
commandObj.onTrigger = function(player, tier)
|
|
local mode = utils.clamp(tier or 0, 0, 2)
|
|
local state = player:getCharVar('GodMode')
|
|
|
|
if mode == 0 and state == 0 then
|
|
player:setCharVar('GodMode', 1)
|
|
godModeOn(player)
|
|
player:printToPlayer('God Mode enabled.')
|
|
elseif mode == 0 and state == 1 then
|
|
player:setCharVar('GodMode', 0)
|
|
godModeOff(player)
|
|
player:printToPlayer('God Mode disabled.')
|
|
elseif mode == 0 and state == 2 then
|
|
player:setCharVar('GodMode', 1)
|
|
godModeTierOneOff(player)
|
|
godModeOn(player)
|
|
player:printToPlayer('God Mode enabled.')
|
|
end
|
|
|
|
-- Enables a toned down version of god mode
|
|
if mode == 1 and state == 0 then
|
|
player:setCharVar('GodMode', 2)
|
|
godModeTierOneOn(player)
|
|
player:printToPlayer('God Mode Tier 1 enabled.')
|
|
elseif mode == 1 and state == 2 then
|
|
player:setCharVar('GodMode', 0)
|
|
godModeTierOneOff(player)
|
|
player:printToPlayer('God Mode Tier 1 disabled.')
|
|
elseif mode == 1 and state == 1 then
|
|
player:setCharVar('GodMode', 2)
|
|
godModeOff(player)
|
|
godModeTierOneOn(player)
|
|
player:printToPlayer('God Mode Tier 1 enabled.')
|
|
end
|
|
end
|
|
|
|
return commandObj
|