initial commit
This commit is contained in:
@@ -0,0 +1,81 @@
|
||||
|
||||
storegga_avalanche = class({})
|
||||
LinkLuaModifier( "modifier_storegga_avalanche_thinker", "modifiers/creatures/modifier_storegga_avalanche_thinker", LUA_MODIFIER_MOTION_NONE )
|
||||
|
||||
----------------------------------------------------------------------------------------
|
||||
|
||||
function storegga_avalanche:Precache( context )
|
||||
|
||||
PrecacheResource( "particle", "particles/act_2/storegga_channel.vpcf", context )
|
||||
PrecacheResource( "particle", "particles/creatures/storegga/storegga_avalanche.vpcf", context )
|
||||
|
||||
end
|
||||
|
||||
-----------------------------------------------------------------------
|
||||
|
||||
function storegga_avalanche:ProcsMagicStick()
|
||||
return false
|
||||
end
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
function storegga_avalanche:GetChannelAnimation()
|
||||
return ACT_DOTA_CHANNEL_ABILITY_1
|
||||
end
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
function storegga_avalanche:GetPlaybackRateOverride()
|
||||
return 1
|
||||
end
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
function storegga_avalanche:OnAbilityPhaseStart()
|
||||
if IsServer() then
|
||||
self.nChannelFX = ParticleManager:CreateParticle( "particles/act_2/storegga_channel.vpcf", PATTACH_ABSORIGIN_FOLLOW, self:GetCaster() )
|
||||
end
|
||||
|
||||
return true
|
||||
end
|
||||
|
||||
-----------------------------------------------------------------------
|
||||
|
||||
function storegga_avalanche:OnAbilityPhaseInterrupted()
|
||||
if IsServer() then
|
||||
ParticleManager:DestroyParticle( self.nChannelFX, false )
|
||||
end
|
||||
end
|
||||
|
||||
-----------------------------------------------------------------------
|
||||
|
||||
function storegga_avalanche:OnSpellStart()
|
||||
if IsServer() then
|
||||
self.flChannelTime = 0.0
|
||||
self.hThinker = CreateModifierThinker( self:GetCaster(), self, "modifier_storegga_avalanche_thinker", { duration = self:GetChannelTime() }, self:GetCaster():GetOrigin(), self:GetCaster():GetTeamNumber(), false )
|
||||
end
|
||||
end
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
function storegga_avalanche:OnChannelThink( flInterval )
|
||||
if IsServer() then
|
||||
self.flChannelTime = self.flChannelTime + flInterval
|
||||
if self.flChannelTime > 9.2 and self.bStartedGesture ~= true then
|
||||
self.bStartedGesture = true
|
||||
self:GetCaster():StartGesture( ACT_DOTA_CAST_ABILITY_2_END )
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
-----------------------------------------------------------------------
|
||||
|
||||
function storegga_avalanche:OnChannelFinish( bInterrpted )
|
||||
if IsServer() then
|
||||
ParticleManager:DestroyParticle( self.nChannelFX, false )
|
||||
if self.hThinker ~= nil and self.hThinker:IsNull() == false then
|
||||
self.hThinker:ForceKill( false )
|
||||
end
|
||||
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user