55 lines
1.6 KiB
Lua
Executable File
55 lines
1.6 KiB
Lua
Executable File
modifier_bosses_random_health_effect = class({})
|
|
|
|
local public = modifier_bosses_random_health_effect
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
function public:IsDebuff()
|
|
return false
|
|
end
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
function public:IsHidden()
|
|
return false
|
|
end
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
function public:IsPurgable()
|
|
return false
|
|
end
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
function public:OnCreated(kv)
|
|
if IsServer() then
|
|
local caster = self:GetParent()
|
|
if caster.random_boss_health_buff ~= true then
|
|
caster.random_boss_health_buff = true
|
|
local health = math.min(MAX_HEALTH, caster:GetMaxHealth()*1.25)
|
|
caster.random_health_factor = health/caster:GetMaxHealth()
|
|
caster:SetBaseMaxHealth(health)
|
|
caster:SetMaxHealth(health)
|
|
caster:SetHealth(caster:GetHealth()*caster.random_health_factor)
|
|
end
|
|
end
|
|
end
|
|
|
|
function public:OnDestroy(kv)
|
|
if IsServer() then
|
|
local caster = self:GetParent()
|
|
if caster.random_boss_health_buff == true and caster.random_health_factor ~= nil then
|
|
local health = caster:GetMaxHealth()/caster.random_health_factor
|
|
caster:SetBaseMaxHealth(health)
|
|
caster:SetMaxHealth(health)
|
|
caster:SetHealth(caster:GetHealth()/caster.random_health_factor)
|
|
caster.random_boss_health_buff = false
|
|
end
|
|
end
|
|
end
|
|
--------------------------------------------------------------------------------
|
|
|
|
function public:GetTexture()
|
|
return "random_boss_buff_health"
|
|
end |