aboutsummaryrefslogtreecommitdiff
path: root/Northstar.CustomServers
diff options
context:
space:
mode:
authorJack <66967891+ASpoonPlaysGames@users.noreply.github.com>2022-07-12 20:19:44 +0100
committerGitHub <noreply@github.com>2022-07-12 21:19:44 +0200
commitb601f40395fc940e805e1cbb13efda64fb75fcf1 (patch)
tree5e5a1b19c70bb4731e38436676b1fbdb16ce3f01 /Northstar.CustomServers
parent3739df36a838f32ca03621120944663d3b71b963 (diff)
downloadNorthstarMods-b601f40395fc940e805e1cbb13efda64fb75fcf1.tar.gz
NorthstarMods-b601f40395fc940e805e1cbb13efda64fb75fcf1.zip
[FD] Drone event functionality (#422)
* improve nav + a couple other things * Add drone nav function and give drones routes in homestead
Diffstat (limited to 'Northstar.CustomServers')
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/gamemodes/_gamemode_fd.nut5
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/gamemodes/_gamemode_fd_events.nut35
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/gamemodes/_gamemode_fd_nav.nut78
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/mp/levels/mp_homestead_fd.nut104
4 files changed, 166 insertions, 56 deletions
diff --git a/Northstar.CustomServers/mod/scripts/vscripts/gamemodes/_gamemode_fd.nut b/Northstar.CustomServers/mod/scripts/vscripts/gamemodes/_gamemode_fd.nut
index 15da6866..aa148e0c 100644
--- a/Northstar.CustomServers/mod/scripts/vscripts/gamemodes/_gamemode_fd.nut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/gamemodes/_gamemode_fd.nut
@@ -167,6 +167,11 @@ void function GamemodeFD_InitPlayer(entity player)
else
EnableTitanSelectionForPlayer( player )
+ if ( GetGlobalNetInt("FD_currentWave") != 0 )
+ DisableTitanSelectionForPlayer( player ) // this might need moving to when they exit the titan selection UI when we do that
+ else
+ EnableTitanSelectionForPlayer( player )
+
}
void function SetTurretSettings_threaded(entity player)
{ //has to be delayed because PlayerConnect callbacks get called in wrong order
diff --git a/Northstar.CustomServers/mod/scripts/vscripts/gamemodes/_gamemode_fd_events.nut b/Northstar.CustomServers/mod/scripts/vscripts/gamemodes/_gamemode_fd_events.nut
index 30297415..11c6774a 100644
--- a/Northstar.CustomServers/mod/scripts/vscripts/gamemodes/_gamemode_fd_events.nut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/gamemodes/_gamemode_fd_events.nut
@@ -546,9 +546,10 @@ WaveEvent function CreateSpawnDroneEvent(vector origin,vector angles,string rout
event.nextEventIndex = nextEventIndex
event.shouldThread = true
event.spawnEvent.spawnType= eFD_AITypeIDs.DRONE
- event.spawnEvent.spawnAmount = 0
+ event.spawnEvent.spawnAmount = 4
event.spawnEvent.origin = origin
event.spawnEvent.entityGlobalKey = entityGlobalKey
+ event.spawnEvent.route = route
return event
}
@@ -580,6 +581,38 @@ void function spawnSmoke(SmokeEvent smokeEvent,SpawnEvent spawnEvent,FlowControl
void function spawnDrones(SmokeEvent smokeEvent,SpawnEvent spawnEvent,FlowControlEvent flowControlEvent,SoundEvent soundEvent)
{
//TODO
+ PingMinimap(spawnEvent.origin.x, spawnEvent.origin.y, 4, 600, 150, 0)
+ array<vector> offsets = [ < 0, 100, 0 >, < 100, 0, 0 >, < 0, -100, 0 >, < -100, 0, 0 > ]
+
+
+ string squadName = MakeSquadName( TEAM_IMC, UniqueString( "ZiplineTable" ) )
+
+ for ( int i = 0; i < spawnEvent.spawnAmount; i++ )
+ {
+ entity guy
+
+ guy = CreateGenericDrone( TEAM_IMC, spawnEvent.origin + offsets[i], spawnEvent.angles )
+ SetSpawnOption_AISettings( guy, "npc_drone_plasma_fd" )
+
+ if(spawnEvent.entityGlobalKey!="")
+ GlobalEventEntitys[spawnEvent.entityGlobalKey+i.tostring()] <- guy
+ SetTeam( guy, TEAM_IMC )
+ guy.DisableNPCFlag( NPC_ALLOW_INVESTIGATE )
+ guy.EnableNPCFlag(NPC_STAY_CLOSE_TO_SQUAD)
+ guy.EnableNPCMoveFlag(NPCMF_WALK_ALWAYS | NPCMF_PREFER_SPRINT)
+ DispatchSpawn( guy )
+
+ //guy.GiveWeapon("mp_weapon_engineer_combat_drone")
+
+ SetSquad( guy, squadName )
+
+ SetTargetName( guy, GetTargetNameForID(eFD_AITypeIDs.DRONE))
+ AddMinimapForHumans(guy)
+ spawnedNPCs.append(guy)
+ thread droneNav_thread(guy, spawnEvent.route, 0, 500, true)
+ }
+
+
}
void function waitForDeathOfEntitys(SmokeEvent smokeEvent,SpawnEvent spawnEvent,FlowControlEvent flowControlEvent,SoundEvent soundEvent)
diff --git a/Northstar.CustomServers/mod/scripts/vscripts/gamemodes/_gamemode_fd_nav.nut b/Northstar.CustomServers/mod/scripts/vscripts/gamemodes/_gamemode_fd_nav.nut
index 57282766..9fa04151 100644
--- a/Northstar.CustomServers/mod/scripts/vscripts/gamemodes/_gamemode_fd_nav.nut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/gamemodes/_gamemode_fd_nav.nut
@@ -1,10 +1,11 @@
global function singleNav_thread
global function SquadNav_Thread
+global function droneNav_thread
global function getRoute
-void function singleNav_thread(entity npc, string routeName,int nodesToSkip= 0,float nextDistance = 500.0)
+void function singleNav_thread(entity npc, string routeName,int nodesToSkip= 0,float nextDistance = 500.0, bool shouldLoop = false)
{
npc.EndSignal( "OnDeath" )
npc.EndSignal( "OnDestroy" )
@@ -79,7 +80,7 @@ void function singleNav_thread(entity npc, string routeName,int nodesToSkip= 0,f
if( !IsAlive( fd_harvester.harvester ) )
return
npc.AssaultPoint( targetNode.GetOrigin() )
- npc.AssaultSetGoalRadius( npc.GetMinGoalRadius() )
+ npc.AssaultSetGoalRadius( nextDistance )
npc.AssaultSetFightRadius( 0 )
table result = npc.WaitSignal( "OnFinishedAssault", "OnFailedToPath" )
@@ -90,11 +91,11 @@ void function singleNav_thread(entity npc, string routeName,int nodesToSkip= 0,f
npc.Signal("FD_ReachedHarvester")
}
-void function SquadNav_Thread( array<entity> npcs ,string routeName,int nodesToSkip = 0,float nextDistance = 200.0)
+void function SquadNav_Thread( array<entity> npcs ,string routeName,int nodesToSkip = 0,float nextDistance = 200.0 )
{
//TODO this function wont stop when noone alive anymore also it only works half of the time
-
- /*array<entity> routeArray = getRoute(routeName)
+ /*
+ array<entity> routeArray = getRoute(routeName)
WaitFrame()//so other code setting up what happens on signals is run before this
if(routeArray.len()==0)
return
@@ -152,6 +153,73 @@ void function SquadNav_Thread( array<entity> npcs ,string routeName,int nodesToS
}
+void function droneNav_thread(entity npc, string routeName,int nodesToSkip= 0,float nextDistance = 500.0, bool shouldLoop = false)
+{
+ npc.EndSignal( "OnDeath" )
+ npc.EndSignal( "OnDestroy" )
+
+ if(!npc.IsNPC()){
+ return
+ }
+
+ // NEW STUFF
+ WaitFrame() // so other code setting up what happens on signals is run before this
+
+ entity targetNode
+ entity firstNode
+ if ( routeName == "" )
+ {
+ float dist = 1000000000
+ foreach ( entity node in routeNodes )
+ {
+ if( !node.HasKey("route_name") )
+ continue
+ if ( Distance( npc.GetOrigin(), node.GetOrigin() ) < dist )
+ {
+ dist = Distance( npc.GetOrigin(), node.GetOrigin() )
+ targetNode = node
+ firstNode = node
+ }
+ }
+ printt("Entity had no route defined: using nearest node: " + targetNode.kv.route_name)
+ }
+ else
+ {
+ targetNode = GetRouteStart( routeName )
+ }
+
+ // skip nodes
+ for ( int i = 0; i < nodesToSkip; i++ )
+ {
+ targetNode = targetNode.GetLinkEnt()
+ firstNode = targetNode.GetLinkEnt()
+ }
+
+
+ while ( targetNode != null )
+ {
+ if( !IsAlive( fd_harvester.harvester ) )
+ return
+ npc.AssaultPoint( targetNode.GetOrigin() + <0, 0, 300> )
+ npc.AssaultSetGoalRadius( nextDistance )
+ npc.AssaultSetGoalHeight( 100 )
+ npc.AssaultSetFightRadius( 0 )
+
+ table result = npc.WaitSignal( "OnFinishedAssault", "OnFailedToPath" )
+
+ targetNode = targetNode.GetLinkEnt()
+ if ( targetNode == null )
+ printt("entity finished pathing")
+ if ( targetNode == null && shouldLoop )
+ {
+ printt("entity reached end of loop, looping")
+ targetNode = firstNode
+ }
+ }
+
+ npc.Signal("FD_ReachedHarvester")
+}
+
entity function GetRouteStart( string routeName )
{
foreach( entity node in routeNodes )
diff --git a/Northstar.CustomServers/mod/scripts/vscripts/mp/levels/mp_homestead_fd.nut b/Northstar.CustomServers/mod/scripts/vscripts/mp/levels/mp_homestead_fd.nut
index 193cc159..0d107d5d 100644
--- a/Northstar.CustomServers/mod/scripts/vscripts/mp/levels/mp_homestead_fd.nut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/mp/levels/mp_homestead_fd.nut
@@ -6,9 +6,9 @@ void function initFrontierDefenseData()
int index = 1
array<WaveEvent> wave1
- wave1.append(CreateSpawnDroneEvent(< 6050.669922 , 132.485001 , 4918.959961 >,< 0.004999 , -115.792000 , 0.000004 >,"",index++))
+ wave1.append(CreateSpawnDroneEvent(< 6050.669922 , 132.485001 , 4918.959961 >,< 0.004999 , -115.792000 , 0.000004 >,"centerRightDrones_Loop1",index++))
wave1.append(CreateWaitForTimeEvent(1.5,index++))
- wave1.append(CreateSpawnDroneEvent(< 3341.850098 , 2237.580078 , 4965.220215 >,< 0.004999 , -115.792000 , 0.000004 >,"",index++))
+ wave1.append(CreateSpawnDroneEvent(< 3341.850098 , 2237.580078 , 4965.220215 >,< 0.004999 , -115.792000 , 0.000004 >,"centerLeftDrones_Loop3",index++))
wave1.append(CreateWaitForTimeEvent(1.5,index++))
wave1.append(CreateDroppodGruntEvent(< 68.781303 , -516.468994 , -97.937500 >,"",index++))
wave1.append(CreateWaitForTimeEvent(0.5999985,index++))
@@ -19,9 +19,13 @@ void function initFrontierDefenseData()
wave1.append(CreateDroppodGruntEvent(< 2420.310059 , -1135.250000 , -159.218994 >,"",index++))
wave1.append(CreateWaitForTimeEvent(5.0,index++))
wave1.append(CreateWaitUntilAliveEvent(6,index++))
- wave1.append(CreateSpawnDroneEvent(< -697.750000 , 940.593994 , 153.656006 >,< -0.000000 , 0.000000 , 0.000000 >,"",index++))
+ // replaced this with the one below because it seemed off?
+ //wave1.append(CreateSpawnDroneEvent(< -697.750000 , 940.593994 , 153.656006 >,< -0.000000 , 0.000000 , 0.000000 >,"",index++))
+ wave1.append(CreateSpawnDroneEvent(< 6050.669922 , 132.485001 , 4918.959961 >,< 0.004999 , -115.792000 , 0.000004 >,"centerRightDrones_Loop1",index++))
wave1.append(CreateWaitForTimeEvent(0.5999985,index++))
- wave1.append(CreateSpawnDroneEvent(< 2696.909912 , -388.062988 , 349.250000 >,< -0.000000 , 0.000000 , 0.000000 >,"",index++))
+ // replaced this with the one below because it seemed off?
+ //wave1.append(CreateSpawnDroneEvent(< 2696.909912 , -388.062988 , 349.250000 >,< -0.000000 , 0.000000 , 0.000000 >,"",index++))
+ wave1.append(CreateSpawnDroneEvent(< 3341.850098 , 2237.580078 , 4965.220215 >,< 0.004999 , -115.792000 , 0.000004 >,"centerLeftDrones_Loop3",index++))
wave1.append(CreateWaitForTimeEvent(1.199997,index++))
wave1.append(CreateDroppodGruntEvent(< 3917.000000 , -2654.719971 , -81.468803 >,"",index++))
wave1.append(CreateWaitForTimeEvent(1.1000061,index++))
@@ -47,11 +51,11 @@ void function initFrontierDefenseData()
wave1.append(CreateWaitUntilAliveEvent(6,index++))
wave1.append(CreateDroppodGruntEvent(< -3570.879883 , -1498.500000 , -49.625000 >,"",index++))
wave1.append(CreateWaitForTimeEvent(1.2999878,index++))
- wave1.append(CreateSpawnDroneEvent(< 6050.669922 , 132.485001 , 4877.899902 >,< 0.004999 , -115.792000 , 0.000004 >,"",index++))
+ wave1.append(CreateSpawnDroneEvent(< 6050.669922 , 132.485001 , 4877.899902 >,< 0.004999 , -115.792000 , 0.000004 >,"centerRightDrones_Loop1",index++))
wave1.append(CreateWaitForTimeEvent(2.0170135,index++))
- wave1.append(CreateSpawnDroneEvent(< 5994.600098 , 1378.760010 , 4810.569824 >,< 0.004999 , -73.121300 , 0.000004 >,"",index++))
+ wave1.append(CreateSpawnDroneEvent(< 5994.600098 , 1378.760010 , 4810.569824 >,< 0.004999 , -73.121300 , 0.000004 >,"centerLeftDrones_Loop3",index++))
wave1.append(CreateWaitForTimeEvent(0.6659851,index++))
- wave1.append(CreateSpawnDroneEvent(< 3381.919922 , 2251.550049 , 4955.319824 >,< 0.004999 , -115.792000 , 0.000004 >,"",index++))
+ wave1.append(CreateSpawnDroneEvent(< 3381.919922 , 2251.550049 , 4955.319824 >,< 0.004999 , -115.792000 , 0.000004 >,"centerRightDrones_Loop1",index++))
wave1.append(CreateWaitForTimeEvent(2.0,index++))
wave1.append(CreateSuperSpectreEvent(< 2918.379883 , -3060.629883 , -25.187500 >,< -0.000000 , -170.770996 , 0.000000 >,"",index++))
wave1.append(CreateWaitForTimeEvent(5.0,index++))
@@ -103,7 +107,7 @@ void function initFrontierDefenseData()
waveEvents.append(wave1)
index = 1
array<WaveEvent> wave2
- wave2.append(CreateSpawnDroneEvent(< 6090.759766 , 146.453995 , 4888.700195 >,< 0.004999 , -115.792000 , 0.000004 >,"",index++))
+ wave2.append(CreateSpawnDroneEvent(< 6090.759766 , 146.453995 , 4888.700195 >,< 0.004999 , -115.792000 , 0.000004 >,"centerRightDrones_Loop1",index++))
wave2.append(CreateWaitForTimeEvent(1.1170044,index++))
wave2.append(CreateDroppodGruntEvent(< 3917.000000 , -2654.719971 , -81.468803 >,"",index++))
wave2.append(CreateWaitForTimeEvent(0.78302,index++))
@@ -119,15 +123,15 @@ void function initFrontierDefenseData()
wave2.append(CreateDroppodGruntEvent(< 3754.719971 , -2589.250000 , -63.906300 >,"",index++))
wave2.append(CreateWaitForTimeEvent(5.0,index++))
wave2.append(CreateWaitUntilAliveEvent(6,index++))
- wave2.append(CreateSpawnDroneEvent(< 6036.729980 , 172.546997 , 4870.890137 >,< 0.004999 , -115.792000 , 0.000004 >,"",index++))
+ wave2.append(CreateSpawnDroneEvent(< 6036.729980 , 172.546997 , 4870.890137 >,< 0.004999 , -115.792000 , 0.000004 >,"centerRightDrones_Loop1",index++))
wave2.append(CreateWaitForTimeEvent(2.7000122,index++))
- wave2.append(CreateSpawnDroneEvent(< 6012.029785 , 1321.359985 , 4831.279785 >,< 0.004999 , -73.121300 , 0.000004 >,"",index++))
+ wave2.append(CreateSpawnDroneEvent(< 6012.029785 , 1321.359985 , 4831.279785 >,< 0.004999 , -73.121300 , 0.000004 >,"centerLeftDrones_Loop3",index++))
wave2.append(CreateWaitForTimeEvent(5.0,index++))
wave2.append(CreateWaitUntilAliveEvent(6,index++))
- wave2.append(CreateSpawnDroneEvent(< 6076.790039 , 186.516006 , 4886.330078 >,< 0.004999 , -115.792000 , 0.000004 >,"",index++))
+ wave2.append(CreateSpawnDroneEvent(< 6076.790039 , 186.516006 , 4886.330078 >,< 0.004999 , -115.792000 , 0.000004 >,"centerRightDrones_Loop1",index++))
wave2.append(CreateWaitForTimeEvent(5.0,index++))
wave2.append(CreateWaitUntilAliveEvent(6,index++))
- wave2.append(CreateSpawnDroneEvent(< 3367.949951 , 2291.610107 , 4918.220215 >,< 0.004999 , -115.792000 , 0.000004 >,"",index++))
+ wave2.append(CreateSpawnDroneEvent(< 3367.949951 , 2291.610107 , 4918.220215 >,< 0.004999 , -115.792000 , 0.000004 >,"centerRightDrones_Loop1",index++))
wave2.append(CreateWaitForTimeEvent(1.4830322,index++))
wave2.append(CreateDroppodSpectreMortarEvent(< 3754.719971 , -2589.250000 , -63.906300 >,"",index++))
wave2.append(CreateWaitForTimeEvent(0.6170044,index++))
@@ -183,36 +187,36 @@ void function initFrontierDefenseData()
waveEvents.append(wave2)
index = 1
array<WaveEvent> wave3
- wave3.append(CreateSpawnDroneEvent(< 6050.669922 , 132.485001 , 4893.919922 >,< 0.004999 , -115.792000 , 0.000004 >,"",index++))
+ wave3.append(CreateSpawnDroneEvent(< 6050.669922 , 132.485001 , 4893.919922 >,< 0.004999 , -115.792000 , 0.000004 >,"centerRightDrones_Loop1",index++))
wave3.append(CreateWaitForTimeEvent(1.0170288,index++))
- wave3.append(CreateSpawnDroneEvent(< 6032.029785 , 1358.760010 , 4813.379883 >,< 0.004999 , -73.121300 , 0.000004 >,"",index++))
+ wave3.append(CreateSpawnDroneEvent(< 6032.029785 , 1358.760010 , 4813.379883 >,< 0.004999 , -73.121300 , 0.000004 >,"centerLeftDrones_Loop3",index++))
wave3.append(CreateWaitForTimeEvent(0.8829956,index++))
- wave3.append(CreateSpawnDroneEvent(< 3327.889893 , 2277.639893 , 4935.830078 >,< 0.004999 , -115.792000 , 0.000004 >,"",index++))
+ wave3.append(CreateSpawnDroneEvent(< 3327.889893 , 2277.639893 , 4935.830078 >,< 0.004999 , -115.792000 , 0.000004 >,"centerRightDrones_Loop1",index++))
wave3.append(CreateWaitForTimeEvent(0.7839966,index++))
- wave3.append(CreateSpawnDroneEvent(< 4582.979980 , 2624.050049 , 4906.810059 >,< 0.004999 , -115.792000 , 0.000004 >,"",index++))
+ wave3.append(CreateSpawnDroneEvent(< 4582.979980 , 2624.050049 , 4906.810059 >,< 0.004999 , -115.792000 , 0.000004 >,"centerRightDrones_Loop1",index++))
wave3.append(CreateWaitForTimeEvent(0.9160156,index++))
- wave3.append(CreateSpawnDroneEvent(< 4024.330078 , 3117.510010 , 4947.189941 >,< 0.004999 , -25.792200 , 0.000004 >,"",index++))
+ wave3.append(CreateSpawnDroneEvent(< 4024.330078 , 3117.510010 , 4947.189941 >,< 0.004999 , -25.792200 , 0.000004 >,"centerRightDrones_Loop4",index++))
wave3.append(CreateWaitForTimeEvent(5.0,index++))
wave3.append(CreateWaitUntilAliveEvent(6,index++))
- wave3.append(CreateSpawnDroneEvent(< 3341.850098 , 2237.580078 , 4889.950195 >,< 0.004999 , -115.792000 , 0.000004 >,"",index++))
+ wave3.append(CreateSpawnDroneEvent(< 3341.850098 , 2237.580078 , 4889.950195 >,< 0.004999 , -115.792000 , 0.000004 >,"centerRightDrones_Loop1",index++))
wave3.append(CreateWaitForTimeEvent(5.0,index++))
wave3.append(CreateWaitUntilAliveEvent(6,index++))
wave3.append(CreateSuperSpectreEvent(< -515.437988 , -263.281006 , 420.281006 >,< -0.000000 , 176.923996 , 0.000000 >,"",index++))
wave3.append(CreateWaitForTimeEvent(1.2160034,index++))
wave3.append(CreateSuperSpectreEvent(< 2567.189941 , -3095.969971 , 25.437500 >,< -0.000000 , -174.945999 , 0.000000 >,"",index++))
wave3.append(CreateWaitForTimeEvent(0.10003662,index++))
- wave3.append(CreateSpawnDroneEvent(< 3341.850098 , 2237.580078 , 4936.169922 >,< 0.004999 , -115.792000 , 0.000004 >,"",index++))
+ wave3.append(CreateSpawnDroneEvent(< 3341.850098 , 2237.580078 , 4936.169922 >,< 0.004999 , -115.792000 , 0.000004 >,"centerRightDrones_Loop1",index++))
wave3.append(CreateWaitForTimeEvent(5.0,index++))
wave3.append(CreateWaitUntilAliveEvent(6,index++))
- wave3.append(CreateSpawnDroneEvent(< 3381.919922 , 2251.550049 , 4946.819824 >,< 0.004999 , -115.792000 , 0.000004 >,"",index++))
+ wave3.append(CreateSpawnDroneEvent(< 3381.919922 , 2251.550049 , 4946.819824 >,< 0.004999 , -115.792000 , 0.000004 >,"centerRightDrones_Loop1",index++))
wave3.append(CreateWaitForTimeEvent(0.717041,index++))
- wave3.append(CreateSpawnDroneEvent(< 2880.760010 , 3060.300049 , 4874.819824 >,< 0.004999 , -115.792000 , 0.000004 >,"",index++))
+ wave3.append(CreateSpawnDroneEvent(< 2880.760010 , 3060.300049 , 4874.819824 >,< 0.004999 , -115.792000 , 0.000004 >,"centerRightDrones_Loop1",index++))
wave3.append(CreateWaitForTimeEvent(0.782959,index++))
- wave3.append(CreateSpawnDroneEvent(< 4569.009766 , 2664.110107 , 4897.569824 >,< 0.004999 , -115.792000 , 0.000004 >,"",index++))
+ wave3.append(CreateSpawnDroneEvent(< 4569.009766 , 2664.110107 , 4897.569824 >,< 0.004999 , -115.792000 , 0.000004 >,"centerRightDrones_Loop1",index++))
wave3.append(CreateWaitForTimeEvent(1.4169922,index++))
- wave3.append(CreateSpawnDroneEvent(< 3984.270020 , 3103.570068 , 4931.939941 >,< 0.004999 , -25.792200 , 0.000004 >,"",index++))
+ wave3.append(CreateSpawnDroneEvent(< 3984.270020 , 3103.570068 , 4931.939941 >,< 0.004999 , -25.792200 , 0.000004 >,"centerRightDrones_Loop4",index++))
wave3.append(CreateWaitForTimeEvent(1.4830322,index++))
- wave3.append(CreateSpawnDroneEvent(< 3381.919922 , 2251.550049 , 4931.640137 >,< 0.004999 , -115.792000 , 0.000004 >,"",index++))
+ wave3.append(CreateSpawnDroneEvent(< 3381.919922 , 2251.550049 , 4931.640137 >,< 0.004999 , -115.792000 , 0.000004 >,"centerRightDrones_Loop1",index++))
wave3.append(CreateWaitForTimeEvent(4.0999756,index++))
wave3.append(CreateIonTitanEvent(< -515.187988 , 1099.160034 , -162.281006 >,< 0.000000 , -90.000000 , 0.000000 >,"",index++))
wave3.append(CreateWaitForTimeEvent(1.0170288,index++))
@@ -223,7 +227,7 @@ void function initFrontierDefenseData()
wave3.append(CreateWaitForTimeEvent(0.96698,index++))
wave3.append(CreateDroppodGruntEvent(< 3754.719971 , -2589.250000 , -63.906300 >,"",index++))
wave3.append(CreateWaitForTimeEvent(5.950012,index++))
- wave3.append(CreateSpawnDroneEvent(< 3367.949951 , 2291.610107 , 4920.089844 >,< 0.004999 , -115.792000 , 0.000004 >,"",index++))
+ wave3.append(CreateSpawnDroneEvent(< 3367.949951 , 2291.610107 , 4920.089844 >,< 0.004999 , -115.792000 , 0.000004 >,"centerRightDrones_Loop1",index++))
wave3.append(CreateWaitForTimeEvent(1.4829712,index++))
wave3.append(CreateMortarTitanEvent(< -515.187988 , 1099.160034 , -162.281006 >,< 0.000000 , -90.000000 , 0.000000 >,index++))
wave3.append(CreateWaitForTimeEvent(0.717041,index++))
@@ -256,27 +260,27 @@ void function initFrontierDefenseData()
wave3.append(CreateWaitForTimeEvent(5.017029,index++))
wave3.append(CreateSuperSpectreEvent(< 3324.590088 , -2931.780029 , -67.531303 >,< 0.000000 , -156.138000 , 0.000000 >,"",index++))
wave3.append(CreateWaitForTimeEvent(2.6829834,index++))
- wave3.append(CreateSpawnDroneEvent(< 6090.759766 , 146.453995 , 4907.120117 >,< 0.004999 , -115.792000 , 0.000004 >,"",index++))
+ wave3.append(CreateSpawnDroneEvent(< 6090.759766 , 146.453995 , 4907.120117 >,< 0.004999 , -115.792000 , 0.000004 >,"centerRightDrones_Loop1",index++))
wave3.append(CreateWaitForTimeEvent(1.217041,index++))
- wave3.append(CreateSpawnDroneEvent(< 3367.949951 , 2291.610107 , 4934.399902 >,< 0.004999 , -115.792000 , 0.000004 >,"",index++))
+ wave3.append(CreateSpawnDroneEvent(< 3367.949951 , 2291.610107 , 4934.399902 >,< 0.004999 , -115.792000 , 0.000004 >,"centerRightDrones_Loop1",index++))
wave3.append(CreateWaitForTimeEvent(5.0,index++))
wave3.append(CreateWaitUntilAliveEvent(6,index++))
wave3.append(CreateDroppodGruntEvent(< -1197.939941 , 1928.560059 , 80.031303 >,"",index++))
wave3.append(CreateWaitForTimeEvent(1.1329956,index++))
wave3.append(CreateDroppodGruntEvent(< 3917.000000 , -2654.719971 , -81.468803 >,"",index++))
wave3.append(CreateWaitForTimeEvent(4.049988,index++))
- wave3.append(CreateSpawnDroneEvent(< 6076.790039 , 186.516006 , 4905.089844 >,< 0.004999 , -115.792000 , 0.000004 >,"",index++))
+ wave3.append(CreateSpawnDroneEvent(< 6076.790039 , 186.516006 , 4905.089844 >,< 0.004999 , -115.792000 , 0.000004 >,"centerRightDrones_Loop1",index++))
wave3.append(CreateWaitForTimeEvent(1.2330322,index++))
- wave3.append(CreateSpawnDroneEvent(< 6012.029785 , 1321.359985 , 4808.120117 >,< 0.004999 , -73.121300 , 0.000004 >,"",index++))
+ wave3.append(CreateSpawnDroneEvent(< 6012.029785 , 1321.359985 , 4808.120117 >,< 0.004999 , -73.121300 , 0.000004 >,"centerLeftDrones_Loop3",index++))
wave3.append(CreateWaitForTimeEvent(1.0999756,index++))
- wave3.append(CreateSpawnDroneEvent(< 5204.000000 , 1275.729980 , 4938.310059 >,< 0.004999 , -89.996300 , 0.000004 >,"",index++))
+ wave3.append(CreateSpawnDroneEvent(< 5204.000000 , 1275.729980 , 4938.310059 >,< 0.004999 , -89.996300 , 0.000004 >,"centerRightDrones_Loop2",index++))
wave3.append(CreateWaitForTimeEvent(5.0,index++))
wave3.append(CreateWaitUntilAliveEvent(6,index++))
- wave3.append(CreateSpawnDroneEvent(< 3367.949951 , 2291.610107 , 4898.049805 >,< 0.004999 , -115.792000 , 0.000004 >,"",index++))
+ wave3.append(CreateSpawnDroneEvent(< 3367.949951 , 2291.610107 , 4898.049805 >,< 0.004999 , -115.792000 , 0.000004 >,"centerRightDrones_Loop1",index++))
wave3.append(CreateWaitForTimeEvent(1.1669922,index++))
- wave3.append(CreateSpawnDroneEvent(< 4542.890137 , 2610.110107 , 4888.470215 >,< 0.004999 , -115.792000 , 0.000004 >,"",index++))
+ wave3.append(CreateSpawnDroneEvent(< 4542.890137 , 2610.110107 , 4888.470215 >,< 0.004999 , -115.792000 , 0.000004 >,"centerRightDrones_Loop1",index++))
wave3.append(CreateWaitForTimeEvent(1.3330078,index++))
- wave3.append(CreateSpawnDroneEvent(< 2826.729980 , 3086.419922 , 4851.450195 >,< 0.004999 , -115.792000 , 0.000004 >,"",index++))
+ wave3.append(CreateSpawnDroneEvent(< 2826.729980 , 3086.419922 , 4851.450195 >,< 0.004999 , -115.792000 , 0.000004 >,"centerRightDrones_Loop1",index++))
wave3.append(CreateWaitForTimeEvent(0.9500122,index++))
wave3.append(CreateNukeTitanEvent(< 3573.939941 , -2788.310059 , -68.281303 >,< 0.000000 , 0.000000 , 0.000000 >,"",index++))
wave3.append(CreateWaitForTimeEvent(1.532959,index++))
@@ -289,9 +293,9 @@ void function initFrontierDefenseData()
wave3.append(CreateSuperSpectreEvent(< -522.593994 , -251.406006 , 416.437988 >,< -0.000000 , 169.408997 , 0.000000 >,"",index++))
wave3.append(CreateWaitForTimeEvent(5.0,index++))
wave3.append(CreateWaitUntilAliveEvent(6,index++))
- wave3.append(CreateSpawnDroneEvent(< 6076.790039 , 186.516006 , 4864.759766 >,< 0.004999 , -115.792000 , 0.000004 >,"",index++))
+ wave3.append(CreateSpawnDroneEvent(< 6076.790039 , 186.516006 , 4864.759766 >,< 0.004999 , -115.792000 , 0.000004 >,"centerRightDrones_Loop1",index++))
wave3.append(CreateWaitForTimeEvent(0.8840332,index++))
- wave3.append(CreateSpawnDroneEvent(< 3367.949951 , 2291.610107 , 4941.009766 >,< 0.004999 , -115.792000 , 0.000004 >,"",index++))
+ wave3.append(CreateSpawnDroneEvent(< 3367.949951 , 2291.610107 , 4941.009766 >,< 0.004999 , -115.792000 , 0.000004 >,"centerRightDrones_Loop1",index++))
wave3.append(CreateWaitForTimeEvent(0.8999634,index++))
wave3.append(CreateScorchTitanEvent(< 5251.529785 , 2049.280029 , 13.125000 >,< 0.000000 , -90.000000 , 0.000000 >,"",index++))
wave3.append(CreateWaitForTimeEvent(1.5159912,index++))
@@ -320,9 +324,9 @@ void function initFrontierDefenseData()
wave4.append(CreateWaitForTimeEvent(1.5,index++))
wave4.append(CreateSuperSpectreEvent(< -1172.420044 , 1221.010010 , -167.218994 >,< 0.000000 , -175.912994 , 0.000000 >,"",index++))
wave4.append(CreateWaitForTimeEvent(0.11999512,index++))
- wave4.append(CreateSpawnDroneEvent(< 6090.759766 , 146.453995 , 4879.229980 >,< 0.004999 , -115.792000 , 0.000004 >,"",index++))
+ wave4.append(CreateSpawnDroneEvent(< 6090.759766 , 146.453995 , 4879.229980 >,< 0.004999 , -115.792000 , 0.000004 >,"centerRightDrones_Loop1",index++))
wave4.append(CreateWaitForTimeEvent(1.0999756,index++))
- wave4.append(CreateSpawnDroneEvent(< 3381.919922 , 2251.550049 , 4925.459961 >,< 0.004999 , -115.792000 , 0.000004 >,"",index++))
+ wave4.append(CreateSpawnDroneEvent(< 3381.919922 , 2251.550049 , 4925.459961 >,< 0.004999 , -115.792000 , 0.000004 >,"centerRightDrones_Loop1",index++))
wave4.append(CreateWaitForTimeEvent(1.0599365,index++))
wave4.append(CreateDroppodGruntEvent(< 3754.719971 , -2589.250000 , -63.906300 >,"",index++))
wave4.append(CreateWaitForTimeEvent(1.1400146,index++))
@@ -381,18 +385,18 @@ void function initFrontierDefenseData()
wave4.append(CreateSuperSpectreEvent(< 3910.250000 , -2404.560059 , -89.156303 >,< -0.922852 , -121.376999 , -1.582030 >,"",index++))
wave4.append(CreateWaitForTimeEvent(5.0,index++))
wave4.append(CreateWaitUntilAliveEvent(6,index++))
- wave4.append(CreateSpawnDroneEvent(< 6050.669922 , 132.485001 , 4890.120117 >,< 0.004999 , -115.792000 , 0.000004 >,"",index++))
+ wave4.append(CreateSpawnDroneEvent(< 6050.669922 , 132.485001 , 4890.120117 >,< 0.004999 , -115.792000 , 0.000004 >,"centerRightDrones_Loop1",index++))
wave4.append(CreateWaitForTimeEvent(0.8099365,index++))
- wave4.append(CreateSpawnDroneEvent(< 5994.600098 , 1378.760010 , 4814.129883 >,< 0.004999 , -73.121300 , 0.000004 >,"",index++))
+ wave4.append(CreateSpawnDroneEvent(< 5994.600098 , 1378.760010 , 4814.129883 >,< 0.004999 , -73.121300 , 0.000004 >,"centerLeftDrones_Loop3",index++))
wave4.append(CreateWaitForTimeEvent(1.5,index++))
- wave4.append(CreateSpawnDroneEvent(< 5234.000000 , 1305.729980 , 4936.160156 >,< 0.004999 , -89.996300 , 0.000004 >,"",index++))
+ wave4.append(CreateSpawnDroneEvent(< 5234.000000 , 1305.729980 , 4936.160156 >,< 0.004999 , -89.996300 , 0.000004 >,"centerRightDrones_Loop2",index++))
wave4.append(CreateWaitForTimeEvent(1.2000732,index++))
- wave4.append(CreateSpawnDroneEvent(< 3341.850098 , 2237.580078 , 4911.430176 >,< 0.004999 , -115.792000 , 0.000004 >,"",index++))
+ wave4.append(CreateSpawnDroneEvent(< 3341.850098 , 2237.580078 , 4911.430176 >,< 0.004999 , -115.792000 , 0.000004 >,"centerRightDrones_Loop1",index++))
wave4.append(CreateWaitForTimeEvent(5.0,index++))
wave4.append(CreateWaitUntilAliveEvent(6,index++))
- wave4.append(CreateSpawnDroneEvent(< 3327.889893 , 2277.639893 , 4940.600098 >,< 0.004999 , -115.792000 , 0.000004 >,"",index++))
+ wave4.append(CreateSpawnDroneEvent(< 3327.889893 , 2277.639893 , 4940.600098 >,< 0.004999 , -115.792000 , 0.000004 >,"centerRightDrones_Loop1",index++))
wave4.append(CreateWaitForTimeEvent(0.8300781,index++))
- wave4.append(CreateSpawnDroneEvent(< 2866.790039 , 3100.360107 , 4857.200195 >,< 0.004999 , -115.792000 , 0.000004 >,"",index++))
+ wave4.append(CreateSpawnDroneEvent(< 2866.790039 , 3100.360107 , 4857.200195 >,< 0.004999 , -115.792000 , 0.000004 >,"centerRightDrones_Loop1",index++))
wave4.append(CreateWaitForTimeEvent(1.2799072,index++))
wave4.append(CreateToneSniperTitanEvent(< 1484.189941 , 968.218994 , 97.968803 >,< -0.922852 , -141.942993 , -1.582030 >,index++))
wave4.append(CreateWaitForTimeEvent(1.2900391,index++))
@@ -405,11 +409,11 @@ void function initFrontierDefenseData()
wave4.append(CreateDroppodGruntEvent(< 3917.000000 , -2654.719971 , -81.468803 >,"",index++))
wave4.append(CreateWaitForTimeEvent(5.0,index++))
wave4.append(CreateWaitUntilAliveEvent(6,index++))
- wave4.append(CreateSpawnDroneEvent(< 6036.729980 , 172.546997 , 4861.959961 >,< 0.004999 , -115.792000 , 0.000004 >,"",index++))
+ wave4.append(CreateSpawnDroneEvent(< 6036.729980 , 172.546997 , 4861.959961 >,< 0.004999 , -115.792000 , 0.000004 >,"centerRightDrones_Loop1",index++))
wave4.append(CreateWaitForTimeEvent(0.98999023,index++))
- wave4.append(CreateSpawnDroneEvent(< 6032.029785 , 1358.760010 , 4831.629883 >,< 0.004999 , -73.121300 , 0.000004 >,"",index++))
+ wave4.append(CreateSpawnDroneEvent(< 6032.029785 , 1358.760010 , 4831.629883 >,< 0.004999 , -73.121300 , 0.000004 >,"centerLeftDrones_Loop3",index++))
wave4.append(CreateWaitForTimeEvent(1.1099854,index++))
- wave4.append(CreateSpawnDroneEvent(< 5204.000000 , 1335.729980 , 4926.459961 >,< 0.004999 , -89.996300 , 0.000004 >,"",index++))
+ wave4.append(CreateSpawnDroneEvent(< 5204.000000 , 1335.729980 , 4926.459961 >,< 0.004999 , -89.996300 , 0.000004 >,"centerRightDrones_Loop2",index++))
wave4.append(CreateWaitForTimeEvent(5.0,index++))
wave4.append(CreateWaitUntilAliveEvent(6,index++))
wave4.append(CreateToneSniperTitanEvent(< 1484.189941 , 968.218994 , 97.968803 >,< -0.922852 , -141.942993 , -1.582030 >,index++))
@@ -460,11 +464,11 @@ void function initFrontierDefenseData()
wave5.append(CreateWaitForTimeEvent(1.0,index++))
wave5.append(CreateNukeTitanEvent(< 4249.879883 , 2937.159912 , -44.156300 >,< 0.000000 , -90.000000 , 0.000000 >,"",index++))
wave5.append(CreateWaitForTimeEvent(0.23999023,index++))
- wave5.append(CreateSpawnDroneEvent(< 3027.270020 , 1470.109985 , 196.347000 >,< 13.667000 , -114.433998 , 0.000000 >,"",index++))
+ wave5.append(CreateSpawnDroneEvent(< 3027.270020 , 1470.109985 , 196.347000 >,< 13.667000 , -114.433998 , 0.000000 >,"centerRightDrones_Loop6",index++))
wave5.append(CreateWaitForTimeEvent(0.10998535,index++))
- wave5.append(CreateSpawnDroneEvent(< 2938.060059 , 1411.089966 , 100.563004 >,< 13.667000 , -110.039001 , 0.000000 >,"",index++))
+ wave5.append(CreateSpawnDroneEvent(< 2938.060059 , 1411.089966 , 100.563004 >,< 13.667000 , -110.039001 , 0.000000 >,"centerRightDrones_Loop6",index++))
wave5.append(CreateWaitForTimeEvent(0.11999512,index++))
- wave5.append(CreateSpawnDroneEvent(< 3031.810059 , 1541.949951 , 103.435997 >,< 12.767300 , -112.807999 , -0.000001 >,"",index++))
+ wave5.append(CreateSpawnDroneEvent(< 3031.810059 , 1541.949951 , 103.435997 >,< 12.767300 , -112.807999 , -0.000001 >,"centerRightDrones_Loop6",index++))
wave5.append(CreateWaitForTimeEvent(3.5999756,index++))
wave5.append(CreateSuperSpectreEvent(< 5122.479980 , 1549.989990 , 38.913399 >,< -0.000000 , -147.757004 , 0.000000 >,"",index++))
wave5.append(CreateWaitForTimeEvent(0.82006836,index++))
@@ -497,7 +501,7 @@ void function initFrontierDefenseData()
wave5.append(CreateWaitForTimeEvent(1.2900391,index++))
wave5.append(CreateNukeTitanEvent(< 3610.939941 , 2928.689941 , 22.218800 >,< 0.000000 , -113.642998 , 0.000000 >,"",index++))
wave5.append(CreateWaitForTimeEvent(0.60998535,index++))
- wave5.append(CreateSpawnDroneEvent(< 3341.850098 , 2237.580078 , 4942.560059 >,< 0.004999 , -115.792000 , 0.000004 >,"",index++))
+ wave5.append(CreateSpawnDroneEvent(< 3341.850098 , 2237.580078 , 4942.560059 >,< 0.004999 , -115.792000 , 0.000004 >,"centerRightDrones_Loop1",index++))
wave5.append(CreateWaitForTimeEvent(0.73999023,index++))
wave5.append(CreateNukeTitanEvent(< 5797.589844 , 1407.689941 , -93.906303 >,< 0.000000 , -161.498993 , 0.000000 >,"",index++))
wave5.append(CreateWaitForTimeEvent(0.7800293,index++))