initial commit
This commit is contained in:
55
aghanim_singleplayer/scripts/vscripts/abilities/ascension_flicker.lua
Executable file
55
aghanim_singleplayer/scripts/vscripts/abilities/ascension_flicker.lua
Executable file
@@ -0,0 +1,55 @@
|
||||
ascension_flicker = class( {} )
|
||||
|
||||
LinkLuaModifier( "modifier_ascension_flicker_display", "modifiers/modifier_ascension_flicker_display", LUA_MODIFIER_MOTION_NONE )
|
||||
|
||||
-----------------------------------------------------------------------------------------
|
||||
|
||||
function ascension_flicker:Precache( context )
|
||||
PrecacheResource( "particle", "particles/items_fx/blink_dagger_start.vpcf", context )
|
||||
PrecacheResource( "particle", "particles/items_fx/blink_dagger_end.vpcf", context )
|
||||
end
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
function ascension_flicker:Spawn()
|
||||
-- So the modifier can be seen
|
||||
if IsServer() == true then
|
||||
self:GetCaster():AddNewModifier( self:GetCaster(), self, "modifier_ascension_flicker_display", nil )
|
||||
end
|
||||
end
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
function ascension_flicker:OnSpellStart()
|
||||
|
||||
if not IsServer() then
|
||||
return
|
||||
end
|
||||
|
||||
local range = self:GetSpecialValueFor( "range" )
|
||||
local nAttempts = 0
|
||||
local vEndPos = self:GetCaster():GetAbsOrigin() + RandomVector( 1 ) * range;
|
||||
while ( ( not GridNav:CanFindPath( self:GetCaster():GetOrigin(), vEndPos ) ) and ( nAttempts < 5 ) ) do
|
||||
vEndPos = self:GetCaster():GetOrigin() + RandomVector( 1 ) * range;
|
||||
nAttempts = nAttempts + 1
|
||||
|
||||
if nAttempts >= 5 then
|
||||
vEndPos = self:GetCaster():GetAbsOrigin()
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
|
||||
local nFXStart = ParticleManager:CreateParticle( "particles/items_fx/blink_dagger_start.vpcf", PATTACH_CUSTOMORIGIN, nil )
|
||||
ParticleManager:SetParticleControl( nFXStart, 0, self:GetCaster():GetAbsOrigin() )
|
||||
ParticleManager:ReleaseParticleIndex( nFXStart )
|
||||
|
||||
FindClearSpaceForUnit( self:GetCaster(), vEndPos, true )
|
||||
ProjectileManager:ProjectileDodge( self:GetCaster() )
|
||||
EmitSoundOn( "DOTA_Item.BlinkDagger.Activate", self:GetCaster() )
|
||||
self:GetCaster():Purge( false, true, false, false, false )
|
||||
|
||||
local nFXEnd = ParticleManager:CreateParticle( "particles/items_fx/blink_dagger_end.vpcf", PATTACH_ABSORIGIN_FOLLOW, self:GetCaster() )
|
||||
ParticleManager:ReleaseParticleIndex( nFXEnd )
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user