forgottenserver/data/scripts/spells/support/magic_shield.lua
Ranieri Althoff 25df9cfd38
Move spells to scripts folder (#4755)
* Move runes to dedicated folder
* Redirect old XML and lib folder to new location
* Drop unused custom spells
2024-09-20 00:13:59 +02:00

48 lines
1.7 KiB
Lua

-- Old mana shield
local combat = Combat()
combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE)
combat:setParameter(COMBAT_PARAM_AGGRESSIVE, false)
local condition = Condition(CONDITION_MANASHIELD)
condition:setParameter(CONDITION_PARAM_TICKS, 200 * 1000)
combat:addCondition(condition)
-- New mana shield
local combatBreakableManaShield = Combat()
combatBreakableManaShield:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE)
combatBreakableManaShield:setParameter(COMBAT_PARAM_AGGRESSIVE, false)
local conditionBreakableManaShield = Condition(CONDITION_MANASHIELD_BREAKABLE)
conditionBreakableManaShield:setParameter(CONDITION_PARAM_TICKS, 180 * 1000)
local magicShield = Spell(SPELL_INSTANT)
function magicShield.onCastSpell(creature, variant)
if configManager.getBoolean(configKeys.MANASHIELD_BREAKABLE) then
local player = creature:getPlayer()
if player then
conditionBreakableManaShield:setParameter(CONDITION_PARAM_MANASHIELD_BREAKABLE, math.min(player:getMaxMana(), 300 + 7.6 * player:getLevel() + 7 * player:getMagicLevel()))
player:addCondition(conditionBreakableManaShield)
return combatBreakableManaShield:execute(creature, variant)
end
end
return combat:execute(creature, variant)
end
magicShield:name("Magic Shield")
magicShield:id(44)
magicShield:words("utamo vita")
magicShield:level(14)
magicShield:mana(50)
magicShield:group("support")
magicShield:isAggressive(false)
magicShield:isSelfTarget(true)
if configManager.getBoolean(configKeys.MANASHIELD_BREAKABLE) then
magicShield:cooldown(14000)
else
magicShield:cooldown(2000)
end
magicShield:groupCooldown(2000)
magicShield:needLearn(false)
magicShield:vocation("druid;true", "elder druid;true", "sorcerer;true", "master sorcerer;true")
magicShield:register()