Files
2HUCardTDGame/aghanim_singleplayer/scripts/vscripts/ai/ai_shroomling.lua
2021-10-24 15:36:18 -04:00

81 lines
2.6 KiB
Lua
Executable File

require( "ai/shared" )
LinkLuaModifier( "modifier_shroomling_enrage", "modifiers/creatures/modifier_shroomling_enrage", LUA_MODIFIER_MOTION_NONE )
LinkLuaModifier( "modifier_shroomling_sleep", "modifiers/creatures/modifier_shroomling_sleep", LUA_MODIFIER_MOTION_NONE )
--------------------------------------------------------------------------------
function Precache( context )
PrecacheResource( "particle", "particles/items2_fx/mask_of_madness.vpcf", context )
PrecacheResource( "particle", "particles/generic_gameplay/generic_sleep.vpcf", context )
end
--------------------------------------------------------------------------------
function Spawn( entityKeyValues )
if thisEntity == nil then
return
end
-- thisEntity.nShackledHeroSearchRadius = 900
-- thisEntity.hForceAttackTarget = nil
thisEntity:AddNewModifier( thisEntity, nil, "modifier_shroomling_sleep", { duration = -1.0 } )
-- mushrooms are 100% off limits for a bit after spawning
thisEntity:AddNewModifier( thisEntity, nil, "modifier_invulnerable", { duration = 1.5 } )
-- thisEntity:SetContextThink( "ShroomlingThink", ShroomlingThink, 1 )
end
--[[
function ShroomlingThink()
if GameRules:IsGamePaused() == true then
return 1
end
if thisEntity:IsAlive() == false then
return 1
end
if thisEntity.hForceAttackTarget ~= nil then
local hShackleDebuff = thisEntity.hForceAttackTarget:FindModifierByName( "modifier_aghsfort_shadow_shaman_shackles" )
if thisEntity.hForceAttackTarget:IsAlive() == false or hShackleDebuff == nil then
-- force attack target is dead or it's alive and the shackle has ended
thisEntity:RemoveModifierByName( "modifier_shroomling_enrage" )
thisEntity:AddNewModifier( thisEntity, nil, "modifier_shroomling_sleep", { duration = -1.0 } )
thisEntity.hForceAttackTarget = nil
return 1
end
-- target is still valid and shackled so have at it
AttackTargetOrder( thisEntity, thisEntity.hForceAttackTarget )
return 1
end
local enemies = GetEnemyHeroesInRange( thisEntity, thisEntity.nShackledHeroSearchRadius )
if #enemies == 0 then
return 1
end
for _,enemy in pairs( enemies ) do
if enemy ~= nil and enemy:IsAlive() then
local hShackleDebuff = enemy:FindModifierByName( "modifier_aghsfort_shadow_shaman_shackles" )
if hShackleDebuff ~= nil then
thisEntity.hForceAttackTarget = enemy
thisEntity:RemoveModifierByName( "modifier_shroomling_sleep" )
thisEntity:AddNewModifier( thisEntity, nil, "modifier_shroomling_enrage", { duration = -1.0 } )
--print( 'Shroomling Attacking!' )
AttackTargetOrder( thisEntity, enemy )
return 1
end
end
end
return 0.5
end
--]]