initial commit
This commit is contained in:
153
aghanim_singleplayer/scripts/vscripts/encounters/encounter_enraged_wildwings.lua
Executable file
153
aghanim_singleplayer/scripts/vscripts/encounters/encounter_enraged_wildwings.lua
Executable file
@@ -0,0 +1,153 @@
|
||||
require( "map_encounter" )
|
||||
require( "aghanim_utility_functions" )
|
||||
require( "spawner" )
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
if CMapEncounter_Enraged_Wildwings == nil then
|
||||
CMapEncounter_Enraged_Wildwings = class( {}, {}, CMapEncounter )
|
||||
end
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
function CMapEncounter_Enraged_Wildwings:constructor( hRoom, szEncounterName )
|
||||
|
||||
CMapEncounter.constructor( self, hRoom, szEncounterName )
|
||||
|
||||
self.szPeonSpawner = "spawner_peon"
|
||||
self.szCaptainSpawner = "spawner_captain"
|
||||
self.nCaptains = 6
|
||||
local bInvulnerable = true
|
||||
|
||||
self.vWaveSchedule =
|
||||
{
|
||||
{
|
||||
Time = 0,
|
||||
Count = 2,
|
||||
},
|
||||
{
|
||||
Time = 36,
|
||||
Count = 3,
|
||||
},
|
||||
}
|
||||
|
||||
self:AddSpawner( CDotaSpawner( "spawner_captain_trigger", "spawner_captain_trigger",
|
||||
{
|
||||
{
|
||||
EntityName = "npc_aghsfort_creature_enraged_wildwing",
|
||||
Team = DOTA_TEAM_BADGUYS,
|
||||
Count = 1,
|
||||
PositionNoise = 50.0,
|
||||
}
|
||||
} ) )
|
||||
|
||||
self:AddPortalSpawnerV2( CPortalSpawnerV2( self.szCaptainSpawner, self.szCaptainSpawner, 4, 5, 1.0,
|
||||
{
|
||||
{
|
||||
EntityName = "npc_aghsfort_creature_enraged_wildwing",
|
||||
Team = DOTA_TEAM_BADGUYS,
|
||||
Count = 1,
|
||||
PositionNoise = 100.0,
|
||||
},
|
||||
{
|
||||
EntityName = "npc_aghsfort_creature_tornado_harpy",
|
||||
Team = DOTA_TEAM_BADGUYS,
|
||||
Count = 2,
|
||||
PositionNoise = 100.0,
|
||||
},
|
||||
|
||||
|
||||
|
||||
}, bInvulnerable ) )
|
||||
|
||||
self:SetPortalTriggerSpawner( "spawner_captain_trigger", 0.8 )
|
||||
self:SetSpawnerSchedule( "spawner_captain_trigger", nil ) -- means spawn once when triggered
|
||||
--self:SetSpawnerSchedule( self.szPeonSpawner, self.vPeonSchedule )
|
||||
self:SetSpawnerSchedule( self.szCaptainSpawner, self.vWaveSchedule )
|
||||
self:SetCalculateRewardsFromUnitCount( true )
|
||||
|
||||
end
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
function CMapEncounter_Enraged_Wildwings:GetPreviewUnit()
|
||||
return "npc_aghsfort_creature_enraged_wildwing"
|
||||
end
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
function CMapEncounter_Enraged_Wildwings:GetMaxSpawnedUnitCount()
|
||||
local nCount = 0
|
||||
local hWarriorSpawners = self:GetSpawner( self.szPeonSpawner )
|
||||
if hWarriorSpawners then
|
||||
nCount = nCount + hWarriorSpawners:GetSpawnPositionCount() * 2
|
||||
end
|
||||
|
||||
local hChampionSpawners = self:GetSpawner( self.szCaptainSpawner )
|
||||
if hChampionSpawners then
|
||||
nCount = nCount + hChampionSpawners:GetSpawnPositionCount()
|
||||
end
|
||||
|
||||
return nCount
|
||||
end
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
function CMapEncounter_Enraged_Wildwings:InitializeObjectives()
|
||||
CMapEncounter.InitializeObjectives( self )
|
||||
self:AddEncounterObjective( "kill_wildwings", 0, self.nCaptains )
|
||||
end
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
function CMapEncounter_Enraged_Wildwings:OnRequiredEnemyKilled( hAttacker, hVictim )
|
||||
CMapEncounter.OnRequiredEnemyKilled( self, hAttacker, hVictim )
|
||||
|
||||
if hVictim and hVictim:GetUnitName() == "npc_aghsfort_creature_enraged_wildwing" then
|
||||
local nCurrentValue = self:GetEncounterObjectiveProgress( "kill_wildwings" )
|
||||
self:UpdateEncounterObjective( "kill_wildwings", nCurrentValue + 1, nil )
|
||||
end
|
||||
end
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
function CMapEncounter_Enraged_Wildwings:Start()
|
||||
CMapEncounter.Start( self )
|
||||
self:StartAllSpawnerSchedules( 0 )
|
||||
|
||||
--for _,Spawner in pairs ( self:GetSpawners() ) do
|
||||
-- if Spawner:GetSpawnerName() == "spawner_peon" then
|
||||
-- Spawner:SpawnUnitsFromRandomSpawners( Spawner:GetSpawnPositionCount() )
|
||||
-- else
|
||||
-- Spawner:SpawnUnitsFromRandomSpawners( self.nCaptains )
|
||||
-- end
|
||||
--end
|
||||
end
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
function CMapEncounter_Enraged_Wildwings:OnThink()
|
||||
CMapEncounter.OnThink( self )
|
||||
end
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
function CMapEncounter_Enraged_Wildwings:CreateEnemies()
|
||||
for _,Spawner in pairs ( self:GetSpawners() ) do
|
||||
Spawner:SpawnUnits()
|
||||
end
|
||||
end
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
function CMapEncounter_Enraged_Wildwings:MustKillForEncounterCompletion( hEnemyCreature )
|
||||
if hEnemyCreature:GetUnitName() == "npc_aghsfort_creature_enraged_wildwing_tornado" then
|
||||
return false
|
||||
end
|
||||
return true
|
||||
end
|
||||
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
return CMapEncounter_Enraged_Wildwings
|
||||
Reference in New Issue
Block a user