modifier_bosses_random_dead_heal = class({})

local public = modifier_bosses_random_dead_heal

--------------------------------------------------------------------------------

function public:IsDebuff()
	return false
end

--------------------------------------------------------------------------------

function public:IsHidden()
	return false
end

--------------------------------------------------------------------------------

function public:IsPurgable()
	return false
end

--------------------------------------------------------------------------------

function public:OnDestroy(kv)
	if IsServer() then
		local caster = self:GetParent()
		local point = caster:GetOrigin()
		local hero = GameRules.HeroList[caster.thtd_player_index]
		local time = 5
		
		local effectIndex = ParticleManager:CreateParticle("particles/heroes/thtd_suwako/ability_suwako_02.vpcf", PATTACH_CUSTOMORIGIN, hero)
		ParticleManager:SetParticleControl(effectIndex, 0, point)
		ParticleManager:SetParticleControl(effectIndex, 1, Vector(200,1,1))
		ParticleManager:DestroyParticleSystemTime(effectIndex,5.0)

		hero:SetContextThink(DoUniqueString("random_boss_buff_dead_heal"), 
			function()
				if GameRules:IsGamePaused() then return 0.3 end
				if time <= 0 then return nil end
				local targets = THTD_FindUnitsInRadius(hero,point,300)
				for k,v in pairs(targets) do
					if v ~= nil and v:IsNull() == false and v:IsAlive() then 
						v:SetHealth(math.min(v:GetMaxHealth(), v:GetHealth() + v:GetMaxHealth() * 0.05))					
					end
				end
				time = time - 1
				return 1
			end,
		1)		
	end
end

--------------------------------------------------------------------------------

function public:GetTexture()
	return "random_boss_buff_dead_heal"
end