-- $Id: //depot/Projects/StarWars_Steam/FOC/Run/Data/Scripts/Story/Story_Underworld_ActI_M01_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_ActI_M01_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() StoryModeEvents = { Underworld_A01M01_Begin = State_Underworld_A01M01_Begin, Prolog_Intro_Dialog_00_Speech_Done = State_Prolog_Intro_Dialog_00_Speech_Done, Prolog_Intro_Dialog_01_Speech_Done = State_Prolog_Intro_Dialog_01_Speech_Done, Prolog_Intro_Dialog_02_Speech_Done = State_Prolog_Intro_Dialog_02_Speech_Done, Prolog_Intro_Dialog_02A_Speech_Done = State_Prolog_Intro_Dialog_02A_Speech_Done, Prolog_Intro_Dialog_New_00_Speech_Done = State_Prolog_Intro_Dialog_New_00_Speech_Done, Prolog_Intro_Dialog_New_01_Speech_Done = State_Prolog_Intro_Dialog_New_01_Speech_Done, Prolog_Intro_Dialog_New_02_Speech_Done = State_Prolog_Intro_Dialog_New_02_Speech_Done, Prolog_Intro_Dialog_New_03_Speech_Done = State_Prolog_Intro_Dialog_New_03_Speech_Done, Prolog_Intro_Dialog_New_04_Speech_Done = State_Prolog_Intro_Dialog_New_04_Speech_Done, Prolog_Intro_Dialog_New_05_Speech_Done = State_Prolog_Intro_Dialog_New_05_Speech_Done, Prolog_Intro_Dialog_New_06_Speech_Done = State_Prolog_Intro_Dialog_New_06_Speech_Done, Prolog_Intro_Dialog_New_07_Speech_Done = State_Prolog_Intro_Dialog_New_07_Speech_Done, Prolog_Intro_Dialog_New_08_Speech_Done = State_Prolog_Intro_Dialog_New_08_Speech_Done, Prolog_Intro_Dialog_New_09_Speech_Done = State_Prolog_Intro_Dialog_New_09_Speech_Done, Prolog_Intro_Dialog_New_10_Speech_Done = State_Prolog_Intro_Dialog_New_10_Speech_Done, Prolog_Intro_Dialog_New_11_Speech_Done = State_Prolog_Intro_Dialog_New_11_Speech_Done, Prolog_Intro_Dialog_New_12_Speech_Done = State_Prolog_Intro_Dialog_New_12_Speech_Done, Prolog_Intro_Dialog_New_13_Speech_Done = State_Prolog_Intro_Dialog_New_13_Speech_Done, Prolog_Intro_Dialog_03_Speech_Done = State_Prolog_Intro_Dialog_03_Speech_Done, Prolog_Intro_Dialog_04_Speech_Done = State_Prolog_Intro_Dialog_04_Speech_Done, Prolog_Intro_Dialog_05_Speech_Done = State_Prolog_Intro_Dialog_05_Speech_Done, Prolog_Intro_Dialog_06_Speech_Done = State_Prolog_Intro_Dialog_06_Speech_Done, Prolog_Intro_Dialog_07_Speech_Done = State_Prolog_Intro_Dialog_07_Speech_Done, Prolog_Intro_Dialog_08_Speech_Done = State_Prolog_Intro_Dialog_08_Speech_Done, Prolog_Midtro_Dialog_09_Speech_Done = State_Prolog_Midtro_Dialog_09_Speech_Done, Prolog_Midtro_Dialog_10_Speech_Done = State_Prolog_Midtro_Dialog_10_Speech_Done, Prolog_Midtro_Dialog_11_Speech_Done = State_Prolog_Midtro_Dialog_11_Speech_Done, Prolog_End_Dialog_12_Speech_Done = State_Prolog_End_Dialog_12_Speech_Done, Prolog_End_Dialog_13_Speech_Done = State_Prolog_End_Dialog_13_Speech_Done, Prolog_End_Dialog_14_Speech_Done = State_Prolog_End_Dialog_14_Speech_Done, Prolog_End_Dialog_15_Speech_Done = State_Prolog_End_Dialog_15_Speech_Done, Prolog_End_Dialog_16_Speech_Done = State_Prolog_End_Dialog_16_Speech_Done, Prolog_End_Dialog_17_Speech_Done = State_Prolog_End_Dialog_17_Speech_Done, Prolog_End_Dialog_18_Speech_Done = State_Prolog_End_Dialog_18_Speech_Done, Prolog_End_Dialog_19_Speech_Done = State_Prolog_End_Dialog_19_Speech_Done, Prolog_Chatter_Dialog_20_Speech_Done = State_Prolog_Chatter_Dialog_20_Speech_Done, Prolog_Chatter_Dialog_21_Speech_Done = State_Prolog_Chatter_Dialog_21_Speech_Done, Prolog_Chatter_Dialog_22_Speech_Done = State_Prolog_Chatter_Dialog_22_Speech_Done, Prolog_Chatter_Dialog_23_Speech_Done = State_Prolog_Chatter_Dialog_23_Speech_Done, Prolog_Chatter_Dialog_24_Speech_Done = State_Prolog_Chatter_Dialog_24_Speech_Done, Prolog_Chatter_Dialog_25_Speech_Done = State_Prolog_Chatter_Dialog_25_Speech_Done, Prolog_Chatter_Dialog_26_Speech_Done = State_Prolog_Chatter_Dialog_26_Speech_Done, Prolog_Chatter_Dialog_27_Speech_Done = State_Prolog_Chatter_Dialog_27_Speech_Done, Prolog_Chatter_Dialog_28_Speech_Done = State_Prolog_Chatter_Dialog_28_Speech_Done, Prolog_Chatter_Dialog_29_Speech_Done = State_Prolog_Chatter_Dialog_29_Speech_Done, Prolog_Chatter_Dialog_30_Speech_Done = State_Prolog_Chatter_Dialog_30_Speech_Done, Prolog_Chatter_Dialog_31_Speech_Done = State_Prolog_Chatter_Dialog_31_Speech_Done, Prolog_Chatter_Dialog_32_Speech_Done = State_Prolog_Chatter_Dialog_32_Speech_Done, Prolog_Chatter_Dialog_33_Speech_Done = State_Prolog_Chatter_Dialog_33_Speech_Done, Prolog_Chatter_Dialog_34_Speech_Done = State_Prolog_Chatter_Dialog_34_Speech_Done, Prolog_Chatter_Dialog_35_Speech_Done = State_Prolog_Chatter_Dialog_35_Speech_Done, Prolog_Chatter_Dialog_36_Speech_Done = State_Prolog_Chatter_Dialog_36_Speech_Done, Prolog_Chatter_Dialog_37_Speech_Done = State_Prolog_Chatter_Dialog_37_Speech_Done, Prolog_Chatter_Dialog_38_Speech_Done = State_Prolog_Chatter_Dialog_38_Speech_Done, Prolog_Chatter_Dialog_39_Speech_Done = State_Prolog_Chatter_Dialog_39_Speech_Done, Prolog_Intro_Dialog_40_Speech_Done = State_Prolog_Intro_Dialog_40_Speech_Done, Prolog_Intro_Dialog_41_Speech_Done = State_Prolog_Intro_Dialog_41_Speech_Done, Prolog_Intro_Dialog_42_Speech_Done = State_Prolog_Intro_Dialog_42_Speech_Done, Prolog_Chatter_Dialog_43_Speech_Done = State_Prolog_Chatter_Dialog_43_Speech_Done, Prolog_Chatter_Dialog_44_Speech_Done = State_Prolog_Chatter_Dialog_44_Speech_Done, Prolog_Chatter_Dialog_45_Speech_Done = State_Prolog_Chatter_Dialog_45_Speech_Done, Prolog_Chatter_Dialog_61_Speech_Done = State_Prolog_Chatter_Dialog_61_Speech_Done, Prolog_Chatter_Dialog_62_Speech_Done = State_Prolog_Chatter_Dialog_62_Speech_Done, Prolog_Chatter_Dialog_63_Speech_Done = State_Prolog_Chatter_Dialog_63_Speech_Done } end function State_Underworld_A01M01_Begin(message) if message == OnEnter then -- begin xml kickback flags State_Prolog_Intro_Dialog_00_Done = false State_Prolog_Intro_Dialog_01_Done = false State_Prolog_Intro_Dialog_02_Done = false State_Prolog_Intro_Dialog_02A_Done = false State_Prolog_Intro_Dialog_New_00_Done = false State_Prolog_Intro_Dialog_New_01_Done = false State_Prolog_Intro_Dialog_New_02_Done = false State_Prolog_Intro_Dialog_New_03_Done = false State_Prolog_Intro_Dialog_New_04_Done = false State_Prolog_Intro_Dialog_New_05_Done = false State_Prolog_Intro_Dialog_New_06_Done = false State_Prolog_Intro_Dialog_New_07_Done = false State_Prolog_Intro_Dialog_New_08_Done = false State_Prolog_Intro_Dialog_New_09_Done = false State_Prolog_Intro_Dialog_New_10_Done = false State_Prolog_Intro_Dialog_New_11_Done = false State_Prolog_Intro_Dialog_New_12_Done = false State_Prolog_Intro_Dialog_New_13_Done = false State_Prolog_Intro_Dialog_03_Done = false State_Prolog_Intro_Dialog_04_Done = false State_Prolog_Intro_Dialog_05_Done = false State_Prolog_Intro_Dialog_06_Done = false State_Prolog_Intro_Dialog_07_Done = false State_Prolog_Intro_Dialog_08_Done = false State_Prolog_Midtro_Dialog_09_Done = false State_Prolog_Midtro_Dialog_10_Done = false State_Prolog_Midtro_Dialog_11_Done = false State_Prolog_End_Dialog_12_Done = false State_Prolog_End_Dialog_13_Done = false State_Prolog_End_Dialog_14_Done = false State_Prolog_End_Dialog_15_Done = false State_Prolog_End_Dialog_16_Done = false State_Prolog_End_Dialog_17_Done = false State_Prolog_End_Dialog_18_Done = false State_Prolog_End_Dialog_19_Done = false State_Prolog_Chatter_Dialog_20_Done = false State_Prolog_Chatter_Dialog_21_Done = false State_Prolog_Chatter_Dialog_22_Done = false State_Prolog_Chatter_Dialog_23_Done = false State_Prolog_Chatter_Dialog_24_Done = false State_Prolog_Chatter_Dialog_25_Done = false State_Prolog_Chatter_Dialog_26_Done = false State_Prolog_Chatter_Dialog_27_Done = false State_Prolog_Chatter_Dialog_28_Done = false State_Prolog_Chatter_Dialog_29_Done = false State_Prolog_Chatter_Dialog_30_Done = false State_Prolog_Chatter_Dialog_31_Done = false State_Prolog_Chatter_Dialog_32_Done = false State_Prolog_Chatter_Dialog_33_Done = false State_Prolog_Chatter_Dialog_34_Done = false State_Prolog_Chatter_Dialog_35_Done = false State_Prolog_Chatter_Dialog_36_Done = false State_Prolog_Chatter_Dialog_37_Done = false State_Prolog_Chatter_Dialog_38_Done = false State_Prolog_Chatter_Dialog_39_Done = false State_Prolog_Intro_Dialog_40_Done = false State_Prolog_Intro_Dialog_41_Done = false State_Prolog_Intro_Dialog_42_Done = false State_Prolog_Chatter_Dialog_43_Done = false State_Prolog_Chatter_Dialog_44_Done = false State_Prolog_Chatter_Dialog_45_Done = false State_Prolog_Chatter_Dialog_61_Done = false State_Prolog_Chatter_Dialog_62_Done = false State_Prolog_Chatter_Dialog_63_Done = false -- end xml kickback flags --MessageBox("Loaded") neutral_player = Find_Player("Neutral") hutt_player = Find_Player("Hutts") pirate_player = Find_Player("Pirates") empire_player = Find_Player("Empire") hostile_player = Find_Player("Hostile") underworld_player = Find_Player("Underworld") Speech_5 = false Speech_6 = false enddeadguys = false landing_falcon = nil han_solo = nil chewbacca = nil wookies = nil guards = nil workers = nil rioters1 = nil rioters2 = nil guards1 = nil rioters3 = nil rioters4 = nil guards2 = nil rioters5 = nil rioters7 = nil guards4 = nil rioters9 = nil rioters0 = nil guards5 = nil riotersb = nil riotersd = nil guards6 = nil darkguys1 = nil darkguys2 = nil darkguys3 = nil darkguys4 = nil prisoner5 = nil prisoner5b = nil prisoner6 = nil prisoner6b = nil door9 = Find_Hint("UM05_MOVING_DOOR", "door9") falcon_gear1 = Find_Hint("UMP_SMALL_GEAR", "falcongear1") falcon_gear2 = Find_Hint("UMP_SMALL_GEAR", "falcongear2") falcon_gear3 = Find_Hint("PROP_URBAN_ANTENNA", "falcongear3") falcon_gear4 = Find_Hint("PROP_URBAN_ANTENNA", "falcongear4") falcon_gear5 = Find_Hint("UMP_SMALL_GEAR", "falcongear5") falcon_gear6 = Find_Hint("UMP_SMALL_GEAR", "falcongear6") falcon_gear7 = Find_Hint("PROP_URBAN_ANTENNA", "falcongear7") falcon_gear8 = Find_Hint("PROP_URBAN_ANTENNA", "falcongear8") falcon_gear9 = Find_Hint("UMP_SMALL_GEAR", "falcongear9") falcon_gear10 = Find_Hint("UMP_SMALL_GEAR", "falcongear10") falcon_gear11 = Find_Hint("PROP_URBAN_ANTENNA", "falcongear11") falcon_gear12 = Find_Hint("PROP_URBAN_ANTENNA", "falcongear12") falcon_gear20 = Find_Hint("PROP_URBAN_ANTENNA", "falcongear20") falcon_gear21 = Find_Hint("PROP_URBAN_ANTENNA", "falcongear21") falcon_gear22 = Find_Hint("PROP_URBAN_BLOCK_A_MISSION11", "falcongear22") falcon_gear23 = Find_Hint("UMP_SMALL_RAMP", "falcongear23") falcon_gear24 = Find_Hint("UMP_SMALL_RAMP", "falcongear24") falcon_gear25 = Find_Hint("UMP_SMALL_RAMP", "falcongear25") falcon_gear26 = Find_Hint("UMP_SMALL_RAMP", "falcongear26") falcon_gear1.Hide(true) falcon_gear2.Hide(true) falcon_gear3.Hide(true) falcon_gear4.Hide(true) falcon_gear5.Hide(true) falcon_gear6.Hide(true) falcon_gear7.Hide(true) falcon_gear8.Hide(true) falcon_gear9.Hide(true) falcon_gear10.Hide(true) falcon_gear11.Hide(true) falcon_gear12.Hide(true) falcon_gear20.Hide(true) falcon_gear21.Hide(true) falcon_gear22.Hide(true) falcon_gear23.Hide(true) falcon_gear24.Hide(true) falcon_gear25.Hide(true) falcon_gear26.Hide(true) prisoners5 = Find_Hint("URBAN_HUMAN_CIV_TEAM", "prisoners5") prisoners6 = Find_Hint("URBAN_HUMAN_CIV_TEAM", "prisoners6") urairunto = Find_Hint("STORY_TRIGGER_ZONE","urai-runto") riotsfxhigh1 = Find_Hint("STORY_TRIGGER_ZONE","riotsfxhigh1") riotsfxhigh2 = Find_Hint("STORY_TRIGGER_ZONE","riotsfxhigh2") riotsfxhigh3 = Find_Hint("STORY_TRIGGER_ZONE","riotsfxhigh3") riotsfxhigh4 = Find_Hint("STORY_TRIGGER_ZONE","riotsfxhigh4") riotsfxlow1 = Find_Hint("STORY_TRIGGER_ZONE","riotsfxlow1") riotsfxlow2 = Find_Hint("STORY_TRIGGER_ZONE","riotsfxlow2") riotsfxlow3 = Find_Hint("STORY_TRIGGER_ZONE","riotsfxlow3") riotsfxlow4 = Find_Hint("STORY_TRIGGER_ZONE","riotsfxlow4") uraikiller = Find_Hint("STORY_TRIGGER_ZONE_01","uraikiller") prisoner_table1 = {} prisoner_table2 = {} prisonspawn1 = Find_Hint("STORY_TRIGGER_ZONE", "prisonspawn1") prisonspawn2 = Find_Hint("STORY_TRIGGER_ZONE", "prisonspawn2") riotgoto = Find_Hint("STORY_TRIGGER_ZONE","midcine-riotersgoto") pad2 = Find_Hint("STORY_TRIGGER_ZONE", "pad2") pad3 = Find_Hint("STORY_TRIGGER_ZONE", "pad3") atst1 = Find_Hint("AT_ST_WALKER", "atst1") bribed = Find_Hint("STORY_TRIGGER_ZONE_01","bribed") bribeguys = Spawn_Unit(Find_Object_Type("IMPERIAL_MEDIUM_STORMTROOPER_SQUAD"), bribed.Get_Position(), empire_player) for k, unit in pairs(bribeguys) do if TestValid(unit) then unit.Prevent_All_Fire(true) unit.Make_Invulnerable(true) unit.Suspend_Locomotor(true) end end consolefirst = Find_Hint("UMP_INTERFACE_NODE", "consolefirst") cinedoor1 = Find_Hint("UMP_MOVING_DOOR", "cinedoor1") Register_Death_Event(consolefirst, Open_CineDoor1) first1 = Find_Hint("URBAN_HUMAN_CIV_TEAM","first1") first2 = Find_Hint("URBAN_HUMAN_CIV_TEAM","first2") cinedoor2 = Find_Hint("UMP_MOVING_DOOR", "cinedoor2") console1 = Find_Hint("UMP_INTERFACE_NODE", "console1") door1 = Find_Hint("UMP_MOVING_DOOR", "door1") Register_Death_Event(console1, Open_Door_1) console2 = Find_Hint("UMP_INTERFACE_NODE", "console2") door2 = Find_Hint("UMP_MOVING_DOOR", "door2") Register_Death_Event(console2, Open_Door_2) console5 = Find_Hint("UMP_INTERFACE_NODE", "console5") door5 = Find_Hint("UMP_MOVING_DOOR", "door5") Register_Death_Event(console5, Open_Door_5) console6 = Find_Hint("UMP_INTERFACE_NODE", "console6") door6 = Find_Hint("UMP_MOVING_DOOR", "door6") Register_Death_Event(console6, Open_Door_6) console7 = Find_Hint("UMP_INTERFACE_NODE", "console7") door7 = Find_Hint("UMP_MOVING_DOOR", "door7") Register_Death_Event(console7, Open_Door_7) -- Register prox events for battle chatter and game events uraistand = Find_Hint("STORY_TRIGGER_ZONE","uraistand") hintspice = Find_Hint("STORY_TRIGGER_ZONE","hintmoney") spice = Find_Hint("STORY_TRIGGER_ZONE","freemoney") hintworkers = Find_Hint("STORY_TRIGGER_ZONE","freeworkers") guards0 = Find_Hint("STORMTROOPER_TEAM","guards0") workers = Find_Hint("URBAN_HUMAN_CIV_TEAM","workers") wookies = Find_Hint("WOOKIE_TEAM","wookies") falcon = Find_Hint("STORY_TRIGGER_ZONE","falcon") endgame = Find_Hint("STORY_TRIGGER_ZONE","endgame") rioters1 = Find_Hint("URBAN_HUMAN_CIV_TEAM", "rioters1") rioters2 = Find_Hint("URBAN_HUMAN_CIV_TEAM", "rioters2") guards1 = Find_Hint("STORMTROOPER_TEAM", "guards1") riot1 = Find_Hint("STORY_TRIGGER_ZONE","riots1") rioters3 = Find_Hint("URBAN_HUMAN_CIV_TEAM", "rioters3") rioters4 = Find_Hint("URBAN_HUMAN_CIV_TEAM", "rioters4") guards2 = Find_Hint("STORMTROOPER_TEAM", "guards2") riot2 = Find_Hint("STORY_TRIGGER_ZONE","riots2") rioters5 = Find_Hint("URBAN_HUMAN_CIV_TEAM", "rioters5") rioters7 = Find_Hint("WOOKIE_TEAM", "rioters7") guards4 = Find_Hint("STORMTROOPER_TEAM", "guards4") riot3 = Find_Hint("STORY_TRIGGER_ZONE","riots3") rioters9 = Find_Hint("URBAN_HUMAN_CIV_TEAM", "rioters9") rioters0 = Find_Hint("URBAN_HUMAN_CIV_TEAM", "rioters0") guards5 = Find_Hint("STORMTROOPER_TEAM", "guards5") riot4 = Find_Hint("STORY_TRIGGER_ZONE","riots4") riotersb = Find_Hint("URBAN_HUMAN_CIV_TEAM", "riotersb") riotersd = Find_Hint("URBAN_HUMAN_CIV_TEAM", "riotersd") guards6 = Find_Hint("STORMTROOPER_TEAM", "guards6") riot5 = Find_Hint("STORY_TRIGGER_ZONE","riots5") --Register_Prox(riot5, Prox_Riots5, 125, underworld_player) wookies = Find_Hint("WOOKIE_TEAM","wookies") darkguys1 = Find_Hint("DARK_TROOPER_PHASEII", "dark1") darkguys2 = Find_Hint("DARK_TROOPER_PHASEII", "dark2") darkguys3 = Find_Hint("DARK_TROOPER_PHASEII", "dark3") darkguys4 = Find_Hint("DARK_TROOPER_PHASEII", "dark4") Setup_Prox_Capturable_Units() -- set up some global mission state flags MissionPartOneStarted = false MissionPartTwoStarted = false PrisonersCaptured = false PrisonersTalkedTo = false PadOneCaptured = false PadTwoCaptured = false PadThreeCaptured = false Got_Credits = false Victory_BribeGuys = false VictoryCondition_ReachedFalcon = false DefeatCondition_TyberDead = false DefeatCondition_UraiDead = false VictoryStarted = false DefeatStarted = false OK_To_Land_Guys_A = false OK_To_Land_Guys_B = false OK_To_Spawn_Guys_A = false OK_To_Spawn_Guys_B = false underworld_player.Disable_Bombing_Run(false) underworld_player.Disable_Orbital_Bombardment(true) --FogOfWar.Reveal_All(underworld_player) CINE_Intro1_Active = false CINE_Intro2_Active = false CINE_Mid_Active = false CINE_End_Active = false current_cine_id = nil Register_Prox(bribed, Prox_Bribed, 115, underworld_player) Register_Prox(riot4, Prox_Riots4, 125, underworld_player) Register_Prox(riot3, Prox_Riots3, 125, underworld_player) Register_Prox(riot2, Prox_Riots2, 125, underworld_player) Register_Prox(riot1, Prox_Riots1, 150, underworld_player) --Register_Prox(hintspice, Prox_HintSpice, 75, underworld_player) --Register_Prox(endgame, Prox_MilleniumFalcon, 150, tyber_zann) Register_Prox(hintworkers, Prox_HintWorkers, 50, underworld_player) current_cine_id = Create_Thread("CINE_Start_Mission_A") Create_Thread("Main") elseif message == OnUpdate then --Do Nothing elseif message == OnExit then --Do Nothing end end function Main() while true do --if underworld_player.Get_Credits() > 30 and not Got_Credits then -- Create_Thread("Remove_Hint_At_Object",spice) -- Story_Event("CHATTER_23") -- Got_Credits = true --end if VictoryCondition_ReachedFalcon then if not VictoryStarted then VictoryStarted = true if not DefeatStarted then current_cine_id = Create_Thread("EndMissionVictory_NEW") end end end if PrisonersCaptured then Create_Thread("TyberPrisoner_Dialogue") Remove_Hint_At_Object(workers) PrisonersCaptured = false end if not VictoryStarted then --if not CINE_End_Active then if DefeatCondition_TyberDead then if not DefeatStarted then DefeatStarted = true Create_Thread("EndMissionDefeat") end end if DefeatCondition_UraiDead then if not DefeatStarted then DefeatStarted = true Create_Thread("EndMissionDefeat") end end --end end Sleep(.5) end end function Prox_HintWorkers(self_obj, trigger_obj) if trigger_obj == tyber_zann then if Victory_BribeGuys then PrisonersCaptured = true self_obj.Cancel_Event_Object_In_Range(Prox_HintWorkers) end end end function Setup_Prox_Capturable_Units() if TestValid(guards) then guards.Suspend_Locomotor(true) end if TestValid(guards1) then guards1.Suspend_Locomotor(true) end if TestValid(guards2) then guards2.Suspend_Locomotor(true) end if TestValid(guards4) then guards4.Suspend_Locomotor(true) end if TestValid(guards5) then guards5.Suspend_Locomotor(true) end if TestValid(guards6) then guards6.Suspend_Locomotor(true) end end function Cinematic_Suspend_Units() if TestValid(first1) then first1.Prevent_All_Fire(true) end if TestValid(first2) then first2.Prevent_All_Fire(true) end if TestValid(wookies) then wookies.Prevent_All_Fire(true) end if TestValid(guards) then guards.Prevent_All_Fire(true) end if TestValid(workers) then workers.Prevent_All_Fire(true) end if TestValid(rioters1) then rioters1.Prevent_All_Fire(true) end if TestValid(rioters2) then rioters2.Prevent_All_Fire(true) end if TestValid(guards1) then guards1.Prevent_All_Fire(true) end if TestValid(rioters3) then rioters3.Prevent_All_Fire(true) end if TestValid(rioters4) then rioters4.Prevent_All_Fire(true) end if TestValid(guards2) then guards2.Prevent_All_Fire(true) end if TestValid(rioters5) then rioters5.Prevent_All_Fire(true) end if TestValid(rioters7) then rioters7.Prevent_All_Fire(true) end if TestValid(guards4) then guards4.Prevent_All_Fire(true) end if TestValid(rioters9) then rioters9.Prevent_All_Fire(true) end if TestValid(rioters0) then rioters0.Prevent_All_Fire(true) end if TestValid(guards5) then guards5.Prevent_All_Fire(true) end if TestValid(riotersb) then riotersb.Prevent_All_Fire(true) end if TestValid(riotersd) then riotersd.Prevent_All_Fire(true) end if TestValid(guards6) then guards6.Prevent_All_Fire(true) end if TestValid(darkguys1) then darkguys1.Prevent_All_Fire(true) end if TestValid(darkguys2) then darkguys2.Prevent_All_Fire(true) end if TestValid(darkguys3) then darkguys3.Prevent_All_Fire(true) end if TestValid(darkguys4) then darkguys4.Prevent_All_Fire(true) end if TestValid(prisoners5) then prisoners5.Prevent_All_Fire(true) end if TestValid(prisoners6) then prisoners6.Prevent_All_Fire(true) end unit_list = Find_All_Objects_Of_Type("DARKTROOPER_P2_COMPANY") for k, unit in pairs(unit_list) do if TestValid(unit) then if TestValid(unit) then unit.Prevent_All_Fire(true) end end end unit_list = Find_All_Objects_Of_Type("DARKTROOPER_P1_COMPANY") for k, unit in pairs(unit_list) do if TestValid(unit) then if TestValid(unit) then unit.Prevent_All_Fire(true) end end end unit_list = Find_All_Objects_Of_Type("STORMTROOPER_TEAM") for k, unit in pairs(unit_list) do if TestValid(unit) then if TestValid(unit) then unit.Prevent_All_Fire(true) end end end unit_list = Find_All_Objects_Of_Type("UMP_PRISONER_HUMAN") for k, unit in pairs(unit_list) do if TestValid(unit) then if TestValid(unit) then unit.Prevent_All_Fire(true) end end end unit_list = Find_All_Objects_Of_Type("UMP_PRISONER_PIRATE") for k, unit in pairs(unit_list) do if TestValid(unit) then if TestValid(unit) then unit.Prevent_All_Fire(true) end end end end function Cinematic_UnSuspend_Units() if TestValid(first1) then first1.Prevent_All_Fire(true) end if TestValid(first2) then first2.Prevent_All_Fire(true) end if TestValid(wookies) then wookies.Prevent_All_Fire(false) end if TestValid(guards) then guards.Prevent_All_Fire(false) end if TestValid(workers) then workers.Prevent_All_Fire(false) end if TestValid(rioters1) then rioters1.Prevent_All_Fire(false) end if TestValid(rioters2) then rioters2.Prevent_All_Fire(false) end if TestValid(guards1) then guards1.Prevent_All_Fire(false) end if TestValid(rioters3) then rioters3.Prevent_All_Fire(false) end if TestValid(rioters4) then rioters4.Prevent_All_Fire(false) end if TestValid(guards2) then guards2.Prevent_All_Fire(false) end if TestValid(rioters5) then rioters5.Prevent_All_Fire(false) end if TestValid(rioters7) then rioters7.Prevent_All_Fire(false) end if TestValid(guards4) then guards4.Prevent_All_Fire(false) end if TestValid(rioters9) then rioters9.Prevent_All_Fire(false) end if TestValid(rioters0) then rioters0.Prevent_All_Fire(false) end if TestValid(guards5) then guards5.Prevent_All_Fire(false) end if TestValid(riotersb) then riotersb.Prevent_All_Fire(false) end if TestValid(riotersd) then riotersd.Prevent_All_Fire(false) end if TestValid(guards6) then guards6.Prevent_All_Fire(false) end if TestValid(darkguys1) then darkguys1.Prevent_All_Fire(false) end if TestValid(darkguys2) then darkguys2.Prevent_All_Fire(false) end if TestValid(darkguys3) then darkguys3.Prevent_All_Fire(false) end if TestValid(darkguys4) then darkguys4.Prevent_All_Fire(false) end if TestValid(prisoners5) then prisoners5.Prevent_All_Fire(false) end if TestValid(prisoners6) then prisoners6.Prevent_All_Fire(false) end unit_list = Find_All_Objects_Of_Type("DARKTROOPER_P2_COMPANY") for k, unit in pairs(unit_list) do if TestValid(unit) then if TestValid(unit) then unit.Prevent_All_Fire(false) end end end unit_list = Find_All_Objects_Of_Type("DARKTROOPER_P1_COMPANY") for k, unit in pairs(unit_list) do if TestValid(unit) then if TestValid(unit) then unit.Prevent_All_Fire(false) end end end unit_list = Find_All_Objects_Of_Type("STORMTROOPER_TEAM") for k, unit in pairs(unit_list) do if TestValid(unit) then if TestValid(unit) then unit.Prevent_All_Fire(false) end end end unit_list = Find_All_Objects_Of_Type("UMP_PRISONER_HUMAN") for k, unit in pairs(unit_list) do if TestValid(unit) then if TestValid(unit) then unit.Prevent_All_Fire(false) end end end unit_list = Find_All_Objects_Of_Type("UMP_PRISONER_PIRATE") for k, unit in pairs(unit_list) do if TestValid(unit) then if TestValid(unit) then unit.Prevent_All_Fire(false) end end end end -- controls opening of doors via destroying the remote consoles function Find_Tyber(group) MessageBox("find tyber") for k, unit in pairs(group) do MessageBox("%s finding", tostring(k)) if TestValid(unit) then unit.Move_To(tyber_zann) unit.Take_Damage(9999) end end end function Open_Door_1() Register_Timer(Remove_Door_1,2) Create_Thread("Opening_Door_1") door1.Play_Animation("Cinematic",false,1) Remove_Hint_At_Object(console1) end function Remove_Door_1() door1.Despawn() end function Prox_Bribed(self_obj, trigger_obj) for k, unit in pairs(bribeguys) do unit.Suspend_Locomotor(false) unit.Prevent_All_Fire(false) unit.Make_Invulnerable(false) unit.Attack_Move(tyber_zann) end self_obj.Cancel_Event_Object_In_Range(Prox_Bribed) end function HasBribeWorked() while not Victory_BribeGuys do total = table.getn(bribeguys) for k, unit in pairs(bribeguys) do if TestValid(unit) then if unit.Get_Owner() == underworld_player then Remove_Hint_At_Object(bribed) console2.Take_Damage(9999) Victory_BribeGuys = true end else total = total - 1 if total < 2 then Remove_Hint_At_Object(bribed) console2.Take_Damage(9999) Victory_BribeGuys = true end end end Sleep(1) end end function Opening_Door_1() --MessageBox("del Taco") Story_Event("UM01_HINT_BRIBEGUYS") Set_Hint_At_Object(bribed) underworld_player.Select_Object(tyber_zann) Story_Event("FLASH_BRIBE") Create_Thread("HasBribeWorked") Story_Event("CHATTER_64") end function Open_CineDoor1() Register_Timer(Remove_CineDoor1,2) cinedoor1.Play_Animation("Cinematic",false,1) end function Remove_CineDoor1() cinedoor1.Despawn() first1.Change_Owner(underworld_player) first2.Change_Owner(underworld_player) first1.Set_Selectable(true) first2.Set_Selectable(true) underworld_player.Select_Object(first1) underworld_player.Select_Object(first2) first1.Move_To(tyber_zann) first2.Move_To(tyber_zann) end function Open_Door_2() Register_Timer(Remove_Door_2,2) door2.Play_Animation("Cinematic",false,1) OK_To_Land_Guys_A = true HintWorkers() end function Remove_Door_2() door2.Despawn() Register_Timer(Respawn, 1) end function Open_Door_5() Register_Timer(Remove_Door_5,2) door5.Play_Animation("Cinematic",false,1) Speech_5 = true Create_Thread("Speech_Open_5") end function Remove_Door_5() door5.Despawn() prisoners5.Change_Owner(underworld_player) prisoners5.Set_Selectable(true) underworld_player.Select_Object(prisoners5) prisoners5.Move_To(tyber_zann) end function Speech_Open_5() if not Speech_6 then Story_Event("CHATTER_25") while not State_Prolog_Chatter_Dialog_25_Done do Sleep(.5) end Story_Event("CHATTER_27") while not State_Prolog_Chatter_Dialog_27_Done do Sleep(.5) end Speech_5 = false end end function Speech_Open_6() if not Speech_5 then Story_Event("CHATTER_24") while not State_Prolog_Chatter_Dialog_24_Done do Sleep(.5) end Story_Event("CHATTER_28") while not State_Prolog_Chatter_Dialog_28_Done do Sleep(.5) end Speech_6 = false end end function Open_Door_6() Register_Timer(Remove_Door_6,2) door6.Play_Animation("Cinematic",false,1) Speech_6 = true Create_Thread("Speech_Open_6") end function Remove_Door_6() door6.Despawn() prisoners6.Change_Owner(underworld_player) prisoners6.Set_Selectable(true) underworld_player.Select_Object(prisoners6) prisoners6.Move_To(tyber_zann) end function Open_Door_7() console7.Highlight(false) Register_Timer(Remove_Door_7,2) door7.Play_Animation("Cinematic",false,1) --Story_Event("CHATTER_41") --Story_Event("CHATTER_26") end function Remove_Door_7() door7.Despawn() if not DefeatStarted then current_cine_id = Create_Thread("MidMission_Cinematic") end end -- delay a short time and then start the game function CINE_Start_Mission_A() Enable_Distance_Fog(false) Stop_All_Music() CINE_Intro1_Active = true cinfalcon = Find_Hint("STORY_TRIGGER_ZONE", "cinfalcon") startcam = Find_Hint("STORY_TRIGGER_ZONE", "textcrawl") endcam = Find_Hint("PROP_KESSEL_PLANET_CINE_UNIT", "kessel") camera_pos = cinfalcon.Get_Position() --cinfalcon.Despawn() Weather_Audio_Pause(true) Cinematic_Suspend_Units() SFXManager.Allow_Ambient_VO( false ) Allow_Localized_SFX(false) Suspend_AI(1) Lock_Controls(1) Fade_Screen_In(0.5) Letter_Box_In(0) Start_Cinematic_Camera() -- Set_Cinematic_Camera_Key(target_pos, xoffset_dist, yoffset_pitch, zoffset_yaw, angles?, attach_object, use_object_rotation, cinematic_animation) Set_Cinematic_Camera_Key(camera_pos, 85, 25, 315, 1, 0, 1, 0) Set_Cinematic_Target_Key(endcam, 0, 0, 3000, 0, 0, 0, 0) Stop_All_Music() Stop_All_Speech() Allow_Localized_SFX(false) BlockOnCommand(Play_Bink_Movie("Star_Wars_Intro")) Play_Music("Cinematic_Rebel_Intro_Music_Event_1") BlockOnCommand(Play_Bink_Movie("Star_Wars_Intro_Underworld")) current_cine_id = Create_Thread("CINE_Start_Mission_B") Weather_Audio_Pause(false) end function CINE_Start_Mission_B() Weather_Audio_Pause(false) Enable_Distance_Fog(false) CINE_Intro1_Active = false CINE_Intro2_Active = true Allow_Localized_SFX(true) landing_spot = Find_Hint("STORY_TRIGGER_ZONE", "falcon") hanend = Find_Hint("STORY_TRIGGER_ZONE_01", "hanend") chewieend = Find_Hint("STORY_TRIGGER_ZONE_01", "chewieend") startcam = Find_Hint("STORY_TRIGGER_ZONE", "textcrawl") endcam = Find_Hint("PROP_KESSEL_PLANET_CINE_UNIT", "kessel") falcon_goto_1 = Find_Hint("STORY_TRIGGER_ZONE_00", "falcongoto1") tyber_goto = Find_Hint("STORY_TRIGGER_ZONE_01", "tybergoto") urai_goto = Find_Hint("STORY_TRIGGER_ZONE_01", "uraigoto") cin_node = Find_Hint("UMP_CINE_NODE", "tybernode") tyber = Find_First_Object("UMP_TYBER_ZANN") cin_mouse = Find_Hint("UMP_CINE_MOUSEDROID", "mouse") cin_holo = Find_Hint("UMP_CINE_HOLOURAI", "holo") cin_tyber = Find_Hint("UMP_CINE_TYBERSITTING", "tybersit") cin_jabba = Find_Hint("UMP_CINE_HOLOJABBA", "holojabba") cin_droid = Find_Hint("UMP_CINE_MOUSEDROID", "mousedroid") camtybersitpos = Find_Hint("STORY_TRIGGER_ZONE", "camtybersitpos") camtybersitlook = Find_Hint("STORY_TRIGGER_ZONE", "camtybersitlook") camtybersitpanpos = Find_Hint("STORY_TRIGGER_ZONE", "camtybersitpanpos") camtybersitpanlook = Find_Hint("STORY_TRIGGER_ZONE", "camtybersitpanlook") camjabbapos = Find_Hint("STORY_TRIGGER_ZONE", "camjabbapos") camjabbalook = Find_Hint("STORY_TRIGGER_ZONE", "camjabbalook") camconsolepos = Find_Hint("STORY_TRIGGER_ZONE", "camconsolepos") camconsolelook = Find_Hint("STORY_TRIGGER_ZONE", "camconsolelook") camuraiholopos = Find_Hint("STORY_TRIGGER_ZONE", "camuraiholopos") camuraihololook = Find_Hint("STORY_TRIGGER_ZONE", "camuraihololook") camtyberuraipos = Find_Hint("STORY_TRIGGER_ZONE", "camtyberuraipos") camtyberurailook = Find_Hint("STORY_TRIGGER_ZONE", "camtyberurailook") cambountypos = Find_Hint("STORY_TRIGGER_ZONE", "cambountypos") cambountylook = Find_Hint("STORY_TRIGGER_ZONE", "cambountylook") cambountypanpos = Find_Hint("STORY_TRIGGER_ZONE", "cambountypanpos") cambountytalkpos = Find_Hint("STORY_TRIGGER_ZONE", "cambountytalkpos") cambountytalklook = Find_Hint("STORY_TRIGGER_ZONE", "cambountytalklook") cambountyhearpos = Find_Hint("STORY_TRIGGER_ZONE", "cambountyhearpos") cambountyhearlook = Find_Hint("STORY_TRIGGER_ZONE", "cambountyhearlook") camuraikillpos = Find_Hint("STORY_TRIGGER_ZONE", "camuraikillpos") camuraikilllook = Find_Hint("STORY_TRIGGER_ZONE", "camuraikilllook") camfinalpos = Find_Hint("STORY_TRIGGER_ZONE", "camfinalpos") camfinallook = Find_Hint("STORY_TRIGGER_ZONE", "camfinallook") mousedroidwarpto = Find_Hint("STORY_TRIGGER_ZONE", "mousedroidwarpto") uraikillspawn = Find_Hint("STORY_TRIGGER_ZONE", "uraikillspawn") hunterspawn = Find_Hint("STORY_TRIGGER_ZONE", "hunterspawn") tyberconsole = Find_Hint("STORY_TRIGGER_ZONE", "tyberconsole") cammousefollow1 = Find_Hint("STORY_TRIGGER_ZONE_01", "cammousefollow1") cammousefollow2 = Find_Hint("STORY_TRIGGER_ZONE_01", "cammousefollow2") mouse2 = Find_Hint("STORY_TRIGGER_ZONE", "mouse2") droidintnode = Find_Hint("DROID_INTERFACE_STATION", "droidintnode") Allow_Localized_SFX(true) Suspend_AI(1) Lock_Controls(1) Letter_Box_In(0) Start_Cinematic_Camera() if true then -- Set_Cinematic_Camera_Key(target_pos, xoffset_dist, yoffset_pitch, zoffset_yaw, angles?, attach_object, use_object_rotation, cinematic_animation) Set_Cinematic_Camera_Key(camera_pos, 85, 25, 315, 1, 0, 1, 0) Set_Cinematic_Target_Key(endcam, 0, 0, 3000, 0, 0, 0, 0) Transition_Cinematic_Target_Key(endcam, 6, 0, 0, 0, 0, 0, 0, 0) Sleep(8.5) Fade_Screen_Out(2) Sleep(2) end --********* 2nd Scene of Intro Cinematic ********** Enable_Distance_Fog(true) cin_mouse.Hide(true) cin_holo.Hide(true) cin_jabba.Hide(true) tyber.Hide(true) cin_tyber.Play_Animation("Cinematic", true, 0) Hide_Sub_Object(cin_tyber, 1, "newgun") 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(camtybersitpos, 0, 0, 80, 0, 0, 0, 0) Set_Cinematic_Target_Key(camtybersitlook, 0, 0, 0, 0, 0, 0, 0) Transition_Cinematic_Camera_Key(camtybersitpos, 5, 0, 0, 35, 0, 0, 0, 0) Sleep(5) droidintnode = Find_Hint("DROID_INTERFACE_STATION", "droidintnode") droidintnodegoto = Find_Hint("STORY_TRIGGER_ZONE", "droidintnodegoto") cin_droid.Override_Max_Speed(1) cin_droid.Move_To(droidintnodegoto) --cin_droid.Move_To(mouse2) Set_Cinematic_Camera_Key(cammousefollow1, 0, 0, 10, 0, 0, 0, 0) Set_Cinematic_Target_Key(cammousefollow2, 0, 0, 0, 0, 0, 0, 0) Transition_Cinematic_Target_Key(droidintnodegoto, 6, 0, 0, 5, 0, 0, 0, 0) Transition_Cinematic_Camera_Key(cammousefollow2, 6, 0, 0, 15, 0, 0, 0, 0) Sleep(5) cin_droid.Turn_To_Face(droidintnode) droid_bone = cin_droid.Get_Bone_Position("MuzzleA_00") node_bone = droidintnode.Get_Bone_Position("MuzzleA_01") Play_Lightning_Effect("Kessel_Mouse_Droid_Hack", droid_bone, node_bone) cin_droid.Play_SFX_Event("Static_On") Sleep(2) Transition_Cinematic_Target_Key(camtybersitlook, 6, 0, 0, 5, 0, 0, 0, 0) cinedoor2.Play_Animation("Cinematic",false,1) Sleep(2) cinedoor2.Despawn() cin_droid.Move_To(mouse2) Sleep(3) cin_tyber.Play_Animation("Cinematic", true, 1) Sleep(1) cin_droid.Teleport_And_Face(mousedroidwarpto) cin_jabba.Teleport_And_Face(mousedroidwarpto) cin_tyber.Play_Animation("Cinematic", true, 0) cin_droid.Hide(true) Set_Cinematic_Camera_Key(camjabbapos, 0, 0, 30, 0, 0, 0, 0) Set_Cinematic_Target_Key(camjabbalook, 0, 0, -25, 0, 0, 0, 0) Transition_Cinematic_Camera_Key(camjabbapos, 15, 0, 0, 16, 0, 0, 0, 0) Transition_Cinematic_Target_Key(camjabbalook, 15, 0, 0, 5, 0, 0, 0, 0) --Sleep(1) cin_droid.Suspend_Locomotor(true) cin_jabba.Hide(false) cin_tyber.Play_Animation("Cinematic", true, 1) cin_jabba.Play_Animation("deploy", false, 0) Sleep(1) Story_Event("CHATTER_NEW_00") cin_jabba.Play_Animation("idle", true, 0) while not State_Prolog_Intro_Dialog_New_00_Done do Sleep(.5) end cin_jabba.Play_Animation("cinematic", true, 0) Set_Cinematic_Camera_Key(camtybersitpos, 0, 0, 35, 0, 0, 0, 0) Set_Cinematic_Target_Key(camtybersitlook, 0, 0, 0, 0, 0, 0, 0) Transition_Cinematic_Camera_Key(camtybersitpanpos, 5, 0, 5, 30, 0, 0, 0, 0) Transition_Cinematic_Target_Key(camtybersitpanlook, 5, 0, 0, 0, 0, 0, 0, 0) Story_Event("CHATTER_NEW_01") while not State_Prolog_Intro_Dialog_New_01_Done do Sleep(.5) end cin_jabba.Play_Animation("idle", true, 0) Set_Cinematic_Camera_Key(camjabbapos, 0, 0, 16, 0, 0, 0, 0) Set_Cinematic_Target_Key(camjabbalook, 0, 0, 5, 0, 0, 0, 0) Transition_Cinematic_Camera_Key(camjabbapos, 17, -5, -10, 16, 0, 0, 0, 0) Transition_Cinematic_Target_Key(camjabbalook, 17, -10, -10, 5, 0, 0, 0, 0) Story_Event("CHATTER_NEW_02") while not State_Prolog_Intro_Dialog_New_02_Done do Sleep(.5) end cin_jabba.Play_Animation("cinematic", true, 0) Set_Cinematic_Camera_Key(camtybersitpanpos, 0, 5, 30, 0, 0, 0, 0) Set_Cinematic_Target_Key(camtybersitpanlook, 0, 0, 0, 0, 0, 0, 0) Transition_Cinematic_Camera_Key(camtybersitpanpos, 10, 8, 20, 30, 0, 0, 0, 0) Transition_Cinematic_Target_Key(camtybersitpanlook, 10, -10, -10, 0, 0, 0, 0, 0) Story_Event("CHATTER_NEW_03") while not State_Prolog_Intro_Dialog_New_03_Done do Sleep(.5) end cin_jabba.Play_Animation("idle", true, 0) Set_Cinematic_Camera_Key(camjabbapos, 0, 0, 16, 0, 0, 0, 0) Set_Cinematic_Target_Key(camjabbalook, 0, 0, 5, 0, 0, 0, 0) Transition_Cinematic_Camera_Key(camjabbapos, 16, 10, -10, 16, 0, 0, 0, 0) Transition_Cinematic_Target_Key(camjabbalook, 16, -20, 30, 10, 0, 0, 0, 0) Story_Event("CHATTER_NEW_04") while not State_Prolog_Intro_Dialog_New_04_Done do Sleep(.5) end cin_jabba.Play_Animation("cinematic", true, 0) Set_Cinematic_Camera_Key(camtybersitpanpos, 0, 5, 30, 0, 0, 0, 0) Set_Cinematic_Target_Key(camtybersitpanlook, 0, 0, 0, 0, 0, 0, 0) Transition_Cinematic_Camera_Key(camtybersitpanpos, 10, 8, 20, 30, 0, 0, 0, 0) Transition_Cinematic_Target_Key(camtybersitpanlook, 10, -10, -10, 0, 0, 0, 0, 0) Story_Event("CHATTER_NEW_05") while not State_Prolog_Intro_Dialog_New_05_Done do Sleep(.5) end cin_jabba.Play_Animation("idle", true, 0) Set_Cinematic_Camera_Key(camjabbapos, 0, 0, 16, 0, 0, 0, 0) Set_Cinematic_Target_Key(camjabbalook, 0, 0, 5, 0, 0, 0, 0) Transition_Cinematic_Camera_Key(camjabbapos, 10, 5, 5, 20, 0, 0, 0, 0) Transition_Cinematic_Target_Key(camjabbalook, 10, -10, -10, 0, 0, 0, 0, 0) Story_Event("CHATTER_NEW_06") while not State_Prolog_Intro_Dialog_New_06_Done do Sleep(.5) end cin_jabba.Play_Animation("undeploy", false, 0) Sleep(2) cin_droid.Hide(true) cin_jabba.Hide(true) cin_tyber.Play_Animation("Cinematic", false, 2) Set_Cinematic_Camera_Key(camtybersitpos, 0, 0, 35, 0, 0, 0, 0) Set_Cinematic_Target_Key(camtybersitlook, 0, 0, 0, 0, 0, 0, 0) Transition_Cinematic_Camera_Key(camtybersitpos, 5, 0, 0, 40, 0, 0, 0, 0) Transition_Cinematic_Target_Key(cin_jabba, 5, 0, 0, 20, 0, 0, 0, 0) Sleep(.5) camtybersitpos.Play_SFX_Event("Unit_Panic_Mouse_Droid") Sleep(1) camtybersitpos.Play_SFX_Event("Unit_Anim_Infantry_Death_Concrete") camtybersitpos.Play_SFX_Event("Unit_Pulse_Cannon_Fire") Sleep(3) if true then if TestValid(cinedoor2) then cinedoor2.Despawn() end cin_tyber.Hide(true) tyber.Hide(false) Hide_Sub_Object(tyber, 1, "newgun") tyber.Move_To(tyberconsole) tyber.Override_Max_Speed(1) Set_Cinematic_Camera_Key(camconsolepos, 0, 0, 20, 0, 0, 0, 0) Set_Cinematic_Target_Key(camconsolelook, 0, 0, 10, 0, 0, 0, 0) Transition_Cinematic_Camera_Key(camuraiholopos, 5, 0, 0, 13, 0, 0, 0, 0) Transition_Cinematic_Target_Key(camuraihololook, 5, 0, 0, 9, 0, 0, 0, 0) Sleep(6) Set_Cinematic_Camera_Key(camtyberuraipos, 0, 0, 20, 0, 0, 0, 0) Set_Cinematic_Target_Key(camtyberurailook, 0, 0, 10, 0, 0, 0, 0) Transition_Cinematic_Camera_Key(camtyberuraipos, 5, 0, 0, 16, 0, 0, 0, 0) Transition_Cinematic_Target_Key(camtyberurailook, 5, 0, 0, 10, 0, 0, 0, 0) cin_holo.Hide(false) cin_holo.Play_Animation("deploy", false, 0) Story_Event("CHATTER_NEW_07") while not State_Prolog_Intro_Dialog_New_07_Done do Sleep(.5) end tyber.Turn_To_Face(cin_holo) cin_holo.Play_Animation("idle", false, 0) Story_Event("CHATTER_NEW_08") while not State_Prolog_Intro_Dialog_New_08_Done do Sleep(.5) end cin_holo.Play_Animation("deploy", false, 0) Set_Cinematic_Camera_Key(camconsolepos, 0, 0, 16, 0, 0, 0, 0) Set_Cinematic_Target_Key(camconsolelook, 0, 0, 10, 0, 0, 0, 0) Transition_Cinematic_Camera_Key(camconsolepos, 5, 5, 5, 16, 0, 0, 0, 0) Transition_Cinematic_Target_Key(camconsolelook, 5, 0, 0, 10, 0, 0, 0, 0) Story_Event("CHATTER_NEW_09") while not State_Prolog_Intro_Dialog_New_09_Done do Sleep(.5) end cin_holo.Play_Animation("idle", false, 0) Set_Cinematic_Camera_Key(camtyberuraipos, 0, 0, 16, 0, 0, 0, 0) Set_Cinematic_Target_Key(camtyberurailook, 0, 0, 10, 0, 0, 0, 0) Story_Event("CHATTER_NEW_10") while not State_Prolog_Intro_Dialog_New_10_Done do Sleep(.5) end cin_holo.Play_Animation("deploy", false, 0) Set_Cinematic_Camera_Key(camconsolepos, 0, 0, 16, 0, 0, 0, 0) Set_Cinematic_Target_Key(camconsolelook, 0, 0, 10, 0, 0, 0, 0) Transition_Cinematic_Camera_Key(camconsolepos, 5, 5, 0, 16, 0, 0, 0, 0) Transition_Cinematic_Target_Key(camconsolelook, 5, 0, 0, 10, 0, 0, 0, 0) Story_Event("CHATTER_NEW_11") while not State_Prolog_Intro_Dialog_New_11_Done do Sleep(.5) end cin_holo.Play_Animation("idle", false, 0) Set_Cinematic_Camera_Key(camtyberuraipos, 0, 0, 16, 0, 0, 0, 0) Set_Cinematic_Target_Key(camtyberurailook, 0, 0, 10, 0, 0, 0, 0) Story_Event("CHATTER_NEW_12") while not State_Prolog_Intro_Dialog_New_12_Done do Sleep(.5) end cin_holo.Play_Animation("deploy", false, 0) Set_Cinematic_Camera_Key(camconsolepos, 0, 0, 16, 0, 0, 0, 0) Set_Cinematic_Target_Key(camconsolelook, 0, 0, 10, 0, 0, 0, 0) Transition_Cinematic_Camera_Key(camconsolepos, 5, 5, 2, 16, 0, 0, 0, 0) Transition_Cinematic_Target_Key(camconsolelook, 5, 0, 0, 10, 0, 0, 0, 0) Story_Event("CHATTER_NEW_13") while not State_Prolog_Intro_Dialog_New_13_Done do Sleep(.5) end cin_holo.Play_Animation("undeploy", false, 0) Sleep(2) Fade_Screen_Out(2) Sleep(2) end --********* Falcon Lands ********** if true then Allow_Localized_SFX(true) Set_Cinematic_Camera_Key(landing_spot, 500, 0, 0, 1, 0, 1, 0) Set_Cinematic_Target_Key(landing_spot, 0, 0, -75, 0, 0, 0, 0) Fade_Screen_In(2) -- Create_Cinematic_Transport(object_type_name, player_id, transport_pos, zangle, phase_mode, anim_delta, idle_time, persist,hint) landing_falcon = Create_Cinematic_Transport("MILLENNIUM_FALCON_LANDING", neutral_player.Get_ID(), landing_spot, 240, 1, 0.25, 20, 1) landing_falcon.Attach_Particle_Effect("TRANSPORT_LANDING_DUST_URBAN") Transition_Cinematic_Camera_Key(landing_spot, 8, 600, 25, 0, 1, 0, 1, 0) Sleep(5.5) cine_urai = Create_Generic_Object("URAI_FEN", landing_spot.Get_Position(), neutral_player) Story_Event("CHATTER_35") while not State_Prolog_Chatter_Dialog_35_Done do Sleep(.5) end cine_urai.Move_To(urairunto) Sleep(1) cine_han = Create_Generic_Object("UMP_HANSOLO", landing_spot.Get_Position(), neutral_player) cine_han.Move_To(hanend) cine_chewie = Create_Generic_Object("UMP_CHEWBACCA", landing_spot.Get_Position(), neutral_player) cine_chewie.Move_To(chewieend) Sleep(1) falcon_gear1.Hide(false) falcon_gear2.Hide(false) falcon_gear3.Hide(false) falcon_gear4.Hide(false) falcon_gear5.Hide(false) falcon_gear6.Hide(false) falcon_gear7.Hide(false) falcon_gear8.Hide(false) falcon_gear9.Hide(false) falcon_gear10.Hide(false) falcon_gear11.Hide(false) falcon_gear12.Hide(false) falcon_gear20.Hide(false) falcon_gear21.Hide(false) falcon_gear22.Hide(false) falcon_gear23.Hide(false) falcon_gear24.Hide(false) falcon_gear25.Hide(false) falcon_gear26.Hide(false) Set_Cinematic_Camera_Key(Find_Hint("STORY_TRIGGER_ZONE_01", "chewiespawn"), -65, -65, 20, 0, 0, 0, 0) Set_Cinematic_Target_Key(Find_Hint("STORY_TRIGGER_ZONE_01", "chewiespawn"), 0, 0, 15, 0, 0, 0, 0) Sleep(1) cine_urai.Activate_Ability("STEALTH", true) Sleep(2) Find_Hint("STORY_TRIGGER_ZONE_01", "chewiespawn").Play_SFX_Event("Unit_Select_Chewie") Sleep(1) Story_Event("CHATTER_36") while not State_Prolog_Chatter_Dialog_36_Done do Sleep(.5) end Fade_Screen_Out(2) Sleep(2) end --*********3rd Scene of Intro Cinematic********** if true then cinedoor2.Play_Animation("Cinematic",false,0) if not TestValid(cine_urai) then cine_urai = Create_Generic_Object("URAI_FEN", landing_spot.Get_Position(), neutral_player) cine_urai.Activate_Ability("STEALTH", true) end tyber.Teleport_And_Face(tyberconsole) tyber.Hide(false) Hide_Sub_Object(tyber, 1, "newgun") hunter = Create_Generic_Object("UMP_MANDALORIAN", hunterspawn.Get_Position(), neutral_player) hunter.Teleport_And_Face(hunterspawn) Set_Cinematic_Camera_Key(cambountypos, 0, 0, 18, 0, 0, 0, 0) Set_Cinematic_Target_Key(cambountylook, 0, 0, 8, 0, 0, 0, 0) Transition_Cinematic_Camera_Key(cambountypanpos, 6, 0, 0, 18, 0, 0, 0, 0) Fade_Screen_In(2) Sleep(4) Story_Event("CHATTER_03") while not State_Prolog_Intro_Dialog_03_Done do Sleep(.5) end Story_Event("CHATTER_04") tyber.Turn_To_Face(hunter) while not State_Prolog_Intro_Dialog_04_Done do Sleep(.5) end Story_Event("CHATTER_05") Set_Cinematic_Camera_Key(cambountytalkpos, 0, 0, 16, 0, 0, 0, 0) Set_Cinematic_Target_Key(cambountytalklook, 0, 0, 10, 0, 0, 0, 0) while not State_Prolog_Intro_Dialog_05_Done do Sleep(.5) end Story_Event("CHATTER_06") Set_Cinematic_Camera_Key(cambountyhearpos, 0, 0, 16, 0, 0, 0, 0) Set_Cinematic_Target_Key(cambountyhearlook, 0, 0, 10, 0, 0, 0, 0) while not State_Prolog_Intro_Dialog_06_Done do Sleep(.5) end if TestValid(cine_urai) then cine_urai.Despawn() cine_urai = Create_Generic_Object("URAI_FEN", urairunto.Get_Position(), neutral_player) end cine_urai.Activate_Ability("STEALTH", true) Story_Event("CHATTER_07") Set_Cinematic_Camera_Key(cambountytalkpos, 0, 0, 16, 0, 0, 0, 0) Set_Cinematic_Target_Key(cambountytalklook, 0, 0, 10, 0, 0, 0, 0) while not State_Prolog_Intro_Dialog_07_Done do Sleep(.5) end Story_Event("CHATTER_08") Set_Cinematic_Camera_Key(camuraikillpos, 0, 0, 18, 0, 0, 0, 0) Set_Cinematic_Target_Key(camuraikilllook, 0, 0, 8, 0, 0, 0, 0) Sleep(1) cine_urai.Teleport_And_Face(uraikillspawn) cine_urai.Activate_Ability("STEALTH", false) Sleep(1.5) cine_urai.Play_Animation("Attack",false,0) Sleep(1) hunter.Take_Damage(99999) Transition_Cinematic_Camera_Key(camfinalpos, 3, 0, 0, 11, 0, 0, 0, 0) Transition_Cinematic_Target_Key(camfinallook, 3, 0, 0, 15, 0, 0, 0, 0) while not State_Prolog_Intro_Dialog_08_Done do Sleep(.5) end cine_urai.Move_To(hunterspawn) Set_Cinematic_Camera_Key(cambountyhearpos, 0, 0, 16, 0, 0, 0, 0) Set_Cinematic_Target_Key(cambountyhearlook, 0, 0, 10, 0, 0, 0, 0) Story_Event("CHATTER_09") while not State_Prolog_Midtro_Dialog_09_Done do Sleep(.5) end cine_urai.Turn_To_Face(tyber) Set_Cinematic_Camera_Key(camfinalpos, 0, 0, 11, 0, 0, 0, 0) Set_Cinematic_Target_Key(camfinallook, 0, 0, 15, 0, 0, 0, 0) Story_Event("CHATTER_10") while not State_Prolog_Midtro_Dialog_10_Done do Sleep(.5) end Set_Cinematic_Camera_Key(cambountyhearpos, 0, 0, 16, 0, 0, 0, 0) Set_Cinematic_Target_Key(cambountyhearlook, 0, 0, 10, 0, 0, 0, 0) Story_Event("CHATTER_11") while not State_Prolog_Midtro_Dialog_11_Done do Sleep(.5) end Fade_Screen_Out(1) Sleep(1.5) end Create_Thread("IntroCineCleanup") end function Story_Handle_Esc() if CINE_Intro1_Active then CINE_Intro1_Active = false Thread.Kill(current_cine_id) Stop_Bink_Movie() current_cine_id = Create_Thread("CINE_Start_Mission_B") end if CINE_Intro2_Active then CINE_Intro2_Active = false Thread.Kill(current_cine_id) Create_Thread("IntroCineCleanup") end --if CINE_Mid_Active then -- CINE_Mid_Active = false -- Thread.Kill(current_cine_id) -- Create_Thread("MidCineCleanup") --end --if CINE_End_Active then -- CINE_End_Active = false -- Thread.Kill(current_cine_id) -- Create_Thread("EndCineCleanup") --end end function IntroCineCleanup() CINE_Intro1_Active = false CINE_Intro2_Active = false Enable_Distance_Fog(true) Fade_Screen_Out(0) End_Cinematic_Camera() Letter_Box_Out(0) Resume_Mode_Based_Music() Remove_All_Text() Allow_Localized_SFX(true) Suspend_AI(0) Lock_Controls(0) cin_holo.Despawn() cin_tyber.Despawn() cin_jabba.Despawn() cin_droid.Despawn() cin_node.Despawn() broken_node = Create_Generic_Object("UMP_INTERFACE_NODE", tyberconsole.Get_Position(), neutral_player) broken_node.Take_Damage(9999) if not TestValid(landing_falcon) then landing_falcon = Create_Cinematic_Transport("MILLENNIUM_FALCON_LANDING", neutral_player.Get_ID(), Find_Hint("STORY_TRIGGER_ZONE", "falcon"), 240, 1, 1.0, 20, 1) end han_solo = Find_First_Object("UMP_HANSOLO") if not TestValid(han_solo) then han_solo = Spawn_Unit(Find_Object_Type("UMP_HANSOLO"), Find_Hint("STORY_TRIGGER_ZONE_01", "hanspawn"), neutral_player) end chewbacca = Find_First_Object("UMP_CHEWBACCA") if not TestValid(chewbacca) then chewbacca = Spawn_Unit(Find_Object_Type("UMP_CHEWBACCA"), Find_Hint("STORY_TRIGGER_ZONE_01", "chewiespawn"), neutral_player) end if TestValid(cine_urai) then cine_urai.Despawn() end if TestValid(hunter) then hunter.Despawn() end if TestValid(cinedoor2) then cinedoor2.Despawn() end tyber_zann = Find_Nearest(pad2,"UMP_TYBER_ZANN") Register_Death_Event(tyber_zann, Tyber_Destroyed) urai_fenn = Create_Generic_Object("URAI_FEN",urai_goto.Get_Position(),underworld_player) Register_Death_Event(urai_fenn, Urai_Destroyed) tyber_zann.Teleport_And_Face(tyber_goto) tyber_zann.Suspend_Locomotor(false) tyber_zann.Prevent_All_Fire(false) tyber_zann.Make_Invulnerable(false) tyber_zann.Hide(false) urai_fenn.Teleport_And_Face(urai_goto) urai_fenn.Suspend_Locomotor(false) urai_fenn.Prevent_All_Fire(false) urai_fenn.Make_Invulnerable(false) urai_fenn.Hide(false) first1.Set_Selectable(false) first2.Set_Selectable(false) Hide_Sub_Object(tyber, 0, "newgun") MissionPartOneStarted = true current_cine_id = nil falcon_gear1.Hide(false) falcon_gear2.Hide(false) falcon_gear3.Hide(false) falcon_gear4.Hide(false) falcon_gear5.Hide(false) falcon_gear6.Hide(false) falcon_gear7.Hide(false) falcon_gear8.Hide(false) falcon_gear9.Hide(false) falcon_gear10.Hide(false) falcon_gear11.Hide(false) falcon_gear12.Hide(false) falcon_gear20.Hide(false) falcon_gear21.Hide(false) falcon_gear22.Hide(false) falcon_gear23.Hide(false) falcon_gear24.Hide(false) falcon_gear25.Hide(false) falcon_gear26.Hide(false) Sleep(1) Story_Event("UM01_INTROCINE_DONE") Create_Thread("StartMissionObjective") Fade_Screen_In(.5) Cinematic_UnSuspend_Units() --OK_To_Land_Guys = true end function MidCineCleanup() CINE_Mid_Active = false Fade_Screen_Out(0) Point_Camera_At(tyber_zann) End_Cinematic_Camera() Letter_Box_Out(0) --Stop_All_Music() Stop_All_Speech() Remove_All_Text() Allow_Localized_SFX(true) End_Cinematic_Camera() Letter_Box_Out(0) Lock_Controls(0) Suspend_AI(0) tyber_zann.Prevent_All_Fire(false) urai_fenn.Prevent_All_Fire(false) tyber_zann.Suspend_Locomotor(false) urai_fenn.Suspend_Locomotor(false) MissionPartTwoStarted = true CINE_Mid_Active = false current_cine_id = nil Fade_Screen_In(.5) if darkguys4.Is_Ability_Ready("JET_PACK") then darkguys4.Activate_Ability("JET_PACK", riot5) end if darkguys1.Is_Ability_Ready("JET_PACK") then darkguys1.Activate_Ability("JET_PACK", urai_loc) end Create_Thread("Hunt_Underworld", {darkguys1} ) Create_Thread("Hunt_Underworld", {darkguys2} ) Create_Thread("Hunt_Underworld", {darkguys3} ) Create_Thread("Hunt_Underworld", {darkguys4} ) Create_Thread("Open_Door9") Cinematic_UnSuspend_Units() riotersb.Change_Owner(underworld_player) riotersd.Change_Owner(underworld_player) riotersb.Set_Selectable(true) riotersd.Set_Selectable(true) underworld_player.Select_Object(riotersb) underworld_player.Select_Object(riotersd) guards6.Suspend_Locomotor(false) OK_To_Land_Guys_A = true OK_To_Land_Guys_B = false OK_To_Spawn_Guys_A = true OK_To_Spawn_Guys_B = true Story_Event("UM01_KILL_TROOPERS") end function EndCineCleanup() CINE_End_Active = false Story_Event("UM01_ENDMISSION_VICTORY") Set_Cinematic_Camera_Key(falcon, 0, -200, 100, 0, 0, 0, 0) Set_Cinematic_Target_Key(falcon, 0, 0, 0, 0, 0, 0, 0) Transition_Cinematic_Camera_Key(falcon, 10, 0, -500, 100, 0, 0, 0, 0) tyber.Suspend_Locomotor(false) han_solo.Suspend_Locomotor(false) chewbacca.Suspend_Locomotor(false) uraiend.Suspend_Locomotor(false) Stop_All_Speech() Remove_All_Text() Allow_Localized_SFX(true) Weather_Audio_Pause(false) SFXManager.Allow_Ambient_VO(true) Fade_Screen_In(.5) tyber.Move_To(falcon) Sleep(1) uraiend.Move_To(falcon) Sleep(4) han_solo.Move_To(falcon) chewbacca.Move_To(falcon) Sleep(10) end function EndCineCleanup_OLD() CINE_End_Active = false if not enddeadguys then cargo6[1].Despawn() cargo5[1].Despawn() cargo3[1].Despawn() cargo2[1].Despawn() cargo1[1].Despawn() Create_Generic_Object("DEAD_BOTHAN", uraikiller.Get_Position(), neutral_player) --Create_Generic_Object("DEAD_BOTHAN", urai_end_loc.Get_Position(), neutral_player) Create_Generic_Object("UMP_DEADGUYS", cargo1_loc.Get_Position(), neutral_player) Create_Generic_Object("UMP_DEADGUYS", cargo2_loc.Get_Position(), neutral_player) Create_Generic_Object("UMP_DEADGUYS", cargo3_loc.Get_Position(), neutral_player) Create_Generic_Object("UMP_DEADGUYS", endgame.Get_Position(), neutral_player) Create_Generic_Object("UMP_DEADGUYS", Find_Hint("STORY_TRIGGER_ZONE_01", "hanspawn").Get_Position(), neutral_player) Create_Generic_Object("DEAD_BOTHAN", Find_Hint("STORY_TRIGGER_ZONE_01", "chewiespawn").Get_Position(), neutral_player) end Story_Event("UM01_ENDMISSION_VICTORY") cargo4.Despawn() Set_Cinematic_Camera_Key(falcon, 0, -200, 100, 0, 0, 0, 0) Set_Cinematic_Target_Key(falcon, 0, 0, 0, 0, 0, 0, 0) Transition_Cinematic_Camera_Key(falcon, 10, 0, -500, 100, 0, 0, 0, 0) tyber.Suspend_Locomotor(false) han_solo.Suspend_Locomotor(false) chewbacca.Suspend_Locomotor(false) uraiend.Suspend_Locomotor(false) tyber.Move_To(falcon) Sleep(1) uraiend.Move_To(falcon) Sleep(5) han_solo.Move_To(falcon) chewbacca.Move_To(falcon) Sleep(10) Stop_All_Speech() Remove_All_Text() Allow_Localized_SFX(true) end function Open_Door9() sfxplayed=false while not OK_To_Land_Guys_B do if not TestValid(darkguys1) and not TestValid(darkguys2) and not TestValid(darkguys3) and not TestValid(darkguys4) then door9.Play_Animation("Cinematic",false,1) OK_To_Land_Guys_B = true door9.Despawn() Story_Event("UM01_KILL_TROOPERS_DONE") Opened_Last_Door() end Sleep(1) if not sfxplayed then Sleep(3) Story_Event("CHATTER_42") sfxplayed=true end end end function Tyber_Destroyed() if not VictoryStarted then if not CINE_End_Active then if MissionPartOneStarted then DefeatCondition_TyberDead = true Story_Event("UM01_TYBERDEAD") end end end end function Urai_Destroyed() if not VictoryStarted then if not CINE_End_Active then if MissionPartOneStarted then DefeatCondition_UraiDead = true Story_Event("UM01_URAIDEAD") end end end end -- delay a short time and then display the mission objective function StartMissionObjective() -- player cash Story_Event("SET_CREDITS") -- setup doors door1.Play_Animation("Cinematic",false,0) door2.Play_Animation("Cinematic",false,0) door5.Play_Animation("Cinematic",false,0) door6.Play_Animation("Cinematic",false,0) door7.Play_Animation("Cinematic",false,0) Create_Thread("Check_LandingPads") falcon.Highlight(true) Add_Radar_Blip(falcon, "falconblip") FogOfWar.Reveal(underworld_player, falcon, 250, 250); Story_Event("UMP_URAI_ADDED") Story_Event("CHATTER_40") Sleep(3) if TestValid(console1) then Story_Event("UM01_HINT_BLOWDOOR") Set_Hint_At_Object(console1) end end function MidMission_Cinematic() Cancel_Fast_Forward() OK_To_Spawn_Guys_A = false OK_To_Land_Guys_A = false Cinematic_Suspend_Units() CINE_Mid_Active = true Suspend_AI(1) Lock_Controls(1) urai_loc = Find_Hint("STORY_TRIGGER_ZONE", "midcine-urai") tyber_loc = Find_Hint("STORY_TRIGGER_ZONE", "midcine-tyber") hunter_loc = Find_Hint("UMP_BOUNTY_HUNTER", "midcine-hunter") movers = Find_All_Objects_Of_Type(underworld_player, "Infantry") for k, unit in pairs(movers) do if TestValid(unit) then if not unit.Get_Parent_Object() then unit.Move_To(riotgoto) end end end Fade_Screen_Out(1) Sleep(1) tyber_zann.Suspend_Locomotor(true) tyber_zann.Prevent_All_Fire(true) tyber_zann.Teleport_And_Face(tyber_loc) tyber_zann.Face_Immediate(urai_loc) tyber_zann.Play_Animation("Idle", false, 0) urai_fenn.Suspend_Locomotor(true) urai_fenn.Prevent_All_Fire(true) urai_fenn.Teleport_And_Face(urai_loc) urai_fenn.Face_Immediate(tyber_loc) urai_fenn.Play_Animation("Idle", false, 0) Letter_Box_In(0) Start_Cinematic_Camera() riotersb.Move_To(riotgoto) riotersd.Move_To(riotgoto) --Set_Cinematic_Camera_Key(target_pos, xoffset_dist, yoffset_pitch, zoffset_yaw, angles?, attach_object, use_object_rotation, cinematic_animation) Set_Cinematic_Camera_Key(darkguys2, 65, 0, 20, 0, 1, 1, 0) Set_Cinematic_Target_Key(darkguys2, 0, 0, 18, 0, 1, 1, 0) darkguys1.Change_Owner(neutral_player) darkguys2.Change_Owner(neutral_player) Fade_Screen_In(1) Transition_Cinematic_Camera_Key(darkguys2, 5, 75, 0, 25, 0, 1, 1, 0) Transition_Cinematic_Target_Key(darkguys2, 5, 0, 0, 10, 0, 1, 1, 0) guards6.Attack_Move(riotgoto) Story_Event("CHATTER_33") while not State_Prolog_Chatter_Dialog_33_Done do Sleep(.5) end Set_Cinematic_Camera_Key(urai_fenn, 5, 0, 20, 0, 0, 0, 0) Set_Cinematic_Target_Key(tyber_zann, 0, 0, 10, 0, 0, 0, 0) Sleep(1) if TestValid(riotersb) then riotersb.Prevent_All_Fire(false) end if TestValid(riotersd) then riotersd.Prevent_All_Fire(false) end if TestValid(guards6) then guards6.Prevent_All_Fire(false) end riotersb.Attack_Target(guards6) riotersd.Attack_Target(guards6) guards6.Attack_Target(riotersb) Transition_Cinematic_Target_Key(riotgoto, 3.5, -50, 25, 15, 0, 0, 0, 0) Transition_Cinematic_Camera_Key(urai_fenn, 3.5, 40, 20, 20, 0, 0, 0, 0) -- remove? darkguys1.Change_Owner(empire_player) darkguys2.Change_Owner(empire_player) Story_Event("CHATTER_34") while not State_Prolog_Chatter_Dialog_34_Done do Sleep(.5) end Fade_Screen_Out(1) Sleep(1) Create_Thread("MidCineCleanup") end -- triggered when player gets close to the prisoner/workers function Prox_HintSpice(self_obj, trigger_obj) if trigger_obj.Is_Selectable() then if MissionPartOneStarted then if not trigger_obj then DebugMessage("Warning: prox received a nil trigger_obj .") return end if not DefeatCondition_TyberDead and not DefeatCondition_UraiDead then closest_infantry = Find_Nearest(self_obj, "UMP_TYBER_ZANN") --closest_infantry.Play_SFX_Event("SFX_UMP_EmpireKesselAlarm") Set_Hint_At_Object(spice) Story_Event("UM01_HINT_GETSPICE") self_obj.Cancel_Event_Object_In_Range(Prox_HintSpice) Story_Event("CHATTER_22") end end end end --- NNNNNNNNNNNNNNNNNNNNNNNNNNNNNN function Prox_Riots1(self_obj, trigger_obj) if trigger_obj == tyber_zann then if not DefeatCondition_TyberDead and not DefeatCondition_UraiDead then rioters1.Change_Owner(underworld_player) rioters2.Change_Owner(underworld_player) rioters1.Set_Selectable(true) rioters2.Set_Selectable(true) underworld_player.Select_Object(rioters1) underworld_player.Select_Object(rioters2) guards1.Suspend_Locomotor(false) OK_To_Spawn_Guys_A = true self_obj.Cancel_Event_Object_In_Range(Prox_Riots1) end end end function Prox_Riots2(self_obj, trigger_obj) if trigger_obj == tyber_zann then if not DefeatCondition_TyberDead and not DefeatCondition_UraiDead then rioters3.Change_Owner(underworld_player) rioters4.Change_Owner(underworld_player) rioters3.Set_Selectable(true) rioters4.Set_Selectable(true) underworld_player.Select_Object(rioters3) underworld_player.Select_Object(rioters4) guards2.Suspend_Locomotor(false) self_obj.Cancel_Event_Object_In_Range(Prox_Riots2) end end end function Prox_Riots3(self_obj, trigger_obj) if trigger_obj == tyber_zann then if not DefeatCondition_TyberDead and not DefeatCondition_UraiDead then rioters5.Change_Owner(underworld_player) rioters7.Change_Owner(underworld_player) rioters5.Set_Selectable(true) rioters7.Set_Selectable(true) underworld_player.Select_Object(rioters5) underworld_player.Select_Object(rioters7) guards4.Suspend_Locomotor(false) self_obj.Cancel_Event_Object_In_Range(Prox_Riots3) end end end function Prox_Riots4(self_obj, trigger_obj) if trigger_obj == tyber_zann then if not DefeatCondition_TyberDead and not DefeatCondition_UraiDead then rioters9.Change_Owner(underworld_player) rioters0.Change_Owner(underworld_player) rioters9.Set_Selectable(true) rioters0.Set_Selectable(true) underworld_player.Select_Object(rioters9) underworld_player.Select_Object(rioters0) guards5.Suspend_Locomotor(false) self_obj.Cancel_Event_Object_In_Range(Prox_Riots4) console7.Highlight(true) end end end -- triggered when player gets close to the prisoner/workers function HintWorkers() if MissionPartOneStarted then if not DefeatCondition_TyberDead and not DefeatCondition_UraiDead then Set_Hint_At_Object(workers) Story_Event("UM01_HINT_GETWORKERS") wookies.Change_Owner(underworld_player) workers.Change_Owner(underworld_player) wookies.Set_Selectable(true) workers.Set_Selectable(true) underworld_player.Select_Object(wookies) underworld_player.Select_Object(workers) guards0.Suspend_Locomotor(false) atst1.Suspend_Locomotor(false) Create_Thread("Hunt_Underworld", { atst1 }) end end end function TyberPrisoner_Dialogue() Story_Event("CHATTER_30") while not State_Prolog_Chatter_Dialog_30_Done do Sleep(.5) end Story_Event("CHATTER_31") while not State_Prolog_Chatter_Dialog_31_Done do Sleep(.5) end Story_Event("CHATTER_32") end -- triggered when player gets close to the explosive containers function Prox_HintContainer(self_obj, trigger_obj) if trigger_obj.Is_Selectable() then if MissionPartOneStarted then if not trigger_obj then DebugMessage("Warning: prox received a nil trigger_obj .") return end if not DefeatCondition_TyberDead and not DefeatCondition_UraiDead then closest_infantry = Find_Nearest(self_obj, "UMP_TYBER_ZANN") --closest_infantry.Play_SFX_Event("SFX_UMP_EmpireKesselAlarm") Set_Hint_At_Object(container) Story_Event("UM01_HINT_BLOWCONTAINER") self_obj.Cancel_Event_Object_In_Range(Prox_HintContainer) Register_Death_Event(container, HintContainer_Remove) Story_Event("CHATTER_21") end end end end -- triggered when player destroys the explosive containers function HintContainer_Remove() Remove_Hint_At_Object(container) end function Check_LandingPads() Register_Timer(GuardGuysLand, 1) while true do if pad2.Get_Owner() == underworld_player and not PadTwoCaptured then PadTwoCaptured = true end if pad3.Get_Owner() == underworld_player and not PadThreeCaptured then PadThreeCaptured = true end Sleep(1) end end function GuardGuysLand() if MissionPartTwoStarted then Register_Timer(GuardGuysLand, 30) reinforce_list = { --"DARKTROOPER_P2_COMPANY" "IMPERIAL_STORMTROOPER_SQUAD" } else Register_Timer(GuardGuysLand, 45) reinforce_list = { "IMPERIAL_STORMTROOPER_SQUAD" --"DARK_TROOPER_PHASEI" } end --if not PadOneCaptured then -- ReinforceList(reinforce_list, pad1, empire_player, false, true, true, Find_And_Attack) --end if OK_To_Land_Guys_A then if not PadTwoCaptured then ReinforceList(reinforce_list, pad2, empire_player, false, true, true, Find_And_Attack) end end if OK_To_Land_Guys_B then if not PadThreeCaptured then ReinforceList(reinforce_list, pad3, empire_player, false, true, true, Find_And_Attack) end end tyber_zann.Play_SFX_Event("SFX_UMP_EmpireKesselAlarm") Register_Timer(Kessel_Alarm_A, 2) end function Kessel_Alarm_A() tyber_zann.Play_SFX_Event("SFX_UMP_EmpireKesselAlarm") Register_Timer(Kessel_Alarm_B, 2) end function Kessel_Alarm_B() tyber_zann.Play_SFX_Event("SFX_UMP_EmpireKesselAlarm") Register_Timer(Kessel_Alarm_C, 2) end function Kessel_Alarm_C() tyber_zann.Play_SFX_Event("SFX_UMP_EmpireKesselAlarm") end function Find_And_Attack(attack_list) Create_Thread("Hunt_Underworld",attack_list) end -- triggered when player gets close to the prisoner/workers function Prox_MilleniumFalcon(self_obj, trigger_obj) if trigger_obj == tyber_zann then if MissionPartOneStarted then if not trigger_obj then DebugMessage("Warning: prox received a nil trigger_obj .") return end if not DefeatCondition_TyberDead and not DefeatCondition_UraiDead then --closest_infantry = Find_Nearest(self_obj, "UMP_TYBER_ZANN") --closest_infantry.Play_SFX_Event("SFX_UMP_EmpireKesselAlarm") Remove_Hint_At_Object(falcon) VictoryCondition_ReachedFalcon = true self_obj.Cancel_Event_Object_In_Range(Prox_MilleniumFalcon) end end end end function Opened_Last_Door() if not DefeatCondition_TyberDead and not DefeatCondition_UraiDead then Remove_Hint_At_Object(falcon) VictoryCondition_ReachedFalcon = true end end --END CINEMATIC function EndMissionVictory_NEW() Cancel_Fast_Forward() OK_To_Land_Guys_A = false OK_To_Land_Guys_B = false OK_To_Spawn_Guys_A = false OK_To_Spawn_Guys_B = false unit_list = Find_All_Objects_Of_Type(empire_player) for k, unit in pairs(unit_list) do if TestValid(unit) then unit.Suspend_Locomotor(true) end end unit_list = Find_All_Objects_Of_Type("STORMTROOPER_TEAM") for k, unit in pairs(unit_list) do if TestValid(unit) then if TestValid(unit) then unit.Despawn() end end end CINE_End_Active = true Story_Event("UM01_ENDCINE_BEGIN") han_end_loc = Find_Hint("STORY_TRIGGER_ZONE_01", "hanend") chewie_end_loc = Find_Hint("STORY_TRIGGER_ZONE_01", "chewieend") urai_end_loc = Find_Hint("STORY_TRIGGER_ZONE_01", "uraiend") tyber_end_loc = Find_Hint("STORY_TRIGGER_ZONE_01", "tyberend") han_solo = Find_First_Object("UMP_HANSOLO") chewbacca = Find_First_Object("UMP_CHEWBACCA") tyber = Find_First_Object("UMP_TYBER_ZANN") uraiend = Create_Generic_Object("URAI_FEN", urai_end_loc.Get_Position(), underworld_player) cargo1_loc = Find_Hint("STORY_TRIGGER_ZONE_01", "xtracargo1") cargo2_loc = Find_Hint("STORY_TRIGGER_ZONE_01", "xtracargo2") cargo3_loc = Find_Hint("STORY_TRIGGER_ZONE_01", "xtracargo3") cargo4_loc = Find_Hint("STORY_TRIGGER_ZONE_01", "xtracargo4") lookspice_loc = Find_Hint("STORY_TRIGGER_ZONE_01", "cinelookspice") Fade_Screen_Out(1) Sleep(1) Letter_Box_In(0) Suspend_AI(1) Lock_Controls(1) Start_Cinematic_Camera() han_solo.Prevent_All_Fire(true) han_solo.Teleport_And_Face(han_end_loc) han_solo.Face_Immediate(tyber_zann) han_solo.Suspend_Locomotor(true) chewbacca.Prevent_All_Fire(true) chewbacca.Teleport_And_Face(chewie_end_loc) chewbacca.Face_Immediate(tyber_zann) chewbacca.Suspend_Locomotor(true) tyber.Prevent_All_Fire(true) tyber.Teleport_And_Face(tyber_end_loc) tyber.Face_Immediate(han_solo) tyber.Suspend_Locomotor(true) tyber.Play_Animation("Idle", false, 0) uraiend.Prevent_All_Fire(true) uraiend.Teleport_And_Face(urai_end_loc) uraiend.Face_Immediate(han_solo) uraiend.Suspend_Locomotor(true) uraiend.Play_Animation("Idle", false, 0) underworld_list = Find_All_Objects_Of_Type(underworld_player) for k, unit in pairs(underworld_list) do --MessageBox("Checking underworld unit %s", unit.Get_Type().Get_Name()) if TestValid(unit) and not (unit == han_solo) and not (unit == chewbacca) and not (unit == tyber) and not (unit == uraiend) and not (unit == landing_falcon) then --MessageBox("%s passed all tests, despawning...", unit.Get_Type().Get_Name()) unit.Despawn() end end --cargo1 = Spawn_Unit(Find_Object_Type("URBAN_CIVILIAN_TEAM_UNDERWORLD"), cargo1_loc, underworld_player) --cargo2 = Spawn_Unit(Find_Object_Type("URBAN_CIVILIAN_TEAM_UNDERWORLD"), cargo2_loc, underworld_player) --cargo3 = Spawn_Unit(Find_Object_Type("URBAN_CIVILIAN_TEAM_UNDERWORLD"), cargo3_loc, underworld_player) cargo1 = Spawn_Unit(Find_Object_Type("UMP_Prisoner_Human_Company"), cargo1_loc, underworld_player) cargo2 = Spawn_Unit(Find_Object_Type("UMP_Prisoner_Human_Company"), cargo2_loc, underworld_player) cargo3 = Spawn_Unit(Find_Object_Type("UMP_Prisoner_Human_Company"), cargo3_loc, underworld_player) cargo5 = Spawn_Unit(Find_Object_Type("UMP_Prisoner_Pirate_Company"), cargo1_loc, underworld_player) cargo6 = Spawn_Unit(Find_Object_Type("UMP_Prisoner_Pirate_Company"), cargo2_loc, underworld_player) cargo4 = Create_Generic_Object("CINE_Spice", cargo4_loc.Get_Position(), underworld_player) cargo1[1].Prevent_All_Fire(true) cargo2[1].Prevent_All_Fire(true) cargo3[1].Prevent_All_Fire(true) cargo5[1].Prevent_All_Fire(true) cargo6[1].Prevent_All_Fire(true) landing_spot = Find_Hint("STORY_TRIGGER_ZONE", "falcon") Set_Cinematic_Camera_Key(tyber_end_loc, 240, 15, 270, 1, 0, 1, 0) Set_Cinematic_Target_Key(han_solo, 0, 0, -30, 0, 0, 0, 0) Fade_Screen_In(2) Sleep(2) Story_Event("CHATTER_12") Transition_Cinematic_Camera_Key(tyber_end_loc, 15, 230, 10, 300, 1, 0, 1, 0) Transition_Cinematic_Target_Key(han_solo, 15, 0, 0, -10, 0, 0, 0, 0) while not State_Prolog_End_Dialog_12_Done do Sleep(.5) end --focus on the conversation Set_Cinematic_Camera_Key(han_solo, -30, -25, 20, 0, 0, 0, 0) Set_Cinematic_Target_Key(tyber, 0, 0, 13, 0, 0, 0, 0) Sleep(.5) Story_Event("CHATTER_15") while not State_Prolog_End_Dialog_15_Done do Sleep(.5) end Set_Cinematic_Camera_Key(tyber, -20, -14, 15, 0, 0, 0, 0) Set_Cinematic_Target_Key(han_solo, 0, 0, 14, 0, 0, 0, 0) Story_Event("CHATTER_16") while not State_Prolog_End_Dialog_16_Done do Sleep(.5) end Set_Cinematic_Camera_Key(han_solo, -30, -25, 20, 0, 0, 0, 0) Set_Cinematic_Target_Key(tyber, 0, 0, 13, 0, 0, 0, 0) Story_Event("CHATTER_17") while not State_Prolog_End_Dialog_17_Done do Sleep(.5) end Set_Cinematic_Camera_Key(tyber, -20, -14, 15, 0, 0, 0, 0) Set_Cinematic_Target_Key(han_solo, 0, 0, 14, 0, 0, 0, 0) Story_Event("CHATTER_18") while not State_Prolog_End_Dialog_18_Done do Sleep(.5) end Set_Cinematic_Camera_Key(han_solo, -30, -25, 16, 0, 0, 0, 0) Set_Cinematic_Target_Key(tyber, 0, 0, 13, 0, 0, 0, 0) Transition_Cinematic_Target_Key(tyber, 6, -21, -18, 10, 0, 0, 0, 0) Sleep(2) Story_Event("CHATTER_19") tyber.Suspend_Locomotor(false) tyber.Turn_To_Face(uraiend) Sleep(1) tyber.Suspend_Locomotor(true) uraiend.Suspend_Locomotor(false) uraiend.Turn_To_Face(tyber) Sleep(1) uraiend.Suspend_Locomotor(true) Sleep(1.5) Transition_Cinematic_Camera_Key(han_end_loc, 4, -57, -9, 16, 0, 0, 0, 0) Transition_Cinematic_Target_Key(tyber_end_loc, 4, 0, 0, 15, 0, 0, 0, 0) while not State_Prolog_End_Dialog_19_Done do Sleep(.5) end Create_Thread("EndCineCleanup") end function EndMissionVictory_NEW_OLD() Cancel_Fast_Forward() OK_To_Land_Guys_A = false OK_To_Land_Guys_B = false OK_To_Spawn_Guys_A = false OK_To_Spawn_Guys_B = false CINE_End_Active = true Story_Event("UM01_ENDCINE_BEGIN") ec_tyber_start = Find_Hint("STORY_TRIGGER_ZONE","endcinetyberstart") ec_urai_start = Find_Hint("STORY_TRIGGER_ZONE","endcineuraistart") ec_tyber_goto = Find_Hint("STORY_TRIGGER_ZONE","endcinetybermoveto") ec_urai_goto = Find_Hint("STORY_TRIGGER_ZONE","endcineuraimoveto") ec_troops1 = Find_Hint("STORY_TRIGGER_ZONE","endcinetroops1") ec_troops2 = Find_Hint("STORY_TRIGGER_ZONE","endcinetroops2") ec_cam1pos = Find_Hint("STORY_TRIGGER_ZONE","endcinecam1pos") ec_cam1look = Find_Hint("STORY_TRIGGER_ZONE","endcinecam1look") han_end_loc = Find_Hint("STORY_TRIGGER_ZONE_01", "hanend") chewie_end_loc = Find_Hint("STORY_TRIGGER_ZONE_01", "chewieend") urai_end_loc = Find_Hint("STORY_TRIGGER_ZONE_01", "uraiend") tyber_end_loc = Find_Hint("STORY_TRIGGER_ZONE_01", "tyberend") urairunto = Find_Hint("STORY_TRIGGER_ZONE", "urai-runto") Fade_Screen_Out(.5) Sleep(.5) if TestValid(door9) then door9.Despawn() end Letter_Box_In(0) Suspend_AI(1) Lock_Controls(1) Start_Cinematic_Camera() han_solo = Find_First_Object("UMP_HANSOLO") chewbacca = Find_First_Object("UMP_CHEWBACCA") tyber = Find_First_Object("UMP_TYBER_ZANN") uraiend = Find_First_Object("URAI_FEN") --uraiend = Create_Generic_Object("URAI_FEN", urai_end_loc.Get_Position(), underworld_player) riotgoto = Find_Hint("STORY_TRIGGER_ZONE","midcine-riotersgoto") han_solo.Prevent_All_Fire(true) han_solo.Teleport_And_Face(han_end_loc) han_solo.Face_Immediate(tyber_zann) han_solo.Suspend_Locomotor(true) chewbacca.Prevent_All_Fire(true) chewbacca.Teleport_And_Face(chewie_end_loc) chewbacca.Face_Immediate(tyber_zann) chewbacca.Suspend_Locomotor(true) tyber.Prevent_All_Fire(true) tyber.Prevent_AI_Usage(true) tyber.Teleport_And_Face(ec_tyber_start) uraiend.Prevent_All_Fire(true) uraiend.Prevent_AI_Usage(true) uraiend.Teleport_And_Face(ec_urai_start) uraiend.Activate_Ability("STEALTH", false) tyber.Activate_Ability("STEALTH", false) Set_Cinematic_Camera_Key(ec_cam1look, 0, 0, 16, 0, 0, 0, 0) Set_Cinematic_Target_Key(ec_cam1pos, 0, 0, 0, 0, 0, 0, 0) Transition_Cinematic_Camera_Key(ec_cam1look, 5, 0, 0, 10, 0, 0, 0, 0) tyber.Move_To(ec_tyber_goto) uraiend.Move_To(ec_urai_goto) t1_list = Spawn_Unit(Find_Object_Type("IMPERIAL_STORMTROOPER_SQUAD"), ec_troops1, empire_player) t2_list = Spawn_Unit(Find_Object_Type("IMPERIAL_STORMTROOPER_SQUAD"), ec_troops2, empire_player) t1_list[1].Attack_Move(riotgoto) t2_list[1].Attack_Move(riotgoto) unit_list = Find_All_Objects_Of_Type("UMP_PRISONER_HUMAN") for k, unit in pairs(unit_list) do if TestValid(unit) then if TestValid(unit) then unit.Attack_Move(riotgoto) end end end unit_list = Find_All_Objects_Of_Type("UMP_PRISONER_PIRATE") for k, unit in pairs(unit_list) do if TestValid(unit) then if TestValid(unit) then unit.Attack_Move(riotgoto) end end end Fade_Screen_In(.5) Sleep(5) Set_Cinematic_Camera_Key(ec_cam1pos, 0, 0, 16, 0, 0, 0, 0) Set_Cinematic_Target_Key(ec_cam1look, 0, 0, 0, 0, 0, 0, 0) Transition_Cinematic_Camera_Key(ec_cam1pos, 5, 0, 0, 20, 0, 0, 0, 0) Sleep(1) uraiend.Turn_To_Face(ec_cam1look) Sleep(.25) tyber.Turn_To_Face(uraiend) Sleep(1) Story_Event("CHATTER_19") while not State_Prolog_End_Dialog_19_Done do Sleep(.5) end Sleep(1) tyber.Move_To(urairunto) uraiend.Move_To(urairunto) Fade_Screen_Out(.5) Sleep(.5) tyber.Prevent_All_Fire(true) tyber.Teleport_And_Face(tyber_end_loc) tyber.Face_Immediate(han_solo) tyber.Suspend_Locomotor(true) tyber.Play_Animation("Idle", false, 0) uraiend.Prevent_All_Fire(true) uraiend.Teleport_And_Face(urai_end_loc) uraiend.Face_Immediate(han_solo) uraiend.Suspend_Locomotor(true) uraiend.Play_Animation("Idle", false, 0) Create_Thread("EndCineCleanup") end --END CINEMATIC function EndMissionVictory_OLD() Cancel_Fast_Forward() OK_To_Land_Guys_A = false OK_To_Land_Guys_B = false OK_To_Spawn_Guys_A = false OK_To_Spawn_Guys_B = false unit_list = Find_All_Objects_Of_Type(empire_player) for k, unit in pairs(unit_list) do if TestValid(unit) then unit.Suspend_Locomotor(true) end end unit_list = Find_All_Objects_Of_Type("STORMTROOPER_TEAM") for k, unit in pairs(unit_list) do if TestValid(unit) then if TestValid(unit) then unit.Despawn() end end end CINE_End_Active = true Story_Event("UM01_ENDCINE_BEGIN") han_end_loc = Find_Hint("STORY_TRIGGER_ZONE_01", "hanend") chewie_end_loc = Find_Hint("STORY_TRIGGER_ZONE_01", "chewieend") urai_end_loc = Find_Hint("STORY_TRIGGER_ZONE_01", "uraiend") tyber_end_loc = Find_Hint("STORY_TRIGGER_ZONE_01", "tyberend") han_solo = Find_First_Object("UMP_HANSOLO") chewbacca = Find_First_Object("UMP_CHEWBACCA") tyber = Find_First_Object("UMP_TYBER_ZANN") uraiend = Create_Generic_Object("URAI_FEN", urai_end_loc.Get_Position(), underworld_player) cargo1_loc = Find_Hint("STORY_TRIGGER_ZONE_01", "xtracargo1") cargo2_loc = Find_Hint("STORY_TRIGGER_ZONE_01", "xtracargo2") cargo3_loc = Find_Hint("STORY_TRIGGER_ZONE_01", "xtracargo3") cargo4_loc = Find_Hint("STORY_TRIGGER_ZONE_01", "xtracargo4") lookspice_loc = Find_Hint("STORY_TRIGGER_ZONE_01", "cinelookspice") Fade_Screen_Out(1) Sleep(1) Letter_Box_In(0) Suspend_AI(1) Lock_Controls(1) Start_Cinematic_Camera() han_solo.Prevent_All_Fire(true) han_solo.Teleport_And_Face(han_end_loc) han_solo.Face_Immediate(tyber_zann) han_solo.Suspend_Locomotor(true) chewbacca.Prevent_All_Fire(true) chewbacca.Teleport_And_Face(chewie_end_loc) chewbacca.Face_Immediate(tyber_zann) chewbacca.Suspend_Locomotor(true) tyber.Prevent_All_Fire(true) tyber.Teleport_And_Face(tyber_end_loc) tyber.Face_Immediate(han_solo) tyber.Suspend_Locomotor(true) tyber.Play_Animation("Idle", false, 0) uraiend.Prevent_All_Fire(true) uraiend.Teleport_And_Face(urai_end_loc) uraiend.Face_Immediate(han_solo) uraiend.Suspend_Locomotor(true) uraiend.Play_Animation("Idle", false, 0) underworld_list = Find_All_Objects_Of_Type(underworld_player) for k, unit in pairs(underworld_list) do --MessageBox("Checking underworld unit %s", unit.Get_Type().Get_Name()) if TestValid(unit) and not (unit == han_solo) and not (unit == chewbacca) and not (unit == tyber) and not (unit == uraiend) and not (unit == landing_falcon) then --MessageBox("%s passed all tests, despawning...", unit.Get_Type().Get_Name()) unit.Despawn() end end --cargo1 = Spawn_Unit(Find_Object_Type("URBAN_CIVILIAN_TEAM_UNDERWORLD"), cargo1_loc, underworld_player) --cargo2 = Spawn_Unit(Find_Object_Type("URBAN_CIVILIAN_TEAM_UNDERWORLD"), cargo2_loc, underworld_player) --cargo3 = Spawn_Unit(Find_Object_Type("URBAN_CIVILIAN_TEAM_UNDERWORLD"), cargo3_loc, underworld_player) cargo1 = Spawn_Unit(Find_Object_Type("UMP_Prisoner_Human_Company"), cargo1_loc, underworld_player) cargo2 = Spawn_Unit(Find_Object_Type("UMP_Prisoner_Human_Company"), cargo2_loc, underworld_player) cargo3 = Spawn_Unit(Find_Object_Type("UMP_Prisoner_Human_Company"), cargo3_loc, underworld_player) cargo5 = Spawn_Unit(Find_Object_Type("UMP_Prisoner_Pirate_Company"), cargo1_loc, underworld_player) cargo6 = Spawn_Unit(Find_Object_Type("UMP_Prisoner_Pirate_Company"), cargo2_loc, underworld_player) cargo4 = Create_Generic_Object("CINE_Spice", cargo4_loc.Get_Position(), underworld_player) cargo1[1].Prevent_All_Fire(true) cargo2[1].Prevent_All_Fire(true) cargo3[1].Prevent_All_Fire(true) cargo5[1].Prevent_All_Fire(true) cargo6[1].Prevent_All_Fire(true) landing_spot = Find_Hint("STORY_TRIGGER_ZONE", "falcon") Set_Cinematic_Camera_Key(tyber_end_loc, 240, 15, 270, 1, 0, 1, 0) Set_Cinematic_Target_Key(han_solo, 0, 0, -30, 0, 0, 0, 0) Fade_Screen_In(2) Sleep(2) Story_Event("CHATTER_12") Transition_Cinematic_Camera_Key(tyber_end_loc, 15, 230, 10, 300, 1, 0, 1, 0) Transition_Cinematic_Target_Key(han_solo, 15, 0, 0, -10, 0, 0, 0, 0) while not State_Prolog_End_Dialog_12_Done do Sleep(.5) end --focus on the conversation Set_Cinematic_Camera_Key(tyber, -20, -14, 15, 0, 0, 0, 0) Set_Cinematic_Target_Key(han_solo, 0, 0, 14, 0, 0, 0, 0) Sleep(.5) Story_Event("CHATTER_13") while not State_Prolog_End_Dialog_13_Done do Sleep(.5) end Story_Event("CHATTER_14") uraifen = Find_First_Object("URAI_FEN") uraifen.Suspend_Locomotor(false) urai_end_goto = Find_Hint("STORY_TRIGGER_ZONE_01", "uraiendgoto") uraifen.Move_To(urai_end_goto) tyber_zann.Play_SFX_Event("UMP_Unit_Rebel_Soldier_Death") while not State_Prolog_End_Dialog_14_Done do Sleep(.5) end Set_Cinematic_Camera_Key(tyber, -20, -14, 15, 0, 0, 0, 0) Set_Cinematic_Target_Key(han_solo, 0, 0, 14, 0, 0, 0, 0) Story_Event("CHATTER_61") urai_end_loc.Play_SFX_Event("UMP_Unit_Rebel_Soldier_2_Death") Sleep(0.5) urai_end_loc.Play_SFX_Event("UMP_Unit_Rebel_Soldier_3_Death") Sleep(0.25) urai_end_loc.Play_SFX_Event("UMP_Unit_Rebel_Soldier_2_Death") Sleep(0.5) urai_end_loc.Play_SFX_Event("UMP_Unit_Rebel_Soldier_Death") Sleep(0.25) urai_end_loc.Play_SFX_Event("UMP_Unit_Rebel_Soldier_2_Death") cargo1[1].Prevent_All_Fire(true) cargo1[1].Change_Owner(empire_player) cargo1[1].Attack_Target(uraiend) while not State_Prolog_Chatter_Dialog_61_Done do Sleep(.5) end lastprisoner = Create_Generic_Object("PRISONER_REBEL_01", cargo1_loc.Get_Position(), neutral_player) uraiend.Teleport_And_Face(uraikiller) lastprisoner.Prevent_All_Fire(true) uraiend.Prevent_All_Fire(true) enddeadguys = true cargo6[1].Despawn() cargo5[1].Despawn() cargo3[1].Despawn() cargo2[1].Despawn() cargo1[1].Despawn() Create_Generic_Object("DEAD_BOTHAN", uraikiller.Get_Position(), neutral_player) --Create_Generic_Object("DEAD_BOTHAN", urai_end_loc.Get_Position(), neutral_player) Create_Generic_Object("UMP_DEADGUYS", cargo1_loc.Get_Position(), neutral_player) Create_Generic_Object("UMP_DEADGUYS", cargo2_loc.Get_Position(), neutral_player) Create_Generic_Object("UMP_DEADGUYS", cargo3_loc.Get_Position(), neutral_player) Create_Generic_Object("UMP_DEADGUYS", endgame.Get_Position(), neutral_player) Create_Generic_Object("UMP_DEADGUYS", Find_Hint("STORY_TRIGGER_ZONE_01", "hanspawn").Get_Position(), neutral_player) Create_Generic_Object("DEAD_BOTHAN", Find_Hint("STORY_TRIGGER_ZONE_01", "chewiespawn").Get_Position(), neutral_player) uraiend.Prevent_All_Fire(true) uraiend.Face_Immediate(lastprisoner) uraiend.Play_Animation("Attack", false, 0) Set_Cinematic_Camera_Key(han_solo, -30, -25, 20, 0, 0, 0, 0) Set_Cinematic_Target_Key(tyber, 0, 0, 13, 0, 0, 0, 0) Sleep(.6) lastprisoner.Take_Damage(9999) Story_Event("CHATTER_62") while not State_Prolog_Chatter_Dialog_62_Done do Sleep(.5) end Set_Cinematic_Camera_Key(tyber, -20, -14, 15, 0, 0, 0, 0) Set_Cinematic_Target_Key(han_solo, 0, 0, 14, 0, 0, 0, 0) Story_Event("CHATTER_63") while not State_Prolog_Chatter_Dialog_63_Done do Sleep(.5) end Set_Cinematic_Camera_Key(han_solo, -30, -25, 20, 0, 0, 0, 0) Set_Cinematic_Target_Key(tyber, 0, 0, 13, 0, 0, 0, 0) Story_Event("CHATTER_17") while not State_Prolog_End_Dialog_17_Done do Sleep(.5) end Set_Cinematic_Camera_Key(tyber, -20, -14, 15, 0, 0, 0, 0) Set_Cinematic_Target_Key(han_solo, 0, 0, 14, 0, 0, 0, 0) tyber.Play_SFX_Event("Unit_Select_Chewie") Sleep(1.5) Story_Event("CHATTER_18") while not State_Prolog_End_Dialog_18_Done do Sleep(.5) end urai_end_loc = Find_Hint("STORY_TRIGGER_ZONE_01", "uraiend") uraiend.Move_To(urai_end_loc) Set_Cinematic_Camera_Key(han_solo, -30, -25, 16, 0, 0, 0, 0) Set_Cinematic_Target_Key(tyber, 0, 0, 13, 0, 0, 0, 0) Transition_Cinematic_Target_Key(tyber, 6, -21, -18, 10, 0, 0, 0, 0) Sleep(2) Story_Event("CHATTER_19") tyber.Suspend_Locomotor(false) tyber.Turn_To_Face(uraiend) Sleep(2) tyber.Suspend_Locomotor(true) Sleep(3) uraiend.Suspend_Locomotor(false) uraiend.Turn_To_Face(tyber) Sleep(2) uraiend.Suspend_Locomotor(true) Sleep(2) Transition_Cinematic_Camera_Key(han_end_loc, 4, -57, -9, 16, 0, 0, 0, 0) Transition_Cinematic_Target_Key(tyber_end_loc, 4, 0, 0, 15, 0, 0, 0, 0) while not State_Prolog_End_Dialog_19_Done do Sleep(.5) end Create_Thread("EndCineCleanup") end -- delay a short time and then show game has been lost DEFEAT function EndMissionDefeat() Cancel_Fast_Forward() Suspend_AI(1) Lock_Controls(1) Story_Event("UM01_ENDMISSION_DEFEAT") end function Respawn() if OK_To_Spawn_Guys_A then total = table.getn(prisoner_table1) for k, prisoner in pairs(prisoner_table1) do if not TestValid(prisoner) then total = total - 1 end end if total < 1 then --prisoner_table1 = Create_Generic_Object("UMP_PRISONER_HUMAN_COMPANY", prisonspawn1.Get_Position(), underworld_player) prisoner_table1 = Spawn_Unit(Find_Object_Type("UMP_PRISONER_HUMAN_COMPANY"), prisonspawn1.Get_Position(), underworld_player) for k, prisoner in pairs(prisoner_table1) do if TestValid(prisoner) then prisoner.Move_To(tyber_zann) end end underworld_player.Select_Object(prisoner_table1[1]) end end if OK_To_Spawn_Guys_B then total = table.getn(prisoner_table2) for k, prisoner in pairs(prisoner_table2) do if not TestValid(prisoner) then total = total - 1 end end if total < 1 then --prisoner_table2 = Create_Generic_Object("UMP_PRISONER_HUMAN_COMPANY", prisonspawn2.Get_Position(), underworld_player) prisoner_table2 = Spawn_Unit(Find_Object_Type("UMP_PRISONER_HUMAN_COMPANY"), prisonspawn2.Get_Position(), underworld_player) for k, prisoner in pairs(prisoner_table2) do if TestValid(prisoner) then prisoner.Move_To(tyber_zann) end end underworld_player.Select_Object(prisoner_table2[1]) end end Register_Timer(Respawn, 5) end function Hunt_Empire(attack_list) local enemy_player = Find_Player("Empire") while true do if TestValid(attack_list[1]) then if not attack_list[1].Is_Selectable() then local closest_enemy = Find_Nearest(attack_list[1], enemy_player, true) if TestValid(closest_enemy) then attack_list[1].Attack_Move(closest_enemy) end end end Sleep(4) end end -- Story XML kickback functions -- function State_Prolog_Intro_Dialog_00_Speech_Done(message) if message == OnEnter then State_Prolog_Intro_Dialog_00_Done = true end end function State_Prolog_Intro_Dialog_01_Speech_Done(message) if message == OnEnter then State_Prolog_Intro_Dialog_01_Done = true end end function State_Prolog_Intro_Dialog_02_Speech_Done(message) if message == OnEnter then State_Prolog_Intro_Dialog_02_Done = true end end function State_Prolog_Intro_Dialog_02A_Speech_Done(message) if message == OnEnter then State_Prolog_Intro_Dialog_02A_Done = true end end function State_Prolog_Intro_Dialog_New_00_Speech_Done(message) if message == OnEnter then State_Prolog_Intro_Dialog_New_00_Done = true end end function State_Prolog_Intro_Dialog_New_01_Speech_Done(message) if message == OnEnter then State_Prolog_Intro_Dialog_New_01_Done = true end end function State_Prolog_Intro_Dialog_New_02_Speech_Done(message) if message == OnEnter then State_Prolog_Intro_Dialog_New_02_Done = true end end function State_Prolog_Intro_Dialog_New_03_Speech_Done(message) if message == OnEnter then State_Prolog_Intro_Dialog_New_03_Done = true end end function State_Prolog_Intro_Dialog_New_04_Speech_Done(message) if message == OnEnter then State_Prolog_Intro_Dialog_New_04_Done = true end end function State_Prolog_Intro_Dialog_New_05_Speech_Done(message) if message == OnEnter then State_Prolog_Intro_Dialog_New_05_Done = true end end function State_Prolog_Intro_Dialog_New_06_Speech_Done(message) if message == OnEnter then State_Prolog_Intro_Dialog_New_06_Done = true end end function State_Prolog_Intro_Dialog_New_07_Speech_Done(message) if message == OnEnter then State_Prolog_Intro_Dialog_New_07_Done = true end end function State_Prolog_Intro_Dialog_New_08_Speech_Done(message) if message == OnEnter then State_Prolog_Intro_Dialog_New_08_Done = true end end function State_Prolog_Intro_Dialog_New_09_Speech_Done(message) if message == OnEnter then State_Prolog_Intro_Dialog_New_09_Done = true end end function State_Prolog_Intro_Dialog_New_10_Speech_Done(message) if message == OnEnter then State_Prolog_Intro_Dialog_New_10_Done = true end end function State_Prolog_Intro_Dialog_New_11_Speech_Done(message) if message == OnEnter then State_Prolog_Intro_Dialog_New_11_Done = true end end function State_Prolog_Intro_Dialog_New_12_Speech_Done(message) if message == OnEnter then State_Prolog_Intro_Dialog_New_12_Done = true end end function State_Prolog_Intro_Dialog_New_13_Speech_Done(message) if message == OnEnter then State_Prolog_Intro_Dialog_New_13_Done = true end end function State_Prolog_Intro_Dialog_03_Speech_Done(message) if message == OnEnter then State_Prolog_Intro_Dialog_03_Done = true end end function State_Prolog_Intro_Dialog_04_Speech_Done(message) if message == OnEnter then State_Prolog_Intro_Dialog_04_Done = true end end function State_Prolog_Intro_Dialog_05_Speech_Done(message) if message == OnEnter then State_Prolog_Intro_Dialog_05_Done = true end end function State_Prolog_Intro_Dialog_06_Speech_Done(message) if message == OnEnter then State_Prolog_Intro_Dialog_06_Done = true end end function State_Prolog_Intro_Dialog_07_Speech_Done(message) if message == OnEnter then State_Prolog_Intro_Dialog_07_Done = true end end function State_Prolog_Intro_Dialog_08_Speech_Done(message) if message == OnEnter then State_Prolog_Intro_Dialog_08_Done = true end end function State_Prolog_Midtro_Dialog_09_Speech_Done(message) if message == OnEnter then State_Prolog_Midtro_Dialog_09_Done = true end end function State_Prolog_Midtro_Dialog_10_Speech_Done(message) if message == OnEnter then State_Prolog_Midtro_Dialog_10_Done = true end end function State_Prolog_Midtro_Dialog_11_Speech_Done(message) if message == OnEnter then State_Prolog_Midtro_Dialog_11_Done = true end end function State_Prolog_End_Dialog_12_Speech_Done(message) if message == OnEnter then State_Prolog_End_Dialog_12_Done = true end end function State_Prolog_End_Dialog_13_Speech_Done(message) if message == OnEnter then State_Prolog_End_Dialog_13_Done = true end end function State_Prolog_End_Dialog_14_Speech_Done(message) if message == OnEnter then State_Prolog_End_Dialog_14_Done = true end end function State_Prolog_End_Dialog_15_Speech_Done(message) if message == OnEnter then State_Prolog_End_Dialog_15_Done = true end end function State_Prolog_End_Dialog_16_Speech_Done(message) if message == OnEnter then State_Prolog_End_Dialog_16_Done = true end end function State_Prolog_End_Dialog_17_Speech_Done(message) if message == OnEnter then State_Prolog_End_Dialog_17_Done = true end end function State_Prolog_End_Dialog_18_Speech_Done(message) if message == OnEnter then State_Prolog_End_Dialog_18_Done = true end end function State_Prolog_End_Dialog_19_Speech_Done(message) if message == OnEnter then State_Prolog_End_Dialog_19_Done = true end end function State_Prolog_Chatter_Dialog_20_Speech_Done(message) if message == OnEnter then State_Prolog_Chatter_Dialog_20_Done = true end end function State_Prolog_Chatter_Dialog_21_Speech_Done(message) if message == OnEnter then State_Prolog_Chatter_Dialog_21_Done = true end end function State_Prolog_Chatter_Dialog_22_Speech_Done(message) if message == OnEnter then State_Prolog_Chatter_Dialog_22_Done = true end end function State_Prolog_Chatter_Dialog_23_Speech_Done(message) if message == OnEnter then State_Prolog_Chatter_Dialog_23_Done = true end end function State_Prolog_Chatter_Dialog_24_Speech_Done(message) if message == OnEnter then State_Prolog_Chatter_Dialog_24_Done = true end end function State_Prolog_Chatter_Dialog_25_Speech_Done(message) if message == OnEnter then State_Prolog_Chatter_Dialog_25_Done = true end end function State_Prolog_Chatter_Dialog_26_Speech_Done(message) if message == OnEnter then State_Prolog_Chatter_Dialog_26_Done = true end end function State_Prolog_Chatter_Dialog_27_Speech_Done(message) if message == OnEnter then State_Prolog_Chatter_Dialog_27_Done = true end end function State_Prolog_Chatter_Dialog_28_Speech_Done(message) if message == OnEnter then State_Prolog_Chatter_Dialog_28_Done = true end end function State_Prolog_Chatter_Dialog_29_Speech_Done(message) if message == OnEnter then State_Prolog_Chatter_Dialog_29_Done = true end end function State_Prolog_Chatter_Dialog_30_Speech_Done(message) if message == OnEnter then State_Prolog_Chatter_Dialog_30_Done = true end end function State_Prolog_Chatter_Dialog_31_Speech_Done(message) if message == OnEnter then State_Prolog_Chatter_Dialog_31_Done = true end end function State_Prolog_Chatter_Dialog_32_Speech_Done(message) if message == OnEnter then State_Prolog_Chatter_Dialog_32_Done = true end end function State_Prolog_Chatter_Dialog_33_Speech_Done(message) if message == OnEnter then State_Prolog_Chatter_Dialog_33_Done = true end end function State_Prolog_Chatter_Dialog_34_Speech_Done(message) if message == OnEnter then State_Prolog_Chatter_Dialog_34_Done = true end end function State_Prolog_Chatter_Dialog_35_Speech_Done(message) if message == OnEnter then State_Prolog_Chatter_Dialog_35_Done = true end end function State_Prolog_Chatter_Dialog_36_Speech_Done(message) if message == OnEnter then State_Prolog_Chatter_Dialog_36_Done = true end end function State_Prolog_Chatter_Dialog_37_Speech_Done(message) if message == OnEnter then State_Prolog_Chatter_Dialog_37_Done = true end end function State_Prolog_Chatter_Dialog_38_Speech_Done(message) if message == OnEnter then State_Prolog_Chatter_Dialog_38_Done = true end end function State_Prolog_Chatter_Dialog_39_Speech_Done(message) if message == OnEnter then State_Prolog_Chatter_Dialog_39_Done = true end end function State_Prolog_Intro_Dialog_40_Speech_Done(message) if message == OnEnter then State_Prolog_Intro_Dialog_40_Done = true end end function State_Prolog_Intro_Dialog_41_Speech_Done(message) if message == OnEnter then State_Prolog_Intro_Dialog_41_Done = true end end function State_Prolog_Intro_Dialog_42_Speech_Done(message) if message == OnEnter then State_Prolog_Intro_Dialog_42_Done = true end end function State_Prolog_Chatter_Dialog_43_Speech_Done(message) if message == OnEnter then State_Prolog_Chatter_Dialog_43_Done = true end end function State_Prolog_Chatter_Dialog_44_Speech_Done(message) if message == OnEnter then State_Prolog_Chatter_Dialog_44_Done = true end end function State_Prolog_Chatter_Dialog_45_Speech_Done(message) if message == OnEnter then State_Prolog_Chatter_Dialog_45_Done = true end end function State_Prolog_Chatter_Dialog_61_Speech_Done(message) if message == OnEnter then State_Prolog_Chatter_Dialog_61_Done = true end end function State_Prolog_Chatter_Dialog_62_Speech_Done(message) if message == OnEnter then State_Prolog_Chatter_Dialog_62_Done = true end end function State_Prolog_Chatter_Dialog_63_Speech_Done(message) if message == OnEnter then State_Prolog_Chatter_Dialog_63_Done = true end end