Files
SoaFE/DATA/SCRIPTS/STORY/STORY_UNDERWORLD_ACTIII_M11_LAND.LUA
2026-02-28 14:00:45 -06:00

4118 lines
141 KiB
Lua

-- $Id: //depot/Projects/StarWars_Steam/FOC/Run/Data/Scripts/Story/Story_Underworld_ActIII_M11_LAND.lua#1 $
--/////////////////////////////////////////////////////////////////////////////////////////////////
--
-- (C) Petroglyph Games, Inc.
--
--
-- ***** ** * *
-- * ** * * *
-- * * * * *
-- * * * * * * * *
-- * * *** ****** * ** **** *** * * * ***** * ***
-- * ** * * * ** * ** ** * * * * ** ** ** *
-- *** ***** * * * * * * * * ** * * * *
-- * * * * * * * * * * * * * * *
-- * * * * * * * * * * ** * * * *
-- * ** * * ** * ** * * ** * * * *
-- ** **** ** * **** ***** * ** *** * *
-- * * *
-- * * *
-- * * *
-- * * * *
-- **** * *
--
--/////////////////////////////////////////////////////////////////////////////////////////////////
-- C O N F I D E N T I A L S O U R C E C O D E -- D O N O T D I S T R I B U T E
--/////////////////////////////////////////////////////////////////////////////////////////////////
--
-- $File: //depot/Projects/StarWars_Steam/FOC/Run/Data/Scripts/Story/Story_Underworld_ActIII_M11_LAND.lua $
--
-- Original Author: Jeff_Stewart
--
-- $Author: Brian_Hayes $
--
-- $Change: 637819 $
--
-- $DateTime: 2017/03/22 10:16:16 $
--
-- $Revision: #1 $
--
--/////////////////////////////////////////////////////////////////////////////////////////////////
require("JGS_FunctionLib") -- added library of commonly used functions
require("PGSpawnUnits")
require("PGStoryMode")
function Definitions()
--MessageBox("Defined")
StoryModeEvents =
{
Underworld_A03M11_Begin = State_Underworld_A03M11_Begin,
Mission_Chatter_00_Done = State_Mission_Chatter_00_Done,
Mission_Chatter_01_Done = State_Mission_Chatter_01_Done,
Mission_Chatter_02_Done = State_Mission_Chatter_02_Done,
Mission_Chatter_03_Done = State_Mission_Chatter_03_Done,
Mission_Chatter_04_Done = State_Mission_Chatter_04_Done,
Mission_Chatter_05_Done = State_Mission_Chatter_05_Done,
Mission_Chatter_06_Done = State_Mission_Chatter_06_Done,
Mission_Chatter_07_Done = State_Mission_Chatter_07_Done,
Mission_Chatter_08_Done = State_Mission_Chatter_08_Done,
Mission_Chatter_09_Done = State_Mission_Chatter_09_Done,
Mission_Chatter_10_Done = State_Mission_Chatter_10_Done,
Mission_Chatter_11_Done = State_Mission_Chatter_11_Done,
Mission_Chatter_12_Done = State_Mission_Chatter_12_Done,
Mission_Chatter_13_Done = State_Mission_Chatter_13_Done,
Mission_Chatter_14_Done = State_Mission_Chatter_14_Done,
Mission_Chatter_15_Done = State_Mission_Chatter_15_Done,
Mission_Chatter_16_Done = State_Mission_Chatter_16_Done,
Mission_Chatter_17_Done = State_Mission_Chatter_17_Done,
Mission_Chatter_18_Done = State_Mission_Chatter_18_Done,
Mission_Chatter_19_Done = State_Mission_Chatter_19_Done,
Mission_Chatter_20_Done = State_Mission_Chatter_20_Done,
Mission_Chatter_21_Done = State_Mission_Chatter_21_Done,
Mission_Chatter_22_Done = State_Mission_Chatter_22_Done,
Mission_Chatter_23_Done = State_Mission_Chatter_23_Done,
Mission_Chatter_24_Done = State_Mission_Chatter_24_Done,
Mission_Chatter_25_Done = State_Mission_Chatter_25_Done,
Mission_Chatter_26_Done = State_Mission_Chatter_26_Done,
Mission_Chatter_27_Done = State_Mission_Chatter_27_Done,
Mission_Chatter_28_Done = State_Mission_Chatter_28_Done,
Mission_Chatter_29_Done = State_Mission_Chatter_29_Done,
Mission_Chatter_30_Done = State_Mission_Chatter_30_Done,
Mission_Chatter_31_Done = State_Mission_Chatter_31_Done,
Mission_Chatter_32_Done = State_Mission_Chatter_32_Done,
Mission_Chatter_33_Done = State_Mission_Chatter_33_Done,
Mission_Chatter_34_Done = State_Mission_Chatter_34_Done,
Mission_Chatter_35_Done = State_Mission_Chatter_35_Done,
Mission_Chatter_36_Done = State_Mission_Chatter_36_Done,
Mission_Chatter_37_Done = State_Mission_Chatter_37_Done,
Mission_Chatter_38_Done = State_Mission_Chatter_38_Done,
Mission_Chatter_39_Done = State_Mission_Chatter_39_Done,
Mission_Chatter_40_Done = State_Mission_Chatter_40_Done,
Mission_Chatter_41_Done = State_Mission_Chatter_41_Done,
Mission_Chatter_42_Done = State_Mission_Chatter_42_Done,
Mission_Chatter_43_Done = State_Mission_Chatter_43_Done,
Mission_Chatter_44_Done = State_Mission_Chatter_44_Done,
Mission_Chatter_45_Done = State_Mission_Chatter_45_Done,
Mission_Chatter_46_Done = State_Mission_Chatter_46_Done,
Mission_Chatter_47_Done = State_Mission_Chatter_47_Done,
Mission_Chatter_48_Done = State_Mission_Chatter_48_Done,
Mission_Chatter_49_Done = State_Mission_Chatter_49_Done,
Mission_Chatter_50_Done = State_Mission_Chatter_50_Done,
Mission_Chatter_51_Done = State_Mission_Chatter_51_Done,
Mission_Chatter_52_Done = State_Mission_Chatter_52_Done,
Mission_Chatter_53_Done = State_Mission_Chatter_53_Done,
Mission_Chatter_54_Done = State_Mission_Chatter_54_Done,
Mission_Chatter_55_Done = State_Mission_Chatter_55_Done
}
end
function State_Underworld_A03M11_Begin(message)
if message == OnEnter then
Fade_Screen_Out(0)
State_Mission_00_Done = false
State_Mission_01_Done = false
State_Mission_02_Done = false
State_Mission_03_Done = false
State_Mission_04_Done = false
State_Mission_05_Done = false
State_Mission_06_Done = false
State_Mission_07_Done = false
State_Mission_08_Done = false
State_Mission_09_Done = false
State_Mission_10_Done = false
State_Mission_11_Done = false
State_Mission_12_Done = false
State_Mission_13_Done = false
State_Mission_14_Done = false
State_Mission_15_Done = false
State_Mission_16_Done = false
State_Mission_17_Done = false
State_Mission_18_Done = false
State_Mission_19_Done = false
State_Mission_20_Done = false
State_Mission_21_Done = false
State_Mission_22_Done = false
State_Mission_23_Done = false
State_Mission_24_Done = false
State_Mission_25_Done = false
State_Mission_26_Done = false
State_Mission_27_Done = false
State_Mission_28_Done = false
State_Mission_29_Done = false
State_Mission_30_Done = false
State_Mission_31_Done = false
State_Mission_32_Done = false
State_Mission_33_Done = false
State_Mission_34_Done = false
State_Mission_35_Done = false
State_Mission_36_Done = false
State_Mission_37_Done = false
State_Mission_38_Done = false
State_Mission_39_Done = false
State_Mission_40_Done = false
State_Mission_41_Done = false
State_Mission_42_Done = false
State_Mission_43_Done = false
State_Mission_44_Done = false
State_Mission_45_Done = false
State_Mission_46_Done = false
State_Mission_47_Done = false
State_Mission_48_Done = false
State_Mission_49_Done = false
State_Mission_50_Done = false
State_Mission_51_Done = false
State_Mission_52_Done = false
State_Mission_53_Done = false
State_Mission_54_Done = false
State_Mission_55_Done = false
neutral_player = Find_Player("Neutral")
empire_player = Find_Player("Empire")
underworld_player = Find_Player("Underworld")
hostile_player = Find_Player("Hostile")
Setup_Cinematic_Definitions()
-- name and register prox and death values for operating doors in mission
endcinebox = Find_Hint("UM05_BLACK_COVER_GIANT", "endcinecover") --
endcinebox1 = Find_Hint("UM05_BLACK_COVER_GIANT", "endcinebox1") --
int_sky=Find_First_Object("GIRDER_SKY_INTERIOR")
ext_sky=Find_Hint("PROP_CORUSCANT_SKYDOME","extskydome")
thesithartifact = Find_First_Object("UM05_CINE_HOLOCRON")
thebunker = Find_Hint("GARRISON_BUNKER_CAPTURABLE", "bunker") --
doora = Find_Hint("UM05_MOVING_DOOR", "doora") --
doorbspawn = Find_Hint("STORY_TRIGGER_ZONE", "doorbspawn")
doorc1 = Find_Hint("UM05_MOVING_DOOR", "doorc1") --
doorc2 = Find_Hint("UM05_MOVING_DOOR", "doorc2") --
doord = Find_Hint("UM05_MOVING_DOOR", "doord")
doore = Find_Hint("UM05_MOVING_DOOR", "doore") --
doore2spawn = Find_Hint("STORY_TRIGGER_ZONE", "doore2spawn")
doorfspawn = Find_Hint("STORY_TRIGGER_ZONE", "doorfspawn")
doorg = Find_Hint("UM05_MOVING_DOOR", "doorg")
doorh = Find_Hint("UM05_MOVING_DOOR", "doorh") --
doori = Find_Hint("UM05_MOVING_DOOR", "doori")
doorj = Find_Hint("UM05_MOVING_DOOR", "doorj") --
doorjspawn = Find_Hint("STORY_TRIGGER_ZONE", "doorjspawn")
doork = Find_Hint("UM05_MOVING_DOOR", "doork") --
vaulta = Find_Hint("UM05_MOVING_DOOR", "vaultdoora") --
vaultb = Find_Hint("UM05_MOVING_DOOR", "vaultdoorb") --
adeptonedoor = Find_Hint("UM05_MOVING_DOOR", "adeptonedoor") --
vaultcover = Find_Hint("UM05_BLACK_COVER", "openedvault") --
consoleb = Find_Hint("UMP_INTERFACE_NODE", "consoleb")
consoled = Find_Hint("UMP_INTERFACE_NODE", "consoled")
consolee = Find_Hint("UMP_INTERFACE_NODE", "consolee") --
consoleg = Find_Hint("UMP_INTERFACE_NODE", "consoleg")
consolei = Find_Hint("UMP_INTERFACE_NODE", "consolei")
consolej = Find_Hint("UMP_INTERFACE_NODE", "consolej") --
consolek = Find_Hint("UMP_INTERFACE_NODE", "consolek") --
consolevault = Find_Hint("UMP_INTERFACE_NODE", "consolevault") --
consolesecret = Find_Hint("UMP_INTERFACE_NODE", "secretsithconsole") --
Register_Death_Event(consolesecret, Open_SithDoor)
Register_Death_Event(consolevault, PartFive_OpenVault)
Register_Death_Event(consolek, Open_Door_k)
Register_Death_Event(consolej, Open_Door_j)
Register_Death_Event(consolee, Open_Door_e)
camstart_one = Find_Hint("STORY_TRIGGER_ZONE", "partone-camerastart")
camstart_two = Find_Hint("STORY_TRIGGER_ZONE", "parttwo-camerastart")
camstart_three = Find_Hint("STORY_TRIGGER_ZONE", "partthree-camerastart")
camstart_four = Find_Hint("STORY_TRIGGER_ZONE", "partfour-camerastart")
camstart_five = Find_Hint("STORY_TRIGGER_ZONE", "partfive-camerastart")
camstart_six = Find_Hint("STORY_TRIGGER_ZONE", "partsix-camerastart")
-- name and register death events for required heroes
tyber_zann = Find_Nearest(doora,"TYBER_ZANN")
Register_Death_Event(tyber_zann, Tyber_Destroyed)
tyber_zann.Prevent_AI_Usage(true)
urai_fen = Find_Nearest(doora,"URAI_FEN")
Register_Death_Event(urai_fen, Urai_Destroyed)
urai_fen.Prevent_AI_Usage(true)
silri = Find_Nearest(doora,"SILRI")
Register_Death_Event(silri, Silri_Destroyed)
silri.Prevent_AI_Usage(true)
hallguard1 = Find_Hint("IMP_GUARD_TEAM", "hallguard1")
hallguard2 = Find_Hint("IMP_GUARD_TEAM", "hallguard2")
hallguard3 = Find_Hint("IMP_GUARD_TEAM", "hallguard3")
hallguard4 = Find_Hint("IMP_GUARD_TEAM", "hallguard4")
hallguard5 = Find_Hint("IMP_GUARD_TEAM", "hallguard5")
hallguard6 = Find_Hint("IMP_GUARD_TEAM", "hallguard6")
hallguard7 = Find_Hint("IMP_GUARD_TEAM", "hallguard7")
hallguard8 = Find_Hint("IMP_GUARD_TEAM", "hallguard8")
hallguard9 = Find_Hint("IMP_GUARD_TEAM", "hallguard9")
hallguard10 = Find_Hint("IMP_GUARD_TEAM", "hallguard10")
hallguard11 = Find_Hint("IMP_GUARD_TEAM", "hallguard11")
hallguard12 = Find_Hint("IMP_GUARD_TEAM", "hallguard12")
hallguard13 = Find_Hint("IMP_GUARD_TEAM", "hallguard13")
hallguard14 = Find_Hint("IMP_GUARD_TEAM", "hallguard14")
hallguard15 = Find_Hint("IMP_GUARD_TEAM", "hallguard15")
hallguard16 = Find_Hint("IMP_GUARD_TEAM", "hallguard16")
range = 200
Register_Prox(hallguard3, Prox_HallGuard_3, range, underworld_player)
Register_Prox(hallguard4, Prox_HallGuard_4, range, underworld_player)
Register_Prox(hallguard5, Prox_HallGuard_5, range, underworld_player)
Register_Prox(hallguard6, Prox_HallGuard_6, range, underworld_player)
Register_Prox(hallguard7, Prox_HallGuard_7, range, underworld_player)
Register_Prox(hallguard8, Prox_HallGuard_8, range, underworld_player)
Register_Prox(hallguard9, Prox_HallGuard_9, range, underworld_player)
Register_Prox(hallguard10, Prox_HallGuard_10, range, underworld_player)
Register_Prox(hallguard11, Prox_HallGuard_11, range, underworld_player)
Register_Prox(hallguard12, Prox_HallGuard_12, range, underworld_player)
Register_Prox(hallguard13, Prox_HallGuard_13, range, underworld_player)
Register_Prox(hallguard14, Prox_HallGuard_14, range, underworld_player)
Register_Prox(hallguard15, Prox_HallGuard_15, range, underworld_player)
Register_Prox(hallguard16, Prox_HallGuard_16, range, underworld_player)
-- Register prox events for battle chatter and game events
bactatank = Find_Nearest(doork, "EMPIRE_BUILDABLE_BACTA_TANK")
Register_Death_Event(bactatank, PartOne_BactaGone)
monitors_guards1 = Find_All_Objects_With_Hint("monitorsguards1")
monitorguardsa = Find_Hint("STORMTROOPER_TEAM", "monitorguardsa")
monitorguardsb = Find_Hint("STORMTROOPER_TEAM", "monitorguardsb")
monitorguardsc = Find_Hint("STORMTROOPER_TEAM", "monitorguardsc")
adeptonespawna = Find_Hint("STORY_TRIGGER_ZONE", "adeptonespawna")
adeptonespawnb = Find_Hint("STORY_TRIGGER_ZONE", "adeptonespawnb")
adeptonespawnc = Find_Hint("STORY_TRIGGER_ZONE", "adeptonespawnc")
adepttwospawn = Find_Hint("STORY_TRIGGER_ZONE", "adepttwospawn")
adeptfourspawn = Find_Hint("STORY_TRIGGER_ZONE", "adeptfourspawn")
Register_Prox(adeptonespawna, Prox_IntroAdeptOne, 200, underworld_player)
extraguys = Find_Hint("STORY_TRIGGER_ZONE", "extraguys")
monitorsa = Find_Hint("EXPLODING_CONTAINER", "monitorsa")
monitorsb1 = Find_Hint("DROID_INTERFACE_STATION", "monitorsb1")
monitorsb2 = Find_Hint("DROID_INTERFACE_STATION", "monitorsb2")
monitorsb3 = Find_Hint("UMP_INTERFACE_NODE", "monitorsb3")
monitorsb4 = Find_Hint("UMP_INTERFACE_NODE", "monitorsb4")
monitorsb5 = Find_Hint("DROID_INTERFACE_STATION", "monitorsb5")
monitorsb6 = Find_Hint("DROID_INTERFACE_STATION", "monitorsb6")
monitorsb7 = Find_Hint("DROID_INTERFACE_STATION", "monitorsb7")
monitorsb8 = Find_Hint("DROID_INTERFACE_STATION", "monitorsb8")
Register_Death_Event(monitorsa, PartOne_MonitorsDead)
highlightsithroom = Find_Hint("STORY_TRIGGER_ZONE", "highlightsithroom")
sithwall = Find_Hint("UM05_MOVING_DOOR", "secretsithdoor") --
holocron = Find_Hint("STORY_TRIGGER_ZONE", "sithholocron") --
Register_Prox(holocron, Prox_SithHolocron, 75, underworld_player)
nodea = Find_Hint("UM05_POWER_NODE", "powernodea")
Register_Death_Event(nodea, PartThree_Node_A)
nodeb = Find_Hint("UM05_POWER_NODE", "powernodeb")
Register_Death_Event(nodeb, PartThree_Node_B)
nodec = Find_Hint("UM05_POWER_NODE", "powernodec")
Register_Death_Event(nodec, PartThree_Node_C)
noded = Find_Hint("UM05_POWER_NODE", "powernoded")
Register_Death_Event(noded, PartThree_Node_D)
uraimeet = Find_Hint("STORY_TRIGGER_ZONE", "uraimeet")
meetspot = Find_Hint("STORY_TRIGGER_ZONE", "tyberuraimeet") --
adepttwospawna = Find_Hint("STORY_TRIGGER_ZONE", "adepttwospawna") --
adepttwospawnb = Find_Hint("STORY_TRIGGER_ZONE", "adepttwospawnb") --
adepttwospawnc = Find_Hint("STORY_TRIGGER_ZONE", "adepttwospawnc") --
adepttwospawnd = Find_Hint("STORY_TRIGGER_ZONE", "adepttwospawnd") --
adepttwospawne = Find_Hint("STORY_TRIGGER_ZONE", "adepttwospawne") --
adepttwospawnf = Find_Hint("STORY_TRIGGER_ZONE", "adepttwospawnf") --
adepttwospawng = Find_Hint("STORY_TRIGGER_ZONE", "adepttwospawng") --
blowreactor = Find_Hint("STORY_TRIGGER_ZONE", "blowreactor")
cuddlesstartfour = Find_Hint("STORY_TRIGGER_ZONE", "cuddlesstartfour")
silristartfour = Find_Hint("STORY_TRIGGER_ZONE", "silristartfour")
noticetroopers = Find_Hint("STORY_TRIGGER_ZONE", "noticetroopers") --
activatetroopers = Find_Hint("STORY_TRIGGER_ZONE", "activatetroopers") --
partfivetyber = Find_Hint("STORY_TRIGGER_ZONE", "partfive-tyber") --
partfivesilri = Find_Hint("STORY_TRIGGER_ZONE", "partfive-silri") --
partfivecuddles = Find_Hint("STORY_TRIGGER_ZONE", "partfive-cuddles") --
partfivemdus = Find_Hint("STORY_TRIGGER_ZONE", "partfive-mdus") --
partfiveextras = Find_Hint("STORY_TRIGGER_ZONE", "partfive-extras") --
dt1 = Find_Hint("UM05_PROP_DTP_I", "dt1") --
dt2 = Find_Hint("UM05_PROP_DTP_II", "dt2") --
dt3 = Find_Hint("UM05_PROP_DTP_III", "dt3") --
dt4 = Find_Hint("UM05_PROP_DTP_I", "dt4") --
dt5 = Find_Hint("UM05_PROP_DTP_II", "dt5") --
dt6 = Find_Hint("UM05_PROP_DTP_III", "dt6") --
dt7 = Find_Hint("UM05_PROP_DTP_I", "dt7") --
dt8 = Find_Hint("UM05_PROP_DTP_II", "dt8") --
dt9 = Find_Hint("UM05_PROP_DTP_III", "dt9") --
guardspawna = Find_Hint("STORY_TRIGGER_ZONE", "guardsa") --
guardspawnb = Find_Hint("STORY_TRIGGER_ZONE", "guardsb") --
mduspawn = Find_Hint("STORY_TRIGGER_ZONE", "mduspawn") --
mdua = Find_Hint("STORY_TRIGGER_ZONE", "mdu1") --
mdub = Find_Hint("STORY_TRIGGER_ZONE", "mdu2") --
mduc = Find_Hint("STORY_TRIGGER_ZONE", "mdu3") --
getmdu = Find_Hint("STORY_TRIGGER_ZONE", "getmdus") --
Register_Prox(getmdu, Prox_GetMDUs, 75, underworld_player)
movegroup = Find_Hint("STORY_TRIGGER_ZONE", "partfive-movegroup") --
Register_Prox(movegroup, Prox_MoveGroup, 75, underworld_player)
partfoursilri = Find_Hint("STORY_TRIGGER_ZONE", "partfive-silrispawn")
partfourcuddles = Find_Hint("STORY_TRIGGER_ZONE", "partfive-cuddlesspawn")
partfourmeet = Find_Hint("STORY_TRIGGER_ZONE", "partfivemeet")
redguard1 = Find_Hint("IMP_GUARD_TEAM", "redguard1")
redguard2 = Find_Hint("IMP_GUARD_TEAM", "redguard2")
adeptthreespawn = Find_Hint("STORY_TRIGGER_ZONE", "adeptthreespawn")
partvaultcamerastart = Find_Hint("STORY_TRIGGER_ZONE", "partvault-camerastart")
urai_door = Find_Hint("STORY_TRIGGER_ZONE", "uraiworkdoor")
spawnlefta = Find_Hint("STORY_TRIGGER_ZONE", "spawntroopsa")
movetroopsa1 = Find_Hint("STORY_TRIGGER_ZONE", "movetroopsa1")
movetroopsa2 = Find_Hint("STORY_TRIGGER_ZONE", "movetroopsa2")
movetroopsa3 = Find_Hint("STORY_TRIGGER_ZONE", "movetroopsa3")
spawnrightb = Find_Hint("STORY_TRIGGER_ZONE", "spawntroopsb")
movetroopsb = Find_Hint("STORY_TRIGGER_ZONE", "movetroopsb")
spawnrightc = Find_Hint("STORY_TRIGGER_ZONE", "spawntroopsc")
movetroopsc = Find_Hint("STORY_TRIGGER_ZONE", "movetroopsc")
landinga = Find_Hint("STORY_TRIGGER_ZONE", "landinga")
landingb = Find_Hint("STORY_TRIGGER_ZONE", "landingb")
landingc = Find_Hint("STORY_TRIGGER_ZONE", "landingc")
landingd = Find_Hint("STORY_TRIGGER_ZONE", "landingd")
landinge = Find_Hint("STORY_TRIGGER_ZONE", "landinge")
urai_comp = Find_Hint("STORY_TRIGGER_ZONE", "uraiworkcomputer")
invault = Find_Hint("STORY_TRIGGER_ZONE", "insidevault")
Register_Prox(invault, Prox_InsideVault, 75, underworld_player)
vault = Find_Hint("STORY_TRIGGER_ZONE", "reachedvault")
--Register_Prox(vault, Prox_ReachedVault, 20, underworld_player)
partsix_mdus = Find_Hint("STORY_TRIGGER_ZONE", "partsix-mdus")
partsix_tyber = Find_Hint("STORY_TRIGGER_ZONE", "partsix-tyber")
partsix_urai = Find_Hint("STORY_TRIGGER_ZONE", "partsix-urai")
partsix_other = Find_Hint("STORY_TRIGGER_ZONE", "partsix-other")
introadeptfour = Find_Hint("STORY_TRIGGER_ZONE", "introadeptfour")
exitdoor = Find_Hint("STORY_TRIGGER_ZONE", "reachedexit") --
Register_Prox(exitdoor, Prox_ReachedExit, 75, underworld_player)
breakwall = Find_Hint("STORY_TRIGGER_ZONE", "breakwall") --
juggernaut = Find_Hint("HAV_JUGGERNAUT", "juggernaut") --
juggernaut.Set_Selectable(false)
stopspawns = Find_Hint("STORY_TRIGGER_ZONE", "partsix-stopspawns")
Register_Prox(stopspawns, Prox_StopSpawns, 100, underworld_player)
missiles1 = Find_Hint("STORY_TRIGGER_ZONE", "missiles1")
missiles2 = Find_Hint("STORY_TRIGGER_ZONE", "missiles2")
missiles3 = Find_Hint("STORY_TRIGGER_ZONE", "missiles3")
missiles4 = Find_Hint("STORY_TRIGGER_ZONE", "missiles4")
missiles5 = Find_Hint("STORY_TRIGGER_ZONE", "missiles5")
missiles6 = Find_Hint("STORY_TRIGGER_ZONE", "missiles6")
missiles7 = Find_Hint("STORY_TRIGGER_ZONE", "missiles7")
missiles8 = Find_Hint("STORY_TRIGGER_ZONE", "missiles8")
mt3 = Create_Generic_Object("UNDERWORLD_TORPEDO_TURRET", missiles3.Get_Position(), neutral_player)
mt4 = Create_Generic_Object("UNDERWORLD_TORPEDO_TURRET", missiles4.Get_Position(), neutral_player)
mt5 = Create_Generic_Object("UNDERWORLD_TORPEDO_TURRET", missiles5.Get_Position(), neutral_player)
mt6 = Create_Generic_Object("UNDERWORLD_TORPEDO_TURRET", missiles6.Get_Position(), neutral_player)
-- setup end cinematic flags and camera positions
-- set up some global mission state flags
MissionPartOneStarted = false
MissionPartOneDone = false
VictoryCondition_BackdoorOpen = false
VictoryCondition_MonitorControls = false
VictoryCondition_AdeptsSpawned = false
VictoryCondition_AdeptOneDead = false
VictoryCondition_BactaGone = false
MissionPartTwoStarted = false
MissionPartTwoDone = false
VictoryCondition_HolocronFound = false
MissionPartThreeStarted = false
MissionPartThreeDone = false
VictoryCondition_Blown_A = false
VictoryCondition_Blown_B = false
VictoryCondition_Blown_C = false
VictoryCondition_Blown_D = false
VictoryCondition_GeneratorDead = false
VictoryCondition_AdeptTwoDead = false
VictoryCondition_EndTwo = false
VictoryCondition_MeetTyber = false
VictoryCondition_AdeptTwoSpawned = false
MissionPartFourStarted = false
MissionPartFourDone = false
VictoryCondition_ReachedDoorE2 = false
VictoryCondition_DarkTroopersSpawned = false
VictoryCondition_DarkTroopersDead = false
VictoryCondition_EndedFour = false
VictoryCondition_AdeptThreeSpawned = false
VictoryCondition_AdeptThreeDead = false
MissionPartFiveStarted = false
MissionPartFiveDone = false
VictoryCondition_GuardsSpawned = false
VictoryCondition_GuardsDead = false
VictoryCondition_GotAccessCodes = false
VictoryCondition_SeenVault = false
MissionPartSixStarted = false
MissionPartSixDone = false
VictoryCondition_AdeptFourDead = false
VictoryCondition_UraiBreakWall = false
VictoryCondition_InJuggernaut = false
VictoryCondition_StopSpawns = false
VictoryCondition_ReachedExit = false
DefeatCondition_TyberDead = false
DefeatCondition_UraiDead = false
DefeatCondition_SilriDead = false
VictoryStarted = false
DefeatStarted = false
current_cine_id = nil
CINE_Intro_Active = false
CINE_Active_Adept_One = false
CINE_Active_Intro_Silri = false
CINE_Active_Urai_Nodes = false
CINE_Active_Silri_Troopers = false
CINE_Active_Grouped_Up = false
CINE_Active_Outside_Vault = false
CINE_Active_Final_Adept = false
underworld_player.Disable_Bombing_Run(false)
underworld_player.Disable_Orbital_Bombardment(true)
underworld_player.Remove_Orbital_Bombardment(true)
current_cine_id = Create_Thread("CINE_Start_Mission")
--current_cine_id = Create_Thread("CINE_Adept_One")
--current_cine_id = Create_Thread("CINE_Intro_Silri")
--current_cine_id = Create_Thread("CINE_Urai_Nodes")
--current_cine_id = Create_Thread("CINE_Silri_Troopers")
--current_cine_id = Create_Thread("CINE_Grouped_Up")
--current_cine_id = Create_Thread("CINE_Outside_Vault_Setup")
--current_cine_id = Create_Thread("CINE_Final_Adept")
Create_Thread("Main")
elseif message == OnUpdate then
--Do Nothing
elseif message == OnExit then
--Do Nothing
end
end
function Main()
while true do
if MissionPartOneStarted and not MissionPartOneDone then
if VictoryCondition_MonitorControls and VictoryCondition_AdeptOneDead then
if TestValid(consolej) then
if consolej.Get_Owner() ~= hostile_player then
consolej.Change_Owner(hostile_player)
consolej.Highlight(true)
Add_Radar_Blip(consolej, "consolej")
end
end
if not TestValid(doorj) then
MissionPartOneDone = true
MissionPartTwoStart = true
Story_Event("UM11_MONITORSDISABLED")
current_cine_id = Create_Thread("CINE_Intro_Silri")
end
end
if VictoryCondition_AdeptsSpawned then
if not VictoryCondition_AdeptOneDead then
if not TestValid(adeptonea) and
not TestValid(adeptoneb) and
not TestValid(adeptonec) then
VictoryCondition_AdeptOneDead = true
Open_AdeptOneDoor()
Story_Event("UM11_OBJECTIVE_02_DONE")
end
end
end
end
if MissionPartTwoStarted then
if not MissionPartTwoDone then
if VictoryCondition_HolocronFound then
MissionPartTwoDone = true
MissionPartThreeStart = true
Story_Event("UM11_FOUNDHOLOCRON")
Create_Thread("MissionObjective_PartThree")
end
end
end
if MissionPartThreeStarted then
if not MissionPartThreeDone then
if VictoryCondition_Blown_A and
VictoryCondition_Blown_B and
VictoryCondition_Blown_C and
VictoryCondition_Blown_D then
if not VictoryCondition_GeneratorDead then
VictoryCondition_GeneratorDead = true
turrets = Find_All_Objects_Of_Type("EMPIRE_ANTI_INFANTRY_TURRET")
for k, unit in pairs(turrets) do
if TestValid(unit) then
if unit.Get_Owner() == empire_player then
unit.Take_Damage(9999)
end
end
end
Story_Event("UM11_OBJECTIVE_04_DONE")
end
end
if VictoryCondition_AdeptTwoSpawned then
if not VictoryCondition_AdeptTwoDead then
if not TestValid(adepttwoa) and
not TestValid(adepttwob) and
not TestValid(adepttwoc) and
not TestValid(adepttwod) and
not TestValid(adepttwoe) and
not TestValid(adepttwof) and
not TestValid(adepttwog) and
--not TestValid(adepttwoh) and
--not TestValid(adepttwoi) and
--not TestValid(adepttwoj) and
--not TestValid(adepttwok) and
--not TestValid(adepttwol) and
--not TestValid(adepttwom) and
not TestValid(adepttwon) then
Story_Event("UM11_OBJECTIVE_05_DONE")
VictoryCondition_AdeptTwoDead = true
end
end
end
if VictoryCondition_GeneratorDead and VictoryCondition_AdeptTwoDead then
if not VictoryCondition_EndTwo then
VictoryCondition_EndTwo = true
Create_Thread("PartThree_UraiDone")
end
end
if VictoryCondition_MeetTyber then
MissionPartThreeDone = true
MissionPartFourStart = true
current_cine_id = Create_Thread("CINE_Silri_Troopers")
end
end
end
if MissionPartFourStarted then
if not MissionPartFourDone then
if VictoryCondition_DarkTroopersSpawned then
if not TestValid(dt1a) and
not TestValid(dt2a) and
not TestValid(dt3a) and
not TestValid(dt4a) and
not TestValid(dt5a) and
not TestValid(dt6a) and
not TestValid(dt7a) and
not TestValid(dt8a) and
not TestValid(dt9a) then
if not VictoryCondition_DarkTroopersDead then
Story_Event("UM11_OBJECTIVE_06A_DONE")
VictoryCondition_DarkTroopersDead = true
Create_Thread("PartFive_SetupGroup")
end
end
end
if VictoryCondition_DarkTroopersDead and VictoryCondition_EndedFour then
MissionPartFourDone = true
MissionPartFiveStarted = true
Create_Thread("MissionObjective_PartFive")
end
end
end
if MissionPartFiveStarted then
if not MissionPartFiveDone then
if VictoryCondition_AdeptThreeSpawned then
if not VictoryCondition_AdeptThreeDead then
if not TestValid(adeptthreea) and
not TestValid(adeptthreeb) and
not TestValid(adeptthreec) then
Story_Event("UM11_OBJECTIVE_07_DONE")
VictoryCondition_AdeptThreeDead = true
end
end
end
if VictoryCondition_GuardsSpawned then
if not TestValid(troopsa) and
not TestValid(troopsb) and
not TestValid(troopsc) and
not TestValid(troopsd) and
not TestValid(troopse) then
if not VictoryCondition_GuardsDead then
VictoryCondition_GuardsDead = true
Create_Thread("Open_Door_h")
urai_comp.Highlight(true)
Add_Radar_Blip(urai_comp, "urai_comp")
consolevault.Change_Owner(hostile_player)
Story_Event("CHATTER_51")
end
end
end
if VictoryCondition_AdeptThreeDead and
VictoryCondition_GuardsSpawned and
VictoryCondition_GuardsDead and
VictoryCondition_GotAccessCodes and
VictoryCondition_SeenVault then
MissionPartFiveDone = true
MissionPartSixStart = true
Create_Thread("MissionObjective_PartSix")
end
end
end
if MissionPartSixStarted then
if not MissionPartSixDone then
if VictoryCondition_AdeptFourDead then
if not VictoryCondition_UraiBreakWall then
VictoryCondition_UraiBreakWall = true
Create_Thread("PartSix_OpenExit")
end
end
if VictoryCondition_AdeptFourDead and VictoryCondition_UraiBreakWall and VictoryCondition_ReachedExit then
MissionPartSixDone = true
end
end
end
if MissionPartOneDone and
MissionPartTwoDone and
MissionPartThreeDone and
MissionPartFourDone and
MissionPartFiveDone and
MissionPartSixDone then
if VictoryCondition_MonitorControls and
VictoryCondition_AdeptOneDead and
VictoryCondition_HolocronFound and
VictoryCondition_GeneratorDead and
VictoryCondition_AdeptTwoDead and
VictoryCondition_DarkTroopersDead and
VictoryCondition_GuardsDead and
VictoryCondition_GotAccessCodes and
VictoryCondition_AdeptFourDead and
VictoryCondition_UraiBreakWall and
VictoryCondition_ReachedExit then
if not VictoryStarted then
Story_Event("UM11_OBJECTIVE_01_DONE")
VictoryStarted = true
Create_Thread("EndMissionVictory")
end
end
end
if DefeatCondition_TyberDead or DefeatCondition_UraiDead or DefeatCondition_SilriDead then
if not DefeatStarted then
DefeatStarted = true
Create_Thread("EndMissionDefeat")
end
end
Sleep(.5)
end
end
function Setup_Cinematic_Definitions()
cambalconypos = Find_Hint("STORY_TRIGGER_ZONE", "cambalconypos")
cambalconylook = Find_Hint("STORY_TRIGGER_ZONE", "cambalconylook")
camcitypos = Find_Hint("STORY_TRIGGER_ZONE", "camcitypos")
camcitylook = Find_Hint("STORY_TRIGGER_ZONE", "camcitylook")
camwindowpos = Find_Hint("STORY_TRIGGER_ZONE", "camwindowpos")
cambalcsilri = Find_Hint("STORY_TRIGGER_ZONE", "cambalcsilri")
cambalctyber = Find_Hint("STORY_TRIGGER_ZONE", "cambalctyber")
cambalcurai = Find_Hint("STORY_TRIGGER_ZONE", "cambalcurai")
camentrancepos = Find_Hint("STORY_TRIGGER_ZONE", "camentrancepos")
camentrancelook = Find_Hint("STORY_TRIGGER_ZONE", "camentrancelook")
cinbtyberstart = Find_Hint("STORY_TRIGGER_ZONE", "cinbtyberstart")
cinbtybergoto = Find_Hint("STORY_TRIGGER_ZONE", "cinbtybergoto")
cinbirds1 = Find_Hint("BIRD_LIGHT_COLOR", "birds1")
cinbirds2 = Find_Hint("BIRD_LIGHT_COLOR", "birds2")
cinbirds3 = Find_Hint("BIRD_LIGHT_COLOR", "birds3")
cinbirds4 = Find_Hint("BIRD_LIGHT_COLOR", "birds4")
cinbarguys1 = Find_Hint("URBAN_CIVILIAN_A", "cinbarguys1")
cinbarguys2 = Find_Hint("URBAN_CIVILIAN_A", "cinbarguys2")
cinbarguys3 = Find_Hint("URBAN_CIVILIAN_B", "cinbarguys3")
cinbarguys4 = Find_Hint("URBAN_CIVILIAN_C", "cinbarguys4")
cinbarguys5 = Find_Hint("TWILEK_FEMALE", "cinbarguys5")
cinbarguys6 = Find_Hint("TWILEK_FEMALE", "cinbarguys6")
cinbarguys7 = Find_Hint("SWAMP_CIVILIAN_B", "cinbarguys7")
cinbarguys8 = Find_Hint("MON_CALAMARI_CIVILIAN", "cinbarguys8")
balconytyber = Find_Hint("STORY_TRIGGER_ZONE", "balconytyber")
balconysilri = Find_Hint("STORY_TRIGGER_ZONE", "balconysilri")
balconyurai = Find_Hint("STORY_TRIGGER_ZONE", "balconyurai")
cambalconypan = Find_Hint("STORY_TRIGGER_ZONE", "cambalconypan")
camintropos = Find_Hint("STORY_TRIGGER_ZONE", "camintropos")
camintrolook = Find_Hint("STORY_TRIGGER_ZONE", "camintrolook")
camintrofloorpos = Find_Hint("STORY_TRIGGER_ZONE", "camintrofloorpos")
camintrofloorpan = Find_Hint("STORY_TRIGGER_ZONE", "camintrofloorpan")
camintrofloorlook = Find_Hint("STORY_TRIGGER_ZONE", "camintrofloorlook")
introtyber = Find_Hint("STORY_TRIGGER_ZONE", "introtyber")
introguard = Find_Hint("STORY_TRIGGER_ZONE", "introguard")
camadeptonepos = Find_Hint("STORY_TRIGGER_ZONE", "camadeptonepos")
camadeptonelook = Find_Hint("STORY_TRIGGER_ZONE", "camadeptonelook")
camonepos = Find_Hint("STORY_TRIGGER_ZONE", "camonepos")
camonelook = Find_Hint("STORY_TRIGGER_ZONE", "camonelook")
camonepospan = Find_Hint("STORY_TRIGGER_ZONE", "camonepospan")
camonelookpan = Find_Hint("STORY_TRIGGER_ZONE", "camonelookpan")
cineadeptonespawns = Find_Hint("STORY_TRIGGER_ZONE", "cineadeptonespawns")
cineadeptonemouse = Find_Hint("STORY_TRIGGER_ZONE", "cineadeptonemouse")
cineadeptonetyber = Find_Hint("STORY_TRIGGER_ZONE", "cineadeptonetyber")
cinemousegoto1 = Find_Hint("STORY_TRIGGER_ZONE", "cinemousegoto1")
cinemousegoto2 = Find_Hint("STORY_TRIGGER_ZONE", "cinemousegoto2")
cinemousegoto3 = Find_Hint("STORY_TRIGGER_ZONE", "cinemousegoto3")
camintrosilripos = Find_Hint("STORY_TRIGGER_ZONE", "camintrosilripos")
camintrosilrilook = Find_Hint("STORY_TRIGGER_ZONE", "camintrosilrilook")
camsilriadeptpos = Find_Hint("STORY_TRIGGER_ZONE", "camsilriadeptpos")
camsilriadeptlook = Find_Hint("STORY_TRIGGER_ZONE", "camsilriadeptlook")
camtwirlsilristart = Find_Hint("STORY_TRIGGER_ZONE", "camtwirlsilristart")
camtwirlsilriend = Find_Hint("STORY_TRIGGER_ZONE", "camtwirlsilriend")
camfightpos = Find_Hint("STORY_TRIGGER_ZONE", "camfightpos")
camfightlook = Find_Hint("STORY_TRIGGER_ZONE", "camfightlook")
camadeptdiepos = Find_Hint("STORY_TRIGGER_ZONE", "camadeptdiepos")
cinesilri = Find_Hint("STORY_TRIGGER_ZONE", "cinesilri")
cinesilriadept = Find_Hint("STORY_TRIGGER_ZONE", "cinesilriadept")
cinesilriadeptmoveto = Find_Hint("STORY_TRIGGER_ZONE", "cinesilriadeptmoveto")
cinerancorsummon = Find_Hint("STORY_TRIGGER_ZONE", "cinerancorsummon")
camholeposstart = Find_Hint("STORY_TRIGGER_ZONE", "camholeposstart")
camholelookstart = Find_Hint("STORY_TRIGGER_ZONE", "camholelookstart")
camholeposend = Find_Hint("STORY_TRIGGER_ZONE", "camholeposend")
camholelookend = Find_Hint("STORY_TRIGGER_ZONE", "camholelookend")
camuraifaceoffpos = Find_Hint("STORY_TRIGGER_ZONE", "camuraifaceoffpos")
camuraifaceofflook = Find_Hint("STORY_TRIGGER_ZONE", "camuraifaceofflook")
camholopos = Find_Hint("STORY_TRIGGER_ZONE", "camholopos")
camhololook = Find_Hint("STORY_TRIGGER_ZONE", "camhololook")
camocronpos = Find_Hint("STORY_TRIGGER_ZONE", "camocronpos")
camocronlook = Find_Hint("STORY_TRIGGER_ZONE", "camocronlook")
sithholofx = Find_Hint("STORY_TRIGGER_ZONE", "sithholofx")
cuddlesholospawn = Find_Hint("STORY_TRIGGER_ZONE", "cuddlesholospawn")
silriholospawn = Find_Hint("STORY_TRIGGER_ZONE", "silriholospawn")
cineadepttwospawn = Find_Hint("STORY_TRIGGER_ZONE", "cineadepttwospawn")
cineadepttwomoveto = Find_Hint("STORY_TRIGGER_ZONE", "cineadepttwomoveto")
camsilrileavepos = Find_Hint("STORY_TRIGGER_ZONE", "camsilrileavepos")
camsilrileavelook = Find_Hint("STORY_TRIGGER_ZONE", "camsilrileavelook")
camsilrileavepos = Find_Hint("STORY_TRIGGER_ZONE", "camsilrileavepos")
camsilrileavelook = Find_Hint("STORY_TRIGGER_ZONE", "camsilrileavelook")
camdddpos = Find_Hint("STORY_TRIGGER_ZONE", "camdddpos")
camdddlook = Find_Hint("STORY_TRIGGER_ZONE", "camdddlook")
camfindsilripos = Find_Hint("STORY_TRIGGER_ZONE", "camfindsilripos")
camfindsilrilook = Find_Hint("STORY_TRIGGER_ZONE", "camfindsilrilook")
cammeetsilripos = Find_Hint("STORY_TRIGGER_ZONE", "cammeetsilripos")
cammeetsilrilook = Find_Hint("STORY_TRIGGER_ZONE", "cammeetsilrilook")
silridddspawn = Find_Hint("STORY_TRIGGER_ZONE", "silridddspawn")
cuddlesdddspawn = Find_Hint("STORY_TRIGGER_ZONE", "cuddlesdddspawn")
trooperdddspawn = Find_Hint("STORY_TRIGGER_ZONE", "trooperdddspawn")
cineddduraispawn = Find_Hint("STORY_TRIGGER_ZONE", "cineddduraispawn")
cinedddtyberspawn = Find_Hint("STORY_TRIGGER_ZONE", "cinedddtyberspawn")
uraidddgoto = Find_Hint("STORY_TRIGGER_ZONE", "uraidddgoto")
tyberdddgoto = Find_Hint("STORY_TRIGGER_ZONE", "tyberdddgoto")
camuraiworkpos = Find_Hint("STORY_TRIGGER_ZONE", "camuraiworkpos")
camuraiworklook = Find_Hint("STORY_TRIGGER_ZONE", "camuraiworklook")
camdoorclosepos = Find_Hint("STORY_TRIGGER_ZONE", "camdoorclosepos")
camdoorcloselook = Find_Hint("STORY_TRIGGER_ZONE", "camdoorcloselook")
camoutvtyberpos = Find_Hint("STORY_TRIGGER_ZONE", "camoutvtyberpos")
camoutvtyberlook = Find_Hint("STORY_TRIGGER_ZONE", "camoutvtyberlook")
fivesilrirunto = Find_Hint("STORY_TRIGGER_ZONE", "fivesilrirunto")
fivetyberrunto = Find_Hint("STORY_TRIGGER_ZONE", "fivetyberrunto")
fivecuddlesrunto = Find_Hint("STORY_TRIGGER_ZONE", "fivecuddlesrunto")
fivemdusrunto = Find_Hint("STORY_TRIGGER_ZONE", "fivemdusrunto")
fiveextrasrunto = Find_Hint("STORY_TRIGGER_ZONE", "fiveextrasrunto")
fiveuraispawn = Find_Hint("STORY_TRIGGER_ZONE", "fiveuraispawn")
camlastpos = Find_Hint("STORY_TRIGGER_ZONE", "camlastpos")
camlastlook = Find_Hint("STORY_TRIGGER_ZONE", "camlastlook")
camlastpan = Find_Hint("STORY_TRIGGER_ZONE", "camlastpan")
camstraightdown1 = Find_Hint("STORY_TRIGGER_ZONE", "camstraightdown1")
camstraightdown2 = Find_Hint("STORY_TRIGGER_ZONE", "camstraightdown2")
camstraightdown3 = Find_Hint("STORY_TRIGGER_ZONE", "camstraightdown3")
camstraightdown4 = Find_Hint("STORY_TRIGGER_ZONE", "camstraightdown4")
camsilrityberpos = Find_Hint("STORY_TRIGGER_ZONE", "camsilrityberpos")
camsilrityberlook = Find_Hint("STORY_TRIGGER_ZONE", "camsilrityberlook")
lasttyberspawn = Find_Hint("STORY_TRIGGER_ZONE", "lasttyberspawn")
lasttybergoto = Find_Hint("STORY_TRIGGER_ZONE", "lasttybergoto")
lastsilrispawn = Find_Hint("STORY_TRIGGER_ZONE", "lastsilrispawn")
lastsilrigoto = Find_Hint("STORY_TRIGGER_ZONE", "lastsilrigoto")
lasturaispawn = Find_Hint("STORY_TRIGGER_ZONE", "lasturaispawn")
lasturaigoto = Find_Hint("STORY_TRIGGER_ZONE", "lasturaigoto")
lastcuddlesspawn = Find_Hint("STORY_TRIGGER_ZONE", "lastcuddlesspawn")
lastcuddlesgoto = Find_Hint("STORY_TRIGGER_ZONE", "lastcuddlesgoto")
lastadeptspawn = Find_Hint("STORY_TRIGGER_ZONE", "lastadeptspawn")
lasttele1 = Find_Hint("STORY_TRIGGER_ZONE", "lasttele1")
lasttele2 = Find_Hint("STORY_TRIGGER_ZONE", "lasttele2")
lasttele3 = Find_Hint("STORY_TRIGGER_ZONE", "lasttele3")
lasttele4 = Find_Hint("STORY_TRIGGER_ZONE", "lasttele4")
finaltyberspot = Find_Hint("STORY_TRIGGER_ZONE", "finaltyberspot")
finalsilrispot = Find_Hint("STORY_TRIGGER_ZONE", "finalsilrispot")
finaluraispot = Find_Hint("STORY_TRIGGER_ZONE", "finaluraispot")
finalcuddlesspot = Find_Hint("STORY_TRIGGER_ZONE", "finalcuddlesspot")
finalextrasspot = Find_Hint("STORY_TRIGGER_ZONE", "finalextrasspot")
finalmdusspot = Find_Hint("STORY_TRIGGER_ZONE", "finalmdusspot")
endcinecampos = Find_Hint("STORY_TRIGGER_ZONE", "endcinecampos")
endcinecamlook = Find_Hint("STORY_TRIGGER_ZONE", "endcinecamlook")
endcinejugger = Find_Hint("HAV_JUGGERNAUT", "endcinejugger")
endcinejuggergoto = Find_Hint("STORY_TRIGGER_ZONE", "endcinejuggergoto")
end
-- delay a short time and then start the game
function CINE_Start_Mission()
Cancel_Fast_Forward()
CINE_Intro_Active = true
Fade_Screen_Out(0)
Suspend_AI(1)
Lock_Controls(1)
Letter_Box_In(0)
Start_Cinematic_Camera()
Play_Music("Structure_Cantina_Music_Event")
endcinebox.Hide(true)
endcinebox1.Hide(true)
int_sky.Hide(true)
ext_sky.Hide(false)
tyber_zann.Hide(true)
tyber_zann.Prevent_All_Fire(true)
cin_tyber = Create_Generic_Object("TYBER_ZANN", introtyber.Get_Position(), underworld_player)
cin_tyber.Suspend_Locomotor(true)
cin_tyber.Prevent_All_Fire(true)
cin_tyber.Face_Immediate(introguard)
cin_guard = Create_Generic_Object("GENERIC_FIELD_COMMANDER_EMPIRE", introguard.Get_Position(), empire_player)
cin_tyber.Suspend_Locomotor(true)
cin_guard.Prevent_All_Fire(true)
cin_guard.Face_Immediate(introtyber)
cin_btyber = Create_Generic_Object("TYBER_ZANN", balconytyber.Get_Position(), neutral_player)
cin_btyber.Teleport_And_Face(balconytyber)
cin_bsilri = Create_Generic_Object("SILRI", balconysilri.Get_Position(), neutral_player)
cin_bsilri.Teleport_And_Face(balconysilri)
cin_burai = Create_Generic_Object("URAI_FEN", balconyurai.Get_Position(), neutral_player)
cin_burai.Teleport_And_Face(balconyurai)
cinbarguys1.Suspend_Locomotor(true)
cinbarguys2.Suspend_Locomotor(true)
cinbarguys3.Suspend_Locomotor(true)
cinbarguys4.Suspend_Locomotor(true)
cinbarguys5.Suspend_Locomotor(true)
cinbarguys6.Suspend_Locomotor(true)
cinbarguys7.Suspend_Locomotor(true)
cinbarguys8.Suspend_Locomotor(true)
Sleep(1.5)
Fade_Screen_In(1)
-- Set_Cinematic_Camera_Key(target_pos, xoffset_dist, yoffset_pitch, zoffset_yaw, angles?, attach_object, use_object_rotation, cinematic_animation)
Set_Cinematic_Camera_Key(camcitypos, 0, 0, 75, 0, 0, 0, 0)
Set_Cinematic_Target_Key(camcitylook, 0, 0, 75, 0, 0, 0, 0)
Transition_Cinematic_Camera_Key(camwindowpos, 10, -5, -5, 205, 0, 0, 0, 0)
Transition_Cinematic_Target_Key(cin_bsilri, 10, 0, 0, 0, 0, 0, 0, 0)
Sleep(10)
cin_btyber.Play_Animation("cinematic", true, 2)
cin_burai.Play_Animation("idle", true, 0)
cin_bsilri.Play_Animation("idle", true, 0)
Story_Event("CHATTER_41")
while not State_Mission_41_Done do Sleep(.5) end
Set_Cinematic_Camera_Key(cambalconypos, 0, 0, 50, 0, 0, 0, 0)
Set_Cinematic_Target_Key(cambalconylook, 0, 0, 0, 0, 0, 0, 0)
Transition_Cinematic_Camera_Key(cambalconypan, 4, 0, 0, 50, 0, 0, 0, 0)
cin_btyber.Play_Animation("cinematic", true, 2)
cin_burai.Play_Animation("idle", true, 0)
cin_bsilri.Play_Animation("idle", true, 0)
Story_Event("CHATTER_42")
while not State_Mission_42_Done do Sleep(.5) end
-- camera focus urai
Set_Cinematic_Camera_Key(cin_btyber, 40, 45, 45, 1, 0, 0, 0)
Set_Cinematic_Target_Key(cin_burai, 0, 0, 5, 0, 0, 0, 0)
--Transition_Cinematic_Camera_Key(cambalcurai, 3, 0, 0, 37, 0, 0, 0, 0)
cin_btyber.Play_Animation("idle", true, 0)
cin_burai.Play_Animation("cinematic", true, 0)
cin_bsilri.Play_Animation("idle", true, 0)
Story_Event("CHATTER_43")
while not State_Mission_43_Done do Sleep(.5) end
-- camera focus tyber
Set_Cinematic_Camera_Key(cambalctyber, 0, 0, 30, 0, 0, 0, 0)
Set_Cinematic_Target_Key(cin_btyber, 0, 0, 7, 0, 0, 0, 0)
Transition_Cinematic_Camera_Key(cambalctyber, 3, 0, 0, 32, 0, 0, 0, 0)
cin_btyber.Play_Animation("cinematic", true, 2)
cin_burai.Play_Animation("idle", true, 0)
cin_bsilri.Play_Animation("idle", true, 0)
Story_Event("CHATTER_44")
while not State_Mission_44_Done do Sleep(.5) end
-- camera focus silri
cin_bsilri.Turn_To_Face(cin_btyber)
Set_Cinematic_Camera_Key(cambalcsilri, 0, 0, 35, 0, 0, 0, 0)
Set_Cinematic_Target_Key(cin_bsilri, 0, 0, 5, 0, 0, 0, 0)
Transition_Cinematic_Camera_Key(cambalcsilri, 3, 0, 0, 37, 0, 0, 0, 0)
cin_btyber.Play_Animation("idle", true, 0)
cin_burai.Play_Animation("idle", true, 0)
cin_bsilri.Play_Animation("cinematic", true, 0)
Story_Event("CHATTER_45")
while not State_Mission_45_Done do Sleep(.5) end
-- camera focus tyber
Set_Cinematic_Camera_Key(cambalctyber, 0, 0, 30, 0, 0, 0, 0)
Set_Cinematic_Target_Key(cin_btyber, 0, 0, 7, 0, 0, 0, 0)
Transition_Cinematic_Camera_Key(cambalctyber, 3, 0, 0, 32, 0, 0, 0, 0)
cin_btyber.Play_Animation("cinematic", true, 2)
cin_burai.Play_Animation("idle", true, 0)
cin_bsilri.Play_Animation("idle", true, 0)
Story_Event("CHATTER_46")
while not State_Mission_46_Done do Sleep(.5) end
-- camera focus silri
cin_bsilri.Turn_To_Face(cin_btyber)
Set_Cinematic_Camera_Key(cambalcsilri, 0, 0, 35, 0, 0, 0, 0)
Set_Cinematic_Target_Key(cin_bsilri, 0, 0, 5, 0, 0, 0, 0)
Transition_Cinematic_Camera_Key(cambalcsilri, 3, 0, 0, 37, 0, 0, 0, 0)
cin_btyber.Play_Animation("idle", true, 0)
cin_burai.Play_Animation("idle", true, 0)
cin_bsilri.Play_Animation("cinematic", true, 0)
Story_Event("CHATTER_47")
while not State_Mission_47_Done do Sleep(.5) end
cin_bsilri.Suspend_Locomotor(false)
cin_bsilri.Move_To(cambalconypos)
Sleep(2)
-- camera focus urai
--Set_Cinematic_Camera_Key(cambalcurai, 0, 0, 35, 0, 0, 0, 0)
Set_Cinematic_Camera_Key(cin_btyber, 40, 45, 45, 1, 0, 0, 0)
Set_Cinematic_Target_Key(cin_burai, 0, 0, 5, 0, 0, 0, 0)
--Transition_Cinematic_Camera_Key(cambalcurai, 3, 0, 0, 37, 0, 0, 0, 0)
cin_btyber.Play_Animation("idle", true, 0)
cin_burai.Play_Animation("cinematic", true, 0)
cin_bsilri.Play_Animation("idle", true, 0)
Story_Event("CHATTER_48")
while not State_Mission_48_Done do Sleep(.5) end
-- camera focus tyber
Set_Cinematic_Camera_Key(cambalctyber, 0, 0, 30, 0, 0, 0, 0)
Set_Cinematic_Target_Key(cin_btyber, 0, 0, 7, 0, 0, 0, 0)
Transition_Cinematic_Camera_Key(cambalctyber, 3, 0, 0, 32, 0, 0, 0, 0)
cin_btyber.Play_Animation("cinematic", true, 2)
cin_burai.Play_Animation("idle", true, 0)
cin_bsilri.Play_Animation("idle", true, 0)
Story_Event("CHATTER_49")
while not State_Mission_49_Done do Sleep(.5) end
Fade_Screen_Out(2)
Sleep(2)
Stop_All_Music()
Resume_Mode_Based_Music()
int_sky.Hide(false)
ext_sky.Hide(true)
cin_btyber.Teleport_And_Face(cinbtyberstart)
cin_btyber.Override_Max_Speed(.7)
cin_btyber.Move_To(cinbtybergoto)
Set_Cinematic_Camera_Key(camentrancepos, 0, 0, 100, 0, 0, 0, 0)
Set_Cinematic_Target_Key(camentrancelook, 0, 0, 0, 0, 0, 0, 0)
Fade_Screen_In(1)
Sleep(1)
Transition_Cinematic_Camera_Key(camentrancepos, 3, 0, 0, 110, 0, 0, 0, 0)
Sleep(3)
Fade_Screen_Out(1)
Sleep(1)
Fade_Screen_In(1)
Set_Cinematic_Camera_Key(camintrofloorpos, 0, 0, 2, 0, 0, 0, 0)
Set_Cinematic_Target_Key(camintrofloorlook, 0, 0, 8, 0, 0, 0, 0)
Transition_Cinematic_Camera_Key(camintrofloorpan, 5, 0, 0, 14, 0, 0, 0, 0)
Sleep(2)
Story_Event("CHATTER_12")
while not State_Mission_12_Done do Sleep(.5) end
Set_Cinematic_Camera_Key(camintropos, 0, 0, 16, 0, 0, 0, 0)
Set_Cinematic_Target_Key(camintrolook, 0, 0, 5, 0, 0, 0, 0)
Transition_Cinematic_Target_Key(cin_tyber, 5, 0, 0, 10, 0, 0, 0, 0)
Sleep(1)
cin_tyber.Prevent_All_Fire(false)
cin_tyber.Attack_Target(cin_guard)
Sleep(1)
cin_guard.Take_Damage(9999)
Sleep(1)
Story_Event("CHATTER_13")
while not State_Mission_13_Done do Sleep(.5) end
Fade_Screen_Out(1)
Sleep(1)
Create_Thread("Intro_Cine_Cleanup")
end
function Intro_Cine_Cleanup()
CINE_Intro_Active = false
current_cine_id = nil
tyber_zann.Prevent_All_Fire(false)
tyber_zann.Hide(false)
ext_sky.Hide(true)
int_sky.Hide(false)
endcinebox.Hide(false)
endcinebox1.Hide(false)
if TestValid(cin_tyber) then cin_tyber.Despawn() end
if TestValid(cin_guard) then cin_guard.Despawn() end
if TestValid(cin_btyber) then cin_btyber.Despawn() end
if TestValid(cin_bsilri) then cin_bsilri.Despawn() end
if TestValid(cin_burai) then cin_burai.Despawn() end
if TestValid(cinbarguys1) then cinbarguys1.Despawn() end
if TestValid(cinbarguys2) then cinbarguys2.Despawn() end
if TestValid(cinbarguys3) then cinbarguys3.Despawn() end
if TestValid(cinbarguys4) then cinbarguys4.Despawn() end
if TestValid(cinbarguys5) then cinbarguys5.Despawn() end
if TestValid(cinbarguys6) then cinbarguys6.Despawn() end
if TestValid(cinbarguys7) then cinbarguys7.Despawn() end
if TestValid(cinbarguys8) then cinbarguys8.Despawn() end
if TestValid(cinbirds1) then cinbirds1.Despawn() end
if TestValid(cinbirds2) then cinbirds2.Despawn() end
if TestValid(cinbirds3) then cinbirds3.Despawn() end
if TestValid(cinbirds4) then cinbirds4.Despawn() end
Stop_All_Music()
Resume_Mode_Based_Music()
End_Cinematic_Camera()
Letter_Box_Out(0)
Lock_Controls(0)
Suspend_AI(0)
Fade_Screen_In(1)
Create_Thread("MissionObjective_PartOne")
--juggernaut.Despawn()
--Create_Thread("EndMissionVictory")
end
function Story_Handle_Esc()
if CINE_Intro_Active then
CINE_Intro_Active = false
Thread.Kill(current_cine_id)
Create_Thread("Intro_Cine_Cleanup")
end
-- if CINE_Active_Adept_One then
-- CINE_Active_Adept_One = false
-- Thread.Kill(current_cine_id)
-- Create_Thread("CINE_Adept_One_Cleanup")
-- end
-- if CINE_Active_Intro_Silri then
-- CINE_Active_Intro_Silri = false
-- Thread.Kill(current_cine_id)
-- Create_Thread("CINE_Intro_Silri_Cleanup")
-- end
-- if CINE_Active_Urai_Nodes then
-- CINE_Active_Urai_Nodes = false
-- Thread.Kill(current_cine_id)
-- Create_Thread("CINE_Urai_Nodes_Cleanup")
-- end
-- if CINE_Active_Silri_Troopers then
-- CINE_Active_Silri_Troopers = false
-- Thread.Kill(current_cine_id)
-- Create_Thread("CINE_Silri_Troopers_Cleanup")
-- end
-- if CINE_Active_Grouped_Up then
-- CINE_Active_Grouped_Up = false
-- Thread.Kill(current_cine_id)
-- Create_Thread("CINE_Grouped_Up_Cleanup")
-- end
-- if CINE_Active_Outside_Vault then
-- CINE_Active_Outside_Vault = false
-- Thread.Kill(current_cine_id)
-- Create_Thread("CINE_Outside_Vault_Cleanup")
-- end
-- if CINE_Active_Final_Adept then
-- CINE_Active_Final_Adept = false
-- Thread.Kill(current_cine_id)
-- Create_Thread("CINE_Final_Adept_Cleanup")
-- end
end
-- all functions for opening/closing doors
function Open_Vault()
vaulta.Play_Animation("Cinematic",false,1)
vaultb.Play_Animation("Cinematic",false,1)
Register_Timer(Remove_Vault,2)
Story_Event("CHATTER_51")
end
function Remove_Vault()
vaulta.Despawn()
vaultb.Despawn()
end
function Open_Door_i()
Register_Timer(Remove_Door_i,2)
doori.Play_Animation("Cinematic",false,1)
end
function Remove_Door_i()
doori.Highlight(false)
Remove_Radar_Blip("doori")
doori.Despawn()
end
function Open_Door_k()
Register_Timer(Remove_Door_k,2)
doork.Play_Animation("Cinematic",false,1)
end
function Remove_Door_k()
doork.Despawn()
VictoryCondition_BackdoorOpen = true
Create_Thread("Hunt_Underworld", monitors_guards1 )
end
function Open_Door_j()
consolej.Highlight(false)
Remove_Radar_Blip("consolej")
Register_Timer(Remove_Door_j,2)
doorj.Play_Animation("Cinematic",false,1)
Fade_Screen_Out(2)
end
function Remove_Door_j()
doorj.Despawn()
end
function Open_Door_c()
Register_Timer(Remove_Door_c,2)
doorc1.Play_Animation("Cinematic",false,1)
doorc2.Play_Animation("Cinematic",false,1)
end
function Remove_Door_c()
doorc1.Despawn()
doorc2.Despawn()
end
function Open_Door_e()
Register_Timer(Remove_Door_e,2)
doore.Play_Animation("Cinematic",false,1)
consolee.Highlight(false)
Remove_Radar_Blip("consolee")
highlightsithroom.Highlight(true)
Add_Radar_Blip(highlightsithroom, "highlightsithroom")
end
function Remove_Door_e()
doore.Despawn()
end
function Open_Door_f()
Register_Timer(Remove_Door_f,2)
doorf.Play_Animation("Cinematic",false,1)
end
function Remove_Door_f()
doorf.Despawn()
end
function Open_Door_h()
Register_Timer(Remove_Door_h,2)
doorh.Play_Animation("Cinematic",false,1)
end
function Remove_Door_h()
doorh.Despawn()
end
function Open_Door_a()
Register_Timer(Remove_Door_a,2)
doora.Play_Animation("Cinematic",false,1)
end
function Remove_Door_a()
doora.Despawn()
end
function Open_Panel()
Register_Timer(Remove_Panel,2)
panel.Play_Animation("Cinematic",false,1)
end
function Remove_Panel()
panel.Despawn()
end
function Open_AdeptOneDoor()
Register_Timer(Remove_AdeptOneDoor, 2)
adeptonedoor.Play_Animation("Cinematic",false,1)
end
function Remove_AdeptOneDoor()
adeptonedoor.Despawn()
Create_Thread("Hunt_Underworld", {monitorguardsc})
end
function Open_SithDoor()
-- when wall is destroyed, remove black covers
highlightsithroom.Highlight(false)
Remove_Radar_Blip("highlightsithroom")
holocron.Highlight(true)
Add_Radar_Blip(holocron, "holocron")
Register_Timer(Remove_SithDoor,2)
sithwall.Play_Animation("Cinematic",false,1)
end
function Remove_SithDoor()
sithwall.Despawn()
end
--mission objective and flow handlers
function MissionObjective_PartOne()
doorh.Play_Animation("Cinematic",false,2)
adeptonedoor.Play_Animation("Cinematic",false,0)
sithwall.Play_Animation("Cinematic",false,0)
doork.Play_Animation("Cinematic",false,0)
doori.Play_Animation("Cinematic",false,0)
doorj.Play_Animation("Cinematic",false,0)
doorc1.Play_Animation("Cinematic",false,0)
doorc2.Play_Animation("Cinematic",false,0)
doore.Play_Animation("Cinematic",false,0)
doora.Play_Animation("Cinematic",false,0)
vaulta.Play_Animation("Cinematic",false,0)
vaultb.Play_Animation("Cinematic",false,0)
silri.Set_In_Limbo(true)
silri.Hide(true)
silri.Set_Selectable(false)
silri.Make_Invulnerable(true)
urai_fen.Set_In_Limbo(true)
urai_fen.Hide(true)
urai_fen.Set_Selectable(false)
urai_fen.Make_Invulnerable(true)
juggernaut.Change_Owner(neutral_player)
juggernaut.Make_Invulnerable(true)
Fade_Screen_In(1)
Point_Camera_At(tyber_zann)
underworld_player.Select_Object(tyber_zann)
Fade_Screen_In(1)
Sleep(1)
MissionPartOneStarted = true
Story_Event("UM11_INTROCINE_DONE")
Story_Event("UM11_OBJECTIVE_01")
Create_Thread("PartOne_GuardSpawn")
monitorsa.Highlight(true)
Add_Radar_Blip(monitorsa, "monitorsa")
Register_Timer(Hint_BribeDoor, 8)
Story_Event("UM11_HINT_09")
Story_Event("SET_CREDITS")
end
function Hint_BribeDoor()
if not VictoryCondition_BackdoorOpen then
Story_Event("UM11_HINT_00")
Register_Timer(Hint_BribeDoor, 15)
end
end
-- if tyber kills the guards behind the fence, spawn some more
-- stop spawning when tyber has breached the door
function PartOne_GuardSpawn()
guardspawn = Find_Hint("STORY_TRIGGER_ZONE", "bribedguardsspawn")
guardmove = Find_Hint("STORY_TRIGGER_ZONE", "bribedguardsmoveto")
bribableguards = Spawn_Unit(Find_Object_Type("IMPERIAL_MINI_STORMTROOPER_SQUAD"), guardspawn.Get_Position(), empire_player)
for k, unit in pairs(bribableguards) do
if TestValid(unit) then
unit.Prevent_AI_Usage(true)
unit.Move_To(guardmove)
end
end
while TestValid(doork) do
members = 0
for k, unit in pairs(bribableguards) do
if TestValid(unit) then
members = members + 1
end
end
if members == 0 then
bribableguards = Spawn_Unit(Find_Object_Type("IMPERIAL_MINI_STORMTROOPER_SQUAD"), guardspawn.Get_Position(), empire_player)
for k, unit in pairs(bribableguards) do
if TestValid(unit) then
unit.Prevent_AI_Usage(true)
unit.Move_To(guardmove)
end
end
end
Sleep(2)
end
end
function PartOne_BactaGone()
--do something
--MessageBox("Yay!")
VictoryCondition_BactaGone = true
moreguards = Spawn_Unit(Find_Object_Type("IMPERIAL_MEDIUM_STORMTROOPER_SQUAD"), guardspawn.Get_Position(), empire_player)
--enable this later wtf did it break?
--Create_Thread("Hunt_Underworld", moreguards)
end
function PartOne_MonitorsDead()
--monitorsb.Despawn()
VictoryCondition_MonitorControls = true
monitorsa.Highlight(false)
Remove_Radar_Blip("monitorsa")
Story_Event("UM11_OBJECTIVE_01_DONE")
Story_Event("CHATTER_16")
Create_Thread("Destroy_Monitors")
end
function Destroy_Monitors()
monitorsb1.Take_Damage(9999)
Sleep(.25)
monitorsb2.Take_Damage(9999)
Sleep(.15)
monitorsb3.Take_Damage(9999)
Sleep(.15)
monitorsb4.Take_Damage(9999)
Sleep(.25)
monitorsb5.Take_Damage(9999)
Sleep(.15)
monitorsb6.Take_Damage(9999)
Sleep(.15)
monitorsb7.Take_Damage(9999)
Sleep(.25)
monitorsb8.Take_Damage(9999)
end
function Prox_IntroAdeptOne(self_obj, trigger_obj)
if VictoryCondition_BackdoorOpen then
if trigger_obj.Get_Owner() == underworld_player then
current_cine_id = Create_Thread("CINE_Adept_One")
self_obj.Cancel_Event_Object_In_Range(Prox_IntroAdeptOne)
end
end
end
function CINE_Adept_One()
Cancel_Fast_Forward()
CINE_Active_Adept_One = true
Fade_Screen_Out(0)
Suspend_AI(1)
Lock_Controls(1)
Letter_Box_In(0)
Start_Cinematic_Camera()
tyber_zann.Prevent_All_Fire(true)
tyber_zann.Hide(true)
cin_tyber2 = Create_Generic_Object("TYBER_ZANN", cineadeptonetyber.Get_Position(), neutral_player)
cin_tyber2.Face_Immediate(adeptonespawnb)
adeptonedoor.Play_Animation("Cinematic", false, 2)
cin_mouse1 = Create_Generic_Object("UMP_CINE_MOUSEDROID", cineadeptonemouse.Get_Position(), neutral_player)
cin_mouse2 = Create_Generic_Object("UMP_CINE_MOUSEDROID", cineadeptonemouse.Get_Position(), neutral_player)
cin_mouse3 = Create_Generic_Object("UMP_CINE_MOUSEDROID", cineadeptonemouse.Get_Position(), neutral_player)
cin_mouse1.Move_To(cinemousegoto1)
cin_mouse2.Move_To(cinemousegoto2)
cin_mouse3.Move_To(cinemousegoto3)
cin_adepts1 = Create_Generic_Object("UM05_ADEPTONECINE", adeptonespawna.Get_Position(), neutral_player)
cin_adepts2 = Create_Generic_Object("UM05_ADEPTONECINE", adeptonespawnb.Get_Position(), neutral_player)
cin_adepts3 = Create_Generic_Object("UM05_ADEPTONECINE", adeptonespawnc.Get_Position(), neutral_player)
cin_adepts1.Face_Immediate(cin_tyber2)
cin_adepts2.Face_Immediate(cin_tyber2)
cin_adepts3.Face_Immediate(cin_tyber2)
Sleep(1)
Fade_Screen_In(1)
-- Set_Cinematic_Camera_Key(target_pos, xoffset_dist, yoffset_pitch, zoffset_yaw, angles?, attach_object, use_object_rotation, cinematic_animation)
Set_Cinematic_Camera_Key(camadeptonepos, 0, 0, 20, 0, 0, 0, 0)
Set_Cinematic_Target_Key(camadeptonelook, 0, 0, -10, 0, 0, 0, 0)
Transition_Cinematic_Camera_Key(camadeptonepos, 5, 0, 0, 16, 0, 0, 0, 0)
Transition_Cinematic_Target_Key(camadeptonelook, 5, 0, 0, -13, 0, 0, 0, 0)
Story_Event("CHATTER_14")
while not State_Mission_14_Done do Sleep(.5) end
adeptonedoor.Play_Animation("Cinematic",false,3)
Set_Cinematic_Camera_Key(camonepos, 0, 0, 16, 0, 0, 0, 0)
Set_Cinematic_Target_Key(camonelook, 0, 0, 0, 0, 0, 0, 0)
Transition_Cinematic_Camera_Key(camonepospan, 5, 0, 0, 20, 0, 0, 0, 0)
Transition_Cinematic_Target_Key(camonelookpan, 5, 0, 0, 0, 0, 0, 0, 0)
cin_tyber2.Play_Animation("cinematic", true, 2)
Story_Event("CHATTER_15")
while not State_Mission_15_Done do Sleep(.5) end
cin_adepts1.Change_Owner(empire_player)
cin_adepts2.Change_Owner(empire_player)
cin_adepts3.Change_Owner(empire_player)
cin_adepts1.Suspend_Locomotor(true)
cin_adepts2.Suspend_Locomotor(true)
cin_adepts3.Suspend_Locomotor(true)
cin_tyber2.Change_Owner(underworld_player)
cin_adepts2.Attack_Target(cin_tyber2)
Sleep(.5)
cin_adepts1.Attack_Target(cin_tyber2)
Sleep(.25)
cin_adepts3.Attack_Target(cin_tyber2)
Sleep(1)
cin_tyber2.Change_Owner(neutral_player)
Sleep(1)
Create_Thread("CINE_Adept_One_Cleanup")
end
function CINE_Adept_One_Cleanup()
CINE_Active_Adept_One = false
current_cine_id = nil
Fade_Screen_Out(1)
Sleep(1)
adeptonea = Create_Generic_Object("UM05_ADEPTONE", adeptonespawna.Get_Position(), empire_player)
adeptonea.Override_Max_Speed(.75)
adeptoneb = Create_Generic_Object("UM05_ADEPTONE", adeptonespawnb.Get_Position(), empire_player)
adeptoneb.Override_Max_Speed(.65)
adeptonec = Create_Generic_Object("UM05_ADEPTONE", adeptonespawnc.Get_Position(), empire_player)
adeptonec.Override_Max_Speed(.7)
VictoryCondition_AdeptsSpawned = true
tyber_zann.Prevent_All_Fire(false)
tyber_zann.Hide(false)
if TestValid(cin_tyber2) then cin_tyber2.Despawn() end
if TestValid(cin_mouse1) then cin_mouse1.Despawn() end
if TestValid(cin_mouse2) then cin_mouse2.Despawn() end
if TestValid(cin_mouse3) then cin_mouse3.Despawn() end
if TestValid(cin_adepts1) then cin_adepts1.Despawn() end
if TestValid(cin_adepts2) then cin_adepts2.Despawn() end
if TestValid(cin_adepts3) then cin_adepts3.Despawn() end
End_Cinematic_Camera()
Letter_Box_Out(.5)
Lock_Controls(0)
Suspend_AI(0)
Fade_Screen_In(1)
Point_Camera_At(tyber_zann)
underworld_player.Select_Object(tyber_zann)
Fade_Screen_In(1)
Sleep(1)
Register_Timer(Hint_AdeptOne1, 15)
adeptonedoor.Play_Animation("Cinematic",false,0)
Story_Event("UM11_OBJECTIVE_02")
end
function Hint_AdeptOne1()
if not VictoryCondition_AdeptOneDead then
Story_Event("UM11_HINT_01")
Register_Timer(Hint_AdeptOne2, 10)
end
end
function Hint_AdeptOne2()
if not VictoryCondition_AdeptOneDead then
Story_Event("UM11_HINT_08")
Register_Timer(Hint_AdeptOne1, 10)
end
end
function Kill_Off_Stormies()
thebunker.Take_Damage(9999)
Sleep(1)
extras = Find_All_Objects_Of_Type("STORMTROOPER")
for k, unit in pairs(extras) do
if TestValid(unit) then
unit.Take_Damage(9999)
end
end
extras = Find_All_Objects_Of_Type("SQUAD_STORMTROOPER")
for k, unit in pairs(extras) do
if TestValid(unit) then
unit.Take_Damage(9999)
end
end
end
function MissionObjective_PartTwo()
MissionPartTwoStarted = true
Create_Thread("Kill_Off_Stormies")
extras = Find_All_Objects_Of_Type("STORMTROOPER")
for k, unit in pairs(extras) do
if TestValid(unit) then
--if unit.Get_Owner() == underworld_player then
-- Used to move them, now we don't because moving teams ends up with funky (fonky) results
unit.Take_Damage(9999)
--end
end
end
extras = Find_All_Objects_Of_Type("SQUAD_STORMTROOPER")
for k, unit in pairs(extras) do
if TestValid(unit) then
--if unit.Get_Owner() == underworld_player then
-- Used to move them, now we don't because moving teams ends up with funky (fonky) results
unit.Take_Damage(9999)
--end
end
end
extras = Find_All_Objects_Of_Type("STORMTROOPER_TEAM")
for k, unit in pairs(extras) do
if TestValid(unit) then
if unit.Get_Owner() == underworld_player then
unit.Set_In_Limbo(true)
unit.Set_Selectable(false)
end
end
end
silri.Set_In_Limbo(false)
silri.Hide(false)
silri.Set_Selectable(true)
silri.Make_Invulnerable(false)
tyber_zann.Set_In_Limbo(true)
tyber_zann.Hide(true)
tyber_zann.Set_Selectable(false)
tyber_zann.Make_Invulnerable(true)
Fade_Screen_In(1)
Point_Camera_At(silri)
underworld_player.Select_Object(silri)
cuddles = Find_Nearest(silri, "CUDDLES_THE_RANCOR")
if TestValid(cuddles) then
else
silri.Activate_Ability("SUMMON", silri)
end
Fade_Screen_In(1)
Sleep(1)
Story_Event("UM11_OBJECTIVE_03")
consolee.Highlight(true)
Add_Radar_Blip(consolee, "consolee")
Register_Timer(Hint_SilriHurt, 10)
Story_Event("UM11_HINT_10")
end
function CINE_Intro_Silri()
Cancel_Fast_Forward()
CINE_Active_Intro_Silri = true
silri.Hide(true)
silri.Prevent_All_Fire(true)
--Fade_Screen_Out(1)
--Sleep(1)
Suspend_AI(1)
Lock_Controls(1)
Letter_Box_In(0)
Start_Cinematic_Camera()
cin_silri = Create_Generic_Object("SILRI", cinesilri.Get_Position(), neutral_player)
cin_sadept = Create_Generic_Object("UM05_ADEPTTWOCINE", cinesilriadept.Get_Position(), neutral_player)
cin_rancor = Create_Generic_Object("UM05_CUDDLES_THE_RANCOR", cinerancorsummon.Get_Position(), neutral_player)
cin_silri.Prevent_AI_Usage(true)
cin_sadept.Override_Max_Speed(.25)
cin_sadept.Move_To(cinesilriadeptmoveto)
cin_silri.Teleport_And_Face(cinesilri)
cin_rancor.Turn_To_Face(cin_sadept)
Fade_Screen_In(1)
-- Set_Cinematic_Camera_Key(target_pos, xoffset_dist, yoffset_pitch, zoffset_yaw, angles?, attach_object, use_object_rotation, cinematic_animation)
Set_Cinematic_Camera_Key(camtwirlsilristart, 0, 0, 18, 0, 0, 0, 0)
Set_Cinematic_Target_Key(cin_silri, 0, 0, 14, 0, 0, 0, 0)
Transition_Cinematic_Camera_Key(camtwirlsilriend, 12, 0, 0, 18, 0, 0, 0, 0)
Story_Event("CHATTER_05")
cin_silri.Play_Animation("cinematic", false, 0)
Sleep(1)
cin_sadept.Face_Immediate(cin_silri)
while not State_Mission_05_Done do Sleep(.5) end
cin_sadept.Suspend_Locomotor(true)
cin_silri.Play_Animation("idle", false, 2)
Set_Cinematic_Camera_Key(camintrosilripos, 0, 0, 12, 0, 0, 0, 0)
Set_Cinematic_Target_Key(camintrosilrilook, 0, 0, -14, 0, 0, 0, 0)
Sleep(.25)
cin_silri.Turn_To_Face(cin_sadept)
cin_silri.Play_Animation("idle", false, 0)
Story_Event("CHATTER_06")
while not State_Mission_06_Done do Sleep(.5) end
cin_silri.Suspend_Locomotor(true)
cin_rancor.Suspend_Locomotor(true)
Set_Cinematic_Camera_Key(camsilriadeptpos, 0, 0, 17, 0, 0, 0, 0)
Set_Cinematic_Target_Key(camsilriadeptlook, 0, 0, -15, 0, 0, 0, 0)
cin_silri.Play_Animation("cinematic", false, 0)
Story_Event("CHATTER_07")
while not State_Mission_07_Done do Sleep(.5) end
cin_sadept.Override_Max_Speed(1)
Set_Cinematic_Camera_Key(camintrosilripos, 0, 0, 11, 0, 0, 0, 0)
Set_Cinematic_Target_Key(camintrosilrilook, 0, 0, -12, 0, 0, 0, 0)
cin_sadept.Change_Owner(empire_player)
cin_silri.Change_Owner(underworld_player)
cin_sadept.Attack_Target(cin_silri)
cin_silri.Play_Animation("idle", false, 0)
Story_Event("CHATTER_08")
while not State_Mission_08_Done do Sleep(.5) end
Transition_Cinematic_Camera_Key(cin_sadept, 2, 0, 0, 18, 0, cin_sadept, 0, 0)
Transition_Cinematic_Target_Key(cin_silri, 2, 0, 0, 6, 0, cin_silri, 0, 0)
cin_rancor.Play_Animation("idle", false, 1)
cin_sadept.Suspend_Locomotor(false)
cin_sadept.Attack_Target(cin_silri)
cin_silri.Turn_To_Face(cin_sadept)
Sleep(1.5)
cin_silri.Play_Animation("attack", false, 0)
Set_Cinematic_Camera_Key(camfightpos, 0, 0, 20, 0, 0, 0, 0)
Set_Cinematic_Target_Key(camfightlook, 0, 0, 0, 0, 0, 0, 0)
Sleep(1.5)
cin_sadept.Take_Damage(9999)
Sleep(.5)
cin_silri.Play_Animation("cinematic", false, 0)
Story_Event("CHATTER_02")
Set_Cinematic_Camera_Key(camadeptdiepos, 0, 0, 18, 0, 0, 0, 0)
Set_Cinematic_Target_Key(cin_silri, 0, 0, 8, 0, 0, 0, 0)
while not State_Mission_02_Done do Sleep(.5) end
Story_Event("CHATTER_03")
while not State_Mission_03_Done do Sleep(.5) end
cin_silri.Play_Animation("idle", false, 0)
Fade_Screen_Out(1)
Sleep(1)
Create_Thread("CINE_Intro_Silri_Cleanup")
end
function CINE_Intro_Silri_Cleanup()
CINE_Active_Intro_Silri = false
current_cine_id = nil
silri.Prevent_All_Fire(false)
silri.Hide(false)
if TestValid(cin_sadept) then cin_sadept.Despawn() end
if TestValid(cin_silri) then cin_silri.Despawn() end
if TestValid(cin_rancor) then cin_rancor.Despawn() end
End_Cinematic_Camera()
Letter_Box_Out(0)
Lock_Controls(0)
Suspend_AI(0)
Fade_Screen_In(1)
Create_Thread("MissionObjective_PartTwo")
Register_Prox(noticetroopers, Prox_NoticeTroopers, 150, underworld_player)
end
function Prox_NoticeTroopers(self_obj, trigger_obj)
if trigger_obj == silri then
Story_Event("CHATTER_01")
self_obj.Cancel_Event_Object_In_Range(Prox_NoticeTroopers)
end
end
function Hint_SilriHurt()
Story_Event("UM11_HINT_02")
end
function Prox_SithHolocron(self_obj, trigger_obj)
-- when silri gets the holocron...
if trigger_obj == silri then
holocron.Highlight(false)
Remove_Radar_Blip("holocron")
Register_Timer(PartTwo_HolocronFound, 2)
Fade_Screen_Out(2)
self_obj.Cancel_Event_Object_In_Range(Prox_SithHolocron)
Story_Event("UM11_OBJECTIVE_03_DONE")
end
end
function PartTwo_HolocronFound()
VictoryCondition_HolocronFound = true
end
function MissionObjective_PartThree()
MissionPartThreeStarted = true
silri.Set_In_Limbo(true)
silri.Hide(true)
silri.Set_Selectable(false)
silri.Make_Invulnerable(true)
urai_fen.Set_In_Limbo(false)
urai_fen.Hide(false)
urai_fen.Set_Selectable(true)
urai_fen.Make_Invulnerable(false)
cuddles = Find_Nearest(silri, "CUDDLES_THE_RANCOR")
if TestValid(cuddles) then
cuddles.Set_In_Limbo(true)
cuddles.Hide(true)
cuddles.Make_Invulnerable(true)
cuddles.Set_Selectable(false)
end
current_cine_id = Create_Thread("CINE_Urai_Nodes")
end
function CINE_Urai_Nodes()
Cancel_Fast_Forward()
CINE_Active_Urai_Nodes = true
Suspend_AI(1)
Lock_Controls(1)
Letter_Box_In(0)
Start_Cinematic_Camera()
-- Silri gets her holocron --
silri.Hide(true)
cuddles = Find_Nearest(silri, "CUDDLES_THE_RANCOR")
if TestValid(cuddles) then
cuddles.Hide(true)
end
cin_silri = Create_Generic_Object("SILRI", silriholospawn.Get_Position(), neutral_player)
cin_cuddles = Create_Generic_Object("CUDDLES_THE_RANCOR", cuddlesholospawn.Get_Position(), neutral_player)
cin_silri.Face_Immediate(holocron)
cin_cuddles.Face_Immediate(holocron)
cin_silri.Suspend_Locomotor(true)
cin_fx = Create_Generic_Object("INVISIBLE_REVEAL_OBJECT", sithholofx.Get_Position(), neutral_player)
--cin_fx.Attach_Particle_Effect("BLAST_CHARGING_EFFECT")
silri.Prevent_AI_Usage(true)
cin_silri.Prevent_AI_Usage(true)
cin_silri.Prevent_All_Fire(true)
Sleep(1)
Fade_Screen_In(1)
-- Set_Cinematic_Camera_Key(target_pos, xoffset_dist, yoffset_pitch, zoffset_yaw, angles?, attach_object, use_object_rotation, cinematic_animation)
Set_Cinematic_Camera_Key(camholopos, 0, 0, 60, 0, 0, 0, 0)
Set_Cinematic_Target_Key(camhololook, 0, 0, 10, 0, 0, 0, 0)
Transition_Cinematic_Camera_Key(camocronpos, 5, 0, 0, 35, 0, 0, 0, 0)
Transition_Cinematic_Target_Key(camocronlook, 5, 0, 0, -5, 0, 0, 0, 0)
cin_silri.Play_Animation("cinematic", false, 0)
Story_Event("CHATTER_04")
while not State_Mission_04_Done do Sleep(.5) end
Story_Event("CHATTER_00")
while not State_Mission_00_Done do Sleep(.5) end
cin_silri.Play_Animation("idle", false, 0)
Fade_Screen_Out(2)
Sleep(2)
-- introduce urai fen --
Fade_Screen_In(2)
Set_Cinematic_Camera_Key(camholeposend, 0, 0, 20, 0, 0, 0, 0)
Set_Cinematic_Target_Key(camholelookend, 0, 0, 6, 0, 0, 0, 0)
cin_uadept = Create_Generic_Object("UM05_ADEPTTWOCINE", cineadepttwospawn.Get_Position(), neutral_player)
cin_uadept.Override_Max_Speed(.5)
cin_uadept.Move_To(cineadepttwomoveto)
Transition_Cinematic_Camera_Key(camuraifaceoffpos, 5, 0, 0, 20, 0, 0, 0, 0)
Transition_Cinematic_Target_Key(camuraifaceofflook, 5, 0, 0, -10, 0, 0, 0, 0)
Sleep(2.5)
urai_fen.Turn_To_Face(cin_uadept)
Sleep(2)
cin_uadept.Turn_To_Face(urai_fen)
urai_fen.Suspend_Locomotor(true)
Sleep(1)
cin_uadept.Suspend_Locomotor(true)
cin_uadept.Change_Owner(empire_player)
urai_fen.Change_Owner(underworld_player)
cin_uadept.Attack_Target(urai_fen)
urai_fen.Play_Animation("cinematic", false, 0)
Story_Event("CHATTER_17")
while not State_Mission_17_Done do Sleep(.5) end
urai_fen.Play_Animation("idle", false, 0)
Sleep(1)
Fade_Screen_Out(1)
Sleep(1)
Create_Thread("CINE_Urai_Nodes_Cleanup")
end
function CINE_Urai_Nodes_Cleanup()
CINE_Active_Urai_Nodes = false
current_cine_id = nil
thesithartifact.Despawn()
Fade_Screen_In(1)
Point_Camera_At(urai_fen)
underworld_player.Select_Object(urai_fen)
End_Cinematic_Camera()
Letter_Box_Out(.5)
Lock_Controls(0)
Suspend_AI(0)
urai_fen.Suspend_Locomotor(false)
if TestValid(cin_uadept) then cin_uadept.Despawn() end
if TestValid(cin_silri) then cin_silri.Despawn() end
if TestValid(cin_cuddles) then cin_cuddles.Despawn() end
if TestValid(cin_fx) then cin_fx.Despawn() end
Create_Thread("PartThree_IntroAdeptTwo")
Fade_Screen_In(1)
Sleep(1)
Story_Event("UM11_OBJECTIVE_04")
nodea.Highlight(true)
Add_Radar_Blip(nodea, "nodea")
nodeb.Highlight(true)
Add_Radar_Blip(nodeb, "nodeb")
nodec.Highlight(true)
Add_Radar_Blip(nodec, "nodec")
noded.Highlight(true)
Add_Radar_Blip(noded, "noded")
Register_Timer(Hint_UraiHeal, 8)
Story_Event("UM11_HINT_11")
end
function Hint_UraiHeal()
if not VictoryCondition_AdeptTwoDead then
Story_Event("UM11_HINT_03")
Register_Timer(Hint_UraiHeal, 15)
end
end
function PartThree_Node_A()
Create_Thread("PartThree_Blow_A")
VictoryCondition_Blown_A = true
nodea.Highlight(false)
Remove_Radar_Blip("nodea")
Create_Thread("PartThree_KilledNode")
end
function PartThree_Node_B()
Create_Thread("PartThree_Blow_B")
VictoryCondition_Blown_B = true
nodeb.Highlight(false)
Remove_Radar_Blip("nodeb")
Create_Thread("PartThree_KilledNode")
end
function PartThree_Node_C()
Create_Thread("PartThree_Blow_C")
VictoryCondition_Blown_C = true
nodec.Highlight(false)
Remove_Radar_Blip("nodec")
Create_Thread("PartThree_KilledNode")
end
function PartThree_Node_D()
Create_Thread("PartThree_Blow_D")
VictoryCondition_Blown_D = true
noded.Highlight(false)
Remove_Radar_Blip("noded")
Create_Thread("PartThree_KilledNode")
end
function PartThree_KilledNode()
Story_Event("CHATTER_18")
end
function PartThree_Blow_A()
blowa = Find_Hint("STORY_TRIGGER_ZONE", "blowa-a")
blowb = Find_Hint("STORY_TRIGGER_ZONE", "blowa-b")
blowc = Find_Hint("STORY_TRIGGER_ZONE", "blowa-c")
blowd = Find_Hint("STORY_TRIGGER_ZONE", "blowa-d")
blowe = Find_Hint("STORY_TRIGGER_ZONE", "blowa-e")
blowf = Find_Hint("STORY_TRIGGER_ZONE", "blowa-f")
blowg = Find_Hint("STORY_TRIGGER_ZONE", "blowa-g")
blowh = Find_Hint("STORY_TRIGGER_ZONE", "blowa-h")
blowreactor = Find_Hint("STORY_TRIGGER_ZONE", "blowreactor")
explode = "THERMAL_DETONATOR_EXPLOSION"
effect = "STUNNED_PARTICLE_EFFECT"
ablowa = Create_Generic_Object("INVISIBLE_REVEAL_OBJECT", blowa.Get_Position(), neutral_player)
ablowb = Create_Generic_Object("INVISIBLE_REVEAL_OBJECT", blowb.Get_Position(), neutral_player)
ablowc = Create_Generic_Object("INVISIBLE_REVEAL_OBJECT", blowc.Get_Position(), neutral_player)
ablowd = Create_Generic_Object("INVISIBLE_REVEAL_OBJECT", blowd.Get_Position(), neutral_player)
ablowe = Create_Generic_Object("INVISIBLE_REVEAL_OBJECT", blowe.Get_Position(), neutral_player)
ablowf = Create_Generic_Object("INVISIBLE_REVEAL_OBJECT", blowf.Get_Position(), neutral_player)
ablowg = Create_Generic_Object("INVISIBLE_REVEAL_OBJECT", blowg.Get_Position(), neutral_player)
ablowh = Create_Generic_Object("INVISIBLE_REVEAL_OBJECT", blowh.Get_Position(), neutral_player)
ablowr = Create_Generic_Object("INVISIBLE_REVEAL_OBJECT", blowreactor.Get_Position(), neutral_player)
Sleep(.05)
ablowa.Attach_Particle_Effect(effect)
ablowa.Attach_Particle_Effect(explode)
Sleep(.05)
ablowb.Attach_Particle_Effect(effect)
ablowb.Attach_Particle_Effect(explode)
Sleep(.05)
ablowc.Attach_Particle_Effect(effect)
ablowc.Attach_Particle_Effect(explode)
Sleep(.05)
ablowd.Attach_Particle_Effect(effect)
ablowd.Attach_Particle_Effect(explode)
Sleep(.05)
ablowe.Attach_Particle_Effect(effect)
ablowe.Attach_Particle_Effect(explode)
Sleep(.05)
ablowf.Attach_Particle_Effect(effect)
ablowf.Attach_Particle_Effect(explode)
Sleep(.05)
ablowg.Attach_Particle_Effect(effect)
ablowg.Attach_Particle_Effect(explode)
Sleep(.05)
ablowh.Attach_Particle_Effect(effect)
ablowh.Attach_Particle_Effect(explode)
Sleep(.05)
ablowr.Attach_Particle_Effect(explode)
--MessageBox("Ok")
end
function PartThree_Blow_B()
--do nothing
blowa = Find_Hint("STORY_TRIGGER_ZONE", "blowb-a")
blowb = Find_Hint("STORY_TRIGGER_ZONE", "blowb-b")
blowc = Find_Hint("STORY_TRIGGER_ZONE", "blowb-c")
blowd = Find_Hint("STORY_TRIGGER_ZONE", "blowb-d")
blowe = Find_Hint("STORY_TRIGGER_ZONE", "blowb-e")
blowf = Find_Hint("STORY_TRIGGER_ZONE", "blowb-f")
blowg = Find_Hint("STORY_TRIGGER_ZONE", "blowb-g")
blowh = Find_Hint("STORY_TRIGGER_ZONE", "blowb-h")
blowi = Find_Hint("STORY_TRIGGER_ZONE", "blowb-i")
blowj = Find_Hint("STORY_TRIGGER_ZONE", "blowb-j")
blowreactor = Find_Hint("STORY_TRIGGER_ZONE", "blowreactor")
explode = "THERMAL_DETONATOR_EXPLOSION"
effect = "STUNNED_PARTICLE_EFFECT"
bblowa = Create_Generic_Object("INVISIBLE_REVEAL_OBJECT", blowa.Get_Position(), neutral_player)
bblowb = Create_Generic_Object("INVISIBLE_REVEAL_OBJECT", blowb.Get_Position(), neutral_player)
bblowc = Create_Generic_Object("INVISIBLE_REVEAL_OBJECT", blowc.Get_Position(), neutral_player)
bblowd = Create_Generic_Object("INVISIBLE_REVEAL_OBJECT", blowd.Get_Position(), neutral_player)
bblowe = Create_Generic_Object("INVISIBLE_REVEAL_OBJECT", blowe.Get_Position(), neutral_player)
bblowf = Create_Generic_Object("INVISIBLE_REVEAL_OBJECT", blowf.Get_Position(), neutral_player)
bblowg = Create_Generic_Object("INVISIBLE_REVEAL_OBJECT", blowg.Get_Position(), neutral_player)
bblowh = Create_Generic_Object("INVISIBLE_REVEAL_OBJECT", blowh.Get_Position(), neutral_player)
bblowi = Create_Generic_Object("INVISIBLE_REVEAL_OBJECT", blowi.Get_Position(), neutral_player)
bblowj = Create_Generic_Object("INVISIBLE_REVEAL_OBJECT", blowj.Get_Position(), neutral_player)
bblowr = Create_Generic_Object("INVISIBLE_REVEAL_OBJECT", blowreactor.Get_Position(), neutral_player)
Sleep(.05)
bblowa.Attach_Particle_Effect(effect)
bblowa.Attach_Particle_Effect(explode)
Sleep(.05)
bblowb.Attach_Particle_Effect(effect)
bblowb.Attach_Particle_Effect(explode)
Sleep(.05)
bblowc.Attach_Particle_Effect(effect)
bblowc.Attach_Particle_Effect(explode)
Sleep(.05)
bblowd.Attach_Particle_Effect(effect)
bblowd.Attach_Particle_Effect(explode)
Sleep(.05)
bblowe.Attach_Particle_Effect(effect)
bblowe.Attach_Particle_Effect(explode)
Sleep(.05)
bblowf.Attach_Particle_Effect(effect)
bblowf.Attach_Particle_Effect(explode)
Sleep(.05)
bblowg.Attach_Particle_Effect(effect)
bblowg.Attach_Particle_Effect(explode)
Sleep(.15)
bblowh.Attach_Particle_Effect(effect)
bblowh.Attach_Particle_Effect(explode)
Sleep(.05)
bblowi.Attach_Particle_Effect(effect)
bblowi.Attach_Particle_Effect(explode)
Sleep(.05)
bblowj.Attach_Particle_Effect(effect)
bblowj.Attach_Particle_Effect(explode)
Sleep(.05)
bblowr.Attach_Particle_Effect(explode)
--MessageBox("Ok")
end
function PartThree_Blow_C()
--do nothing
blowa = Find_Hint("STORY_TRIGGER_ZONE", "blowc-a")
blowb = Find_Hint("STORY_TRIGGER_ZONE", "blowc-b")
blowc = Find_Hint("STORY_TRIGGER_ZONE", "blowc-c")
blowd = Find_Hint("STORY_TRIGGER_ZONE", "blowc-d")
blowe = Find_Hint("STORY_TRIGGER_ZONE", "blowc-e")
blowf = Find_Hint("STORY_TRIGGER_ZONE", "blowc-f")
blowg = Find_Hint("STORY_TRIGGER_ZONE", "blowc-g")
blowh = Find_Hint("STORY_TRIGGER_ZONE", "blowc-h")
blowi = Find_Hint("STORY_TRIGGER_ZONE", "blowc-i")
blowj = Find_Hint("STORY_TRIGGER_ZONE", "blowc-j")
blowk = Find_Hint("STORY_TRIGGER_ZONE", "blowc-k")
blowl = Find_Hint("STORY_TRIGGER_ZONE", "blowc-l")
blowm = Find_Hint("STORY_TRIGGER_ZONE", "blowc-m")
blown = Find_Hint("STORY_TRIGGER_ZONE", "blowc-n")
explode = "THERMAL_DETONATOR_EXPLOSION"
effect = "STUNNED_PARTICLE_EFFECT"
cblowa = Create_Generic_Object("INVISIBLE_REVEAL_OBJECT", blowa.Get_Position(), neutral_player)
cblowb = Create_Generic_Object("INVISIBLE_REVEAL_OBJECT", blowb.Get_Position(), neutral_player)
cblowc = Create_Generic_Object("INVISIBLE_REVEAL_OBJECT", blowc.Get_Position(), neutral_player)
cblowd = Create_Generic_Object("INVISIBLE_REVEAL_OBJECT", blowd.Get_Position(), neutral_player)
cblowe = Create_Generic_Object("INVISIBLE_REVEAL_OBJECT", blowe.Get_Position(), neutral_player)
cblowf = Create_Generic_Object("INVISIBLE_REVEAL_OBJECT", blowf.Get_Position(), neutral_player)
cblowg = Create_Generic_Object("INVISIBLE_REVEAL_OBJECT", blowg.Get_Position(), neutral_player)
cblowh = Create_Generic_Object("INVISIBLE_REVEAL_OBJECT", blowh.Get_Position(), neutral_player)
cblowi = Create_Generic_Object("INVISIBLE_REVEAL_OBJECT", blowi.Get_Position(), neutral_player)
cblowj = Create_Generic_Object("INVISIBLE_REVEAL_OBJECT", blowj.Get_Position(), neutral_player)
cblowk = Create_Generic_Object("INVISIBLE_REVEAL_OBJECT", blowk.Get_Position(), neutral_player)
cblowl = Create_Generic_Object("INVISIBLE_REVEAL_OBJECT", blowl.Get_Position(), neutral_player)
cblowm = Create_Generic_Object("INVISIBLE_REVEAL_OBJECT", blowm.Get_Position(), neutral_player)
cblown = Create_Generic_Object("INVISIBLE_REVEAL_OBJECT", blown.Get_Position(), neutral_player)
cblowr = Create_Generic_Object("INVISIBLE_REVEAL_OBJECT", blowreactor.Get_Position(), neutral_player)
Sleep(.05)
cblowa.Attach_Particle_Effect(effect)
cblowa.Attach_Particle_Effect(explode)
Sleep(.05)
cblowb.Attach_Particle_Effect(effect)
cblowb.Attach_Particle_Effect(explode)
Sleep(.05)
cblowc.Attach_Particle_Effect(effect)
cblowc.Attach_Particle_Effect(explode)
Sleep(.05)
cblowd.Attach_Particle_Effect(effect)
cblowd.Attach_Particle_Effect(explode)
Sleep(.05)
cblowe.Attach_Particle_Effect(effect)
cblowe.Attach_Particle_Effect(explode)
Sleep(.15)
cblowf.Attach_Particle_Effect(effect)
cblowf.Attach_Particle_Effect(explode)
Sleep(.05)
cblowg.Attach_Particle_Effect(effect)
cblowg.Attach_Particle_Effect(explode)
Sleep(.05)
cblowh.Attach_Particle_Effect(effect)
cblowh.Attach_Particle_Effect(explode)
Sleep(.05)
cblowi.Attach_Particle_Effect(effect)
cblowi.Attach_Particle_Effect(explode)
Sleep(.05)
cblowj.Attach_Particle_Effect(effect)
cblowj.Attach_Particle_Effect(explode)
Sleep(.05)
cblowk.Attach_Particle_Effect(effect)
cblowk.Attach_Particle_Effect(explode)
Sleep(.05)
cblowl.Attach_Particle_Effect(effect)
cblowl.Attach_Particle_Effect(explode)
Sleep(.05)
cblowm.Attach_Particle_Effect(effect)
cblowm.Attach_Particle_Effect(explode)
Sleep(.05)
cblown.Attach_Particle_Effect(effect)
cblown.Attach_Particle_Effect(explode)
Sleep(.05)
cblowr.Attach_Particle_Effect(explode)
--MessageBox("Ok")
end
function PartThree_Blow_D()
--do nothing
blowa = Find_Hint("STORY_TRIGGER_ZONE", "blowd-a")
blowb = Find_Hint("STORY_TRIGGER_ZONE", "blowd-b")
blowc = Find_Hint("STORY_TRIGGER_ZONE", "blowd-c")
blowd = Find_Hint("STORY_TRIGGER_ZONE", "blowd-d")
blowe = Find_Hint("STORY_TRIGGER_ZONE", "blowd-e")
blowf = Find_Hint("STORY_TRIGGER_ZONE", "blowd-f")
blowg = Find_Hint("STORY_TRIGGER_ZONE", "blowd-g")
blowh = Find_Hint("STORY_TRIGGER_ZONE", "blowd-h")
blowi = Find_Hint("STORY_TRIGGER_ZONE", "blowd-i")
blowj = Find_Hint("STORY_TRIGGER_ZONE", "blowd-j")
blowk = Find_Hint("STORY_TRIGGER_ZONE", "blowd-k")
blowl = Find_Hint("STORY_TRIGGER_ZONE", "blowd-l")
blowm = Find_Hint("STORY_TRIGGER_ZONE", "blowd-m")
blown = Find_Hint("STORY_TRIGGER_ZONE", "blowd-n")
blowo = Find_Hint("STORY_TRIGGER_ZONE", "blowd-o")
blowreactor = Find_Hint("STORY_TRIGGER_ZONE", "blowreactor")
explode = "THERMAL_DETONATOR_EXPLOSION"
effect = "STUNNED_PARTICLE_EFFECT"
dblowa = Create_Generic_Object("INVISIBLE_REVEAL_OBJECT", blowa.Get_Position(), neutral_player)
dblowb = Create_Generic_Object("INVISIBLE_REVEAL_OBJECT", blowb.Get_Position(), neutral_player)
dblowc = Create_Generic_Object("INVISIBLE_REVEAL_OBJECT", blowc.Get_Position(), neutral_player)
dblowd = Create_Generic_Object("INVISIBLE_REVEAL_OBJECT", blowd.Get_Position(), neutral_player)
dblowe = Create_Generic_Object("INVISIBLE_REVEAL_OBJECT", blowe.Get_Position(), neutral_player)
dblowf = Create_Generic_Object("INVISIBLE_REVEAL_OBJECT", blowf.Get_Position(), neutral_player)
dblowg = Create_Generic_Object("INVISIBLE_REVEAL_OBJECT", blowg.Get_Position(), neutral_player)
dblowh = Create_Generic_Object("INVISIBLE_REVEAL_OBJECT", blowh.Get_Position(), neutral_player)
dblowi = Create_Generic_Object("INVISIBLE_REVEAL_OBJECT", blowi.Get_Position(), neutral_player)
dblowj = Create_Generic_Object("INVISIBLE_REVEAL_OBJECT", blowj.Get_Position(), neutral_player)
dblowk = Create_Generic_Object("INVISIBLE_REVEAL_OBJECT", blowk.Get_Position(), neutral_player)
dblowl = Create_Generic_Object("INVISIBLE_REVEAL_OBJECT", blowl.Get_Position(), neutral_player)
dblowm = Create_Generic_Object("INVISIBLE_REVEAL_OBJECT", blowm.Get_Position(), neutral_player)
dblown = Create_Generic_Object("INVISIBLE_REVEAL_OBJECT", blown.Get_Position(), neutral_player)
dblowo = Create_Generic_Object("INVISIBLE_REVEAL_OBJECT", blowo.Get_Position(), neutral_player)
dblowr = Create_Generic_Object("INVISIBLE_REVEAL_OBJECT", blowreactor.Get_Position(), neutral_player)
Sleep(.05)
dblowa.Attach_Particle_Effect(effect)
dblowa.Attach_Particle_Effect(explode)
Sleep(.05)
dblowb.Attach_Particle_Effect(effect)
dblowb.Attach_Particle_Effect(explode)
Sleep(.05)
dblowc.Attach_Particle_Effect(effect)
dblowc.Attach_Particle_Effect(explode)
Sleep(.05)
dblowd.Attach_Particle_Effect(effect)
dblowd.Attach_Particle_Effect(explode)
Sleep(.05)
dblowe.Attach_Particle_Effect(effect)
dblowe.Attach_Particle_Effect(explode)
Sleep(.05)
dblowf.Attach_Particle_Effect(effect)
dblowf.Attach_Particle_Effect(explode)
Sleep(.05)
dblowg.Attach_Particle_Effect(effect)
dblowg.Attach_Particle_Effect(explode)
Sleep(.05)
dblowh.Attach_Particle_Effect(effect)
dblowh.Attach_Particle_Effect(explode)
Sleep(.05)
dblowi.Attach_Particle_Effect(effect)
dblowi.Attach_Particle_Effect(explode)
Sleep(.05)
dblowj.Attach_Particle_Effect(effect)
dblowj.Attach_Particle_Effect(explode)
Sleep(.05)
dblowk.Attach_Particle_Effect(effect)
dblowk.Attach_Particle_Effect(explode)
Sleep(.05)
dblowl.Attach_Particle_Effect(effect)
dblowl.Attach_Particle_Effect(explode)
Sleep(.05)
dblowm.Attach_Particle_Effect(effect)
dblowm.Attach_Particle_Effect(explode)
Sleep(.05)
dblown.Attach_Particle_Effect(effect)
dblown.Attach_Particle_Effect(explode)
Sleep(.05)
dblowo.Attach_Particle_Effect(effect)
dblowo.Attach_Particle_Effect(explode)
Sleep(.05)
dblowr.Attach_Particle_Effect(explode)
--MessageBox("Ok")
end
function PartThree_IntroAdeptTwo()
-- this adept is easiest killed by timing the reactor hits to trap him in the explosions
adepttwoa = Create_Generic_Object("UM05_ADEPTTWO", adepttwospawna.Get_Position(), empire_player)
adepttwoa.Override_Max_Speed(.8)
adepttwob = Create_Generic_Object("UM05_ADEPTTWO", adepttwospawnb.Get_Position(), empire_player)
adepttwob.Override_Max_Speed(.7)
adepttwoc = Create_Generic_Object("UM05_ADEPTTWO", adepttwospawnc.Get_Position(), empire_player)
adepttwoc.Override_Max_Speed(.6)
adepttwod = Create_Generic_Object("UM05_ADEPTTWO", adepttwospawnd.Get_Position(), empire_player)
adepttwod.Override_Max_Speed(.8)
adepttwoe = Create_Generic_Object("UM05_ADEPTTWO", adepttwospawne.Get_Position(), empire_player)
adepttwoe.Override_Max_Speed(.7)
adepttwof = Create_Generic_Object("UM05_ADEPTTWO", adepttwospawnf.Get_Position(), empire_player)
adepttwof.Override_Max_Speed(.6)
adepttwog = Create_Generic_Object("UM05_ADEPTTWO", adepttwospawng.Get_Position(), empire_player)
adepttwog.Override_Max_Speed(.8)
--adepttwoh = Create_Generic_Object("UM05_ADEPTTHREE", adepttwospawna.Get_Position(), empire_player)
--adepttwoh.Override_Max_Speed(1)
--adepttwoi = Create_Generic_Object("UM05_ADEPTTHREE", adepttwospawnb.Get_Position(), empire_player)
--adepttwoi.Override_Max_Speed(.9)
--adepttwoj = Create_Generic_Object("UM05_ADEPTTHREE", adepttwospawnc.Get_Position(), empire_player)
--adepttwoj.Override_Max_Speed(.7)
--adepttwok = Create_Generic_Object("UM05_ADEPTTHREE", adepttwospawnd.Get_Position(), empire_player)
--adepttwok.Override_Max_Speed(1)
--adepttwol = Create_Generic_Object("UM05_ADEPTTHREE", adepttwospawne.Get_Position(), empire_player)
--adepttwol.Override_Max_Speed(.75)
--adepttwom = Create_Generic_Object("UM05_ADEPTTHREE", adepttwospawnf.Get_Position(), empire_player)
--adepttwom.Override_Max_Speed(.8)
adepttwon = Create_Generic_Object("UM05_ADEPTTHREE", adepttwospawng.Get_Position(), empire_player)
adepttwon.Override_Max_Speed(.7)
VictoryCondition_AdeptTwoSpawned = true
Story_Event("UM11_OBJECTIVE_05")
end
function PartThree_UraiDone()
-- urai emerges from the maintenance hatch and meets up with Tyber
Story_Event("CHATTER_19")
Sleep(2)
Fade_Screen_Out(2)
Sleep(2)
VictoryCondition_MeetTyber = true
end
function CINE_Silri_Troopers()
Cancel_Fast_Forward()
CINE_Active_Silri_Troopers = true
Suspend_AI(1)
Lock_Controls(1)
Letter_Box_In(0)
Start_Cinematic_Camera()
silri.Hide(true)
cuddles = Find_Nearest(silri, "CUDDLES_THE_RANCOR")
if TestValid(cuddles) then
cuddles.Hide(true)
end
if TestValid(sithwall) then
sithwall.Despawn()
end
cin_silri = Create_Generic_Object("SILRI", silriholospawn.Get_Position(), neutral_player)
cin_cuddles = Create_Generic_Object("CUDDLES_THE_RANCOR", cuddlesholospawn.Get_Position(), neutral_player)
cin_silri.Face_Immediate(holocron)
cin_cuddles.Face_Immediate(holocron)
silri.Prevent_AI_Usage(true)
cin_silri.Prevent_AI_Usage(true)
cin_silri.Prevent_All_Fire(true)
Sleep(1)
Fade_Screen_In(1)
-- Set_Cinematic_Camera_Key(target_pos, xoffset_dist, yoffset_pitch, zoffset_yaw, angles?, attach_object, use_object_rotation, cinematic_animation)
Set_Cinematic_Camera_Key(camocronpos, 0, 0, 35, 0, 0, 0, 0)
Set_Cinematic_Target_Key(camocronlook, 0, 0, -5, 0, 0, 0, 0)
Sleep(.5)
cin_silri.Turn_To_Face(cin_cuddles)
cin_silri.Play_Animation("cinematic", false, 0)
Story_Event("CHATTER_29")
Sleep(.5)
cin_cuddles.Turn_To_Face(cin_silri)
while not State_Mission_29_Done do Sleep(.5) end
Story_Event("CHATTER_40")
cin_silri.Move_To(camsilrileavepos)
cin_cuddles.Move_To(camsilrileavepos)
Set_Cinematic_Camera_Key(camsilrileavepos, 0, 0, 30, 0, 0, 0, 0)
Set_Cinematic_Target_Key(camsilrileavelook, 0, 0, -15, 0, 0, 0, 0)
while not State_Mission_40_Done do Sleep(.5) end
Fade_Screen_Out(2)
Sleep(2)
Create_Thread("CINE_Silri_Troopers_Cleanup")
end
function CINE_Silri_Troopers_Cleanup()
CINE_Active_Silri_Troopers = false
current_cine_id = nil
if TestValid(cin_silri) then cin_silri.Despawn() end
if TestValid(cin_cuddles) then cin_cuddles.Despawn() end
silri.Teleport_And_Face(silristartfour)
cuddles = Find_Nearest(silri, "CUDDLES_THE_RANCOR")
if TestValid(cuddles) then
cuddles.Teleport_And_Face(cuddlesstartfour)
end
End_Cinematic_Camera()
Letter_Box_Out(.5)
Lock_Controls(0)
Suspend_AI(0)
Create_Thread("MissionObjective_PartFour")
end
function MissionObjective_PartFour()
if VictoryCondition_MeetTyber then
ablowa.Despawn()
ablowb.Despawn()
ablowc.Despawn()
ablowd.Despawn()
ablowe.Despawn()
ablowf.Despawn()
ablowg.Despawn()
ablowh.Despawn()
ablowr.Despawn()
bblowa.Despawn()
bblowb.Despawn()
bblowc.Despawn()
bblowd.Despawn()
bblowe.Despawn()
bblowf.Despawn()
bblowg.Despawn()
bblowh.Despawn()
bblowr.Despawn()
cblowa.Despawn()
cblowb.Despawn()
cblowc.Despawn()
cblowd.Despawn()
cblowe.Despawn()
cblowf.Despawn()
cblowg.Despawn()
cblowh.Despawn()
cblowi.Despawn()
cblowj.Despawn()
cblowk.Despawn()
cblowl.Despawn()
cblowm.Despawn()
cblown.Despawn()
cblowr.Despawn()
dblowa.Despawn()
dblowb.Despawn()
dblowc.Despawn()
dblowd.Despawn()
dblowe.Despawn()
dblowf.Despawn()
dblowg.Despawn()
dblowh.Despawn()
dblowi.Despawn()
dblowj.Despawn()
dblowk.Despawn()
dblowl.Despawn()
dblowm.Despawn()
dblown.Despawn()
dblowo.Despawn()
dblowr.Despawn()
end
doore2 = Create_Generic_Object("UM05_MOVING_DOOR", doore2spawn.Get_Position(), neutral_player)
doore2.Play_Animation("Cinematic",false,3)
doore2.Teleport_And_Face(doore2spawn)
MissionPartFourStarted = true
silri.Set_In_Limbo(false)
silri.Hide(false)
silri.Set_Selectable(true)
silri.Make_Invulnerable(false)
urai_fen.Set_In_Limbo(true)
urai_fen.Hide(true)
urai_fen.Set_Selectable(false)
urai_fen.Make_Invulnerable(true)
cuddles = Find_Nearest(silri, "CUDDLES_THE_RANCOR")
if TestValid(cuddles) then
cuddles.Set_In_Limbo(false)
cuddles.Hide(false)
cuddles.Make_Invulnerable(false)
cuddles.Set_Selectable(true)
end
cuddles = Find_Nearest(silri, "CUDDLES_THE_RANCOR")
if TestValid(cuddles) then
else
silri.Activate_Ability("SUMMON", silri)
end
Fade_Screen_In(1)
Point_Camera_At(silri)
underworld_player.Select_Object(silri)
Fade_Screen_In(1)
Sleep(1)
Story_Event("UM11_OBJECTIVE_06")
Register_Prox(activatetroopers, Prox_ActivateTroopers, 75, underworld_player)
Story_Event("UM11_HINT_10")
Sleep(1)
doore2.Despawn()
doore2 = Create_Generic_Object("UM02_KILLABLE_DOOR", doore2spawn.Get_Position(), underworld_player)
doore2.Teleport_And_Face(doore2spawn)
doore2.Teleport_And_Face(doore2spawn)
doore2.Set_Selectable(false)
doore2.Make_Invulnerable(true)
doore2.Highlight(true)
Add_Radar_Blip(doore2, "doore2")
end
function Prox_ActivateTroopers(self_obj, trigger_obj)
if trigger_obj == silri then
Create_Thread("PartFour_ReleaseTroopers")
Register_Timer(Hint_SilriCuddles, 1)
Story_Event("CHATTER_50")
self_obj.Cancel_Event_Object_In_Range(Prox_ActivateTroopers)
Story_Event("UM11_OBJECTIVE_06A")
end
end
function Hint_SilriCuddles()
if not VictoryCondition_DarkTroopersDead then
Story_Event("UM11_HINT_04")
Register_Timer(Hint_SilriCuddles, 15)
end
end
function PartFour_ReleaseTroopers()
dt1.Attach_Particle_Effect("STUNNED_PARTICLE_EFFECT")
Sleep(6)
dt1a = Create_Generic_Object("DARK_TROOPER_PHASEI", dt1.Get_Position(), empire_player)
dt1.Despawn()
dt1a.Prevent_AI_Usage(true)
if TestValid(silri) then dt1a.Attack_Move(silri) end
dt2.Attach_Particle_Effect("STUNNED_PARTICLE_EFFECT")
Sleep(6)
dt2a = Create_Generic_Object("DARK_TROOPER_PHASEII", dt2.Get_Position(), empire_player)
dt2.Despawn()
dt2a.Prevent_AI_Usage(true)
if TestValid(silri) then dt2a.Attack_Move(silri) end
dt3.Attach_Particle_Effect("STUNNED_PARTICLE_EFFECT")
Sleep(6)
dt3a = Create_Generic_Object("DARK_TROOPER_PHASEIII", dt3.Get_Position(), empire_player)
dt3.Despawn()
dt3a.Prevent_AI_Usage(true)
if TestValid(silri) then dt3a.Attack_Move(silri) end
dt4.Attach_Particle_Effect("STUNNED_PARTICLE_EFFECT")
Sleep(5)
dt4a = Create_Generic_Object("DARK_TROOPER_PHASEI", dt4.Get_Position(), empire_player)
dt4.Despawn()
dt4a.Prevent_AI_Usage(true)
if TestValid(silri) then dt4a.Attack_Move(silri) end
dt5.Attach_Particle_Effect("STUNNED_PARTICLE_EFFECT")
Sleep(5)
dt5a = Create_Generic_Object("DARK_TROOPER_PHASEII", dt5.Get_Position(), empire_player)
dt5.Despawn()
dt5a.Prevent_AI_Usage(true)
if TestValid(silri) then dt5a.Attack_Move(silri) end
dt6.Attach_Particle_Effect("STUNNED_PARTICLE_EFFECT")
Sleep(4)
dt6a = Create_Generic_Object("DARK_TROOPER_PHASEIII", dt6.Get_Position(), empire_player)
dt6.Despawn()
dt6a.Prevent_AI_Usage(true)
if TestValid(silri) then dt6a.Attack_Move(silri) end
dt7.Attach_Particle_Effect("STUNNED_PARTICLE_EFFECT")
Sleep(4)
dt7a = Create_Generic_Object("DARK_TROOPER_PHASEI", dt7.Get_Position(), empire_player)
dt7.Despawn()
dt7a.Prevent_AI_Usage(true)
if TestValid(silri) then dt7a.Attack_Move(silri) end
dt8.Attach_Particle_Effect("STUNNED_PARTICLE_EFFECT")
Sleep(4)
dt8a = Create_Generic_Object("DARK_TROOPER_PHASEII", dt8.Get_Position(), empire_player)
dt8.Despawn()
dt8a.Prevent_AI_Usage(true)
if TestValid(silri) then dt8a.Attack_Move(silri) end
dt9.Attach_Particle_Effect("STUNNED_PARTICLE_EFFECT")
Sleep(3)
dt9a = Create_Generic_Object("DARK_TROOPER_PHASEIII", dt9.Get_Position(), empire_player)
dt9.Despawn()
dt9a.Prevent_AI_Usage(true)
if TestValid(silri) then dt9a.Attack_Move(silri) end
VictoryCondition_DarkTroopersSpawned = true
end
function PartFive_SetupGroup()
doore2.Highlight(false)
Remove_Radar_Blip("doore2")
current_cine_id = Create_Thread("CINE_Grouped_Up")
end
function CINE_Grouped_Up()
Cancel_Fast_Forward()
CINE_Active_Grouped_Up = true
if TestValid(dt1) then dt1.Despawn() end
if TestValid(dt2) then dt2.Despawn() end
if TestValid(dt3) then dt3.Despawn() end
if TestValid(dt4) then dt4.Despawn() end
if TestValid(dt5) then dt5.Despawn() end
if TestValid(dt6) then dt6.Despawn() end
if TestValid(dt7) then dt7.Despawn() end
if TestValid(dt8) then dt8.Despawn() end
if TestValid(dt9) then dt9.Despawn() end
Fade_Screen_Out(1)
Sleep(1)
Suspend_AI(1)
Lock_Controls(1)
Letter_Box_In(0)
Start_Cinematic_Camera()
silri.Hide(true)
silri.Prevent_AI_Usage(true)
cuddles = Find_Nearest(silri, "CUDDLES_THE_RANCOR")
if TestValid(cuddles) then
cuddles.Hide(true)
end
cin_urai = Create_Generic_Object("URAI_FEN", cineddduraispawn.Get_Position(), neutral_player)
cin_tyber = Create_Generic_Object("TYBER_ZANN", cinedddtyberspawn.Get_Position(), neutral_player)
cin_urai.Face_Immediate(silridddspawn)
cin_tyber.Face_Immediate(silridddspawn)
cin_silri = Create_Generic_Object("SILRI", silridddspawn.Get_Position(), neutral_player)
cin_cuddles = Create_Generic_Object("CUDDLES_THE_RANCOR", cuddlesdddspawn.Get_Position(), neutral_player)
cin_trooper = Create_Generic_Object("DARK_TROOPER_PHASEIII", trooperdddspawn.Get_Position(), neutral_player)
cin_silri.Prevent_AI_Usage(true)
cin_silri.Prevent_All_Fire(true)
cin_silri.Face_Immediate(trooperdddspawn)
cin_cuddles.Face_Immediate(trooperdddspawn)
cin_silri.Suspend_Locomotor(true)
Sleep(1)
cin_trooper.Take_Damage(9999)
-- Set_Cinematic_Camera_Key(target_pos, xoffset_dist, yoffset_pitch, zoffset_yaw, angles?, attach_object, use_object_rotation, cinematic_animation)
Set_Cinematic_Camera_Key(camdddpos, 0, 0, 35, 0, 0, 0, 0)
Set_Cinematic_Target_Key(camdddlook, 0, 0, -5, 0, 0, 0, 0)
Fade_Screen_In(1)
Sleep(3.5)
cin_silri.Suspend_Locomotor(false)
cin_silri.Turn_To_Face(cin_cuddles)
Sleep(.5)
cin_silri.Play_Animation("cinematic", false, 0)
Story_Event("CHATTER_11")
cin_cuddles.Turn_To_Face(cin_silri)
Sleep(1)
cin_silri.Suspend_Locomotor(true)
Sleep(1)
doora.Play_Animation("Cinematic", false, 1)
Sleep(1)
Set_Cinematic_Camera_Key(camfindsilripos, 0, 0, 22, 0, 0, 0, 0)
Set_Cinematic_Target_Key(camfindsilrilook, 0, 0, -22, 0, 0, 0, 0)
Transition_Cinematic_Camera_Key(camfindsilripos, 3, 0, 0, 26, 0, 0, 0, 0)
Sleep(1)
cin_silri.Play_Animation("idle", false, 0)
cin_silri.Suspend_Locomotor(false)
cin_silri.Turn_To_Face(cin_tyber)
Sleep(1)
cin_silri.Suspend_Locomotor(true)
cin_cuddles.Turn_To_Face(cin_tyber)
doora.Despawn()
while not State_Mission_11_Done do Sleep(.5) end
Set_Cinematic_Camera_Key(camdddpos, 0, 0, 35, 0, 0, 0, 0)
Set_Cinematic_Target_Key(camdddlook, 0, 0, -10, 0, 0, 0, 0)
cin_urai.Override_Max_Speed(.75)
cin_tyber.Override_Max_Speed(.75)
cin_urai.Move_To(uraidddgoto)
cin_tyber.Move_To(tyberdddgoto)
Story_Event("CHATTER_30")
while not State_Mission_30_Done do Sleep(.5) end
Set_Cinematic_Camera_Key(cammeetsilripos, 0, 0, 30, 0, 0, 0, 0)
Set_Cinematic_Target_Key(cammeetsilrilook, 0, 0, -0, 0, 0, 0, 0)
cin_silri.Play_Animation("cinematic", false, 0)
Story_Event("CHATTER_31")
while not State_Mission_31_Done do Sleep(.5) end
cin_silri.Play_Animation("idle", false, 0)
Set_Cinematic_Camera_Key(camfindsilripos, 0, 0, 26, 0, 0, 0, 0)
Set_Cinematic_Target_Key(camfindsilrilook, 0, 0, -22, 0, 0, 0, 0)
Sleep(1)
cin_urai.Play_Animation("cinematic", false, 0)
Story_Event("CHATTER_32")
Sleep(1)
cin_urai.Override_Max_Speed(1)
cin_tyber.Override_Max_Speed(1)
cin_silri.Suspend_Locomotor(false)
cin_silri.Move_To(partfourmeet)
cin_cuddles.Move_To(partfourmeet)
cin_tyber.Move_To(partfourmeet)
cin_urai.Move_To(partfourmeet)
while not State_Mission_32_Done do Sleep(.5) end
Fade_Screen_Out(1)
Sleep(1)
Create_Thread("CINE_Grouped_Up_Cleanup")
end
function CINE_Grouped_Up_Cleanup()
CINE_Active_Grouped_Up = false
current_cine_id = nil
if TestValid(cin_urai) then cin_urai.Despawn() end
if TestValid(cin_tyber) then cin_tyber.Despawn() end
if TestValid(cin_silri) then cin_silri.Despawn() end
if TestValid(cin_cuddles) then cin_cuddles.Despawn() end
if TestValid(cin_trooper) then cin_trooper.Despawn() end
if TestValid(doora) then doora.Despawn() end
cuddles = Find_Nearest(silri, "CUDDLES_THE_RANCOR")
if TestValid(cuddles) then
else
silri.Activate_Ability("SUMMON", silri)
end
End_Cinematic_Camera()
Letter_Box_Out(.5)
Lock_Controls(0)
Suspend_AI(0)
Create_Thread("PartFour_StartFive")
end
function PartFour_StartFive()
if not VictoryCondition_ReachedDoorE2 then
if TestValid(doore2) then
doore2.Highlight(false)
Remove_Radar_Blip("doore2")
end
VictoryCondition_ReachedDoorE2 = true
end
MissionPartFourStarted = true
VictoryCondition_DarkTroopersDead = true
VictoryCondition_EndedFour = true
end
function Kill_Off_Extras()
extras = Find_All_Objects_With_Hint("hallguard3")
for k, unit in pairs(extras) do
if TestValid(unit) then
unit.Take_Damage(9999)
end
end
extras = Find_All_Objects_With_Hint("hallguard4")
for k, unit in pairs(extras) do
if TestValid(unit) then
unit.Take_Damage(9999)
end
end
extras = Find_All_Objects_With_Hint("hallguard5")
for k, unit in pairs(extras) do
if TestValid(unit) then
unit.Take_Damage(9999)
end
end
extras = Find_All_Objects_With_Hint("hallguard6")
for k, unit in pairs(extras) do
if TestValid(unit) then
unit.Take_Damage(9999)
end
end
extras = Find_All_Objects_With_Hint("hallguard7")
for k, unit in pairs(extras) do
if TestValid(unit) then
unit.Take_Damage(9999)
end
end
extras = Find_All_Objects_With_Hint("hallguard8")
for k, unit in pairs(extras) do
if TestValid(unit) then
unit.Take_Damage(9999)
end
end
extras = Find_All_Objects_With_Hint("hallguard9")
for k, unit in pairs(extras) do
if TestValid(unit) then
unit.Take_Damage(9999)
end
end
extras = Find_All_Objects_With_Hint("hallguard10")
for k, unit in pairs(extras) do
if TestValid(unit) then
unit.Take_Damage(9999)
end
end
extras = Find_All_Objects_With_Hint("hallguard11")
for k, unit in pairs(extras) do
if TestValid(unit) then
unit.Take_Damage(9999)
end
end
extras = Find_All_Objects_With_Hint("hallguard12")
for k, unit in pairs(extras) do
if TestValid(unit) then
unit.Take_Damage(9999)
end
end
extras = Find_All_Objects_With_Hint("hallguard13")
for k, unit in pairs(extras) do
if TestValid(unit) then
unit.Take_Damage(9999)
end
end
end
function MissionObjective_PartFive()
silri.Set_In_Limbo(false)
silri.Hide(false)
silri.Make_Invulnerable(false)
silri.Set_Selectable(true)
silri.Teleport_And_Face(partfoursilri)
silri.Move_To(partfourmeet)
cuddles = Find_Nearest(silri, "CUDDLES_THE_RANCOR")
if TestValid(cuddles) then
cuddles.Set_In_Limbo(false)
cuddles.Teleport_And_Face(partfourcuddles)
cuddles.Move_To(partfourmeet)
cuddles.Hide(false)
cuddles.Set_Selectable(true)
cuddles.Make_Invulnerable(false)
end
Create_Thread("Kill_Off_Extras")
extras = Find_All_Objects_Of_Type("STORMTROOPER")
for k, unit in pairs(extras) do
if TestValid(unit) then
if unit.Get_Owner() == underworld_player then
unit.Set_In_Limbo(false)
unit.Teleport_And_Face(extraguys)
unit.Set_Selectable(true)
unit.Hide(false)
unit.Make_Invulnerable(false)
end
end
end
extras = Find_All_Objects_Of_Type("SQUAD_STORMTROOPER")
for k, unit in pairs(extras) do
if TestValid(unit) then
if unit.Get_Owner() == underworld_player then
unit.Set_In_Limbo(false)
unit.Teleport_And_Face(extraguys)
unit.Set_Selectable(true)
unit.Hide(false)
unit.Make_Invulnerable(false)
end
end
end
extras = Find_All_Objects_Of_Type("STORMTROOPER_TEAM")
for k, unit in pairs(extras) do
if TestValid(unit) then
if unit.Get_Owner() == underworld_player then
unit.Teleport_And_Face(extraguys)
unit.Set_Selectable(true)
unit.Make_Invulnerable(false)
end
end
end
urai_fen.Set_In_Limbo(false)
urai_fen.Hide(false)
urai_fen.Set_Selectable(true)
urai_fen.Make_Invulnerable(false)
urai_fen.Teleport_And_Face(uraimeet)
urai_fen.Move_To(partfourmeet)
tyber_zann.Set_In_Limbo(false)
tyber_zann.Hide(false)
tyber_zann.Set_Selectable(true)
tyber_zann.Make_Invulnerable(false)
tyber_zann.Teleport_And_Face(meetspot)
tyber_zann.Move_To(partfourmeet)
doorj = Create_Generic_Object("UM05_MOVING_DOOR", doorjspawn.Get_Position(), neutral_player)
doorj.Teleport_And_Face(doorjspawn)
doorj.Play_Animation("Cinematic",false,3)
Fade_Screen_In(1)
--Point_Camera_At(camstart_five)
mdu_one = Create_Generic_Object("UNDERWORLD_MOBILE_DEFENSE_UNIT", mdua.Get_Position(), empire_player)
mdu_one.Prevent_Opportunity_Fire(true)
mdu_one.Suspend_Locomotor(true)
mdu_two = Create_Generic_Object("UNDERWORLD_MOBILE_DEFENSE_UNIT", mdub.Get_Position(), empire_player)
mdu_two.Prevent_Opportunity_Fire(true)
mdu_two.Suspend_Locomotor(true)
mdu_three = Create_Generic_Object("UNDERWORLD_MOBILE_DEFENSE_UNIT", mduc.Get_Position(), empire_player)
mdu_three.Prevent_Opportunity_Fire(true)
mdu_three.Suspend_Locomotor(true)
Point_Camera_At(tyber_zann)
underworld_player.Select_Object(tyber_zann)
underworld_player.Select_Object(urai_fen)
underworld_player.Select_Object(silri)
Fade_Screen_In(1)
Sleep(1)
range = 200
Register_Prox(hallguard1, Prox_HallGuard_1, range, underworld_player)
Register_Prox(hallguard2, Prox_HallGuard_2, range, underworld_player)
movegroup.Highlight(true)
Add_Radar_Blip(movegroup, "movegroup")
Story_Event("UM11_OBJECTIVE_08")
Create_Thread("PartFive_SpawnAdepts")
Create_Thread("Hunt_Underworld", { redguard1 })
Create_Thread("Hunt_Underworld", { redguard2 })
end
function PartFive_SpawnAdepts()
adeptthreea = Create_Generic_Object("UM05_ADEPTTHREE", adeptthreespawn.Get_Position(), empire_player)
adeptthreea.Override_Max_Speed(1)
Register_Prox(adeptthreea, Prox_AdeptsTaunts, 100, underworld_player)
adeptthreeb = Create_Generic_Object("UM05_ADEPTTHREE", adeptthreespawn.Get_Position(), empire_player)
adeptthreeb.Override_Max_Speed(.8)
adeptthreec = Create_Generic_Object("UM05_ADEPTTHREE", adeptthreespawn.Get_Position(), empire_player)
adeptthreec.Override_Max_Speed(.6)
VictoryCondition_AdeptThreeSpawned = true
Story_Event("UM11_OBJECTIVE_07")
end
function Prox_AdeptsTaunts(self_obj, trigger_obj)
if trigger_obj == silri then
if TestValid(adeptthreea) or TestValid(adeptthreeb) or TestValid(adeptthreec) then
Story_Event("CHATTER_09")
end
while not State_Mission_09_Done do Sleep(.5) end
if TestValid(silri) then
Story_Event("CHATTER_10")
end
self_obj.Cancel_Event_Object_In_Range(Prox_AdeptsTaunts)
end
end
function Prox_GetMDUs(self_obj, trigger_obj)
if trigger_obj == tyber_zann then
mdu_one.Change_Owner(underworld_player)
mdu_one.Suspend_Locomotor(false)
mdu_one.Move_To(partsix_mdus)
mdu_two.Change_Owner(underworld_player)
mdu_two.Suspend_Locomotor(false)
mdu_two.Move_To(partsix_mdus)
mdu_three.Change_Owner(underworld_player)
mdu_three.Suspend_Locomotor(false)
mdu_three.Move_To(partsix_mdus)
mdu_one.Highlight(true)
Add_Radar_Blip(mdu_one, "mdu_one")
mdu_two.Highlight(true)
Add_Radar_Blip(mdu_two, "mdu_two")
mdu_three.Highlight(true)
Add_Radar_Blip(mdu_three, "mdu_three")
Register_Timer(PartFive_ShowMDUs, 9)
self_obj.Cancel_Event_Object_In_Range(Prox_GetMDUs)
Story_Event("CHATTER_20")
end
end
function PartFive_ShowMDUs()
mdu_one.Highlight(false)
Remove_Radar_Blip("mdu_one")
mdu_two.Highlight(false)
Remove_Radar_Blip("mdu_two")
mdu_three.Highlight(false)
Remove_Radar_Blip("mdu_three")
end
function Prox_MoveGroup(self_obj, trigger_obj)
if trigger_obj.Get_Owner() == underworld_player then
movegroup.Highlight(false)
Remove_Radar_Blip("movegroup")
self_obj.Cancel_Event_Object_In_Range(Prox_MoveGroup)
Create_Thread("CINE_Outside_Vault_Setup")
end
end
function CINE_Outside_Vault_Setup()
Suspend_AI(1)
Lock_Controls(1)
Fade_Screen_Out(1)
Sleep(1)
Letter_Box_In(0)
doorf = Create_Generic_Object("UM05_MOVING_DOOR", doorfspawn.Get_Position(), neutral_player)
doorf.Teleport_And_Face(doorfspawn)
--urai_fen.Set_Selectable(false)
urai_fen.Teleport_And_Face(fiveuraispawn)
urai_fen.Move_To(urai_door)
tyber_zann.Teleport_And_Face(partfivetyber)
tyber_zann.Move_To(fivetyberrunto)
silri.Teleport_And_Face(partfivesilri)
silri.Move_To(fivesilrirunto)
cuddles = Find_Nearest(silri, "CUDDLES_THE_RANCOR")
if TestValid(cuddles) then
cuddles.Teleport_And_Face(partfivecuddles)
cuddles.Move_To(fivecuddlesrunto)
end
extras = Find_All_Objects_Of_Type("STORMTROOPER")
for k, unit in pairs(extras) do
if TestValid(unit) then
if unit.Get_Owner() == underworld_player then
unit.Teleport_And_Face(partfiveextras)
unit.Move_To(fiveextrasrunto)
end
end
end
extras = Find_All_Objects_Of_Type("SQUAD_STORMTROOPER")
for k, unit in pairs(extras) do
if TestValid(unit) then
if unit.Get_Owner() == underworld_player then
unit.Teleport_And_Face(partfiveextras)
end
end
end
extras = Find_All_Objects_Of_Type("STORMTROOPER_TEAM")
for k, unit in pairs(extras) do
if TestValid(unit) then
if unit.Get_Owner() == underworld_player then
unit.Teleport_And_Face(partfiveextras)
end
end
end
mdus = Find_All_Objects_Of_Type("UNDERWORLD_MOBILE_DEFENSE_UNIT")
for k, unit in pairs(mdus) do
if TestValid(unit) then
--JSY: don't move MDUs that have been built on. The teleport and face separates them from the built object
--and then the Move_To crashes the script
if not TestValid(unit.Get_Build_Pad_Contents()) then
if unit.Get_Owner() == underworld_player then
unit.Activate_Ability("DEPLOY", false)
unit.Teleport_And_Face(partfivemdus)
unit.Move_To(fivemdusrunto)
end
else
if unit.Get_Owner() == underworld_player then
unit.Take_Damage(9999)
if TestValid(unit) then
unit.Despawn()
end
newunit=Create_Generic_Object("UNDERWORLD_MOBILE_DEFENSE_UNIT",partfivemdus.Get_Position(),underworld_player)
newunit.Move_To(fivemdusrunto)
end
end
end
end
current_cine_id = Create_Thread("CINE_Outside_Vault")
end
function CINE_Outside_Vault()
Cancel_Fast_Forward()
CINE_Active_Outside_Vault = true
Start_Cinematic_Camera()
doorf.Play_Animation("Cinematic",false,2)
doorh.Play_Animation("Cinematic",false,2)
-- Set_Cinematic_Camera_Key(target_pos, xoffset_dist, yoffset_pitch, zoffset_yaw, angles?, attach_object, use_object_rotation, cinematic_animation)
Set_Cinematic_Camera_Key(camdoorclosepos, 0, 0, 40, 0, 0, 0, 0)
Set_Cinematic_Target_Key(camdoorcloselook, 0, 0, 10, 0, 0, 0, 0)
Fade_Screen_In(1)
Sleep(1.5)
doorh.Play_Animation("Cinematic",false,3)
Sleep(.5)
doorf.Play_Animation("Cinematic",false,3)
Sleep(.5)
Set_Cinematic_Camera_Key(camuraiworkpos, 0, 0, 30, 0, 0, 0, 0)
Set_Cinematic_Target_Key(camuraiworklook, 0, 0, -10, 0, 0, 0, 0)
tyber_zann.Play_Animation("cinematic", true, 2)
Story_Event("CHATTER_21")
while not State_Mission_21_Done do Sleep(.5) end
tyber_zann.Play_Animation("idle", true, 0)
urai_fen.Turn_To_Face(doorh)
urai_fen.Play_Animation("cinematic", true, 0)
Story_Event("CHATTER_22")
while not State_Mission_22_Done do Sleep(.5) end
urai_fen.Play_Animation("idle", true, 0)
Set_Cinematic_Camera_Key(camoutvtyberpos, 0, 0, 20, 0, 0, 0, 0)
Set_Cinematic_Target_Key(camoutvtyberlook, 0, 0, 0, 0, 0, 0, 0)
tyber_zann.Play_Animation("cinematic", true, 2)
Story_Event("CHATTER_26")
while not State_Mission_26_Done do Sleep(.5) end
tyber_zann.Play_Animation("idle", true, 0)
Fade_Screen_Out(1)
Sleep(1)
Create_Thread("CINE_Outside_Vault_Cleanup")
end
function CINE_Outside_Vault_Cleanup()
CINE_Active_Outside_Vault = false
current_cine_id = nil
doorf.Despawn()
doorf = Create_Generic_Object("UM02_KILLABLE_DOOR", doorfspawn.Get_Position(), underworld_player)
doorf.Teleport_And_Face(doorfspawn)
doorf.Teleport_And_Face(doorfspawn)
doorf.Set_Selectable(false)
doorf.Make_Invulnerable(true)
Fade_Screen_In(1)
Point_Camera_At(tyber_zann)
underworld_player.Select_Object(tyber_zann)
underworld_player.Select_Object(urai_fen)
underworld_player.Select_Object(silri)
cuddles = Find_Nearest(silri, "CUDDLES_THE_RANCOR")
if TestValid(cuddles) then
else
silri.Activate_Ability("SUMMON", silri)
end
End_Cinematic_Camera()
Letter_Box_Out(.5)
Lock_Controls(0)
Suspend_AI(0)
Fade_Screen_In(1)
Sleep(1)
Create_Thread("PartFive_SpringTrap")
Register_Timer(Hint_UseMDUs, 1)
end
function Hint_UseMDUs()
if not VictoryCondition_GuardsDead then
Story_Event("UM11_HINT_05")
Register_Timer(Hint_UseMDUs, 20)
end
end
function PartFive_SpringTrap()
Sleep(3)
troopsa = Create_Generic_Object("DARK_TROOPER_PHASEIII", spawnlefta.Get_Position(), empire_player)
troopsa.Prevent_AI_Usage(true)
troopsa.Move_To(movetroopsa1)
Sleep(2)
troopsb = Create_Generic_Object("DARK_TROOPER_PHASEIII", spawnrightb.Get_Position(), empire_player)
troopsb.Prevent_AI_Usage(true)
troopsb.Move_To(movetroopsb)
Sleep(2)
troopsd = Create_Generic_Object("DARK_TROOPER_PHASEIII", spawnlefta.Get_Position(), empire_player)
troopsd.Prevent_AI_Usage(true)
troopsd.Move_To(movetroopsa2)
Sleep(2)
troopsc = Create_Generic_Object("DARK_TROOPER_PHASEIII", spawnrightc.Get_Position(), empire_player)
troopsc.Prevent_AI_Usage(true)
troopsc.Move_To(movetroopsc)
Sleep(2)
troopse = Create_Generic_Object("DARK_TROOPER_PHASEIII", spawnlefta.Get_Position(), empire_player)
troopse.Prevent_AI_Usage(true)
troopse.Move_To(movetroopsa3)
VictoryCondition_GuardsSpawned = true
Create_Thread("PartFive_TroopsAttack")
end
function PartFive_TroopsAttack()
Sleep(3)
if TestValid(troopsa) then
if troopsa.Is_Ability_Ready("JET_PACK") then
troopsa.Activate_Ability("JET_PACK", landinga)
end
end
Sleep(3)
if TestValid(troopsb) then
if troopsb.Is_Ability_Ready("JET_PACK") then
troopsb.Activate_Ability("JET_PACK", landingb)
end
end
Sleep(3)
if TestValid(troopsc) then
if troopsc.Is_Ability_Ready("JET_PACK") then
troopsc.Activate_Ability("JET_PACK", landingc)
end
end
Sleep(3)
if TestValid(troopsd) then
if troopsd.Is_Ability_Ready("JET_PACK") then
troopsd.Activate_Ability("JET_PACK", landingd)
end
end
Sleep(3)
if TestValid(troopse) then
if troopse.Is_Ability_Ready("JET_PACK") then
troopse.Activate_Ability("JET_PACK", landinge)
end
end
Sleep(1)
Create_Thread("PartFive_TroopsUseMissiles")
end
function PartFive_TroopsUseMissiles()
while not VictoryCondition_GuardsDead do
if TestValid(troopsa) then
if not troopsa.Is_Ability_Active("JET_PACK") then
if troopsa.Is_Ability_Ready("DEPLOY") then
troopsa.Activate_Ability("DEPLOY", true)
end
end
end
if TestValid(troopsb) then
if not troopsb.Is_Ability_Active("JET_PACK") then
if troopsb.Is_Ability_Ready("DEPLOY") then
troopsb.Activate_Ability("DEPLOY", true)
end
end
end
if TestValid(troopsc) then
if not troopsc.Is_Ability_Active("JET_PACK") then
if troopsc.Is_Ability_Ready("DEPLOY") then
troopsc.Activate_Ability("DEPLOY", true)
end
end
end
if TestValid(troopsd) then
if not troopsd.Is_Ability_Active("JET_PACK") then
if troopsd.Is_Ability_Ready("DEPLOY") then
troopsd.Activate_Ability("DEPLOY", true)
end
end
end
if TestValid(troopse) then
if not troopse.Is_Ability_Active("JET_PACK") then
if troopse.Is_Ability_Ready("DEPLOY") then
troopse.Activate_Ability("DEPLOY", true)
end
end
end
Sleep(2)
end
end
function PartFive_OpenVault()
urai_comp.Highlight(false)
Remove_Radar_Blip("urai_comp")
invault.Highlight(true)
Add_Radar_Blip(invault, "invault")
VictoryCondition_GotAccessCodes = true
Create_Thread("Open_Vault")
end
function Prox_InsideVault(self_obj, trigger_obj)
if trigger_obj.Get_Owner() == underworld_player then
Story_Event("UM11_OBJECTIVE_08_DONE")
Open_Door_f()
Open_Door_h()
invault.Highlight(false)
Remove_Radar_Blip("invault")
VictoryCondition_SeenVault = true
Create_Thread("PartFive_InVault")
self_obj.Cancel_Event_Object_In_Range(Prox_InsideVault)
end
end
function PartFive_InVault()
Story_Event("CHATTER_27")
while not State_Mission_27_Done do Sleep(.5) end
Story_Event("CHATTER_28")
while not State_Mission_28_Done do Sleep(.5) end
Create_Thread("PartSix_StartAdeptFour")
end
function MissionObjective_PartSix()
MissionPartSixStarted = true
doora.Play_Animation("Cinematic",false,3)
Story_Event("UM11_OBJECTIVE_09")
doori.Highlight(true)
Add_Radar_Blip(doori, "doori")
end
function PartSix_StartAdeptFour()
doorb = Create_Generic_Object("UM05_MOVING_DOOR", doorbspawn.Get_Position(), neutral_player)
doorb.Teleport_And_Face(doorbspawn)
doorb.Play_Animation("Cinematic",false,3)
current_cine_id = Create_Thread("CINE_Final_Adept")
end
function CINE_Final_Adept()
Cancel_Fast_Forward()
CINE_Active_Final_Adept = true
Suspend_AI(1)
Lock_Controls(1)
Fade_Screen_Out(1)
Sleep(1)
doorf.Despawn()
urai_fen.Teleport_And_Face(finaluraispot)
urai_fen.Prevent_All_Fire(true)
urai_fen.Hide(true)
tyber_zann.Teleport_And_Face(finaltyberspot)
tyber_zann.Prevent_All_Fire(true)
tyber_zann.Hide(true)
silri.Teleport_And_Face(finalsilrispot)
silri.Prevent_All_Fire(true)
silri.Prevent_AI_Usage(true)
silri.Suspend_Locomotor(true)
silri.Hide(true)
cuddles = Find_Nearest(silri, "CUDDLES_THE_RANCOR")
if TestValid(cuddles) then
cuddles.Teleport_And_Face(finalcuddlesspot)
cuddles.Prevent_All_Fire(true)
cuddles.Hide(true)
end
extras = Find_All_Objects_Of_Type("STORMTROOPER")
for k, unit in pairs(extras) do
if TestValid(unit) then
if unit.Get_Owner() == underworld_player then
unit.Teleport_And_Face(finalextrasspot)
unit.Prevent_All_Fire(true)
unit.Hide(true)
end
end
end
extras = Find_All_Objects_Of_Type("SQUAD_STORMTROOPER")
for k, unit in pairs(extras) do
if TestValid(unit) then
if unit.Get_Owner() == underworld_player then
unit.Teleport_And_Face(finalextrasspot)
unit.Prevent_All_Fire(true)
unit.Hide(true)
end
end
end
extras = Find_All_Objects_Of_Type("STORMTROOPER_TEAM")
for k, unit in pairs(extras) do
if TestValid(unit) then
if unit.Get_Owner() == underworld_player then
unit.Teleport_And_Face(finalextrasspot)
end
end
end
mdus = Find_All_Objects_Of_Type("UNDERWORLD_MOBILE_DEFENSE_UNIT")
for k, unit in pairs(mdus) do
if TestValid(unit) then
--JSY: don't move MDUs that have been built on. The teleport and face separates them from the built object
--and then the Move_To crashes the script
if not TestValid(unit.Get_Build_Pad_Contents()) then
if unit.Get_Owner() == underworld_player then
unit.Activate_Ability("DEPLOY", false)
unit.Teleport_And_Face(finalmdusspot)
end
end
end
end
Letter_Box_In(0)
Start_Cinematic_Camera()
cin_tele = Create_Generic_Object("UM05_ADEPTFOURCINE", lastadeptspawn.Get_Position(), neutral_player)
cin_tyber = Create_Generic_Object("TYBER_ZANN", lasttyberspawn.Get_Position(), neutral_player)
cin_silri = Create_Generic_Object("SILRI", lastsilrispawn.Get_Position(), neutral_player)
cin_urai = Create_Generic_Object("URAI_FEN", lasturaispawn.Get_Position(), neutral_player)
cin_cuddles = Create_Generic_Object("UM05_CUDDLES_THE_RANCOR", lastcuddlesspawn.Get_Position(), neutral_player)
cin_tyber.Move_To(lasttybergoto)
cin_silri.Move_To(lastsilrigoto)
cin_urai.Move_To(lasturaigoto)
cin_cuddles.Move_To(lastcuddlesgoto)
cin_tele.Turn_To_Face(cin_tyber)
cin_silri.Prevent_AI_Usage(true)
cin_silri.Prevent_All_Fire(true)
Sleep(.5)
-- Set_Cinematic_Camera_Key(target_pos, xoffset_dist, yoffset_pitch, zoffset_yaw, angles?, attach_object, use_object_rotation, cinematic_animation)
Set_Cinematic_Camera_Key(camlastpos, 0, 0, 50, 0, 0, 0, 0)
Set_Cinematic_Target_Key(camlastlook, 0, 0, -5, 0, 0, 0, 0)
Transition_Cinematic_Camera_Key(camlastpan, 5, 0, 0, 55, 0, 0, 0, 0)
Transition_Cinematic_Target_Key(camlastlook, 5, 0, 0, -10, 0, 0, 0, 0)
Fade_Screen_In(1)
Sleep(3)
cin_tyber.Turn_To_Face(cin_tele)
cin_urai.Turn_To_Face(cin_tele)
cin_silri.Turn_To_Face(cin_tele)
cin_cuddles.Turn_To_Face(cin_tele)
Sleep(3)
Story_Event("CHATTER_33")
Set_Cinematic_Camera_Key(camstraightdown2, 0, 0, 35, 0, 0, 0, 0)
Set_Cinematic_Target_Key(camstraightdown4, 0, 0, 0, 0, 0, 0, 0)
while not State_Mission_33_Done do Sleep(.5) end
cin_tyber.Play_Animation("cinematic", true, 2)
Story_Event("CHATTER_34")
Set_Cinematic_Camera_Key(camlastpan, 0, 0, 55, 0, 0, 0, 0)
Set_Cinematic_Target_Key(camlastlook, 0, 0, -10, 0, 0, 0, 0)
while not State_Mission_34_Done do Sleep(.5) end
cin_tyber.Play_Animation("idle", true, 0)
Story_Event("CHATTER_35")
Set_Cinematic_Camera_Key(camstraightdown2, 0, 0, 35, 0, 0, 0, 0)
Set_Cinematic_Target_Key(camstraightdown4, 0, 0, 0, 0, 0, 0, 0)
while not State_Mission_35_Done do Sleep(.5) end
Set_Cinematic_Camera_Key(camstraightdown1, 0, 0, 175, 0, 0, 0, 0)
Set_Cinematic_Target_Key(camstraightdown3, 0, 0, 0, 0, 0, 0, 0)
Transition_Cinematic_Camera_Key(camstraightdown2, 11, 0, 0, 40, 0, 0, 0, 0)
Transition_Cinematic_Target_Key(camstraightdown4, 11, 0, 0, 0, 0, 0, 0, 0)
Sleep(2)
cin_fx1 = Create_Generic_Object("INVISIBLE_REVEAL_OBJECT", lasttele1.Get_Position(), neutral_player)
cin_fx1.Attach_Particle_Effect("BOTHAN_STUN_GAS")
Sleep(.15)
cin_tele.Teleport_And_Face(lasttele1)
cin_silri.Turn_To_Face(lasttele1)
cin_urai.Turn_To_Face(lasttele1)
Sleep(.5)
cin_tyber.Turn_To_Face(lasttele1)
Sleep(.5)
cin_fx2 = Create_Generic_Object("INVISIBLE_REVEAL_OBJECT", lasttele2.Get_Position(), neutral_player)
cin_fx2.Attach_Particle_Effect("BOTHAN_STUN_GAS")
cin_urai.Turn_To_Face(lasttele2)
Sleep(.15)
cin_silri.Turn_To_Face(lasttele2)
cin_tele.Teleport_And_Face(lasttele2)
Sleep(.5)
cin_tyber.Turn_To_Face(lasttele2)
Sleep(.5)
cin_fx3 = Create_Generic_Object("INVISIBLE_REVEAL_OBJECT", lasttele3.Get_Position(), neutral_player)
cin_fx3.Attach_Particle_Effect("BOTHAN_STUN_GAS")
Sleep(.15)
cin_urai.Turn_To_Face(lasttele3)
cin_tele.Teleport_And_Face(lasttele3)
Sleep(.5)
cin_tyber.Turn_To_Face(lasttele3)
cin_silri.Turn_To_Face(lasttele3)
Sleep(.5)
cin_fx4 = Create_Generic_Object("INVISIBLE_REVEAL_OBJECT", lasttele4.Get_Position(), neutral_player)
cin_fx4.Attach_Particle_Effect("BOTHAN_STUN_GAS")
Sleep(.15)
cin_tele.Teleport_And_Face(lasttele4)
cin_tyber.Turn_To_Face(cin_tele)
Sleep(.5)
cin_fx5 = Create_Generic_Object("INVISIBLE_REVEAL_OBJECT", lastadeptspawn.Get_Position(), neutral_player)
cin_fx5.Attach_Particle_Effect("BOTHAN_STUN_GAS")
Sleep(.15)
cin_urai.Turn_To_Face(cin_tele)
cin_tele.Teleport_And_Face(lastadeptspawn)
Sleep(.25)
cin_silri.Turn_To_Face(cin_tele)
cin_tyber.Turn_To_Face(cin_tele)
cin_cuddles.Turn_To_Face(cin_tele)
Sleep(4)
cin_tele.Suspend_Locomotor(true)
cin_tyber.Suspend_Locomotor(true)
cin_tyber.Prevent_All_Fire(true)
cin_tele.Change_Owner(empire_player)
cin_tyber.Change_Owner(underworld_player)
cin_tele.Attack_Target(cin_tyber)
Sleep(1)
cin_tyber.Change_Owner(neutral_player)
cin_tele.Change_Owner(neutral_player)
cin_silri.Play_Animation("cinematic", true, 0)
Story_Event("CHATTER_36")
while not State_Mission_36_Done do Sleep(.5) end
cin_silri.Play_Animation("idle", true, 0)
Set_Cinematic_Camera_Key(camsilrityberpos, 0, 0, 25, 0, 0, 0, 0)
Set_Cinematic_Target_Key(camsilrityberlook, 0, 0, 0, 0, 0, 0, 0)
cin_tyber.Play_Animation("cinematic", true, 2)
Story_Event("CHATTER_37")
cin_silri.Turn_To_Face(cin_tyber)
Sleep(2)
cin_tyber.Suspend_Locomotor(false)
cin_tyber.Turn_To_Face(cin_silri)
while not State_Mission_37_Done do Sleep(.5) end
cin_tyber.Play_Animation("idle", true, 0)
Create_Thread("CINE_Final_Adept_Cleanup")
end
function CINE_Final_Adept_Cleanup()
CINE_Active_Final_Adept = false
current_cine_id = nil
urai_fen.Prevent_All_Fire(false)
urai_fen.Hide(false)
tyber_zann.Prevent_All_Fire(false)
tyber_zann.Hide(false)
silri.Prevent_All_Fire(false)
silri.Hide(false)
silri.Suspend_Locomotor(false)
cuddles = Find_Nearest(silri, "CUDDLES_THE_RANCOR")
if TestValid(cuddles) then
cuddles.Prevent_All_Fire(false)
cuddles.Hide(false)
end
extras = Find_All_Objects_Of_Type("STORMTROOPER")
for k, unit in pairs(extras) do
if TestValid(unit) then
if unit.Get_Owner() == underworld_player then
unit.Prevent_All_Fire(false)
unit.Hide(false)
end
end
end
extras = Find_All_Objects_Of_Type("SQUAD_STORMTROOPER")
for k, unit in pairs(extras) do
if TestValid(unit) then
if unit.Get_Owner() == underworld_player then
unit.Prevent_All_Fire(false)
unit.Hide(false)
end
end
end
if TestValid(cin_tyber) then cin_tyber.Despawn() end
if TestValid(cin_urai) then cin_urai.Despawn() end
if TestValid(cin_silri) then cin_silri.Despawn() end
if TestValid(cin_cuddles) then cin_cuddles.Despawn() end
if TestValid(cin_tele) then cin_tele.Despawn() end
if TestValid(cin_fx1) then cin_fx1.Despawn() end
if TestValid(cin_fx2) then cin_fx2.Despawn() end
if TestValid(cin_fx3) then cin_fx3.Despawn() end
if TestValid(cin_fx4) then cin_fx4.Despawn() end
if TestValid(cin_fx5) then cin_fx5.Despawn() end
cuddles = Find_Nearest(silri, "CUDDLES_THE_RANCOR")
if TestValid(cuddles) then
else
silri.Activate_Ability("SUMMON", silri)
end
End_Cinematic_Camera()
Letter_Box_Out(.5)
Lock_Controls(0)
Suspend_AI(0)
Fade_Screen_In(1)
Point_Camera_At(tyber_zann)
underworld_player.Select_Object(tyber_zann)
underworld_player.Select_Object(urai_fen)
underworld_player.Select_Object(silri)
Fade_Screen_In(1)
Sleep(1)
Create_Thread("PartSix_IntroAdeptFour")
end
function PartSix_IntroAdeptFour()
-- this adept is easiest killed by
adeptfour = Create_Generic_Object("UM05_ADEPTFOUR", adeptfourspawn.Get_Position(), empire_player)
Register_Death_Event(adeptfour, PartSix_AdeptFourDead)
Find_And_Attack({adeptfour})
--adeptfour.Highlight(true)
Add_Radar_Blip(adeptfour, "adeptfour")
Create_Thread("PartSix_ReplenishMDUs")
Story_Event("UM11_OBJECTIVE_10")
Register_Timer(Hint_AdeptFour, 1)
Story_Event("CHATTER_52")
end
function Hint_AdeptFour()
if not VictoryCondition_AdeptFourDead then
Story_Event("UM11_HINT_06")
Register_Timer(Hint_AdeptFour, 20)
end
end
function PartSix_AdeptFourDead()
adeptfour.Highlight(false)
Remove_Radar_Blip("adeptfour")
VictoryCondition_AdeptFourDead = true
Story_Event("UM11_OBJECTIVE_10_DONE")
end
function PartSix_ReplenishMDUs()
while not VictoryCondition_AdeptFourDead do
sixmdus = Find_All_Objects_Of_Type("UNDERWORLD_MOBILE_DEFENSE_UNIT")
if table.getn(sixmdus) < 3 then
newmdu = Create_Generic_Object("UNDERWORLD_MOBILE_DEFENSE_UNIT", mduspawn.Get_Position(), underworld_player)
newmdu.Move_To(tyber_zann)
newmdu.Prevent_Opportunity_Fire(true)
end
Sleep(2)
end
end
function PartSix_OpenExit()
-- when wall is destroyed, remove black covers
juggernaut.Change_Owner(underworld_player)
juggernaut.Set_Selectable(true)
juggernaut.Enable_Behavior(24, true)
juggernaut.Make_Invulnerable(false)
juggernaut.Highlight(true)
Add_Radar_Blip(juggernaut, "juggernaut")
Create_Thread("Open_Door_i")
Create_Thread("Open_Door_c")
Create_Thread("PartSix_IsInJuggernaut")
Create_Thread("PartSix_SpawnTroops")
mt3.Change_Owner(empire_player)
mt4.Change_Owner(empire_player)
mt5.Change_Owner(empire_player)
mt6.Change_Owner(empire_player)
Story_Event("CHATTER_53")
end
function Prox_StopSpawns(self_obj, trigger_obj)
if trigger_obj.Get_Owner() == underworld_player then
VictoryCondition_StopSpawns = true
self_obj.Cancel_Event_Object_In_Range(Prox_StopSpawns)
end
end
function PartSix_SpawnTroops()
while not VictoryCondition_StopSpawns do
-- spawn advancing troops to get mashed by juggernaut
Sleep(6)
evenmoreguys = Spawn_Unit(Find_Object_Type("IMPERIAL_MINI_STORMTROOPER_SQUAD"), exitdoor.Get_Position(), empire_player)
Create_Thread("Hunt_Underworld", evenmoreguys)
end
end
function PartSix_IsInJuggernaut()
while not VictoryCondition_InJuggernaut do
list = juggernaut.Get_Garrisoned_Units()
if table.getn(list) > 0 then
VictoryCondition_InJuggernaut = true
juggernaut.Highlight(false)
Remove_Radar_Blip("juggernaut")
exitdoor.Highlight(true)
Add_Radar_Blip(exitdoor, "exitdoor")
Register_Timer(Hint_Juggernaut, 5)
juggernaut.Override_Max_Speed(1.1)
Story_Event("CHATTER_54")
end
Sleep(2)
end
end
function Hint_Juggernaut()
if not VictoryCondition_ReachedExit then
Story_Event("UM11_HINT_07")
Register_Timer(Hint_Juggernaut, 20)
Story_Event("CHATTER_55")
end
end
function Prox_ReachedExit(self_obj, trigger_obj)
if trigger_obj.Get_Owner() == underworld_player then
exitdoor.Highlight(false)
Remove_Radar_Blip("exitdoor")
self_obj.Cancel_Event_Object_In_Range(Prox_ReachedExit)
VictoryCondition_ReachedExit = true
Story_Event("UM11_OBJECTIVE_09_DONE")
Story_Event("UM11_OBJECTIVE_06_DONE")
end
end
function Tyber_Destroyed()
DefeatCondition_TyberDead = true
Story_Event("UM11_TYBERDEAD")
end
function Urai_Destroyed()
DefeatCondition_UraiDead = true
Story_Event("UM11_URAIDEAD")
end
function Silri_Destroyed()
DefeatCondition_SilriDead = true
Story_Event("UM11_SILRIDEAD")
end
function Find_And_Attack(attack_list)
Create_Thread("Hunt_Underworld",attack_list)
end
function Prox_HallGuard_1(self_obj, trigger_obj)
Create_Thread("Hunt_Underworld", { self_obj })
self_obj.Cancel_Event_Object_In_Range(Prox_HallGuard_1)
end
function Prox_HallGuard_2(self_obj, trigger_obj)
Create_Thread("Hunt_Underworld", { self_obj })
self_obj.Cancel_Event_Object_In_Range(Prox_HallGuard_2)
end
function Prox_HallGuard_3(self_obj, trigger_obj)
Create_Thread("Hunt_Underworld", { self_obj })
self_obj.Cancel_Event_Object_In_Range(Prox_HallGuard_3)
end
function Prox_HallGuard_4(self_obj, trigger_obj)
Create_Thread("Hunt_Underworld", { self_obj })
self_obj.Cancel_Event_Object_In_Range(Prox_HallGuard_4)
end
function Prox_HallGuard_5(self_obj, trigger_obj)
Create_Thread("Hunt_Underworld", { self_obj })
self_obj.Cancel_Event_Object_In_Range(Prox_HallGuard_5)
end
function Prox_HallGuard_6(self_obj, trigger_obj)
Create_Thread("Hunt_Underworld", { self_obj })
self_obj.Cancel_Event_Object_In_Range(Prox_HallGuard_6)
end
function Prox_HallGuard_7(self_obj, trigger_obj)
Create_Thread("Hunt_Underworld", { self_obj })
self_obj.Cancel_Event_Object_In_Range(Prox_HallGuard_7)
end
function Prox_HallGuard_8(self_obj, trigger_obj)
Create_Thread("Hunt_Underworld", { self_obj })
self_obj.Cancel_Event_Object_In_Range(Prox_HallGuard_8)
end
function Prox_HallGuard_9(self_obj, trigger_obj)
Create_Thread("Hunt_Underworld", { self_obj })
self_obj.Cancel_Event_Object_In_Range(Prox_HallGuard_9)
end
function Prox_HallGuard_10(self_obj, trigger_obj)
Create_Thread("Hunt_Underworld", { self_obj })
self_obj.Cancel_Event_Object_In_Range(Prox_HallGuard_10)
end
function Prox_HallGuard_11(self_obj, trigger_obj)
Create_Thread("Hunt_Underworld", { self_obj })
self_obj.Cancel_Event_Object_In_Range(Prox_HallGuard_11)
end
function Prox_HallGuard_12(self_obj, trigger_obj)
Create_Thread("Hunt_Underworld", { self_obj })
self_obj.Cancel_Event_Object_In_Range(Prox_HallGuard_12)
end
function Prox_HallGuard_13(self_obj, trigger_obj)
Create_Thread("Hunt_Underworld", { self_obj })
self_obj.Cancel_Event_Object_In_Range(Prox_HallGuard_13)
end
function Prox_HallGuard_14(self_obj, trigger_obj)
Create_Thread("Hunt_Underworld", { self_obj })
self_obj.Cancel_Event_Object_In_Range(Prox_HallGuard_14)
end
function Prox_HallGuard_15(self_obj, trigger_obj)
Create_Thread("Hunt_Underworld", { self_obj })
self_obj.Cancel_Event_Object_In_Range(Prox_HallGuard_15)
end
function Prox_HallGuard_16(self_obj, trigger_obj)
Create_Thread("Hunt_Underworld", { self_obj })
self_obj.Cancel_Event_Object_In_Range(Prox_HallGuard_16)
end
-- delay a short time and then show game has been won VICTORY
function EndMissionVictory()
Cancel_Fast_Forward()
units = Find_All_Objects_Of_Type(underworld_player)
for k, unit in pairs(units) do
if TestValid(unit) then
unit.Make_Invulnerable(true)
end
end
Suspend_AI(1)
Lock_Controls(1)
Fade_Screen_Out(1)
Sleep(1)
ext_sky.Hide(false)
int_sky.Hide(true)
endcinebox.Hide(true)
endcinebox1.Hide(true)
Letter_Box_In(0)
Start_Cinematic_Camera()
if TestValid(juggernaut) then
endcinejugger.Override_Max_Speed(1.5)
endcinejugger.Move_To(endcinejuggergoto)
else
endcintyber=Create_Generic_Object("TYBER_ZANN", Find_Hint("STORY_TRIGGER_ZONE","endcinetyber").Get_Position(), underworld_player);
endcinurai=Create_Generic_Object("URAI_FEN", Find_Hint("STORY_TRIGGER_ZONE","endcineurai").Get_Position(), underworld_player);
endcinsilri=Create_Generic_Object("SILRI", Find_Hint("STORY_TRIGGER_ZONE","endcinesilri").Get_Position(), underworld_player);
endcincuddles=Create_Generic_Object("UM05_CUDDLES_THE_RANCOR", Find_Hint("STORY_TRIGGER_ZONE","endcinecuddles").Get_Position(), underworld_player);
endcintyber.Prevent_AI_Usage(true)
endcintyber.Prevent_All_Fire(true)
endcintyber.Make_Invulnerable(true)
endcinsilri.Prevent_AI_Usage(true)
endcinsilri.Prevent_All_Fire(true)
endcinsilri.Make_Invulnerable(true)
endcinurai.Prevent_AI_Usage(true)
endcinurai.Prevent_All_Fire(true)
endcinurai.Make_Invulnerable(true)
endcincuddles.Prevent_AI_Usage(true)
endcincuddles.Prevent_All_Fire(true)
endcincuddles.Make_Invulnerable(true)
endcinejugger.Despawn()
endcintyber.Override_Max_Speed(1.42)
endcintyber.Move_To(endcinejuggergoto)
endcinsilri.Override_Max_Speed(1.41)
endcinsilri.Move_To(endcinejuggergoto)
endcinurai.Override_Max_Speed(1.41)
endcinurai.Move_To(endcinejuggergoto)
endcincuddles.Override_Max_Speed(1.35)
endcincuddles.Move_To(endcinejuggergoto)
Sleep(.5)
end
chase_list = Find_All_Objects_With_Hint("endchase")
for k, unit in pairs(chase_list) do
if TestValid(unit) then
unit.Override_Max_Speed(1.5)
unit.Change_Owner(empire_player)
unit.Attack_Move(endcinejuggergoto)
end
end
-- Set_Cinematic_Camera_Key(target_pos, xoffset_dist, yoffset_pitch, zoffset_yaw, angles?, attach_object, use_object_rotation, cinematic_animation)
Set_Cinematic_Camera_Key(endcinecampos, 0, 0, 50, 0, 0, 0, 0)
Set_Cinematic_Target_Key(endcinecamlook, 0, 0, 0, 0, 0, 0, 0)
Transition_Cinematic_Camera_Key(endcinecampos, 10, 0, 0, 75, 0, 0, 0, 0)
Transition_Cinematic_Target_Key(endcinecamlook, 10, 0, 0, -15, 0, 0, 0, 0)
--Sleep(1)
Fade_Screen_In(1)
Sleep(3)
Story_Event("UM11_ENDMISSION_VICTORY")
Sleep(3)
Fade_Screen_Out(2)
Sleep(2)
End_Cinematic_Camera()
Letter_Box_Out(0)
Lock_Controls(0)
Suspend_AI(0)
underworld_player.Remove_Orbital_Bombardment(false)
end
-- delay a short time and then show game has been lost DEFEAT
function EndMissionDefeat()
Suspend_AI(1)
Lock_Controls(1)
Letter_Box_In(0)
Story_Event("UM11_ENDMISSION_DEFEAT")
underworld_player.Remove_Orbital_Bombardment(false)
end
function State_Mission_Chatter_00_Done(message)
if message == OnEnter then
State_Mission_00_Done = true
end
end
function State_Mission_Chatter_01_Done(message)
if message == OnEnter then
State_Mission_01_Done = true
end
end
function State_Mission_Chatter_02_Done(message)
if message == OnEnter then
State_Mission_02_Done = true
end
end
function State_Mission_Chatter_03_Done(message)
if message == OnEnter then
State_Mission_03_Done = true
end
end
function State_Mission_Chatter_04_Done(message)
if message == OnEnter then
State_Mission_04_Done = true
end
end
function State_Mission_Chatter_05_Done(message)
if message == OnEnter then
State_Mission_05_Done = true
end
end
function State_Mission_Chatter_06_Done(message)
if message == OnEnter then
State_Mission_06_Done = true
end
end
function State_Mission_Chatter_07_Done(message)
if message == OnEnter then
State_Mission_07_Done = true
end
end
function State_Mission_Chatter_08_Done(message)
if message == OnEnter then
State_Mission_08_Done = true
end
end
function State_Mission_Chatter_09_Done(message)
if message == OnEnter then
State_Mission_09_Done = true
end
end
function State_Mission_Chatter_10_Done(message)
if message == OnEnter then
State_Mission_10_Done = true
end
end
function State_Mission_Chatter_11_Done(message)
if message == OnEnter then
State_Mission_11_Done = true
end
end
function State_Mission_Chatter_12_Done(message)
if message == OnEnter then
State_Mission_12_Done = true
end
end
function State_Mission_Chatter_13_Done(message)
if message == OnEnter then
State_Mission_13_Done = true
end
end
function State_Mission_Chatter_14_Done(message)
if message == OnEnter then
State_Mission_14_Done = true
end
end
function State_Mission_Chatter_15_Done(message)
if message == OnEnter then
State_Mission_15_Done = true
end
end
function State_Mission_Chatter_16_Done(message)
if message == OnEnter then
State_Mission_16_Done = true
end
end
function State_Mission_Chatter_17_Done(message)
if message == OnEnter then
State_Mission_17_Done = true
end
end
function State_Mission_Chatter_18_Done(message)
if message == OnEnter then
State_Mission_18_Done = true
end
end
function State_Mission_Chatter_19_Done(message)
if message == OnEnter then
State_Mission_19_Done = true
end
end
function State_Mission_Chatter_20_Done(message)
if message == OnEnter then
State_Mission_20_Done = true
end
end
function State_Mission_Chatter_21_Done(message)
if message == OnEnter then
State_Mission_21_Done = true
end
end
function State_Mission_Chatter_22_Done(message)
if message == OnEnter then
State_Mission_22_Done = true
end
end
function State_Mission_Chatter_23_Done(message)
if message == OnEnter then
State_Mission_23_Done = true
end
end
function State_Mission_Chatter_24_Done(message)
if message == OnEnter then
State_Mission_24_Done = true
end
end
function State_Mission_Chatter_25_Done(message)
if message == OnEnter then
State_Mission_25_Done = true
end
end
function State_Mission_Chatter_26_Done(message)
if message == OnEnter then
State_Mission_26_Done = true
end
end
function State_Mission_Chatter_27_Done(message)
if message == OnEnter then
State_Mission_27_Done = true
end
end
function State_Mission_Chatter_28_Done(message)
if message == OnEnter then
State_Mission_28_Done = true
end
end
function State_Mission_Chatter_29_Done(message)
if message == OnEnter then
State_Mission_29_Done = true
end
end
function State_Mission_Chatter_30_Done(message)
if message == OnEnter then
State_Mission_30_Done = true
end
end
function State_Mission_Chatter_31_Done(message)
if message == OnEnter then
State_Mission_31_Done = true
end
end
function State_Mission_Chatter_32_Done(message)
if message == OnEnter then
State_Mission_32_Done = true
end
end
function State_Mission_Chatter_33_Done(message)
if message == OnEnter then
State_Mission_33_Done = true
end
end
function State_Mission_Chatter_34_Done(message)
if message == OnEnter then
State_Mission_34_Done = true
end
end
function State_Mission_Chatter_35_Done(message)
if message == OnEnter then
State_Mission_35_Done = true
end
end
function State_Mission_Chatter_36_Done(message)
if message == OnEnter then
State_Mission_36_Done = true
end
end
function State_Mission_Chatter_37_Done(message)
if message == OnEnter then
State_Mission_37_Done = true
end
end
function State_Mission_Chatter_38_Done(message)
if message == OnEnter then
State_Mission_38_Done = true
end
end
function State_Mission_Chatter_39_Done(message)
if message == OnEnter then
State_Mission_39_Done = true
end
end
function State_Mission_Chatter_40_Done(message)
if message == OnEnter then
State_Mission_40_Done = true
end
end
function State_Mission_Chatter_41_Done(message)
if message == OnEnter then
State_Mission_41_Done = true
end
end
function State_Mission_Chatter_42_Done(message)
if message == OnEnter then
State_Mission_42_Done = true
end
end
function State_Mission_Chatter_43_Done(message)
if message == OnEnter then
State_Mission_43_Done = true
end
end
function State_Mission_Chatter_44_Done(message)
if message == OnEnter then
State_Mission_44_Done = true
end
end
function State_Mission_Chatter_45_Done(message)
if message == OnEnter then
State_Mission_45_Done = true
end
end
function State_Mission_Chatter_46_Done(message)
if message == OnEnter then
State_Mission_46_Done = true
end
end
function State_Mission_Chatter_47_Done(message)
if message == OnEnter then
State_Mission_47_Done = true
end
end
function State_Mission_Chatter_48_Done(message)
if message == OnEnter then
State_Mission_48_Done = true
end
end
function State_Mission_Chatter_49_Done(message)
if message == OnEnter then
State_Mission_49_Done = true
end
end
function State_Mission_Chatter_50_Done(message)
if message == OnEnter then
State_Mission_50_Done = true
end
end
function State_Mission_Chatter_51_Done(message)
if message == OnEnter then
State_Mission_51_Done = true
end
end
function State_Mission_Chatter_52_Done(message)
if message == OnEnter then
State_Mission_52_Done = true
end
end
function State_Mission_Chatter_53_Done(message)
if message == OnEnter then
State_Mission_53_Done = true
end
end
function State_Mission_Chatter_54_Done(message)
if message == OnEnter then
State_Mission_54_Done = true
end
end
function State_Mission_Chatter_55_Done(message)
if message == OnEnter then
State_Mission_55_Done = true
end
end