restructure
This commit is contained in:
75
game/scripts/vscripts/modifiers/bosses/modifier_bosses_marisa.lua
Executable file
75
game/scripts/vscripts/modifiers/bosses/modifier_bosses_marisa.lua
Executable file
@@ -0,0 +1,75 @@
|
||||
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
|
||||
Reference in New Issue
Block a user