local combat = Combat()
combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_GREEN)
combat:setParameter(COMBAT_PARAM_AGGRESSIVE, false)
local condition = Condition(CONDITION_REGENERATION)
condition:setParameter(CONDITION_PARAM_TICKS, 10000)
condition:setParameter(CONDITION_PARAM_HEALTHGAIN, 40)
condition:setParameter(CONDITION_PARAM_HEALTHTICKS, 3000)
condition:setParameter(CONDITION_PARAM_BUFF_SPELL, true)
combat:addCondition(condition)
function onCastSpell(creature, variant)
local maxHealth = creature:getMaxHealth()
local currentHealth = creature:getHealth()
local healthCost = math.floor((maxHealth / 100) * 10)
if currentHealth <= healthCost then
return false
end
creature:addHealth(-healthCost)
local maxMana = creature:getMaxMana()
local currentMana = creature:getMana()
local manaChange = math.floor(((maxMana / 100) * 5) + 0.5)
manaChange = currentMana + manaChange <= maxMana and currentMana + manaChange or manaChange
player:addMana(manaChange)
return combat:execute(creature, variant)
end