Files
2021-10-24 15:36:18 -04:00

96 lines
3.9 KiB
Lua
Executable File

modifier_brewmaster_split = class({})
--------------------------------------------------------------------------------
function modifier_brewmaster_split:IsHidden()
return true
end
-----------------------------------------------------------------------------------------
function modifier_brewmaster_split:IsPurgable()
return false
end
--------------------------------------------------------------------------------
function modifier_brewmaster_split:GetPriority()
return MODIFIER_PRIORITY_ULTRA + 10001
end
--------------------------------------------------------------------------------
function modifier_brewmaster_split:CheckState()
local state =
{
[MODIFIER_STATE_INVULNERABLE] = true,
[MODIFIER_STATE_NO_HEALTH_BAR] = true,
[MODIFIER_STATE_STUNNED] = true,
}
return state
end
--------------------------------------------------------------------------------
function modifier_brewmaster_split:GetEffectName()
return "particles/units/heroes/hero_brewmaster/brewmaster_primal_split.vpcf"
end
--------------------------------------------------------------------------------
function modifier_brewmaster_split:GetEffectAttachType()
return PATTACH_ABSORIGIN
end
--------------------------------------------------------------------------------
function modifier_brewmaster_split:OnCreated( kv )
if IsServer() then
end
end
--------------------------------------------------------------------------------
function modifier_brewmaster_split:OnDestroy()
if IsServer() then
EmitSoundOn( "Hero_Brewmaster.PrimalSplit.Spawn", self:GetParent() )
local vPos = self:GetParent():GetAbsOrigin()
local enemies = FindUnitsInRadius( DOTA_TEAM_BADGUYS, vPos, nil, FIND_UNITS_EVERYWHERE, DOTA_UNIT_TARGET_TEAM_ENEMY, DOTA_UNIT_TARGET_HERO + DOTA_UNIT_TARGET_BASIC, DOTA_UNIT_TARGET_FLAG_MAGIC_IMMUNE_ENEMIES + DOTA_UNIT_TARGET_FLAG_FOW_VISIBLE, FIND_CLOSEST, false )
local target = enemies[RandomInt(1,#enemies)]
local earthspirit_name = "npc_dota_brewmaster_earth_unit"
local earthspirit_origin = vPos
local earthspirit = CreateUnitByName(earthspirit_name, earthspirit_origin, true, self:GetParent(), nil, DOTA_TEAM_BADGUYS)
local earthspiritfx_name = "particles/units/heroes/hero_brewmaster/brewmaster_earth_ambient.vpcf"
local earthspiritfx = ParticleManager:CreateParticle( earthspiritfx_name, PATTACH_ABSORIGIN_FOLLOW, earthspirit )
ParticleManager:SetParticleControlEnt( earthspiritfx, 0, earthspirit, PATTACH_ABSORIGIN_FOLLOW, nil, earthspirit:GetOrigin(), true )
earthspirit:SetInitialGoalEntity( target )
local stormspirit_name = "npc_dota_brewmaster_storm_unit"
local stormspirit_origin = vPos
local stormspirit = CreateUnitByName(stormspirit_name, stormspirit_origin, true, self:GetParent(), nil, DOTA_TEAM_BADGUYS)
local stormspiritfx_name = "particles/units/heroes/hero_brewmaster/brewmaster_storm_ambient.vpcf"
local stormspiritfx = ParticleManager:CreateParticle( stormspiritfx_name, PATTACH_ABSORIGIN_FOLLOW, stormspirit )
ParticleManager:SetParticleControlEnt( stormspiritfx, 0, stormspirit, PATTACH_ABSORIGIN_FOLLOW, nil, stormspirit:GetOrigin(), true )
stormspirit:SetInitialGoalEntity( target )
local firespirit_name = "npc_dota_brewmaster_fire_unit"
local firespirit_origin = vPos
local firespirit = CreateUnitByName(firespirit_name, firespirit_origin, true, self:GetParent(), nil, DOTA_TEAM_BADGUYS)
local firespiritfx_name = "particles/units/heroes/hero_brewmaster/brewmaster_fire_ambient.vpcf"
local firespiritfx = ParticleManager:CreateParticle( firespiritfx_name, PATTACH_ABSORIGIN_FOLLOW, firespirit )
ParticleManager:SetParticleControlEnt( firespiritfx, 0, firespirit, PATTACH_ABSORIGIN_FOLLOW, nil, firespirit:GetOrigin(), true )
firespirit:SetInitialGoalEntity( target )
self:GetParent():AddEffects( EF_NODRAW )
self:GetParent():ForceKill( false )
end
end
--------------------------------------------------------------------------------