39 lines
1.4 KiB
Lua
Executable File
39 lines
1.4 KiB
Lua
Executable File
--[[ spike_trap_ai.lua ]]
|
|
|
|
---------------------------------------------------------------------------
|
|
-- AI for the Spike Trap
|
|
---------------------------------------------------------------------------
|
|
|
|
local triggerActive = true
|
|
|
|
function Fire(trigger)
|
|
local triggerName = thisEntity:GetName()
|
|
--print(tostring(triggerName))
|
|
local level = trigger.activator:GetLevel()
|
|
local target = Entities:FindByName( nil, triggerName .. "_target" )
|
|
local spikes = triggerName .. "_model"
|
|
local dust = triggerName .. "_particle"
|
|
local fx = triggerName .. "_fx"
|
|
--print(spikes)
|
|
if target ~= nil and triggerActive == true then
|
|
local spikeTrap = thisEntity:FindAbilityByName("spike_trap")
|
|
thisEntity:CastAbilityOnPosition(target:GetOrigin(), spikeTrap, -1 )
|
|
EmitSoundOn( "AghanimsFortress.TrapActivate" , spikeTrap)
|
|
DoEntFire( spikes, "SetAnimation", "spiketrap_activate", 0, self, self )
|
|
DoEntFire( dust, "Start", "", 0, self, self )
|
|
DoEntFire( dust, "Stop", "", 2, self, self )
|
|
DoEntFire( fx, "Start", "", 0, self, self )
|
|
DoEntFire( fx, "Stop", "", 2, self, self )
|
|
|
|
--thisEntity:SetContextThink( "ResetTrapModel", function() ResetTrapModel( spikes ) end, 3 )
|
|
triggerActive = false
|
|
thisEntity:SetContextThink( "ResetTrapModel", function() ResetTrapModel() end, 4 )
|
|
end
|
|
end
|
|
|
|
function ResetTrapModel()
|
|
DoEntFire( spikes, "SetAnimation", "spiketrap_idle", 0, self, self )
|
|
triggerActive = true
|
|
end
|
|
|