75 lines
2.3 KiB
Lua
Executable File
75 lines
2.3 KiB
Lua
Executable File
modifier_bosses_marisa = class({})
|
|
|
|
local public = modifier_bosses_marisa
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
function public:IsDebuff()
|
|
return false
|
|
end
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
function public:IsHidden()
|
|
return true
|
|
end
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
function public:IsPurgable()
|
|
return false
|
|
end
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
function public:OnCreated(kv)
|
|
if IsServer() then
|
|
local caster = self:GetParent()
|
|
local effectIndex = ParticleManager:CreateParticle("particles/heroes/marisa/marisa_01_rocket_a.vpcf", PATTACH_CUSTOMORIGIN, caster)
|
|
ParticleManager:SetParticleControlEnt(effectIndex , 0, caster, 5, "follow_origin", Vector(0,0,0), true)
|
|
ParticleManager:SetParticleControlForward(effectIndex,0,caster:GetForwardVector())
|
|
ParticleManager:SetParticleControl(effectIndex, 15, Vector(0,60,255))
|
|
local count = 5
|
|
if caster.first_delay == nil then
|
|
caster.first_delay = 0.3
|
|
else
|
|
caster.first_delay = 0
|
|
end
|
|
caster:SetContextThink(DoUniqueString("thtd_marisa_delay"),
|
|
function ()
|
|
if GameRules:IsGamePaused() then return 0.03 end
|
|
if count <= 0 then
|
|
caster:RemoveModifierByName("modifier_bosses_marisa")
|
|
ParticleManager:DestroyParticleSystem(effectIndex,true)
|
|
if caster~=nil and caster:IsNull()==false and caster:IsAlive() then
|
|
FindClearSpaceForUnit(caster, caster:GetOrigin(), false)
|
|
end
|
|
return nil
|
|
end
|
|
if caster:IsStunned() == false and caster:IsRooted() == false then
|
|
caster:SetAbsOrigin(caster:GetOrigin() + caster:GetForwardVector() * 50)
|
|
end
|
|
count = count - 1
|
|
return 0.06
|
|
end,
|
|
caster.first_delay)
|
|
end
|
|
end
|
|
|
|
function public:OnDestroy(kv)
|
|
if IsServer() then
|
|
local caster = self:GetParent()
|
|
local count = 27
|
|
caster:SetContextThink(DoUniqueString("thtd_marisa_delay"),
|
|
function ()
|
|
if GameRules:IsGamePaused() then return 0.03 end
|
|
if caster==nil or caster:IsNull() or caster:IsAlive()==false then return nil end
|
|
count = count - 1
|
|
if count > 0 then return 0.1 end
|
|
caster:AddNewModifier(caster,caster,"modifier_bosses_marisa",nil)
|
|
return nil
|
|
end,
|
|
0.1)
|
|
|
|
end
|
|
end |