-- $Id: //depot/Projects/StarWars_Steam/FOC/Run/Data/Scripts/Story/Story_Underworld_ActI_M02_SPACE.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_M02_SPACE.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_M02_Begin = State_Underworld_A01M02_Begin } bandit = {} bandit[1] = nil attack1 = {} attack1[1] = nil rebel_assault_01 = { "Rebel_X-Wing_Squadron", "Rebel_X-Wing_Squadron", "Rebel_X-Wing_Squadron", "CORELLIAN_CORVETTE" } pirate_scavengers_01 = { "Pirate_Fighter_Squadron", "Pirate_Fighter_Squadron", "Pirate_Fighter_Squadron", "Pirate_Fighter_Squadron", "Pirate_Fighter_Squadron" } imperial_scouts_01 = { "TIE_Bomber_Squadron", "TIE_Bomber_Squadron", "TIE_Scout_Squadron", "TIE_Scout_Squadron", "TIE_Scout_Squadron", "TIE_Scout_Squadron" } imperial_scouts_02 = { "Tartan_Patrol_Cruiser", "Tartan_Patrol_Cruiser", "Tartan_Patrol_Cruiser", "Tartan_Patrol_Cruiser" } imperial_fleet_01 = { "Victory_Destroyer", "Victory_Destroyer", "Victory_Destroyer", "Generic_Star_Destroyer" } end function State_Underworld_A01M02_Begin(message) if message == OnEnter then GlobalValue.Set("Allow_AI_Controlled_Fog_Reveal", 0) Initialize_Mission_Variables() Initialize_Cinematic_Variables() current_cine_id = Create_Thread("CINE_Start_Mission") elseif message == OnUpdate then if not VictoryStarted and not DefeatStarted then if DefeatCondition_TyberDead then DefeatStarted = true Create_Thread("EndMissionDefeat") end if VictoryCondition_CapturedBoxes then VictoryStarted = true Create_Thread("EndMissionVictory") end if bandit_active then if TestValid(bandit[1]) then if bandit[1].Get_Hull() < 0.05 then Remove_Radar_Blip("bandit_radar") bandit_active = false bandit[1].Set_Cannot_Be_Killed(false) black_box_final = Create_Generic_Object("UM01_DEATH_STAR_BLACK_BOX", bandit[1].Get_Position(), rebel_player) black_box_flag = Create_Generic_Object("STORY_TRIGGER_ZONE", bandit[1].Get_Position(), rebel_player) Register_Prox(black_box_flag, Prox_Obtain_Blackbox, 150, underworld_player) Reveal_Black_Box() bandit[1].Take_Damage(10000) Story_Event("PIRATE_DROPPED_POD") end end end end end end function Initialize_Mission_Variables() VictoryStarted = false DefeatStarted = false DefeatCondition_TyberDead = false VictoryCondition_CapturedBoxes = false empire_has_arrived = false bandit_active = false primary_dialog_on = false rebel_dialog = false rebel_player = Find_Player("Rebel") neutral_player = Find_Player("Neutral") empire_player = Find_Player("Empire") underworld_player = Find_Player("Underworld") pirate_player = Find_Player("Pirates") if TestValid(pirate_player) then pirate_player.Enable_As_Actor() end if TestValid(empire_player) then empire_player.Enable_As_Actor() end boxes_remaining = 4 box_spotting_remaining = 4 rebel_spawn_location = 0 rebel_spawn_count = 10 bandit_move = nil spawn_marker = nil spawn_marker2 = nil radar_01 = Find_Hint("STORY_TRIGGER_ZONE", "radar01") radar_02 = Find_Hint("STORY_TRIGGER_ZONE", "radar02") radar_03 = Find_Hint("STORY_TRIGGER_ZONE", "radar03") radar_04 = Find_Hint("STORY_TRIGGER_ZONE", "radar04") radar_05 = Find_Hint("STORY_TRIGGER_ZONE", "radar05") radar_06 = Find_Hint("STORY_TRIGGER_ZONE", "radar06") marker_rebel_first_encounter = Find_Hint("STORY_TRIGGER_ZONE", "rebelfirst") tyber_zann = Find_First_Object("TYBER_ZANN_PASSENGER") if TestValid(tyber_zann) then tyber_zann_craft = tyber_zann.Get_Parent_Object() Register_Death_Event(tyber_zann, Tyber_Zann_Destroyed) end Spawn_Black_Boxes() missile_01 = Find_Hint("REBEL_DEFENSE_SATELLITE_MISSILE","missile01") missile_02 = Find_Hint("REBEL_DEFENSE_SATELLITE_MISSILE","missile02") missile_03 = Find_Hint("REBEL_DEFENSE_SATELLITE_MISSILE","missile03") missile_04 = Find_Hint("REBEL_DEFENSE_SATELLITE_MISSILE","missile04") Register_Prox(missile_01, Prox_Missile_Defense, 1200, underworld_player) Register_Prox(missile_02, Prox_Missile_Defense, 1200, underworld_player) Register_Prox(missile_03, Prox_Missile_Defense, 1200, underworld_player) Register_Prox(missile_04, Prox_Missile_Defense, 1200, underworld_player) marker_pirate_arrival = Find_Hint("STORY_TRIGGER_ZONE", "piratearrival") marker_empire_retreat = Find_Hint("STORY_TRIGGER_ZONE", "empireretreat") marker_rebel_spawn_empire = Find_Hint("STORY_TRIGGER_ZONE", "rebelspawne") marker_rebel_spawn_pirate = Find_Hint("STORY_TRIGGER_ZONE", "rebelspawnp") marker_executor_left = Find_Hint("STORY_TRIGGER_ZONE", "executorleft") marker_executor_right = Find_Hint("STORY_TRIGGER_ZONE", "executorright") rebel_backup_marker_1 = Find_Hint("STORY_TRIGGER_ZONE", "rebelbackup1") rebel_backup_marker_2 = Find_Hint("STORY_TRIGGER_ZONE", "rebelbackup2") Register_Prox(marker_pirate_arrival, Prox_Pirate_Arrival, 1200, underworld_player) Register_Prox(marker_empire_retreat, Prox_Empire_Arrival, 1200, underworld_player) disabled_imperial_vessel_01 = Find_First_Object("ACCLAMATOR_ASSAULT_SHIP") if TestValid(disabled_imperial_vessel_01) then disabled_imperial_vessel_01.Prevent_AI_Usage(true) disabled_imperial_vessel_01.Prevent_Opportunity_Fire(true) disabled_imperial_vessel_01.Suspend_Locomotor(true) disabled_imperial_vessel_01.Prevent_All_Fire(true) disabled_imperial_vessel_01.Change_Owner(rebel_player) end end function Initialize_Cinematic_Variables() camtarget = Find_Hint("ATTACKER ENTRY POSITION", "camtarget") reconstart = Find_Hint("STORY_TRIGGER_ZONE", "reconstart") reconend = Find_Hint("STORY_TRIGGER_ZONE", "reconend") introattack1 = Find_Hint("STORY_TRIGGER_ZONE", "introattack1") CINE_Intro_Active = false end --------------------------------------------------------------------------------- -- COMMON FUNCTIONS function Spawn_Black_Boxes() local second_location = GameRandom(1,2) local third_location = GameRandom(1,2) black_box_01 = Create_Generic_Object("UM01_DEATH_STAR_BLACK_BOX", radar_04, rebel_player) black_box_04 = Create_Generic_Object("UM01_DEATH_STAR_BLACK_BOX", radar_05, rebel_player) if (second_location == 1) then black_box_02 = Create_Generic_Object("UM01_DEATH_STAR_BLACK_BOX", radar_03, rebel_player) black_box_02_location = radar_03 elseif (second_location == 2) then black_box_02 = Create_Generic_Object("UM01_DEATH_STAR_BLACK_BOX", radar_06, rebel_player) black_box_02_location = radar_06 end if (third_location == 1) then black_box_03 = Create_Generic_Object("UM01_DEATH_STAR_BLACK_BOX", radar_01, rebel_player) black_box_03_location = radar_01 else black_box_03 = Create_Generic_Object("UM01_DEATH_STAR_BLACK_BOX", radar_02, rebel_player) black_box_03_location = radar_02 end black_box_01.Hide(true) black_box_02.Hide(true) black_box_03.Hide(true) black_box_04.Hide(true) black_box_01.Set_Cannot_Be_Killed(true) black_box_02.Set_Cannot_Be_Killed(true) black_box_03.Set_Cannot_Be_Killed(true) black_box_04.Set_Cannot_Be_Killed(true) black_box_01.Make_Invulnerable(true) black_box_02.Make_Invulnerable(true) black_box_03.Make_Invulnerable(true) black_box_04.Make_Invulnerable(true) Register_Prox(radar_04, Prox_Obtain_Blackbox, 150, underworld_player) Register_Prox(radar_05, Prox_Obtain_Blackbox, 150, underworld_player) Register_Prox(black_box_02_location, Prox_Obtain_Blackbox, 150, underworld_player) Register_Prox(black_box_03_location, Prox_Obtain_Blackbox, 150, underworld_player) Register_Prox(radar_04, Prox_Spotted_Blackbox, 800, underworld_player) Register_Prox(radar_05, Prox_Spotted_Blackbox, 800, underworld_player) Register_Prox(black_box_02_location, Prox_Spotted_Blackbox, 800, underworld_player) Register_Prox(black_box_03_location, Prox_Spotted_Blackbox, 800, underworld_player) end function Reveal_Black_Box() if TestValid(tyber_zann) then local black_box_object = Find_Nearest(tyber_zann, "UM01_DEATH_STAR_BLACK_BOX") if TestValid(black_box_object) then Add_Radar_Blip(black_box_object, "box_radar") black_box_object.Highlight(true) fog_id = FogOfWar.Reveal(underworld_player, black_box_object, 250, 250) end end end function Primary_Dialog_Off() Sleep(5) primary_dialog_on = false end function Prox_Empire_Arrival(prox_obj, trigger_obj) prox_obj.Cancel_Event_Object_In_Range(Prox_Empire_Arrival) if not empire_has_arrived then imperial_scouts = SpawnList(imperial_scouts_01, prox_obj.Get_Position(), empire_player, false, true) local imperial_scouts_tartans = SpawnList(imperial_scouts_02, prox_obj.Get_Position(), neutral_player, false, true) for i, unit in pairs (imperial_scouts_tartans) do if TestValid(unit) then unit.Move_To(prox_obj.Get_Position()) end end local closest_enemy = Find_Nearest(prox_obj, underworld_player, true) if TestValid(closest_enemy) then for i,unit in pairs(imperial_scouts) do if TestValid(unit) then unit.Attack_Move(closest_enemy) end end end if TestValid(disabled_imperial_vessel_01) then disabled_imperial_vessel_01.Change_Owner(empire_player) end primary_dialog_on = true Story_Event("IMPERIAL_ENCOUNTER") Create_Thread("Primary_Dialog_Off") Create_Thread("Empire_AI_Control") end end function Empire_AI_Control() if not VictoryStarted and not DefeatStarted then Sleep(10) if not empire_has_arrived then local empire_ai_list = Find_All_Objects_Of_Type(empire_player) for i, unit in pairs(empire_ai_list) do if TestValid(unit) then unit.Prevent_AI_Usage(false) end end local tartan_list = Find_All_Objects_Of_Type("Tartan_Patrol_Cruiser") for i, unit in pairs (tartan_list) do if TestValid(unit) then unit.Change_Owner(underworld_player) underworld_player.Select_Object(unit) end end Sleep(15) if not empire_has_arrived then Create_Thread("Rebel_Scouts_Engaged", marker_rebel_spawn_empire.Get_Position()) end else local empire_ai_list = Find_All_Objects_Of_Type(empire_player) for i, unit in pairs(empire_ai_list) do if TestValid(unit) then unit.Prevent_AI_Usage(false) end end end end end function Prox_Pirate_Arrival(prox_obj, trigger_obj) prox_obj.Cancel_Event_Object_In_Range(Prox_Pirate_Arrival) if not empire_has_arrived then pirate_scavengers = SpawnList(pirate_scavengers_01, prox_obj.Get_Position(), pirate_player, false, true) local closest_enemy = Find_Nearest(prox_obj, underworld_player, true) if TestValid(closest_enemy) then for i,unit in pairs(pirate_scavengers) do if TestValid(unit) then unit.Attack_Move(closest_enemy) end end end primary_dialog_on = true Story_Event("PIRATE_ENCOUNTER") Create_Thread("Primary_Dialog_Off") Create_Thread("Pirate_AI_Control") end end function Pirate_AI_Control() if not VictoryStarted and not DefeatStarted then Sleep(10) local pirate_ai_list = Find_All_Objects_Of_Type(pirate_player) for i, unit in pairs(pirate_ai_list) do unit.Prevent_AI_Usage(false) end if not empire_has_arrived then Create_Thread("Rebel_Scouts_Engaged", marker_rebel_spawn_pirate.Get_Position()) end end end function Prox_Spotted_Blackbox(prox_obj, trigger_obj) prox_obj.Cancel_Event_Object_In_Range(Prox_Spotted_Blackbox) fog_id = FogOfWar.Reveal(underworld_player, prox_obj, 250, 250) Remove_Radar_Blip("box_radar") Add_Radar_Blip(prox_obj, "box_radar") if box_spotting_remaining == 4 then primary_dialog_on = true Story_Event("CHATTER_07") Create_Thread("Primary_Dialog_Off") elseif box_spotting_remaining == 3 then if not primary_dialog_on then primary_dialog_on = true Story_Event("CHATTER_08") Create_Thread("Primary_Dialog_Off") end elseif box_spotting_remaining == 2 then if not primary_dialog_on then primary_dialog_on = true Story_Event("CHATTER_09") Create_Thread("Primary_Dialog_Off") end elseif box_spotting_remaining == 1 then bandit_active = true prox_obj.Cancel_Event_Object_In_Range(Prox_Obtain_Blackbox) Remove_Radar_Blip("box_radar") bandit = Spawn_Unit(Find_Object_Type("UM01_MERCHANT_FREIGHTER"), prox_obj.Get_Position(), pirate_player) bandit[1].Highlight(true) Add_Radar_Blip(bandit[1], "bandit_radar") bandit[1].Prevent_AI_Usage(true) bandit[1].Teleport_And_Face(prox_obj) bandit[1].Cinematic_Hyperspace_In(1) bandit[1].Make_Invulnerable(true) bandit[1].Set_Cannot_Be_Killed(true) bandit_move = introattack1.Get_Position() Register_Prox(introattack1, Prox_Change_Bandit_Course, 50, pirate_player) Story_Event("FINAL_ENCOUNTER") Create_Thread("Empire_Fleet_Arrival") end box_spotting_remaining = box_spotting_remaining - 1 end function Prox_Change_Bandit_Course(prox_obj, trigger_obj) prox_obj.Cancel_Event_Object_In_Range(Prox_Change_Bandit_Course) bandit_move = spawn_marker.Get_Position() end function Timer_Move_Bandit() if TestValid(bandit[1]) then bandit[1].Move_To(bandit_move) Register_Timer(Timer_Move_Bandit,5) end end function Empire_Fleet_Arrival() if not VictoryStarted and not DefeatStarted then Register_Timer(Timer_Move_Bandit,1) if TestValid(disabled_imperial_vessel_01) then disabled_imperial_vessel_01.Change_Owner(empire_player) end tyber_zann_craft.Make_Invulnerable(true) tyber_zann_craft.Set_Cannot_Be_Killed(true) empire_has_arrived = true Sleep(1) nearest_black_box = Find_Nearest(bandit[1], "UM01_DEATH_STAR_BLACK_BOX") if TestValid(nearest_black_box) then nearest_black_box.Set_Cannot_Be_Killed(false) nearest_black_box.Make_Invulnerable(false) nearest_black_box.Take_Damage(10000) end Sleep(6) -- Time for midtro cinematic stuff. Suspend_AI(1) Lock_Controls(1) Cancel_Fast_Forward() Fade_Screen_Out(1) Sleep(1) -- Find out which side of the battlefield the player is on. local left_distance = tyber_zann.Get_Distance(marker_executor_left) local right_distance = tyber_zann.Get_Distance(marker_executor_right) if left_distance < right_distance then spawn_marker = marker_executor_left spawn_marker2 = marker_executor_right else spawn_marker = marker_executor_right spawn_marker2 = marker_executor_left end -- Spawn the Empire fleet. imperial_fleet_list = SpawnList(imperial_fleet_01, spawn_marker.Get_Position(), empire_player, true, true) -- Spawn the Rebel backup. rebel_assault_01_list = SpawnList(rebel_assault_01, rebel_backup_marker_1.Get_Position(), rebel_player, true, true) rebel_backup_02_list = SpawnList(rebel_assault_01, rebel_backup_marker_2.Get_Position(), rebel_player, true, true) FogOfWar.Reveal_All(underworld_player) Start_Cinematic_Camera() Set_Cinematic_Camera_Key(spawn_marker.Get_Position(), 0, -1000, 800, 0, 0, 1, 0) Set_Cinematic_Target_Key(spawn_marker.Get_Position(), 0, 0, 0, 0, 0, 0, 0) Fade_Screen_In(2) Transition_Cinematic_Camera_Key(tyber_zann.Get_Position(), 3, 0, -2000, 1600, 0, 0, 0, 0) -- DEBUG: Call the dialog for announcing Empire arrival here. We'll need to separate it for timing purposes. Sleep(3) Transition_To_Tactical_Camera(5) Sleep(5) End_Cinematic_Camera() Letter_Box_Out(0) Lock_Controls(0) Suspend_AI(0) tyber_zann_craft.Make_Invulnerable(false) tyber_zann_craft.Set_Cannot_Be_Killed(false) bandit[1].Make_Invulnerable(false) end end function Prox_Missile_Defense(prox_obj, trigger_obj) missile_01.Cancel_Event_Object_In_Range(Prox_Missile_Defense) missile_02.Cancel_Event_Object_In_Range(Prox_Missile_Defense) missile_03.Cancel_Event_Object_In_Range(Prox_Missile_Defense) missile_04.Cancel_Event_Object_In_Range(Prox_Missile_Defense) if not primary_dialog_on then primary_dialog_on = true Story_Event("REBEL_SATELLITES_SPOTTED") Create_Thread("Primary_Dialog_Off") end end function Prox_Obtain_Blackbox(prox_obj,trigger_obj) if (trigger_obj == tyber_zann_craft) then prox_obj.Cancel_Event_Object_In_Range(Prox_Obtain_Blackbox) boxes_remaining = boxes_remaining - 1 nearest_black_box = Find_Nearest(prox_obj, "UM01_DEATH_STAR_BLACK_BOX") if TestValid(nearest_black_box) then nearest_black_box.Set_Cannot_Be_Killed(false) nearest_black_box.Make_Invulnerable(false) nearest_black_box.Take_Damage(10000) end fog_id.Undo_Reveal() Remove_Radar_Blip("box_radar") if boxes_remaining == 3 then Story_Event("UM02_HINT_POD_01") elseif boxes_remaining == 2 then Story_Event("UM02_HINT_POD_02") elseif boxes_remaining == 1 then Story_Event("UM02_HINT_POD_03") elseif boxes_remaining < 1 then Story_Event("UM02_HINT_POD_04") VictoryCondition_CapturedBoxes = true end end end function Rebel_Scouts_Engaged(engage_location) -- Bring in the backup squad at the prox_obj location. rebel_backup = SpawnList(rebel_assault_01, engage_location, rebel_player, true, true) for i, unit in pairs (rebel_backup) do unit.Cinematic_Hyperspace_In(1) end if not rebel_dialog then rebel_dialog = true primary_dialog_on = true Story_Event("REBEL_ENCOUNTER_01") Create_Thread("Primary_Dialog_Off") Create_Thread("Rebel_Encounter_Done") end end function Rebel_Encounter_Done() Sleep(15) if not primary_dialog_on then primary_dialog_on = true Story_Event("REBEL_ENCOUNTER_DONE") Create_Thread("Primary_Dialog_Off") end end --------------------------------------------------------------------------------- -- INTRO CINEMATIC function CINE_Start_Mission() CINE_Intro_Active = true Cancel_Fast_Forward() Suspend_AI(1) Lock_Controls(1) Start_Cinematic_Camera() recon = Create_Generic_Object("SKIPRAY_BLASTBOAT", reconstart.Get_Position(), underworld_player) if TestValid(recon) then recon.Move_To(reconend) 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(recon, 0, 90, 40, 0, recon, 1, 0) Set_Cinematic_Target_Key(recon, 0, 0, 0, 0, recon, 0, 0) Transition_Cinematic_Camera_Key(recon, 13, 0, 0, 40, 0, recon, 1, 0) Transition_Cinematic_Target_Key(recon, 7, 0, 0, 0, 0, recon, 0, 0) Letter_Box_In(0) Fade_Screen_In(2) Sleep(3) Story_Event("CHATTER_00") Sleep(6) Set_Cinematic_Camera_Key(tyber_zann_craft.Get_Position(), 0, 200, -175, 0, tyber_zann_craft, 0, 0) Set_Cinematic_Target_Key(tyber_zann_craft.Get_Position(), 0, 0, 0, 0, tyber_zann_craft, 0, 0) Story_Event("CHATTER_01") Sleep(8) Set_Cinematic_Camera_Key(tyber_zann_craft.Get_Position(), 275, 15, 90, 1, tyber_zann_craft, 0, 0) Set_Cinematic_Target_Key(tyber_zann_craft.Get_Position(), 0, 0, 0, 0, tyber_zann_craft, 0, 0) Story_Event("CHATTER_03") Sleep(4) attack1 = Create_Generic_Object("CORELLIAN_CORVETTE", introattack1.Get_Position(), neutral_player) attack1.Teleport_And_Face(introattack1) Set_Cinematic_Camera_Key(attack1, 300, -15, 145, 1, attack1, 1, 0) Set_Cinematic_Target_Key(attack1, 20, 0, -25, 0, attack1, 0, 0) Transition_Cinematic_Camera_Key(attack1, 6, 350, 15, 125, 1, attack1, 1, 0) Transition_Cinematic_Target_Key(attack1, 6, 10, 0, 35, 0, attack1, 0, 0) Story_Event("CHATTER_04") Sleep(2) Story_Event("CHATTER_05") Sleep(5) Set_Cinematic_Camera_Key(camtarget, -150, -150, 140, 0, 0, 0, 0) Set_Cinematic_Target_Key(attack1, 0, 0, 0, 0, attack1, 0, 0) Story_Event("CHATTER_06") Sleep(1.5) attack1.Change_Owner(rebel_player) Sleep(1.5) Fade_Screen_Out(1) Sleep(1) Create_Thread("IntroCineCleanup") end function Story_Handle_Esc() if CINE_Intro_Active then CINE_Intro_Active = false Thread.Kill(current_cine_id) Create_Thread("IntroCineCleanup") end end function IntroCineCleanup() current_cine_id = nil Story_Event("UM02_INTROCINE_DONE") black_box_01.Hide(false) black_box_02.Hide(false) black_box_03.Hide(false) black_box_03.Hide(false) Reveal_Black_Box() if TestValid(recon) then recon.Despawn() end if not TestValid(attack1) then attack1 = Create_Generic_Object("CORELLIAN_CORVETTE", introattack1.Get_Position(), rebel_player) attack1.Teleport_And_Face(introattack1) if TestValid(attack1) then attack1.Attack_Move(camtarget.Get_Position()) attack1.Prevent_AI_Usage(false) end end unit_list = SpawnList(rebel_assault_01, marker_rebel_first_encounter, rebel_player, true, true) for i,unit in pairs (unit_list) do if TestValid(unit) then unit.Attack_Move(camtarget.Get_Position()) end end if TestValid(attack1) then attack1.Change_Owner(rebel_player) end 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) Fade_Screen_In(1) Sleep(1) CINE_Intro_Active = false Story_Event("UM02_HINT_BLACKBOX") end --------------------------------------------------------------------------------- -- VICTORY AND DEFEAT function EndMissionVictory() Cancel_Fast_Forward() primary_dialog_on = true Story_Event("UM02_ENDCINE_BEGIN") Sleep(2) Suspend_AI(1) Lock_Controls(1) --Fade_Screen_Out(1) --Sleep(1) Start_Cinematic_Camera() Letter_Box_In(1) --Fade_Screen_In(1) Sleep(1) --Fade_Screen_Out(1) --Sleep(1) --End_Cinematic_Camera() --Letter_Box_Out(0) --Lock_Controls(0) --Suspend_AI(0) --Fade_Screen_In(1) --Sleep(1) Story_Event("CHATTER_10") Sleep(4) GlobalValue.Set("Allow_AI_Controlled_Fog_Reveal", 1) Story_Event("UM02_ENDMISSION_VICTORY") end function EndMissionDefeat() Cancel_Fast_Forward() GlobalValue.Set("Allow_AI_Controlled_Fog_Reveal", 1) Suspend_AI(1) Lock_Controls(1) --Fade_Screen_Out(1) --Sleep(1) --Letter_Box_In(0) --Start_Cinematic_Camera() --Fade_Screen_In(1) --Sleep(1) --MessageBox("Insert Game Defeat Cinematic Here") --Sleep(1) --Fade_Screen_Out(1) --End_Cinematic_Camera() --Letter_Box_Out(.5) --Lock_Controls(0) --Suspend_AI(0) --Sleep(1) --Fade_Screen_In(1) --Sleep(1) Story_Event("UM02_ENDMISSION_DEFEAT") end function Tyber_Zann_Destroyed() DefeatCondition_TyberDead = true end