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

126 lines
3.3 KiB
Lua
Executable File

require( "map_encounter" )
require( "aghanim_utility_functions" )
require( "spawner" )
--------------------------------------------------------------------------------
if CMapEncounterEnragedHellbears == nil then
CMapEncounterEnragedHellbears = class( {}, {}, CMapEncounter )
end
--------------------------------------------------------------------------------
function CMapEncounterEnragedHellbears:constructor( hRoom, szEncounterName )
CMapEncounter.constructor( self, hRoom, szEncounterName )
self:SetCalculateRewardsFromUnitCount( true )
self.szPeonSpawner = "spawner_peon"
self.szCaptainSpawner = "spawner_captain"
self:AddSpawner( CDotaSpawner( self.szPeonSpawner, self.szPeonSpawner,
{
{
EntityName = "npc_dota_creature_small_hellbear",
Team = DOTA_TEAM_BADGUYS,
Count = 7,
PositionNoise = 225.0,
},
} ) )
self:AddSpawner( CDotaSpawner( self.szCaptainSpawner, self.szCaptainSpawner,
{
{
EntityName = "npc_dota_creature_hellbear",
Team = DOTA_TEAM_BADGUYS,
Count = 2,
PositionNoise = 75.0,
},
} ) )
self.flEnrageTimer = 60
end
--------------------------------------------------------------------------------
function CMapEncounterEnragedHellbears:GetPreviewUnit()
return "npc_dota_creature_hellbear"
end
--------------------------------------------------------------------------------
function CMapEncounterEnragedHellbears:GetMaxSpawnedUnitCount()
local nCount = 0
local hWarriorSpawners = self:GetSpawner( self.szPeonSpawner )
if hWarriorSpawners then
nCount = nCount + hWarriorSpawners:GetSpawnPositionCount() * 6
end
local hChampionSpawners = self:GetSpawner( self.szCaptainSpawner )
if hChampionSpawners then
nCount = nCount + hChampionSpawners:GetSpawnPositionCount()
end
return nCount
end
--------------------------------------------------------------------------------
function CMapEncounterEnragedHellbears:Start()
CMapEncounter.Start( self )
self:CreateEnemies()
end
--------------------------------------------------------------------------------
function CMapEncounterEnragedHellbears:OnThink()
CMapEncounter.OnThink( self )
local flNow = GameRules:GetGameTime()
if ( flNow - self.flStartTime ) > self.flEnrageTimer then
--printf("ENRAGING!!")
for _,hMob in pairs ( self:GetSpawnedUnits() ) do
if hMob:GetLevel() < 2 then
--printf("UPGRADING CREATURE %s to level 2", hMob:GetUnitName())
hMob:CreatureLevelUp(1)
hMob:AddNewModifier( hMob, nil, "modifier_aghsfort_enrage" , {} )
hMob:SetAcquisitionRange(9000)
end
local hAbility = hMob:FindAbilityByName("hellbear_smash")
if hAbility then
--printf("UPGRADING ABILITY %s from %d to %d", hAbility:GetAbilityName(), hAbility:GetLevel(), 2 )
hAbility:SetLevel(2)
end
end
end
end
--------------------------------------------------------------------------------
function CMapEncounterEnragedHellbears:CheckForCompletion()
if not self:HasRemainingEnemies() then
return true
end
return false
end
--------------------------------------------------------------------------------
function CMapEncounterEnragedHellbears:CreateEnemies()
for _,Spawner in pairs ( self:GetSpawners() ) do
Spawner:SpawnUnits()
end
end
--------------------------------------------------------------------------------
return CMapEncounterEnragedHellbears