aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Northstar.CustomServers/mod/scripts/vscripts/gamemodes/_gamemode_fd_events.nut238
1 files changed, 230 insertions, 8 deletions
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 af63aeee..4c44dac7 100644
--- a/Northstar.CustomServers/mod/scripts/vscripts/gamemodes/_gamemode_fd_events.nut
+++ b/Northstar.CustomServers/mod/scripts/vscripts/gamemodes/_gamemode_fd_events.nut
@@ -2,6 +2,7 @@ global function createSmokeEvent
global function createArcTitanEvent
global function createWaitForTimeEvent
global function createSuperSpectreEvent
+global function createSuperSpectreEventWithMinion
global function createDroppodGruntEvent
global function createNukeTitanEvent
global function createMortarTitanEvent
@@ -13,7 +14,13 @@ global function createWaitUntilAliveEvent
global function createCloakDroneEvent
global function CreateTickEvent
global function CreateToneSniperTitanEvent
-global function CreateNorthstarSniperTitanEvent
+global function CreateNorthstarSniperTitanEvent // northstars are always sniper titans
+global function CreateIonTitanEvent
+global function CreateScorchTitanEvent
+global function CreateRoninTitanEvent
+global function CreateToneTitanEvent
+global function CreateLegionTitanEvent
+global function CreateMonarchTitanEvent
global function executeWave
@@ -179,6 +186,21 @@ WaveEvent function createSuperSpectreEvent(vector origin,vector angles,string ro
return event
}
+WaveEvent function createSuperSpectreEventWithMinion(vector origin,vector angles,string route,int nextEventIndex,int executeOnThisCall = 1)
+{
+ WaveEvent event
+ event.eventFunction = spawnSuperSpectreWithMinion
+ event.executeOnThisCall = executeOnThisCall
+ event.nextEventIndex = nextEventIndex
+ event.shouldThread = true
+ event.spawnEvent.spawnType= eFD_AITypeIDs.REAPER
+ event.spawnEvent.spawnAmount = 1
+ event.spawnEvent.origin = origin
+ event.spawnEvent.angles = angles
+ event.spawnEvent.route = route
+ return event
+}
+
WaveEvent function createDroppodGruntEvent(vector origin,string route,int nextEventIndex,int executeOnThisCall = 1)
{
WaveEvent event
@@ -361,6 +383,97 @@ WaveEvent function CreateToneSniperTitanEvent(vector origin,vector angles,int ne
return event
}
+
+WaveEvent function CreateIonTitanEvent(vector origin,vector angles,string route,int nextEventIndex,int executeOnThisCall = 1)
+{
+ WaveEvent event
+ event.eventFunction = SpawnIonTitan
+ event.executeOnThisCall = executeOnThisCall
+ event.nextEventIndex = nextEventIndex
+ event.shouldThread = true
+ event.spawnEvent.spawnType= eFD_AITypeIDs.ION
+ event.spawnEvent.spawnAmount = 1
+ event.spawnEvent.origin = origin
+ event.spawnEvent.angles = angles
+ event.spawnEvent.route = route
+ return event
+}
+
+WaveEvent function CreateScorchTitanEvent(vector origin,vector angles,string route,int nextEventIndex,int executeOnThisCall = 1)
+{
+ WaveEvent event
+ event.eventFunction = SpawnScorchTitan
+ event.executeOnThisCall = executeOnThisCall
+ event.nextEventIndex = nextEventIndex
+ event.shouldThread = true
+ event.spawnEvent.spawnType= eFD_AITypeIDs.SCORCH
+ event.spawnEvent.spawnAmount = 1
+ event.spawnEvent.origin = origin
+ event.spawnEvent.angles = angles
+ event.spawnEvent.route = route
+ return event
+}
+
+WaveEvent function CreateRoninTitanEvent(vector origin,vector angles,string route,int nextEventIndex,int executeOnThisCall = 1)
+{
+ WaveEvent event
+ event.eventFunction = SpawnRoninTitan
+ event.executeOnThisCall = executeOnThisCall
+ event.nextEventIndex = nextEventIndex
+ event.shouldThread = true
+ event.spawnEvent.spawnType= eFD_AITypeIDs.RONIN
+ event.spawnEvent.spawnAmount = 1
+ event.spawnEvent.origin = origin
+ event.spawnEvent.angles = angles
+ event.spawnEvent.route = route
+ return event
+}
+
+WaveEvent function CreateToneTitanEvent(vector origin,vector angles,string route,int nextEventIndex,int executeOnThisCall = 1)
+{
+ WaveEvent event
+ event.eventFunction = SpawnToneTitan
+ event.executeOnThisCall = executeOnThisCall
+ event.nextEventIndex = nextEventIndex
+ event.shouldThread = true
+ event.spawnEvent.spawnType= eFD_AITypeIDs.TONE
+ event.spawnEvent.spawnAmount = 1
+ event.spawnEvent.origin = origin
+ event.spawnEvent.angles = angles
+ event.spawnEvent.route = route
+ return event
+}
+
+WaveEvent function CreateLegionTitanEvent(vector origin,vector angles,string route,int nextEventIndex,int executeOnThisCall = 1)
+{
+ WaveEvent event
+ event.eventFunction = SpawnLegionTitan
+ event.executeOnThisCall = executeOnThisCall
+ event.nextEventIndex = nextEventIndex
+ event.shouldThread = true
+ event.spawnEvent.spawnType= eFD_AITypeIDs.LEGION
+ event.spawnEvent.spawnAmount = 1
+ event.spawnEvent.origin = origin
+ event.spawnEvent.angles = angles
+ event.spawnEvent.route = route
+ return event
+}
+
+WaveEvent function CreateMonarchTitanEvent(vector origin,vector angles,string route,int nextEventIndex,int executeOnThisCall = 1)
+{
+ WaveEvent event
+ event.eventFunction = SpawnMonarchTitan
+ event.executeOnThisCall = executeOnThisCall
+ event.nextEventIndex = nextEventIndex
+ event.shouldThread = true
+ event.spawnEvent.spawnType= eFD_AITypeIDs.MONARCH
+ event.spawnEvent.spawnAmount = 1
+ event.spawnEvent.origin = origin
+ event.spawnEvent.angles = angles
+ event.spawnEvent.route = route
+ return event
+}
+
/************************************************************************************************************\
####### # # ####### # # ####### ####### # # # # ##### ####### ### ####### # # #####
# # # # ## # # # # # ## # # # # # # # ## # # #
@@ -432,11 +545,29 @@ void function spawnSuperSpectre(SmokeEvent smokeEvent,SpawnEvent spawnEvent,Wait
wait 4.7
DispatchSpawn(npc)
+ SetTargetName( npc, GetTargetNameForID(spawnEvent.spawnType))
AddMinimapForHumans(npc)
thread SuperSpectre_WarpFall(npc)
- thread ReaperMinionLauncherThink(npc)
+ npc.WaitSignal("WarpfallComplete")
+ thread singleNav_thread(npc, spawnEvent.route)
+}
+
+void function spawnSuperSpectreWithMinion(SmokeEvent smokeEvent,SpawnEvent spawnEvent,WaitEvent waitEvent,SoundEvent soundEvent)
+{
+ PingMinimap(spawnEvent.origin.x, spawnEvent.origin.y, 4, 600, 150, 0)
+ entity npc = CreateSuperSpectre(TEAM_IMC,spawnEvent.origin,spawnEvent.angles)
+ SetSpawnOption_AISettings(npc,"npc_super_spectre_fd")
+ spawnedNPCs.append(npc)
+
+ wait 4.7
+ DispatchSpawn(npc)
SetTargetName( npc, GetTargetNameForID(spawnEvent.spawnType))
+ AddMinimapForHumans(npc)
+ thread SuperSpectre_WarpFall(npc)
+ npc.WaitSignal("WarpfallComplete")
+ thread ReaperMinionLauncherThink(npc)
+
}
void function spawnDroppodGrunts(SmokeEvent smokeEvent,SpawnEvent spawnEvent,WaitEvent waitEvent,SoundEvent soundEvent)
@@ -460,13 +591,13 @@ void function spawnDroppodGrunts(SmokeEvent smokeEvent,SpawnEvent spawnEvent,Wai
guy.DisableNPCFlag( NPC_ALLOW_PATROL)
DispatchSpawn( guy )
- guy.SetParent( pod, "ATTACH", true )
- SetSquad( guy, squadName )
+ guy.SetParent( pod, "ATTACH", true )
+ SetSquad( guy, squadName )
- SetTargetName( guy, GetTargetNameForID(eFD_AITypeIDs.GRUNT))
- AddMinimapForHumans(guy)
- spawnedNPCs.append(guy)
- guys.append( guy )
+ SetTargetName( guy, GetTargetNameForID(eFD_AITypeIDs.GRUNT))
+ AddMinimapForHumans(guy)
+ spawnedNPCs.append(guy)
+ guys.append( guy )
}
ActivateFireteamDropPod( pod, guys )
@@ -586,6 +717,97 @@ void function spawnGenericNPCTitanwithSettings(SmokeEvent smokeEvent,SpawnEvent
npc.GetTitanSoul().SetTitanSoulNetBool( "showOverheadIcon", true )
}
+
+void function SpawnIonTitan(SmokeEvent smokeEvent,SpawnEvent spawnEvent,WaitEvent waitEvent,SoundEvent soundEvent)
+{
+ PingMinimap(spawnEvent.origin.x, spawnEvent.origin.y, 4, 600, 150, 0)
+ entity npc = CreateNPCTitan("titan_atlas",TEAM_IMC, spawnEvent.origin, spawnEvent.angles)
+ SetSpawnOption_AISettings(npc,"npc_titan_atlas_stickybomb_boss_fd")
+ SetSpawnOption_Titanfall(npc)
+ SetTargetName( npc, GetTargetNameForID(spawnEvent.spawnType)) // required for client to create icons
+ DispatchSpawn( npc )
+ file.spawnedNPCs.append(npc)
+ AddMinimapForTitans(npc)
+ npc.WaitSignal( "TitanHotDropComplete" )
+ npc.GetTitanSoul().SetTitanSoulNetBool( "showOverheadIcon", true )
+ thread CommonAIThink(npc, spawnEvent.route)
+}
+
+void function SpawnScorchTitan(SmokeEvent smokeEvent,SpawnEvent spawnEvent,WaitEvent waitEvent,SoundEvent soundEvent)
+{
+ PingMinimap(spawnEvent.origin.x, spawnEvent.origin.y, 4, 600, 150, 0)
+ entity npc = CreateNPCTitan("titan_ogre",TEAM_IMC, spawnEvent.origin, spawnEvent.angles)
+ SetSpawnOption_AISettings(npc,"npc_titan_ogre_meteor_boss_fd")
+ SetSpawnOption_Titanfall(npc)
+ SetTargetName( npc, GetTargetNameForID(spawnEvent.spawnType)) // required for client to create icons
+ DispatchSpawn( npc )
+ file.spawnedNPCs.append(npc)
+ AddMinimapForTitans(npc)
+ npc.WaitSignal( "TitanHotDropComplete" )
+ npc.GetTitanSoul().SetTitanSoulNetBool( "showOverheadIcon", true )
+ thread CommonAIThink(npc, spawnEvent.route)
+}
+
+void function SpawnRoninTitan(SmokeEvent smokeEvent,SpawnEvent spawnEvent,WaitEvent waitEvent,SoundEvent soundEvent)
+{
+ PingMinimap(spawnEvent.origin.x, spawnEvent.origin.y, 4, 600, 150, 0)
+ entity npc = CreateNPCTitan("titan_stryder",TEAM_IMC, spawnEvent.origin, spawnEvent.angles)
+ SetSpawnOption_AISettings(npc,"npc_titan_stryder_leadwall_boss_fd")
+ SetSpawnOption_Titanfall(npc)
+ SetTargetName( npc, GetTargetNameForID(spawnEvent.spawnType)) // required for client to create icons
+ DispatchSpawn( npc )
+ file.spawnedNPCs.append(npc)
+ AddMinimapForTitans(npc)
+ npc.WaitSignal( "TitanHotDropComplete" )
+ npc.GetTitanSoul().SetTitanSoulNetBool( "showOverheadIcon", true )
+ thread CommonAIThink(npc, spawnEvent.route)
+}
+
+void function SpawnToneTitan(SmokeEvent smokeEvent,SpawnEvent spawnEvent,WaitEvent waitEvent,SoundEvent soundEvent)
+{
+ PingMinimap(spawnEvent.origin.x, spawnEvent.origin.y, 4, 600, 150, 0)
+ entity npc = CreateNPCTitan("titan_atlas",TEAM_IMC, spawnEvent.origin, spawnEvent.angles)
+ SetSpawnOption_AISettings(npc,"npc_titan_atlas_tracker_boss_fd")
+ SetSpawnOption_Titanfall(npc)
+ SetTargetName( npc, GetTargetNameForID(spawnEvent.spawnType)) // required for client to create icons
+ DispatchSpawn( npc )
+ file.spawnedNPCs.append(npc)
+ AddMinimapForTitans(npc)
+ npc.WaitSignal( "TitanHotDropComplete" )
+ npc.GetTitanSoul().SetTitanSoulNetBool( "showOverheadIcon", true )
+ thread CommonAIThink(npc, spawnEvent.route)
+}
+
+void function SpawnLegionTitan(SmokeEvent smokeEvent,SpawnEvent spawnEvent,WaitEvent waitEvent,SoundEvent soundEvent)
+{
+ PingMinimap(spawnEvent.origin.x, spawnEvent.origin.y, 4, 600, 150, 0)
+ entity npc = CreateNPCTitan("titan_ogre",TEAM_IMC, spawnEvent.origin, spawnEvent.angles)
+ SetSpawnOption_AISettings(npc,"npc_titan_ogre_minigun_boss_fd")
+ SetSpawnOption_Titanfall(npc)
+ SetTargetName( npc, GetTargetNameForID(spawnEvent.spawnType)) // required for client to create icons
+ DispatchSpawn( npc )
+ file.spawnedNPCs.append(npc)
+ AddMinimapForTitans(npc)
+ npc.WaitSignal( "TitanHotDropComplete" )
+ npc.GetTitanSoul().SetTitanSoulNetBool( "showOverheadIcon", true )
+ thread CommonAIThink(npc, spawnEvent.route)
+}
+
+void function SpawnMonarchTitan(SmokeEvent smokeEvent,SpawnEvent spawnEvent,WaitEvent waitEvent,SoundEvent soundEvent)
+{
+ PingMinimap(spawnEvent.origin.x, spawnEvent.origin.y, 4, 600, 150, 0)
+ entity npc = CreateNPCTitan("titan_atlas",TEAM_IMC, spawnEvent.origin, spawnEvent.angles)
+ SetSpawnOption_AISettings(npc,"npc_titan_atlas_vanguard_boss_fd")
+ SetSpawnOption_Titanfall(npc)
+ SetTargetName( npc, GetTargetNameForID(spawnEvent.spawnType)) // required for client to create icons
+ DispatchSpawn( npc )
+ file.spawnedNPCs.append(npc)
+ AddMinimapForTitans(npc)
+ npc.WaitSignal( "TitanHotDropComplete" )
+ npc.GetTitanSoul().SetTitanSoulNetBool( "showOverheadIcon", true )
+ thread CommonAIThink(npc, spawnEvent.route)
+}
+
void function spawnNukeTitan(SmokeEvent smokeEvent,SpawnEvent spawnEvent,WaitEvent waitEvent,SoundEvent soundEvent)
{
PingMinimap(spawnEvent.origin.x, spawnEvent.origin.y, 4, 600, 150, 0)