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

2087 lines
74 KiB
Lua

-- $Id: //depot/Projects/StarWars_Steam/FOC/Run/Data/Scripts/Story/Story_Underworld_ActI_M04_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_M04_LAND.lua $
--
-- Original Author: Jeff_Stewart
--
-- $Author: Brian_Hayes $
--
-- $Change: 637819 $
--
-- $DateTime: 2017/03/22 10:16:16 $
--
-- $Revision: #1 $
--
--/////////////////////////////////////////////////////////////////////////////////////////////////
require("JGS_FunctionLib") -- added library of commonly used functions
require("PGSpawnUnits")
require("PGStoryMode")
function Definitions()
--MessageBox("Defined")
StoryModeEvents =
{
Underworld_A01M04_Begin = State_Underworld_A01M04_Begin,
Mission_4_Chatter_Dialog_00_Speech_Done = State_Mission_4_Chatter_Dialog_00_Speech_Done,
Mission_4_Chatter_Dialog_01_Speech_Done = State_Mission_4_Chatter_Dialog_01_Speech_Done,
Mission_4_Chatter_Dialog_02_Speech_Done = State_Mission_4_Chatter_Dialog_02_Speech_Done,
Mission_4_Chatter_Dialog_03_Speech_Done = State_Mission_4_Chatter_Dialog_03_Speech_Done,
Mission_4_Chatter_Dialog_04_Speech_Done = State_Mission_4_Chatter_Dialog_04_Speech_Done,
Mission_4_Chatter_Dialog_05_Speech_Done = State_Mission_4_Chatter_Dialog_05_Speech_Done,
Mission_4_Chatter_Dialog_06_Speech_Done = State_Mission_4_Chatter_Dialog_06_Speech_Done,
Mission_4_Chatter_Dialog_07_Speech_Done = State_Mission_4_Chatter_Dialog_07_Speech_Done,
Mission_4_Chatter_Dialog_08_Speech_Done = State_Mission_4_Chatter_Dialog_08_Speech_Done,
Mission_4_Chatter_Dialog_09_Speech_Done = State_Mission_4_Chatter_Dialog_09_Speech_Done,
Mission_4_Chatter_Dialog_10_Speech_Done = State_Mission_4_Chatter_Dialog_10_Speech_Done,
Mission_4_Chatter_Dialog_11_Speech_Done = State_Mission_4_Chatter_Dialog_11_Speech_Done,
Mission_4_Chatter_Dialog_12_Speech_Done = State_Mission_4_Chatter_Dialog_12_Speech_Done,
Mission_4_Chatter_Dialog_13_Speech_Done = State_Mission_4_Chatter_Dialog_13_Speech_Done,
Mission_4_Chatter_Dialog_14_Speech_Done = State_Mission_4_Chatter_Dialog_14_Speech_Done,
Mission_4_Chatter_Dialog_15_Speech_Done = State_Mission_4_Chatter_Dialog_15_Speech_Done,
Mission_4_Chatter_Dialog_16_Speech_Done = State_Mission_4_Chatter_Dialog_16_Speech_Done,
Mission_4_Chatter_Dialog_17_Speech_Done = State_Mission_4_Chatter_Dialog_17_Speech_Done,
Mission_4_Chatter_Dialog_18_Speech_Done = State_Mission_4_Chatter_Dialog_18_Speech_Done,
Mission_4_Chatter_Dialog_19_Speech_Done = State_Mission_4_Chatter_Dialog_19_Speech_Done,
Mission_4_Chatter_Dialog_20_Speech_Done = State_Mission_4_Chatter_Dialog_20_Speech_Done,
Mission_4_Chatter_Dialog_21_Speech_Done = State_Mission_4_Chatter_Dialog_21_Speech_Done,
Mission_4_Chatter_Dialog_22_Speech_Done = State_Mission_4_Chatter_Dialog_22_Speech_Done,
Mission_4_Chatter_Dialog_23_Speech_Done = State_Mission_4_Chatter_Dialog_23_Speech_Done,
Mission_4_Chatter_Dialog_24_Speech_Done = State_Mission_4_Chatter_Dialog_24_Speech_Done,
Mission_4_Chatter_Dialog_25_Speech_Done = State_Mission_4_Chatter_Dialog_25_Speech_Done,
Mission_4_Chatter_Dialog_26_Speech_Done = State_Mission_4_Chatter_Dialog_26_Speech_Done,
Mission_4_Chatter_Dialog_27_Speech_Done = State_Mission_4_Chatter_Dialog_27_Speech_Done,
Mission_4_Chatter_Dialog_28_Speech_Done = State_Mission_4_Chatter_Dialog_28_Speech_Done,
Mission_4_Chatter_Dialog_29_Speech_Done = State_Mission_4_Chatter_Dialog_29_Speech_Done,
Mission_4_Chatter_Dialog_30_Speech_Done = State_Mission_4_Chatter_Dialog_30_Speech_Done,
Mission_4_Chatter_Dialog_31_Speech_Done = State_Mission_4_Chatter_Dialog_31_Speech_Done,
Mission_4_Chatter_Dialog_32_Speech_Done = State_Mission_4_Chatter_Dialog_32_Speech_Done,
Mission_4_Chatter_Dialog_33_Speech_Done = State_Mission_4_Chatter_Dialog_33_Speech_Done,
Mission_4_Chatter_Dialog_34_Speech_Done = State_Mission_4_Chatter_Dialog_34_Speech_Done,
Mission_4_Chatter_Dialog_35_Speech_Done = State_Mission_4_Chatter_Dialog_35_Speech_Done,
Mission_4_Chatter_Dialog_36_Speech_Done = State_Mission_4_Chatter_Dialog_36_Speech_Done,
Mission_4_Chatter_Dialog_37_Speech_Done = State_Mission_4_Chatter_Dialog_37_Speech_Done,
Mission_4_Chatter_Dialog_38_Speech_Done = State_Mission_4_Chatter_Dialog_38_Speech_Done,
Mission_4_Chatter_Dialog_39_Speech_Done = State_Mission_4_Chatter_Dialog_39_Speech_Done,
Mission_4_Chatter_Dialog_40_Speech_Done = State_Mission_4_Chatter_Dialog_40_Speech_Done,
Mission_4_Chatter_Dialog_41_Speech_Done = State_Mission_4_Chatter_Dialog_41_Speech_Done,
Mission_4_Chatter_Dialog_42_Speech_Done = State_Mission_4_Chatter_Dialog_42_Speech_Done,
Mission_4_Chatter_Dialog_43_Speech_Done = State_Mission_4_Chatter_Dialog_43_Speech_Done,
Mission_4_Chatter_Dialog_44_Speech_Done = State_Mission_4_Chatter_Dialog_44_Speech_Done,
Mission_4_Chatter_Dialog_45_Speech_Done = State_Mission_4_Chatter_Dialog_45_Speech_Done,
Mission_4_Chatter_Dialog_46_Speech_Done = State_Mission_4_Chatter_Dialog_46_Speech_Done,
Mission_4_Chatter_Dialog_47_Speech_Done = State_Mission_4_Chatter_Dialog_47_Speech_Done,
Mission_4_Chatter_Dialog_48_Speech_Done = State_Mission_4_Chatter_Dialog_48_Speech_Done,
Mission_4_Chatter_Dialog_49_Speech_Done = State_Mission_4_Chatter_Dialog_49_Speech_Done,
Mission_4_Chatter_Dialog_50_Speech_Done = State_Mission_4_Chatter_Dialog_50_Speech_Done,
Mission_4_Chatter_Dialog_51_Speech_Done = State_Mission_4_Chatter_Dialog_51_Speech_Done,
Mission_4_Chatter_Dialog_52_Speech_Done = State_Mission_4_Chatter_Dialog_52_Speech_Done,
Mission_4_Chatter_Dialog_53_Speech_Done = State_Mission_4_Chatter_Dialog_53_Speech_Done,
Mission_4_Chatter_Dialog_54_Speech_Done = State_Mission_4_Chatter_Dialog_54_Speech_Done,
Mission_4_Chatter_Dialog_55_Speech_Done = State_Mission_4_Chatter_Dialog_55_Speech_Done,
Mission_4_Chatter_Dialog_56_Speech_Done = State_Mission_4_Chatter_Dialog_56_Speech_Done,
Mission_4_Chatter_Dialog_57_Speech_Done = State_Mission_4_Chatter_Dialog_57_Speech_Done,
Mission_4_Chatter_Dialog_58_Speech_Done = State_Mission_4_Chatter_Dialog_58_Speech_Done,
Mission_4_Chatter_Dialog_59_Speech_Done = State_Mission_4_Chatter_Dialog_59_Speech_Done,
Mission_4_Chatter_Dialog_60_Speech_Done = State_Mission_4_Chatter_Dialog_60_Speech_Done,
Mission_4_Chatter_Dialog_61_Speech_Done = State_Mission_4_Chatter_Dialog_61_Speech_Done,
Mission_4_Chatter_Dialog_62_Speech_Done = State_Mission_4_Chatter_Dialog_62_Speech_Done,
Mission_4_Chatter_Dialog_63_Speech_Done = State_Mission_4_Chatter_Dialog_63_Speech_Done,
Mission_4_Chatter_Dialog_64_Speech_Done = State_Mission_4_Chatter_Dialog_64_Speech_Done,
Mission_4_Chatter_Dialog_65_Speech_Done = State_Mission_4_Chatter_Dialog_65_Speech_Done
}
end
function State_Underworld_A01M04_Begin(message)
if message == OnEnter then
--- begin xml kickback vars
State_Mission_4_Chatter_Dialog_00_Done = false
State_Mission_4_Chatter_Dialog_01_Done = false
State_Mission_4_Chatter_Dialog_02_Done = false
State_Mission_4_Chatter_Dialog_03_Done = false
State_Mission_4_Chatter_Dialog_04_Done = false
State_Mission_4_Chatter_Dialog_05_Done = false
State_Mission_4_Chatter_Dialog_06_Done = false
State_Mission_4_Chatter_Dialog_07_Done = false
State_Mission_4_Chatter_Dialog_08_Done = false
State_Mission_4_Chatter_Dialog_09_Done = false
State_Mission_4_Chatter_Dialog_10_Done = false
State_Mission_4_Chatter_Dialog_11_Done = false
State_Mission_4_Chatter_Dialog_12_Done = false
State_Mission_4_Chatter_Dialog_13_Done = false
State_Mission_4_Chatter_Dialog_14_Done = false
State_Mission_4_Chatter_Dialog_15_Done = false
State_Mission_4_Chatter_Dialog_16_Done = false
State_Mission_4_Chatter_Dialog_17_Done = false
State_Mission_4_Chatter_Dialog_18_Done = false
State_Mission_4_Chatter_Dialog_19_Done = false
State_Mission_4_Chatter_Dialog_20_Done = false
State_Mission_4_Chatter_Dialog_21_Done = false
State_Mission_4_Chatter_Dialog_22_Done = false
State_Mission_4_Chatter_Dialog_23_Done = false
State_Mission_4_Chatter_Dialog_24_Done = false
State_Mission_4_Chatter_Dialog_25_Done = false
State_Mission_4_Chatter_Dialog_26_Done = false
State_Mission_4_Chatter_Dialog_27_Done = false
State_Mission_4_Chatter_Dialog_28_Done = false
State_Mission_4_Chatter_Dialog_29_Done = false
State_Mission_4_Chatter_Dialog_30_Done = false
State_Mission_4_Chatter_Dialog_31_Done = false
State_Mission_4_Chatter_Dialog_32_Done = false
State_Mission_4_Chatter_Dialog_33_Done = false
State_Mission_4_Chatter_Dialog_34_Done = false
State_Mission_4_Chatter_Dialog_35_Done = false
State_Mission_4_Chatter_Dialog_36_Done = false
State_Mission_4_Chatter_Dialog_37_Done = false
State_Mission_4_Chatter_Dialog_38_Done = false
State_Mission_4_Chatter_Dialog_39_Done = false
State_Mission_4_Chatter_Dialog_40_Done = false
State_Mission_4_Chatter_Dialog_41_Done = false
State_Mission_4_Chatter_Dialog_42_Done = false
State_Mission_4_Chatter_Dialog_43_Done = false
State_Mission_4_Chatter_Dialog_44_Done = false
State_Mission_4_Chatter_Dialog_45_Done = false
State_Mission_4_Chatter_Dialog_46_Done = false
State_Mission_4_Chatter_Dialog_47_Done = false
State_Mission_4_Chatter_Dialog_48_Done = false
State_Mission_4_Chatter_Dialog_49_Done = false
State_Mission_4_Chatter_Dialog_50_Done = false
State_Mission_4_Chatter_Dialog_51_Done = false
State_Mission_4_Chatter_Dialog_52_Done = false
State_Mission_4_Chatter_Dialog_53_Done = false
State_Mission_4_Chatter_Dialog_54_Done = false
State_Mission_4_Chatter_Dialog_55_Done = false
State_Mission_4_Chatter_Dialog_56_Done = false
State_Mission_4_Chatter_Dialog_57_Done = false
State_Mission_4_Chatter_Dialog_58_Done = false
State_Mission_4_Chatter_Dialog_59_Done = false
State_Mission_4_Chatter_Dialog_60_Done = false
State_Mission_4_Chatter_Dialog_61_Done = false
State_Mission_4_Chatter_Dialog_62_Done = false
State_Mission_4_Chatter_Dialog_63_Done = false
State_Mission_4_Chatter_Dialog_64_Done = false
State_Mission_4_Chatter_Dialog_65_Done = false
--- end xml kickback vars
--MessageBox("Started")
neutral_player = Find_Player("Neutral")
empire_player = Find_Player("Empire")
pirate_player = Find_Player("Pirates")
hostile_player = Find_Player("Hostile")
underworld_player = Find_Player("Underworld")
PadsCaptured = 0
firstdroid = Find_Hint("UM02_DROID_CRATE", "firstdroid")
Register_Death_Event(firstdroid, Seen_Droids)
outsidehatch1 = Find_Hint("GENERIC_MARKER_LAND", "outsidehatch1")
outsidehatch2 = Find_Hint("GENERIC_MARKER_LAND", "outsidehatch2")
-- end cinematic stuff
troops1 = Find_Hint("STORY_TRIGGER_ZONE", "troops1")
troops2 = Find_Hint("STORY_TRIGGER_ZONE", "troops2")
troops3 = Find_Hint("STORY_TRIGGER_ZONE", "troops3")
doorguard1 = Find_Hint("STORY_TRIGGER_ZONE", "doorguard1")
doorguard2 = Find_Hint("STORY_TRIGGER_ZONE", "doorguard2")
doorguard3 = Find_Hint("STORY_TRIGGER_ZONE", "doorguard3")
doorguard4 = Find_Hint("STORY_TRIGGER_ZONE", "doorguard4")
endjabbaspawn = Find_Hint("STORY_TRIGGER_ZONE", "endjabbaspawn")
endtyberspawn = Find_Hint("STORY_TRIGGER_ZONE", "endtyberspawn")
enduraispawn = Find_Hint("STORY_TRIGGER_ZONE", "enduraispawn")
endbosskspawn = Find_Hint("STORY_TRIGGER_ZONE", "endbosskspawn")
endcamstart = Find_Hint("STORY_TRIGGER_ZONE", "endcamstart")
deadguys1 = Find_Hint("STORY_TRIGGER_ZONE", "deadguys1")
deadguys2 = Find_Hint("STORY_TRIGGER_ZONE", "deadguys2")
deadguys3 = Find_Hint("STORY_TRIGGER_ZONE", "deadguys3")
deadguys4 = Find_Hint("STORY_TRIGGER_ZONE", "deadguys4")
deadguys5 = Find_Hint("STORY_TRIGGER_ZONE", "deadguys5")
deadguys6 = Find_Hint("STORY_TRIGGER_ZONE", "deadguys6")
wreck1 = Find_Hint("STORY_TRIGGER_ZONE", "wreck1")
wreck2 = Find_Hint("STORY_TRIGGER_ZONE", "wreck2")
wreck3 = Find_Hint("STORY_TRIGGER_ZONE", "wreck3")
-- mid cinematic stuff
bossktalk = Find_Hint("STORY_TRIGGER_ZONE", "bossktalk")
tybertalk = Find_Hint("STORY_TRIGGER_ZONE", "tybertalk")
uraitalk = Find_Hint("STORY_TRIGGER_ZONE", "uraitalk")
jabbaguard1 = Find_Hint("STORY_TRIGGER_ZONE", "jabbaguard1")
jabbaguard2 = Find_Hint("STORY_TRIGGER_ZONE", "jabbaguard2")
jg1spot = Find_Hint("STORY_TRIGGER_ZONE", "jabbaguard1goto")
jg2spot = Find_Hint("STORY_TRIGGER_ZONE", "jabbaguard2goto")
jabbacam = Find_Hint("STORY_TRIGGER_ZONE", "jabbacam")
jabbadoor = Find_Hint("UM02_MAGNETICALLY_SEALED_DOORWAY", "door1")
jabbaspot = Find_Hint("STORY_TRIGGER_ZONE", "jabbadoor")
jabbaspawn = Find_Hint("STORY_TRIGGER_ZONE", "jabbaspawn")
uraispot = Find_Hint("GENERIC_MARKER_LAND", "factorycontrols")
uraimove = Find_Hint("STORY_TRIGGER_ZONE", "uraimove")
station = Find_Hint("DROID_INTERFACE_STATION", "station")
bossk_spawn = Find_Hint("STORY_TRIGGER_ZONE", "spawnbossk")
bossk_goto = Find_Hint("STORY_TRIGGER_ZONE", "bosskgoto")
midcine_tyber = Find_Hint("STORY_TRIGGER_ZONE", "midcine-tyber")
pad1 = Find_Hint("REINFORCEMENT_POINT", "pad1")
pad2 = Find_Hint("REINFORCEMENT_POINT", "pad2")
pad3 = Find_Hint("REINFORCEMENT_POINT", "pad3")
pad4 = Find_Hint("REINFORCEMENT_POINT", "pad4")
console1 = Find_Hint("UM02_INTERFACE_NODE", "console1")
Register_Death_Event(console1, HatchOne)
door1 = Find_Hint("GENERIC_MARKER_LAND", "door1")
console2 = Find_Hint("UM02_INTERFACE_NODE", "console2")
Register_Death_Event(console2, HatchTwo)
door2 = Find_Hint("GENERIC_MARKER_LAND", "door2")
spawn = Find_Hint("GENERIC_MARKER_LAND", "genericspawn")
--tyber_zann = Find_Nearest(pad1,"TYBER_ZANN")
--Register_Death_Event(tyber_zann, Tyber_Destroyed)
urai_fen = Find_Nearest(pad1,"URAI_FEN")
Register_Death_Event(urai_fen, Urai_Destroyed)
-- Register prox events for battle chatter and game events
chatter1 = Find_Hint("GENERIC_MARKER_LAND","chatterbadfeeling")
Register_Prox(chatter1, Prox_Chatter_BadFeeling, 75, underworld_player)
startdroidsa=Find_Hint("GENERIC_MARKER_LAND","startdestroyerdroidsa")
Register_Prox(startdroidsa, Prox_StartDestroyers_A, 100, underworld_player)
startdroidsb=Find_Hint("GENERIC_MARKER_LAND","startdestroyerdroidsb")
Register_Prox(startdroidsb, Prox_StartDestroyers_B, 100, underworld_player)
seescontrols=Find_Hint("GENERIC_MARKER_LAND","seencontrols")
Register_Prox(seescontrols, Prox_HintAtControls, 135, underworld_player)
gotcontrols=Find_Hint("GENERIC_MARKER_LAND","factorycontrols")
Register_Prox(gotcontrols, Prox_UseControls, 75, underworld_player)
Register_Prox(gotcontrols, Prox_UseControls_Wrong, 60, underworld_player)
droidworksloc=Find_Hint("GENERIC_MARKER_LAND","droidworksloc")
Register_Prox(droidworksloc, Prox_CapturedDroidWorks, 75, underworld_player)
droidworks=Find_Hint("U_GROUND_DROID_WORKS","droidworks")
Register_Death_Event(droidworks, DroidWorks_Destroyed)
-- set up some global mission state flags
MissionPartOneStarted = false
MissionPartTwoStarted = false
MissionPartTwoSetup = true
PadOneCaptured = false
PadTwoCaptured = false
PadThreeCaptured = false
PadFourCaptured = false
VictoryCondition_DroidWorks = false
VictoryCondition_LandingPads = false
DefeatCondition_TyberDead = false
DefeatCondition_UraiDead = false
DefeatCondition_DroidWorksDead = false
DefeatCondition_BosskDead = false
VictoryStarted = false
DefeatStarted = false
current_cine_id = nil
CINE_Intro_Active = false
CINE_Mid_Active = false
CINE_End_Active = false
underworld_player.Disable_Bombing_Run(false)
-- finds all conveyor belts and deactivates them
conv_list = Find_All_Objects_Of_Type("UM02_CONVEYOR")
for k, unit in pairs(conv_list) do
if TestValid(unit) then
unit.Play_Animation("idle", true, 1)
end
end
Create_Thread("Main")
current_cine_id = Create_Thread("CINE_Start_Mission")
Allow_Localized_SFX(true)
elseif message == OnUpdate then
elseif message == OnExit then
--Do Nothing
end
end
function Main()
while true do
--Do Nothing
if MissionPartTwoStarted then
if MissionPartTwoSetup then
MissionPartTwoSetup = false
Mid_Mission_Setup()
end
if VictoryCondition_DroidWorks and VictoryCondition_LandingPads then
if not VictoryStarted then
VictoryStarted = true
if not DefeatStarted then
current_cine_id = Create_Thread("EndMissionVictory")
end
end
end
end
if DefeatCondition_TyberDead or DefeatCondition_UraiDead or DefeatCondition_DroidWorksDead or DefeatCondition_BosskDead then
if not DefeatStarted then
DefeatStarted = true
Create_Thread("EndMissionDefeat")
end
end
Sleep(.5)
end
end
function FalseVictory()
if not VictoryStarted then
VictoryStarted = true
if not DefeatStarted then
current_cine_id = Create_Thread("EndMissionVictory")
end
end
end
function HatchOne()
InsideHatchOne = false
Register_Prox(door1, Prox_InsideHatchOneA, 85, underworld_player)
Create_Thread("CloseHatchOne")
end
function CloseHatchOne()
while InsideHatchOne == true do
InsideHatchOne = false
Sleep(2)
end
door1.Cancel_Event_Object_In_Range(Prox_InsideHatchOneA)
Register_Prox(door1, Prox_InsideHatchOneB, 70, empire_player)
anim1 = Create_Generic_Object("UM05_MOVING_DOOR", door1.Get_Position(), neutral_player)
anim1.Teleport_And_Face(door1)
anim1.Play_Animation("Cinematic",false,3)
Sleep(2)
anim1.Despawn()
lock_anim1 = Create_Generic_Object("UM02_KILLABLE_DOOR", spawn.Get_Position(), underworld_player)
lock_anim1.Teleport_And_Face(spawn)
lock_anim1.Teleport_And_Face(door1)
lock_anim1.Set_Selectable(false)
door1.Cancel_Event_Object_In_Range(Prox_InsideHatchOneB)
end
function Prox_InsideHatchOneA(self_obj, trigger_obj)
if trigger_obj.Get_Owner() == underworld_player then
InsideHatchOne = true
end
end
function Prox_InsideHatchOneB(self_obj, trigger_obj)
if trigger_obj.Get_Owner() == empire_player then
trigger_obj.Take_Damage(50000)
end
end
function HatchTwo()
InsideHatchTwo = false
Register_Prox(door2, Prox_InsideHatchTwoA, 85, underworld_player)
Create_Thread("CloseHatchTwo")
end
function CloseHatchTwo()
while InsideHatchTwo == true do
InsideHatchTwo = false
Sleep(2)
end
door2.Cancel_Event_Object_In_Range(Prox_InsideHatchTwoA)
Register_Prox(door2, Prox_InsideHatchTwoB, 70, empire_player)
anim2 = Create_Generic_Object("UM05_MOVING_DOOR", door2.Get_Position(), neutral_player)
anim2.Teleport_And_Face(door2)
anim2.Play_Animation("Cinematic",false,3)
Sleep(2)
anim2.Despawn()
lock_anim2 = Create_Generic_Object("UM02_KILLABLE_DOOR", spawn.Get_Position(), underworld_player)
lock_anim2.Teleport_And_Face(spawn)
lock_anim2.Teleport_And_Face(door2)
lock_anim2.Set_Selectable(false)
door2.Cancel_Event_Object_In_Range(Prox_InsideHatchTwoB)
end
function Prox_InsideHatchTwoA(self_obj, trigger_obj)
if trigger_obj.Get_Owner() == underworld_player then
InsideHatchTwo = true
end
end
function Prox_InsideHatchTwoB(self_obj, trigger_obj)
if trigger_obj.Get_Owner() == empire_player then
trigger_obj.Take_Damage(50000)
end
end
-- delay a short time and then start the game
function CINE_Start_Mission()
Cancel_Fast_Forward()
CINE_Intro_Active = true
Suspend_AI(1)
Lock_Controls(1)
Fade_Screen_Out(0)
Letter_Box_In(0)
Start_Cinematic_Camera()
tyber_zann = Find_Nearest(pad1,"TYBER_ZANN_PASSENGER")
Register_Death_Event(tyber_zann, Tyber_Destroyed)
tyberstart = Find_Hint("STORY_TRIGGER_ZONE","tyber")
tyber_zann.Teleport_And_Face(tyberstart)
intro_landing = Find_Hint("STORY_TRIGGER_ZONE_00","introland")
-- Create_Cinematic_Transport(object_type_name, player_id, transport_pos, zangle, phase_mode, anim_delta, idle_time, persist,hint)
transport = Create_Cinematic_Transport("Underworld_Hero_Shuttle_Landing", underworld_player.Get_ID(), intro_landing, -45, 1, 1.05, 3, 0)
transport.Attach_Particle_Effect("TRANSPORT_LANDING_DUST_VOLCANIC")
--Set_Cinematic_Camera_Key(target_pos, xoffset_dist, yoffset_pitch, zoffset_yaw, angles?, attach_object, use_object_rotation, cinematic_animation)
Set_Cinematic_Camera_Key(tyber_zann, 200, 15, 0, 1, 0, 0, 0)
Set_Cinematic_Target_Key(tyber_zann, 0, 0, 0, 0, 0, 0, 0)
Sleep(1)
Transition_Cinematic_Camera_Key(tyber_zann, 5, 150, 10, 20, 1, 0, 0, 0)
Fade_Screen_In(1)
Sleep(6)
Story_Event("CHATTER_49")
Set_Cinematic_Camera_Key(tyber_zann, 53, 21, -28, 1, 0, 0, 0)
Set_Cinematic_Target_Key(tyber_zann, 0, 0, 16, 0, 0, 0, 0)
--MessageBox("Insert Game Intro Cinematic Here")
while not State_Mission_4_Chatter_Dialog_49_Done do Sleep(.5) end
if TestValid(transport) then
transport.Despawn()
end
Story_Event("CHATTER_50")
Set_Cinematic_Camera_Key(urai_fen, 53, 18, 135, 1, 0, 0, 0)
Set_Cinematic_Target_Key(urai_fen, 0, 0, 17, 0, 0, 0, 0)
while not State_Mission_4_Chatter_Dialog_50_Done do Sleep(.5) end
Story_Event("CHATTER_51")
Set_Cinematic_Camera_Key(tyber_zann, 53, 21, -28, 1, 0, 0, 0)
Set_Cinematic_Target_Key(tyber_zann, 0, 0, 16, 0, 0, 0, 0)
while not State_Mission_4_Chatter_Dialog_51_Done do Sleep(.5) end
Story_Event("CHATTER_52")
Set_Cinematic_Camera_Key(urai_fen, 53, 18, 135, 1, 0, 0, 0)
Set_Cinematic_Target_Key(urai_fen, 0, 0, 17, 0, 0, 0, 0)
while not State_Mission_4_Chatter_Dialog_52_Done do Sleep(.5) end
Story_Event("CHATTER_53")
Set_Cinematic_Camera_Key(tyber_zann, 53, 21, -28, 1, 0, 0, 0)
Set_Cinematic_Target_Key(tyber_zann, 0, 0, 16, 0, 0, 0, 0)
while not State_Mission_4_Chatter_Dialog_53_Done do Sleep(.5) end
Story_Event("CHATTER_54")
Set_Cinematic_Camera_Key(urai_fen, 53, 18, 135, 1, 0, 0, 0)
Set_Cinematic_Target_Key(urai_fen, 0, 0, 17, 0, 0, 0, 0)
while not State_Mission_4_Chatter_Dialog_54_Done do Sleep(.5) end
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
--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()
if TestValid(transport) then
transport.Despawn()
end
CINE_Intro_Active = false
--Stop_All_Music()
Stop_All_Speech()
Remove_All_Text()
Lock_Controls(0)
End_Cinematic_Camera()
Letter_Box_Out(0)
Suspend_AI(0)
Fade_Screen_In(1)
Sleep(1)
MissionPartOneStarted = true
Story_Event("UM04_INTROCINE_DONE")
current_cine_id = nil
Set_Hint_At_Object(gotcontrols)
end
function MidCineCleanup()
if TestValid(jabbadoor) then
jabbadoor.Despawn()
end
if TestValid(jabba) then
jabba.Despawn()
end
if TestValid(jguard1a) then
jguard1a.Despawn()
end
if TestValid(jguard1b) then
jguard1b.Despawn()
end
if TestValid(jguard2a) then
jguard2a.Despawn()
end
if TestValid(jguard2b) then
jguard2b.Despawn()
end
if TestValid(cineguys1) then
cineguys1.Despawn()
end
if TestValid(cineguys2) then
cineguys2.Despawn()
end
if TestValid(cineguys3) then
cineguys3.Despawn()
end
if TestValid(bossk) then
bossk.Teleport_And_Face(bossktalk)
else
bossk = Create_Generic_Object("BOSSK", bossktalk.Get_Position(), underworld_player)
end
if TestValid(urai_fen) then
urai_fen.Teleport_And_Face(uraitalk)
end
if TestValid(tyber_zann) then
tyber_zann.Teleport_And_Face(tybertalk)
end
bossk.Prevent_All_Fire(false)
urai_fen.Prevent_All_Fire(false)
urai_fen.Make_Invulnerable(false)
tyber_zann.Prevent_All_Fire(false)
Point_Camera_At(tyber_zann)
guys1 = Create_Generic_Object("HUTT_POD_WALKER", troops1.Get_Position(), pirate_player)
guys2 = Create_Generic_Object("HUTT_POD_WALKER", troops2.Get_Position(), pirate_player)
guys3 = Create_Generic_Object("HUTT_POD_WALKER", troops3.Get_Position(), pirate_player)
Create_Thread("Hunt_Underworld", {guys1, guys2, guys3})
jguard1a = Create_Generic_Object("PIRATE_SOLDIER_NONSQUAD", jabbaguard1.Get_Position(), pirate_player)
jguard1b = Create_Generic_Object("PIRATE_SOLDIER_NONSQUAD", jabbaguard1.Get_Position(), pirate_player)
jguard2a = Create_Generic_Object("PIRATE_SOLDIER_NONSQUAD", jabbaguard2.Get_Position(), pirate_player)
jguard2b = Create_Generic_Object("PIRATE_SOLDIER_NONSQUAD", jabbaguard2.Get_Position(), pirate_player)
Create_Thread("Hunt_Underworld", {jguard1a, jguard2a, jguard1b, jguard2b})
Stop_All_Music()
Stop_All_Speech()
Remove_All_Text()
End_Cinematic_Camera()
Letter_Box_Out(.5)
Lock_Controls(0)
Suspend_AI(0)
Fade_Screen_In(1)
Sleep(1)
MissionPartTwoStarted = true
Story_Event("UM04_MIDCINE_DONE")
Story_Event("UM04_HINT_BOSSK")
current_cine_id = nil
Register_Death_Event(bossk, Bossk_Destroyed)
end
function EndCineCleanup()
Fade_Screen_Out(1)
Sleep(1)
if TestValid(jabba) then
jabba.Despawn()
end
if TestValid(detritus1) then
detritus1.Despawn()
end
if TestValid(detritus2) then
detritus2.Despawn()
end
if TestValid(detritus3) then
detritus3.Despawn()
end
if TestValid(detritus4) then
detritus4.Despawn()
end
if TestValid(detritus5) then
detritus5.Despawn()
end
if TestValid(detritus6) then
detritus6.Despawn()
end
if TestValid(wreckage1) then
wreckage1.Despawn()
end
if TestValid(wreckage2) then
wreckage2.Despawn()
end
if TestValid(wreckage3) then
wreckage3.Despawn()
end
Letter_Box_Out(1)
Sleep(1)
Stop_All_Music()
Stop_All_Speech()
Remove_All_Text()
End_Cinematic_Camera()
Letter_Box_Out(0)
current_cine_id = nil
Fade_Screen_In(1)
Story_Event("UM04_ENDMISSION_VICTORY")
end
function Tyber_Destroyed()
DefeatCondition_TyberDead = true
Story_Event("UM04_TYBERDEAD")
end
function Urai_Destroyed()
DefeatCondition_UraiDead = true
Story_Event("UM04_URAIDEAD")
end
function DroidWorks_Destroyed()
DefeatCondition_DroidWorksDead = true
Story_Event("UM04_DROIDWORKSDEAD")
end
function Bossk_Destroyed()
DefeatCondition_BosskDead = true
Story_Event("UM04_BOSSKDEAD")
end
-- triggered when tyber exits the landing pad, to set the mood
function Prox_Chatter_BadFeeling(self_obj, trigger_obj)
if MissionPartOneStarted then
-- CHATTER -- Tyber Zann: "I've got a bad feeling about this."
if not trigger_obj then
DebugMessage("Warning: prox received a nil trigger_obj .")
return
end
tyber_distance=self_obj.Get_Distance(tyber_zann)
if tyber_distance < 200 then
Story_Event("CHATTER_25")
self_obj.Cancel_Event_Object_In_Range(Prox_Chatter_BadFeeling)
end
end
end
function Seen_Droids()
Create_Thread("Talk_About_Droids")
end
function Talk_About_Droids()
Story_Event("CHATTER_55")
while not State_Mission_4_Chatter_Dialog_55_Done do Sleep(.5) end
Story_Event("CHATTER_56")
while not State_Mission_4_Chatter_Dialog_56_Done do Sleep(.5) end
Story_Event("CHATTER_57")
while not State_Mission_4_Chatter_Dialog_57_Done do Sleep(.5) end
Story_Event("CHATTER_58")
while not State_Mission_4_Chatter_Dialog_58_Done do Sleep(.5) end
Story_Event("CHATTER_59")
while not State_Mission_4_Chatter_Dialog_59_Done do Sleep(.5) end
Story_Event("CHATTER_60")
while not State_Mission_4_Chatter_Dialog_60_Done do Sleep(.5) end
Story_Event("CHATTER_61")
end
-- triggered when the player gets close to the droid pens, which will then begin spawning droids
function Prox_StartDestroyers_A(self_obj, trigger_obj)
if MissionPartOneStarted then
-- Begin producing destroyer droids
if not trigger_obj then
DebugMessage("Warning: prox received a nil trigger_obj .")
return
end
droid1 = Find_Hint("GENERIC_MARKER_LAND","ddroid1")
Create_Generic_Object("UM02_DESTROYER_SPAWNER",droid1.Get_Position(),pirate_player)
droid2 = Find_Hint("GENERIC_MARKER_LAND","ddroid2")
Create_Generic_Object("UM02_DESTROYER_SPAWNER",droid2.Get_Position(),pirate_player)
droid3 = Find_Hint("GENERIC_MARKER_LAND","ddroid3")
Create_Generic_Object("UM02_DESTROYER_SPAWNER",droid3.Get_Position(),pirate_player)
droid4 = Find_Hint("GENERIC_MARKER_LAND","ddroid4")
Create_Generic_Object("UM02_DESTROYER_SPAWNER",droid4.Get_Position(),pirate_player)
droid5 = Find_Hint("GENERIC_MARKER_LAND","ddroid5")
Create_Generic_Object("UM02_DESTROYER_SPAWNER",droid5.Get_Position(),pirate_player)
droid6 = Find_Hint("GENERIC_MARKER_LAND","ddroid6")
Create_Generic_Object("UM02_DESTROYER_SPAWNER",droid6.Get_Position(),pirate_player)
droid7 = Find_Hint("GENERIC_MARKER_LAND","ddroid7")
Create_Generic_Object("UM02_DESTROYER_SPAWNER",droid7.Get_Position(),pirate_player)
droid8 = Find_Hint("GENERIC_MARKER_LAND","ddroid8")
Create_Generic_Object("UM02_DESTROYER_SPAWNER",droid8.Get_Position(),pirate_player)
self_obj.Cancel_Event_Object_In_Range(Prox_StartDestroyers_A)
Create_Thread("StartMissionObjective")
end
end
-- triggered when the player gets close to the droid pens, which will then begin spawning droids
function Prox_StartDestroyers_B(self_obj, trigger_obj)
if MissionPartOneStarted then
-- Begin producing destroyer droids
if not trigger_obj then
DebugMessage("Warning: prox received a nil trigger_obj .")
return
end
--Story_Event("CHATTER_26")
--while not State_Mission_4_Chatter_Dialog_26_Done do Sleep(.5) end
Story_Event("CHATTER_22")
edroid1 = Find_Hint("GENERIC_MARKER_LAND","edroid1")
Create_Generic_Object("UM02_DESTROYER_SPAWNER",edroid1.Get_Position(),pirate_player)
edroid2 = Find_Hint("GENERIC_MARKER_LAND","edroid2")
Create_Generic_Object("UM02_DESTROYER_SPAWNER",edroid2.Get_Position(),pirate_player)
edroid3 = Find_Hint("GENERIC_MARKER_LAND","edroid3")
Create_Generic_Object("UM02_DESTROYER_SPAWNER",edroid3.Get_Position(),pirate_player)
edroid4 = Find_Hint("GENERIC_MARKER_LAND","edroid4")
Create_Generic_Object("UM02_DESTROYER_SPAWNER",edroid4.Get_Position(),pirate_player)
edroid5 = Find_Hint("GENERIC_MARKER_LAND","edroid5")
Create_Generic_Object("UM02_DESTROYER_SPAWNER",edroid5.Get_Position(),pirate_player)
self_obj.Cancel_Event_Object_In_Range(Prox_StartDestroyers_B)
end
end
-- delay a short time and then display the mission objective
function StartMissionObjective()
Sleep(2)
Story_Event("UM04_HINT_CONTROLS")
Story_Event("CHATTER_22")
end
-- triggered when player gets close to the droid controls for part one of the mission
function Prox_HintAtControls(self_obj, trigger_obj)
if MissionPartOneStarted then
-- CHATTER -- Tyber Zann: "There are the controls!"
if not trigger_obj then
DebugMessage("Warning: prox received a nil trigger_obj .")
return
end
Story_Event("CHATTER_23")
self_obj.Cancel_Event_Object_In_Range(Prox_HintAtControls)
end
end
-- triggered when the player gets urai at the controls, triggering part two
function Prox_UseControls(self_obj, trigger_obj)
if MissionPartOneStarted then
if not trigger_obj then
DebugMessage("Warning: prox received a nil trigger_obj .")
return
end
urai_distance=self_obj.Get_Distance(urai_fen)
if urai_distance < 60 then
self_obj.Cancel_Event_Object_In_Range(Prox_UseControls)
self_obj.Cancel_Event_Object_In_Range(Prox_UseControls_Wrong)
Story_Event("CHATTER_45")
Remove_Hint_At_Object(gotcontrols)
Create_Thread("UraiUsesControls")
end
end
end
function UraiUsesControls()
urai_fen.Set_Selectable(false)
urai_fen.Make_Invulnerable(true)
BlockOnCommand(urai_fen.Move_To(gotcontrols))
Sleep(2)
Story_Event("CHATTER_46")
Sleep(4)
Register_Prox(bossktalk, Prox_ClearCineArea, 150, empire_player)
-- finds all destroyer droid spawners and deletes them
unit_list = Find_All_Objects_Of_Type("UM02_DESTROYER_SPAWNER")
for k, unit in pairs(unit_list) do
if TestValid(unit) then
unit.Despawn()
end
end
-- finds all conveyor belts and deactivates them
conv_list = Find_All_Objects_Of_Type("UM02_CONVEYOR")
for k, unit in pairs(conv_list) do
if TestValid(unit) then
unit.Play_Animation("Structure Hold", true, 0)
end
end
Create_Thread("SwitchDroids")
Sleep(1)
urai_fen.Set_Selectable(true)
--urai_fen.Play_SFX_Event("SFX_UMP_EmpireKesselAlarm")
Story_Event("UM04_CONTROLS_USED")
Sleep(2)
if not DefeatStarted then
current_cine_id = Create_Thread("CINE_Mid_Mission")
end
bossktalk.Cancel_Event_Object_In_Range(Prox_ClearCineArea)
end
function SwitchDroids()
-- finds all destroyer droids and deactivates them
droid_list = Find_All_Objects_Of_Type("DESTROYER_DROID")
for k, unit in pairs(droid_list) do
if TestValid(unit) then
newunit = Create_Generic_Object("DESTROYER_DROID",unit.Get_Position(),neutral_player)
newunit.Teleport_And_Face(unit)
newunit.Attach_Particle_Effect("HAN_SOLO_TARGET_STUN_EFFECT")
unit.Take_Damage(10000)
Sleep(.25)
end
end
end
-- triggered when the player gets tyber close to controls
function Prox_UseControls_Wrong(self_obj, trigger_obj)
if MissionPartOneStarted then
-- CHATTER -- Tyber Zann: "I don't know how to use this thing. Urai get over here."
if not trigger_obj then
DebugMessage("Warning: prox received a nil trigger_obj .")
return
end
tyber_distance=self_obj.Get_Distance(tyber_zann)
if tyber_distance < 60 then
Story_Event("CHATTER_44")
self_obj.Cancel_Event_Object_In_Range(Prox_UseControls_Wrong)
end
end
end
-- mid-mission cinematic where jabba lands and gives his best
function CINE_Mid_Mission()
Cancel_Fast_Forward()
CINE_Mid_Active = true
Story_Event("UM04_MIDCINE_BEGIN")
Suspend_AI(1)
Lock_Controls(1)
Fade_Screen_Out(1)
Sleep(1)
Letter_Box_In(0)
Start_Cinematic_Camera()
cineguys1 = Create_Generic_Object("HUTT_POD_WALKER", troops1.Get_Position(), neutral_player)
cineguys2 = Create_Generic_Object("HUTT_POD_WALKER", troops2.Get_Position(), neutral_player)
cineguys3 = Create_Generic_Object("HUTT_POD_WALKER", troops3.Get_Position(), neutral_player)
tyber_zann.Teleport_And_Face(midcine_tyber)
urai_fen.Teleport_And_Face(uraispot)
bossk = Create_Generic_Object("BOSSK", bossk_spawn.Get_Position(), underworld_player)
bossk.Prevent_All_Fire(true)
urai_fen.Prevent_All_Fire(true)
tyber_zann.Prevent_All_Fire(true)
--Set_Cinematic_Camera_Key(target_pos, xoffset_dist, yoffset_pitch, zoffset_yaw, angles?, attach_object, use_object_rotation, cinematic_animation)
Set_Cinematic_Camera_Key(urai_fen, 0, -20, 18, 0, 0, 0, 0)
Set_Cinematic_Target_Key(station, 0, 0, 17, 0, 0, 0, 0)
Fade_Screen_In(1)
Sleep(1)
Transition_Cinematic_Camera_Key(urai_fen, 4, 10, -20, 20, 0, 0, 0, 0)
Story_Event("CHATTER_06")
urai_fen.Play_Animation("cinematic", true, 0)
while not State_Mission_4_Chatter_Dialog_06_Done do Sleep(.5) end
urai_fen.Play_Animation("idle", true, 0)
-- changed per lec
--bossk.Move_To(bossk_goto)
bossk.Teleport_And_Face(bossk_goto)
bossk.Face_Immediate(tyber_zann)
Sleep(.5)
bossk.Play_Animation("attack idle", true, 0)
Sleep(.5)
--Set_Cinematic_Camera_Key(target_pos, xoffset_dist, yoffset_pitch, zoffset_yaw, angles?, attach_object, use_object_rotation, cinematic_animation)
Set_Cinematic_Camera_Key(tyber_zann, 20, 0, 18, 0, 0, 0, 0)
Set_Cinematic_Target_Key(bossk_goto, 0, 0, 17, 0, 0, 0, 0)
Sleep(.5)
--bossk.Play_Animation("talk", true, 0)
Sleep(.5)
tyber_zann.Play_SFX_Event("Unit_Attack_Bossk")
Sleep(1.5)
Story_Event("CHATTER_07")
tyber_zann.Play_Animation("cinematic", true, 2)
while not State_Mission_4_Chatter_Dialog_07_Done do Sleep(.5) end
tyber_zann.Play_Animation("idle", true, 0)
tyber_zann.Turn_To_Face(bossk)
Sleep(.25)
urai_fen.Move_To(uraimove)
Story_Event("CHATTER_11")
tyber_zann.Play_Animation("cinematic", true, 2)
Transition_Cinematic_Camera_Key(tyber_zann, 4, 20, -16, 18, 0, 0, 0, 0)
while not State_Mission_4_Chatter_Dialog_11_Done do Sleep(.5) end
tyber_zann.Play_Animation("idle", true, 0)
--bossk.Play_Animation("talk", true, 0)
Story_Event("CHATTER_12")
while not State_Mission_4_Chatter_Dialog_12_Done do Sleep(.5) 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(bossk, 20, 0, 18, 0, 0, 0, 0)
Set_Cinematic_Target_Key(tyber_zann, 0, 0, 16, 0, 0, 0, 0)
Transition_Cinematic_Target_Key(tyber_zann, 3, 0, 11, 16, 0, 0, 0, 0)
--bossk.Play_Animation("idle", true, 0)
Story_Event("CHATTER_13")
tyber_zann.Play_Animation("cinematic", true, 2)
while not State_Mission_4_Chatter_Dialog_13_Done do Sleep(.5) end
tyber_zann.Play_Animation("idle", true, 0)
--Set_Cinematic_Camera_Key(target_pos, xoffset_dist, yoffset_pitch, zoffset_yaw, angles?, attach_object, use_object_rotation, cinematic_animation)
bossk.Play_Animation("talk", true, 0)
Set_Cinematic_Camera_Key(bossk, 15, 0, 18, 0, 0, 0, 0)
Set_Cinematic_Target_Key(bossk, 0, 0, 17, 0, 0, 0, 0)
Story_Event("CHATTER_14")
while not State_Mission_4_Chatter_Dialog_14_Done do Sleep(.5) end
bossk.Play_Animation("idle", true, 0)
Sleep(1)
jabbadoor.Take_Damage(50000)
jabba = Create_Generic_Object("HUTT_CIVILIAN", jabbaspawn.Get_Position(), neutral_player)
jabba.Prevent_AI_Usage(true)
jabba.Prevent_All_Fire(true)
jabba.Make_Invulnerable(true)
jguard1a = Create_Generic_Object("PIRATE_SOLDIER_NONSQUAD", jabbaguard1.Get_Position(), neutral_player)
jguard1b = Create_Generic_Object("PIRATE_SOLDIER_NONSQUAD", jabbaguard1.Get_Position(), neutral_player)
jguard2a = Create_Generic_Object("PIRATE_SOLDIER_NONSQUAD", jabbaguard2.Get_Position(), neutral_player)
jguard2b = Create_Generic_Object("PIRATE_SOLDIER_NONSQUAD", jabbaguard2.Get_Position(), neutral_player)
jguard1a.Prevent_AI_Usage(true)
jguard2a.Prevent_AI_Usage(true)
jguard1b.Prevent_AI_Usage(true)
jguard2b.Prevent_AI_Usage(true)
jguard1a.Prevent_All_Fire(true)
jguard2a.Prevent_All_Fire(true)
jguard1b.Prevent_All_Fire(true)
jguard2b.Prevent_All_Fire(true)
jguard1a.Make_Invulnerable(true)
jguard2a.Make_Invulnerable(true)
jguard1b.Make_Invulnerable(true)
jguard2b.Make_Invulnerable(true)
Set_Cinematic_Camera_Key(jabbacam, 0, 0, 15, 0, 0, 0, 0)
Set_Cinematic_Target_Key(jabba, 0, 0, 50, 0, 0, 0, 0)
jabbacam.Play_SFX_Event("SFX_Death_Bombard")
jguard1a.Move_To(jg1spot)
jguard2a.Move_To(jg2spot)
Sleep(1)
jguard1b.Move_To(jg1spot)
jguard2b.Move_To(jg2spot)
jabba.Move_To(jabbaspot)
tyber_zann.Turn_To_Face(jabba)
urai_fen.Turn_To_Face(jabba)
bossk.Turn_To_Face(jabba)
Transition_Cinematic_Camera_Key(tybertalk, 6, 50, 0, 50, 0, 0, 0, 0)
Transition_Cinematic_Target_Key(jabbaspot, 5, 0, 0, 0, 0, 1, 0, 0)
Sleep(4)
tyber_zann.Teleport_And_Face(tybertalk)
urai_fen.Teleport_And_Face(uraitalk)
bossk.Teleport_And_Face(bossktalk)
tyber_zann.Turn_To_Face(jabba)
urai_fen.Turn_To_Face(jabba)
bossk.Turn_To_Face(jabba)
Sleep(1.5)
jabba.Stop()
jabba.Turn_To_Face(tyber_zann)
Sleep(.5)
jabba.Suspend_Locomotor(true)
Story_Event("CHATTER_08")
jabba.Play_Animation("cinematic", true, 0)
jguard1a.Suspend_Locomotor(true)
jguard1a.Turn_To_Face(tyber_zann)
jguard2a.Suspend_Locomotor(true)
jguard2a.Turn_To_Face(tyber_zann)
jguard1b.Suspend_Locomotor(true)
jguard1b.Turn_To_Face(tyber_zann)
jguard2b.Suspend_Locomotor(true)
jguard2b.Turn_To_Face(tyber_zann)
--Sleep(6)
while not State_Mission_4_Chatter_Dialog_08_Done do Sleep(.5) end
jabba.Play_Animation("idle", true, 0)
Set_Cinematic_Camera_Key(jabba, 50, 0, 18, 0, 0, 0, 0)
Set_Cinematic_Target_Key(tyber_zann, 0, 0, 16, 0, 0, 0, 0)
Transition_Cinematic_Camera_Key(jabba, 5, -10, 45, 18, 0, 0, 0, 0)
Story_Event("CHATTER_09")
tyber_zann.Play_Animation("cinematic", true, 2)
while not State_Mission_4_Chatter_Dialog_09_Done do Sleep(.5) end
tyber_zann.Play_Animation("idle", true, 0)
Set_Cinematic_Camera_Key(tyber_zann, 50, 10, 50, 0, 0, 0, 0)
Set_Cinematic_Target_Key(jabbaspot, 0, 0, 0, 0, 1, 0, 0)
Transition_Cinematic_Camera_Key(tyber_zann, 8, 50, -10, 40, 0, 0, 0, 0)
Story_Event("CHATTER_10")
jabba.Play_Animation("cinematic", true, 0)
while not State_Mission_4_Chatter_Dialog_10_Done do Sleep(.5) end
jabba.Play_Animation("idle", true, 0)
jabba.Suspend_Locomotor(false)
jguard1a.Suspend_Locomotor(false)
jguard2a.Suspend_Locomotor(false)
jguard1b.Suspend_Locomotor(false)
jguard2b.Suspend_Locomotor(false)
jabba.Move_To(pad2)
Sleep(2)
jguard1a.Move_To(doorguard1)
jguard2a.Move_To(doorguard2)
jguard1b.Move_To(doorguard3)
jguard2b.Move_To(doorguard4)
Sleep(1)
cineguys1.Move_To(jabbaspot)
cineguys2.Move_To(jabbaspot)
cineguys3.Move_To(jabbaspot)
jguard1a.Turn_To_Face(tyber_zann)
jguard2b.Turn_To_Face(tyber_zann)
Sleep(1)
jguard1b.Turn_To_Face(tyber_zann)
jguard2a.Turn_To_Face(tyber_zann)
Sleep(3.5)
Fade_Screen_Out(1)
Sleep(1)
Create_Thread("MidCineCleanup")
end
function Mid_Mission_Setup()
-- Destroys all magnetically sealed doors
unit_list = Find_All_Objects_Of_Type("UM02_MAGNETICALLY_SEALED_DOORWAY")
for k, unit in pairs(unit_list) do
if TestValid(unit) then
unit.Take_Damage(50000)
end
end
unit_list = Find_All_Objects_Of_Type("UM02_KILLABLE_DOOR")
for k, unit in pairs(unit_list) do
if TestValid(unit) then
unit.Take_Damage(50000)
end
end
--pad1.Change_Owner(pirate_player)
reinforce_list = {
"Pirate_Soldier_Squad",
"Pirate_Plex_Squad",
"UNDERWORLD_POD_WALKER_COMPANY"
}
--ReinforceList(reinforce_list, pad1, pirate_player, false, true, true, Find_And_Attack)
ReinforceList(reinforce_list, pad2, pirate_player, false, true, true, Find_And_Attack)
ReinforceList(reinforce_list, pad3, pirate_player, false, true, true, Find_And_Attack)
ReinforceList(reinforce_list, pad4, pirate_player, false, true, true, Find_And_Attack)
Create_Thread("MidMissionObjective")
end
function Prox_ClearCineArea(self_obj, trigger_obj)
if trigger_obj.Get_Owner() == empire_player then
trigger_obj.Take_Damage(50000)
end
end
function Check_LandingPads()
reinforce_list = {
"Pirate_Soldier_Squad",
"Pirate_Plex_Squad",
"UNDERWORLD_POD_WALKER_COMPANY"
}
Register_Timer(JabbaGuysLand, 1)
while not VictoryCondition_LandingPads do
if pad1.Get_Owner() == underworld_player and not PadOneCaptured then
PadOneCaptured = true
PadsCaptured = PadsCaptured + 1
Create_Thread("Captured_A_Pad")
end
if pad2.Get_Owner() == underworld_player and not PadTwoCaptured then
PadTwoCaptured = true
PadsCaptured = PadsCaptured + 1
Create_Thread("Captured_A_Pad")
end
if pad3.Get_Owner() == underworld_player and not PadThreeCaptured then
PadThreeCaptured = true
PadsCaptured = PadsCaptured + 1
Create_Thread("Captured_A_Pad")
end
if pad4.Get_Owner() == underworld_player and not PadFourCaptured then
PadFourCaptured = true
PadsCaptured = PadsCaptured + 1
Create_Thread("Captured_A_Pad")
end
if PadOneCaptured and PadTwoCaptured and PadThreeCaptured and PadFourCaptured then
VictoryCondition_LandingPads = true
Story_Event("UM04_PADSCAPTURED")
end
Sleep(1)
end
end
function Captured_A_Pad()
if PadsCaptured < 1 then
elseif PadsCaptured < 2 then
--Sleep(1)
--Story_Event("CHATTER_39")
--Sleep(2)
--Story_Event("CHATTER_40")
elseif PadsCaptured < 3 then
Sleep(1)
Story_Event("CHATTER_41")
elseif PadsCaptured < 4 then
Sleep(1)
Story_Event("CHATTER_39")
while not State_Mission_4_Chatter_Dialog_39_Done do Sleep(.5) end
Story_Event("CHATTER_42")
elseif PadsCaptured < 5 then
--Sleep(1)
--Story_Event("CHATTER_43")
--Sleep(2)
end
end
function JabbaGuysLand ()
randompad = GameRandom(1,4)
if not PadOneCaptured and randompad == 1 then
ReinforceList(reinforce_list, pad1, pirate_player, false, true, true, Find_And_Attack)
end
if not PadTwoCaptured and randompad == 2 then
ReinforceList(reinforce_list, pad2, pirate_player, false, true, true, Find_And_Attack)
end
if not PadThreeCaptured and randompad == 3 then
ReinforceList(reinforce_list, pad3, pirate_player, false, true, true, Find_And_Attack)
end
if not PadFourCaptured and randompad == 4 then
ReinforceList(reinforce_list, pad4, pirate_player, false, true, true, Find_And_Attack)
end
Register_Timer(JabbaGuysLand, 45)
end
function Find_And_Attack(attack_list)
Create_Thread("DD_Hunt_Underworld",attack_list)
end
function DD_Hunt_Underworld(attack_list)
local enemy_player = Find_Player("Underworld")
while true do
if not VictoryStarted and not DefeatStarted then
for k, unit in pairs(attack_list) do
if TestValid(unit) then
if not unit.Get_Owner().Is_Human() then
local closest_enemy = Find_Nearest(unit, enemy_player, true)
if unit.Is_Ability_Ready("ROCKET_ATTACK") then
unit.Activate_Ability("ROCKET_ATTACK", false)
end
unit.Attack_Move(closest_enemy)
end
end
end
end
Sleep(4)
end
end
-- delay a short time and then display the mission objective
function MidMissionObjective()
Sleep(2)
Set_Hint_At_Object(droidworksloc)
-- this creates a small timer/re-timer system that checks for victory conditions on landing pads
Create_Thread("Check_LandingPads")
Story_Event("CHATTER_28")
while not State_Mission_4_Chatter_Dialog_28_Done do Sleep(.5) end
Story_Event("CHATTER_29")
Story_Event("UM04_HINT_DROIDWORKS")
while not State_Mission_4_Chatter_Dialog_29_Done do Sleep(.5) end
Story_Event("CHATTER_30")
while not State_Mission_4_Chatter_Dialog_30_Done do Sleep(.5) end
Story_Event("CHATTER_32")
Story_Event("UM04_HINT_LANDINGPADS")
Sleep(2)
end
-- triggered when the player gets urai at the droid works
function Prox_CapturedDroidWorks(self_obj, trigger_obj)
if MissionPartTwoStarted then
if not trigger_obj then
DebugMessage("Warning: prox received a nil trigger_obj .")
return
end
urai_distance=self_obj.Get_Distance(urai_fen)
if urai_distance < 60 then
self_obj.Cancel_Event_Object_In_Range(Prox_CapturedDroidWorks)
--urai_fen.Play_SFX_Event("SFX_UMP_EmpireKesselAlarm")
Create_Thread("UraiUsesDroidWorks")
Remove_Hint_At_Object(droidworksloc)
Story_Event("UM04_DROIDWORKS_CAPTURED")
end
end
end
function UraiUsesDroidWorks()
urai_fen.Set_Selectable(false)
BlockOnCommand(urai_fen.Move_To(droidworksloc))
Sleep(5)
-- changes control of droid works to underworld player
droidworks=Find_Hint("U_GROUND_DROID_WORKS","droidworks")
VictoryCondition_DroidWorks = true
droidworks.Change_Owner(underworld_player)
-- finds all conveyor belts and deactivates them
conv_list = Find_All_Objects_Of_Type("UM02_CONVEYOR")
for k, unit in pairs(conv_list) do
if TestValid(unit) then
unit.Play_Animation("idle", true, 0)
end
end
Sleep(1)
urai_fen.Set_Selectable(true)
--urai_fen.Play_SFX_Event("SFX_UMP_EmpireKesselAlarm")
Create_Thread("ActivateDroids")
Create_Thread("StartDroidProduction")
Story_Event("CHATTER_47")
end
function ActivateDroids()
-- finds all destroyer droids and "activates" them
droid_list = Find_All_Objects_Of_Type("DESTROYER_DROID")
for k, unit in pairs(droid_list) do
if TestValid(unit) then
unit.Change_Owner(underworld_player)
unit.Attach_Particle_Effect("HAN_SOLO_TARGET_STUN_EFFECT")
Sleep(1)
end
end
end
-- triggered when the player reboots the factory and now gets droids from all over
function StartDroidProduction()
if MissionPartOneStarted and MissionPartOneStarted then
-- Begin producing destroyer droids
droid1 = Find_Hint("GENERIC_MARKER_LAND","ddroid1")
Create_Generic_Object("UM02_DROIDS_SPAWNER",droid1.Get_Position(),underworld_player)
droid2 = Find_Hint("GENERIC_MARKER_LAND","ddroid2")
Create_Generic_Object("UM02_DROIDS_SPAWNER",droid2.Get_Position(),underworld_player)
droid3 = Find_Hint("GENERIC_MARKER_LAND","ddroid3")
Create_Generic_Object("UM02_DROIDS_SPAWNER",droid3.Get_Position(),underworld_player)
droid4 = Find_Hint("GENERIC_MARKER_LAND","ddroid4")
Create_Generic_Object("UM02_DROIDS_SPAWNER",droid4.Get_Position(),underworld_player)
droid5 = Find_Hint("GENERIC_MARKER_LAND","ddroid5")
Create_Generic_Object("UM02_DROIDS_SPAWNER",droid5.Get_Position(),underworld_player)
droid6 = Find_Hint("GENERIC_MARKER_LAND","ddroid6")
Create_Generic_Object("UM02_DROIDS_SPAWNER",droid6.Get_Position(),underworld_player)
droid7 = Find_Hint("GENERIC_MARKER_LAND","ddroid7")
Create_Generic_Object("UM02_DROIDS_SPAWNER",droid7.Get_Position(),underworld_player)
droid8 = Find_Hint("GENERIC_MARKER_LAND","ddroid8")
Create_Generic_Object("UM02_DROIDS_SPAWNER",droid8.Get_Position(),underworld_player)
edroid1 = Find_Hint("GENERIC_MARKER_LAND","edroid1")
Create_Generic_Object("UM02_DROIDS_SPAWNER",edroid1.Get_Position(),underworld_player)
edroid2 = Find_Hint("GENERIC_MARKER_LAND","edroid2")
Create_Generic_Object("UM02_DROIDS_SPAWNER",edroid2.Get_Position(),underworld_player)
edroid3 = Find_Hint("GENERIC_MARKER_LAND","edroid3")
Create_Generic_Object("UM02_DROIDS_SPAWNER",edroid3.Get_Position(),underworld_player)
edroid4 = Find_Hint("GENERIC_MARKER_LAND","edroid4")
Create_Generic_Object("UM02_DROIDS_SPAWNER",edroid4.Get_Position(),underworld_player)
edroid5 = Find_Hint("GENERIC_MARKER_LAND","edroid5")
Create_Generic_Object("UM02_DROIDS_SPAWNER",edroid5.Get_Position(),underworld_player)
tdroid1 = Find_Hint("GENERIC_MARKER_LAND","tube1")
Create_Generic_Object("UM02_DROIDS_SPAWNER",tdroid1.Get_Position(),underworld_player)
tdroid2 = Find_Hint("GENERIC_MARKER_LAND","tube2")
Create_Generic_Object("UM02_DROIDS_SPAWNER",tdroid2.Get_Position(),underworld_player)
tdroid3 = Find_Hint("GENERIC_MARKER_LAND","tube3")
Create_Generic_Object("UM02_DROIDS_SPAWNER",tdroid3.Get_Position(),underworld_player)
tdroid4 = Find_Hint("GENERIC_MARKER_LAND","tube4")
Create_Generic_Object("UM02_DROIDS_SPAWNER",tdroid4.Get_Position(),underworld_player)
tdroid5 = Find_Hint("GENERIC_MARKER_LAND","tube5")
Create_Generic_Object("UM02_DROIDS_SPAWNER",tdroid5.Get_Position(),underworld_player)
tdroid6 = Find_Hint("GENERIC_MARKER_LAND","tube6")
Create_Generic_Object("UM02_DROIDS_SPAWNER",tdroid6.Get_Position(),underworld_player)
tdroid7 = Find_Hint("GENERIC_MARKER_LAND","tube7")
Create_Generic_Object("UM02_DROIDS_SPAWNER",tdroid7.Get_Position(),underworld_player)
tdroid8 = Find_Hint("GENERIC_MARKER_LAND","tube8")
Create_Generic_Object("UM02_DROIDS_SPAWNER",tdroid8.Get_Position(),underworld_player)
tdroid9 = Find_Hint("GENERIC_MARKER_LAND","tube9")
Create_Generic_Object("UM02_DROIDS_SPAWNER",tdroid9.Get_Position(),underworld_player)
tdroid10 = Find_Hint("GENERIC_MARKER_LAND","tube10")
Create_Generic_Object("UM02_DROIDS_SPAWNER",tdroid10.Get_Position(),underworld_player)
Sleep(2)
Story_Event("UM04_HINT_USEDROIDS")
droid1.Highlight(true)
Add_Radar_Blip(droid1, "droid1")
droid2.Highlight(true)
Add_Radar_Blip(droid2, "droid2")
droid3.Highlight(true)
Add_Radar_Blip(droid3, "droid3")
droid4.Highlight(true)
Add_Radar_Blip(droid4, "droid4")
droid5.Highlight(true)
Add_Radar_Blip(droid5, "droid5")
droid6.Highlight(true)
Add_Radar_Blip(droid6, "droid6")
droid7.Highlight(true)
Add_Radar_Blip(droid7, "droid7")
droid8.Highlight(true)
Add_Radar_Blip(droid8, "droid8")
edroid1.Highlight(true)
Add_Radar_Blip(edroid1, "edroid1")
edroid2.Highlight(true)
Add_Radar_Blip(edroid2, "edroid2")
edroid3.Highlight(true)
Add_Radar_Blip(edroid3, "edroid3")
edroid4.Highlight(true)
Add_Radar_Blip(edroid4, "edroid4")
edroid5.Highlight(true)
Add_Radar_Blip(edroid5, "edroid5")
tdroid1.Highlight(true)
Add_Radar_Blip(tdroid1, "tdroid1")
tdroid2.Highlight(true)
Add_Radar_Blip(tdroid2, "tdroid2")
tdroid3.Highlight(true)
Add_Radar_Blip(tdroid3, "tdroid3")
tdroid4.Highlight(true)
Add_Radar_Blip(tdroid4, "tdroid4")
tdroid5.Highlight(true)
Add_Radar_Blip(tdroid5, "tdroid5")
tdroid6.Highlight(true)
Add_Radar_Blip(tdroid6, "tdroid6")
tdroid7.Highlight(true)
Add_Radar_Blip(tdroid7, "tdroid7")
tdroid8.Highlight(true)
Add_Radar_Blip(tdroid8, "tdroid8")
tdroid9.Highlight(true)
Add_Radar_Blip(tdroid9, "tdroid9")
tdroid10.Highlight(true)
Add_Radar_Blip(tdroid10, "tdroid10")
Sleep(5)
droid1.Highlight(false)
Remove_Radar_Blip("droid1")
droid2.Highlight(false)
Remove_Radar_Blip("droid2")
droid3.Highlight(false)
Remove_Radar_Blip("droid3")
droid4.Highlight(false)
Remove_Radar_Blip("droid4")
droid5.Highlight(false)
Remove_Radar_Blip("droid5")
droid6.Highlight(false)
Remove_Radar_Blip("droid6")
droid7.Highlight(false)
Remove_Radar_Blip("droid7")
droid8.Highlight(false)
Remove_Radar_Blip("droid8")
edroid1.Highlight(false)
Remove_Radar_Blip("edroid1")
edroid2.Highlight(false)
Remove_Radar_Blip("edroid2")
edroid3.Highlight(false)
Remove_Radar_Blip("edroid3")
edroid4.Highlight(false)
Remove_Radar_Blip("edroid4")
edroid5.Highlight(false)
Remove_Radar_Blip("edroid5")
tdroid1.Highlight(false)
Remove_Radar_Blip("tdroid1")
tdroid2.Highlight(false)
Remove_Radar_Blip("tdroid2")
tdroid3.Highlight(false)
Remove_Radar_Blip("tdroid3")
tdroid4.Highlight(false)
Remove_Radar_Blip("tdroid4")
tdroid5.Highlight(false)
Remove_Radar_Blip("tdroid5")
tdroid6.Highlight(false)
Remove_Radar_Blip("tdroid6")
tdroid7.Highlight(false)
Remove_Radar_Blip("tdroid7")
tdroid8.Highlight(false)
Remove_Radar_Blip("tdroid8")
tdroid9.Highlight(false)
Remove_Radar_Blip("tdroid9")
tdroid10.Highlight(false)
Remove_Radar_Blip("tdroid10")
end
end
-- delay a short time and then show game has been won VICTORY
function EndMissionVictory()
Cancel_Fast_Forward()
CINE_End_Active = true
Story_Event("UM04_ENDCINE_BEGIN")
Suspend_AI(1)
Lock_Controls(1)
Fade_Screen_Out(1)
Sleep(1)
turrets = Find_All_Objects_Of_Type("PIRATE_ANTI_INFANTRY_TURRET")
for k, unit in pairs(turrets) do
if TestValid(unit) then
unit.Take_Damage(9999)
end
end
turrets = Find_All_Objects_Of_Type("PIRATE_ANTI_AIRCRAFT_TURRET")
for k, unit in pairs(turrets) do
if TestValid(unit) then
unit.Take_Damage(9999)
end
end
turrets = Find_All_Objects_Of_Type("PIRATE_ANTI_VEHICLE_TURRET")
for k, unit in pairs(turrets) do
if TestValid(unit) then
unit.Take_Damage(9999)
end
end
soldiers = Find_All_Objects_Of_Type(pirate_player)
for k, unit in pairs(soldiers) do
if TestValid(unit) then
unit.Prevent_All_Fire(true)
end
end
--entourage1 = Create_Generic_Object("HUTT_POD_WALKER", deadguys1.Get_Position(), neutral_player)
--entourage2 = Create_Generic_Object("HUTT_SOLDIER", deadguys2.Get_Position(), neutral_player)
--entourage3 = Create_Generic_Object("HUTT_SOLDIER", deadguys4.Get_Position(), neutral_player)
--entourage4 = Create_Generic_Object("HUTT_SOLDIER", deadguys5.Get_Position(), neutral_player)
Letter_Box_In(0)
Start_Cinematic_Camera()
detritus1 = Create_Generic_Object("HUTT_SOLDIER", deadguys1.Get_Position(), neutral_player)
detritus2 = Create_Generic_Object("HUTT_SOLDIER", deadguys2.Get_Position(), neutral_player)
detritus3 = Create_Generic_Object("HUTT_SOLDIER", deadguys3.Get_Position(), neutral_player)
detritus4 = Create_Generic_Object("HUTT_SOLDIER", deadguys4.Get_Position(), neutral_player)
detritus5 = Create_Generic_Object("HUTT_SOLDIER", deadguys5.Get_Position(), neutral_player)
detritus6 = Create_Generic_Object("HUTT_SOLDIER", deadguys6.Get_Position(), neutral_player)
detritus1.Take_Damage(99999)
detritus2.Take_Damage(99999)
detritus3.Take_Damage(99999)
detritus4.Take_Damage(99999)
detritus5.Take_Damage(99999)
detritus6.Take_Damage(99999)
wreckage2 = Create_Generic_Object("HUTT_POD_WALKER", wreck2.Get_Position(), neutral_player)
wreckage3 = Create_Generic_Object("HUTT_POD_WALKER", wreck3.Get_Position(), neutral_player)
wreckage2.Take_Damage(99999)
wreckage3.Take_Damage(99999)
endjabbaholospawn = Find_Hint("STORY_TRIGGER_ZONE", "endjabbaholospawn")
tyber_zann.Teleport_And_Face(endtyberspawn)
urai_fen.Teleport_And_Face(enduraispawn)
if not TestValid(bossk) then
bossk = Create_Generic_Object("BOSSK", endbosskspawn.Get_Position(), underworld_player)
end
bossk.Teleport_And_Face(endbosskspawn)
--jabba = Create_Generic_Object("HUTT_CIVILIAN", endjabbaspawn.Get_Position(), neutral_player)
jabba = Create_Generic_Object("UMP_CINE_HOLOJABBA", endjabbaholospawn.Get_Position(), neutral_player)
jabba.Teleport_And_Face(endjabbaholospawn)
--lildroid = Create_Generic_Object("UMP_CINE_MOUSEDROID", endjabbaspawn.Get_Position(), neutral_player)
--jabba.Teleport_And_Face(endjabbaspawn)
--jabba.Suspend_Locomotor(true)
tyber_zann.Play_Animation("Idle", false, 0)
bossk.Prevent_All_Fire(true)
urai_fen.Prevent_All_Fire(true)
tyber_zann.Prevent_All_Fire(true)
jabba.Prevent_All_Fire(true)
--entourage1.Face_Immediate(endtyberspawn)
--entourage2.Face_Immediate(endtyberspawn)
--entourage3.Face_Immediate(endtyberspawn)
--entourage4.Face_Immediate(endtyberspawn)
Sleep(1)
Fade_Screen_In(1)
--Set_Cinematic_Camera_Key(target_pos, xoffset_dist, yoffset_pitch, zoffset_yaw, angles?, attach_object, use_object_rotation, cinematic_animation)
Set_Cinematic_Camera_Key(jabba, 40, 25, 35, 1, 0, 0, 0)
Set_Cinematic_Target_Key(tyber_zann, 0, 0, 0, 0, 0, 0, 0)
Transition_Cinematic_Camera_Key(jabba, 5, 40, 25, 50, 1, 0, 0, 0)
Sleep(1)
jabba.Play_Animation("idle", true, 0)
Story_Event("CHATTER_15")
tyber_zann.Play_Animation("cinematic", true, 2)
while not State_Mission_4_Chatter_Dialog_15_Done do Sleep(.5) end
tyber_zann.Play_Animation("idle", true, 0)
Set_Cinematic_Camera_Key(tyber_zann, 30, 55, -60, 1, 0, 0, 0)
Set_Cinematic_Target_Key(jabba, 0, 0, 0, 0, 0, 0, 0)
--Transition_Cinematic_Camera_Key(tyber_zann, 8, 30, 55, -70, 1, 0, 0, 0)
jabba.Play_Animation("idle", true, 0)
Story_Event("CHATTER_16")
Sleep(2)
--jabba.Play_Animation("Idle", false, 3)
while not State_Mission_4_Chatter_Dialog_16_Done do Sleep(.5) end
Set_Cinematic_Camera_Key(jabba, 40, 25, 50, 1, 0, 0, 0)
Set_Cinematic_Target_Key(tyber_zann, 0, 0, 0, 0, 0, 0, 0)
Transition_Cinematic_Camera_Key(jabba, 21, 40, 25, 95, 1, 0, 0, 0)
jabba.Play_Animation("cinematic", true, 0)
Story_Event("CHATTER_17")
tyber_zann.Play_Animation("cinematic", true, 2)
Sleep(12.5)
detritus1.Despawn()
detritus2.Despawn()
detritus3.Despawn()
detritus4.Despawn()
detritus5.Despawn()
detritus6.Despawn()
detritus1 = Create_Generic_Object("HUTT_SOLDIER", deadguys1.Get_Position(), neutral_player)
detritus2 = Create_Generic_Object("HUTT_SOLDIER", deadguys2.Get_Position(), neutral_player)
detritus3 = Create_Generic_Object("HUTT_SOLDIER", deadguys3.Get_Position(), neutral_player)
detritus4 = Create_Generic_Object("HUTT_SOLDIER", deadguys4.Get_Position(), neutral_player)
detritus5 = Create_Generic_Object("HUTT_SOLDIER", deadguys5.Get_Position(), neutral_player)
detritus6 = Create_Generic_Object("HUTT_SOLDIER", deadguys6.Get_Position(), neutral_player)
detritus1.Take_Damage(99999)
detritus2.Take_Damage(99999)
detritus3.Take_Damage(99999)
detritus4.Take_Damage(99999)
detritus5.Take_Damage(99999)
detritus6.Take_Damage(99999)
--Set_Cinematic_Camera_Key(jabba, 20, -8, 16, 0, 0, 0, 0)
--Set_Cinematic_Target_Key(tyber_zann, 0, 0, -5, 0, 0, 0, 0)
while not State_Mission_4_Chatter_Dialog_17_Done do Sleep(.5) end
tyber_zann.Play_Animation("Idle", false, 1)
jabba.Play_Animation("idle", true, 0)
Story_Event("CHATTER_18")
Set_Cinematic_Camera_Key(tyber_zann, 80, 25, -120, 1, 0, 0, 0)
Set_Cinematic_Target_Key(jabba, 50, 0, 0, 1, 0, 0, 0)
Transition_Cinematic_Camera_Key(jabba, 12, 80, 25, 120, 1, 0, 0, 0)
Transition_Cinematic_Target_Key(tyber_zann, 11, 5, -10, 0, 1, 0, 0, 0)
while not State_Mission_4_Chatter_Dialog_18_Done do Sleep(.5) end
--jabba.Play_Animation("Idle", false, 0)
--Set_Cinematic_Camera_Key(jabba, 55, 10, 10, 0, 0, 0, 0)
--Set_Cinematic_Target_Key(tyber_zann, 0, 0, -5, 0, 0, 0, 0)
jabba.Play_Animation("cinematic", true, 0)
Story_Event("CHATTER_19")
tyber_zann.Play_Animation("cinematic", true, 2)
Sleep(5)
jabba.Play_Animation("undeploy", true, 0)
--jabba.Move_To(jabbacam)
--jabba.Suspend_Locomotor(false)
--jabba.Move_To(jabbacam)
Sleep(2)
--entourage1.Despawn()
--entourage2.Despawn()
--entourage3.Despawn()
--entourage4.Despawn()
urai_fen.Face_Immediate(tyber_zann)
Set_Cinematic_Camera_Key(tyber_zann, 10, 15, 18, 0, 1, 0, 0)
Set_Cinematic_Target_Key(urai_fen, 0, 0, 17, 0, 0, 0, 0)
while not State_Mission_4_Chatter_Dialog_19_Done do Sleep(.5) end
tyber_zann.Play_Animation("idle", true, 0)
jabba.Play_Animation("undeploy", false, 0)
Story_Event("CHATTER_20")
urai_fen.Play_Animation("cinematic", true, 0)
while not State_Mission_4_Chatter_Dialog_20_Done do Sleep(.5) end
urai_fen.Play_Animation("idle", true, 0)
--jabba.Hide(true)
tyber_zann.Turn_To_Face(urai_fen)
bossk.Turn_To_Face(tyber_zann)
Story_Event("CHATTER_63")
tyber_zann.Play_Animation("cinematic", true, 2)
Set_Cinematic_Camera_Key(urai_fen, -35, 0, 18, 0, 0, 0, 0)
Set_Cinematic_Target_Key(tyber_zann, 0, 0, 17, 0, 0, 0, 0)
while not State_Mission_4_Chatter_Dialog_63_Done do Sleep(.5) end
tyber_zann.Play_Animation("idle", true, 0)
Story_Event("CHATTER_64")
Set_Cinematic_Camera_Key(tyber_zann, 10, 15, 18, 0, 1, 0, 0)
Set_Cinematic_Target_Key(urai_fen, 0, 0, 17, 0, 0, 0, 0)
urai_fen.Play_Animation("cinematic", true, 0)
while not State_Mission_4_Chatter_Dialog_64_Done do Sleep(.5) end
urai_fen.Play_Animation("idle", true, 0)
Story_Event("CHATTER_65")
tyber_zann.Play_Animation("cinematic", true, 2)
Set_Cinematic_Camera_Key(urai_fen, -35, 0, 18, 0, 0, 0, 0)
Set_Cinematic_Target_Key(tyber_zann, 0, 0, 17, 0, 0, 0, 0)
Sleep(2)
Transition_Cinematic_Camera_Key(tyber_zann, 11, 10, 14, 16, 0, 1, 0, 0)
while not State_Mission_4_Chatter_Dialog_65_Done do Sleep(.5) end
tyber_zann.Play_Animation("idle", true, 0)
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)
Sleep(1)
Story_Event("UM04_ENDMISSION_DEFEAT")
end
function State_Mission_4_Chatter_Dialog_00_Speech_Done(message)
if message == OnEnter then
State_Mission_4_Chatter_Dialog_00_Done = true
end
end
function State_Mission_4_Chatter_Dialog_01_Speech_Done(message)
if message == OnEnter then
State_Mission_4_Chatter_Dialog_01_Done = true
end
end
function State_Mission_4_Chatter_Dialog_02_Speech_Done(message)
if message == OnEnter then
State_Mission_4_Chatter_Dialog_02_Done = true
end
end
function State_Mission_4_Chatter_Dialog_03_Speech_Done(message)
if message == OnEnter then
State_Mission_4_Chatter_Dialog_03_Done = true
end
end
function State_Mission_4_Chatter_Dialog_04_Speech_Done(message)
if message == OnEnter then
State_Mission_4_Chatter_Dialog_04_Done = true
end
end
function State_Mission_4_Chatter_Dialog_05_Speech_Done(message)
if message == OnEnter then
State_Mission_4_Chatter_Dialog_05_Done = true
end
end
function State_Mission_4_Chatter_Dialog_06_Speech_Done(message)
if message == OnEnter then
State_Mission_4_Chatter_Dialog_06_Done = true
end
end
function State_Mission_4_Chatter_Dialog_07_Speech_Done(message)
if message == OnEnter then
State_Mission_4_Chatter_Dialog_07_Done = true
end
end
function State_Mission_4_Chatter_Dialog_08_Speech_Done(message)
if message == OnEnter then
State_Mission_4_Chatter_Dialog_08_Done = true
end
end
function State_Mission_4_Chatter_Dialog_09_Speech_Done(message)
if message == OnEnter then
State_Mission_4_Chatter_Dialog_09_Done = true
end
end
function State_Mission_4_Chatter_Dialog_10_Speech_Done(message)
if message == OnEnter then
State_Mission_4_Chatter_Dialog_10_Done = true
end
end
function State_Mission_4_Chatter_Dialog_11_Speech_Done(message)
if message == OnEnter then
State_Mission_4_Chatter_Dialog_11_Done = true
end
end
function State_Mission_4_Chatter_Dialog_12_Speech_Done(message)
if message == OnEnter then
State_Mission_4_Chatter_Dialog_12_Done = true
end
end
function State_Mission_4_Chatter_Dialog_13_Speech_Done(message)
if message == OnEnter then
State_Mission_4_Chatter_Dialog_13_Done = true
end
end
function State_Mission_4_Chatter_Dialog_14_Speech_Done(message)
if message == OnEnter then
State_Mission_4_Chatter_Dialog_14_Done = true
end
end
function State_Mission_4_Chatter_Dialog_15_Speech_Done(message)
if message == OnEnter then
State_Mission_4_Chatter_Dialog_15_Done = true
end
end
function State_Mission_4_Chatter_Dialog_16_Speech_Done(message)
if message == OnEnter then
State_Mission_4_Chatter_Dialog_16_Done = true
end
end
function State_Mission_4_Chatter_Dialog_17_Speech_Done(message)
if message == OnEnter then
State_Mission_4_Chatter_Dialog_17_Done = true
end
end
function State_Mission_4_Chatter_Dialog_18_Speech_Done(message)
if message == OnEnter then
State_Mission_4_Chatter_Dialog_18_Done = true
end
end
function State_Mission_4_Chatter_Dialog_19_Speech_Done(message)
if message == OnEnter then
State_Mission_4_Chatter_Dialog_19_Done = true
end
end
function State_Mission_4_Chatter_Dialog_20_Speech_Done(message)
if message == OnEnter then
State_Mission_4_Chatter_Dialog_20_Done = true
end
end
function State_Mission_4_Chatter_Dialog_21_Speech_Done(message)
if message == OnEnter then
State_Mission_4_Chatter_Dialog_21_Done = true
end
end
function State_Mission_4_Chatter_Dialog_22_Speech_Done(message)
if message == OnEnter then
State_Mission_4_Chatter_Dialog_22_Done = true
end
end
function State_Mission_4_Chatter_Dialog_23_Speech_Done(message)
if message == OnEnter then
State_Mission_4_Chatter_Dialog_23_Done = true
end
end
function State_Mission_4_Chatter_Dialog_24_Speech_Done(message)
if message == OnEnter then
State_Mission_4_Chatter_Dialog_24_Done = true
end
end
function State_Mission_4_Chatter_Dialog_25_Speech_Done(message)
if message == OnEnter then
State_Mission_4_Chatter_Dialog_25_Done = true
end
end
function State_Mission_4_Chatter_Dialog_26_Speech_Done(message)
if message == OnEnter then
State_Mission_4_Chatter_Dialog_26_Done = true
end
end
function State_Mission_4_Chatter_Dialog_27_Speech_Done(message)
if message == OnEnter then
State_Mission_4_Chatter_Dialog_27_Done = true
end
end
function State_Mission_4_Chatter_Dialog_28_Speech_Done(message)
if message == OnEnter then
State_Mission_4_Chatter_Dialog_28_Done = true
end
end
function State_Mission_4_Chatter_Dialog_29_Speech_Done(message)
if message == OnEnter then
State_Mission_4_Chatter_Dialog_29_Done = true
end
end
function State_Mission_4_Chatter_Dialog_30_Speech_Done(message)
if message == OnEnter then
State_Mission_4_Chatter_Dialog_30_Done = true
end
end
function State_Mission_4_Chatter_Dialog_31_Speech_Done(message)
if message == OnEnter then
State_Mission_4_Chatter_Dialog_31_Done = true
end
end
function State_Mission_4_Chatter_Dialog_32_Speech_Done(message)
if message == OnEnter then
State_Mission_4_Chatter_Dialog_32_Done = true
end
end
function State_Mission_4_Chatter_Dialog_33_Speech_Done(message)
if message == OnEnter then
State_Mission_4_Chatter_Dialog_33_Done = true
end
end
function State_Mission_4_Chatter_Dialog_34_Speech_Done(message)
if message == OnEnter then
State_Mission_4_Chatter_Dialog_34_Done = true
end
end
function State_Mission_4_Chatter_Dialog_35_Speech_Done(message)
if message == OnEnter then
State_Mission_4_Chatter_Dialog_35_Done = true
end
end
function State_Mission_4_Chatter_Dialog_36_Speech_Done(message)
if message == OnEnter then
State_Mission_4_Chatter_Dialog_36_Done = true
end
end
function State_Mission_4_Chatter_Dialog_37_Speech_Done(message)
if message == OnEnter then
State_Mission_4_Chatter_Dialog_37_Done = true
end
end
function State_Mission_4_Chatter_Dialog_38_Speech_Done(message)
if message == OnEnter then
State_Mission_4_Chatter_Dialog_38_Done = true
end
end
function State_Mission_4_Chatter_Dialog_39_Speech_Done(message)
if message == OnEnter then
State_Mission_4_Chatter_Dialog_39_Done = true
end
end
function State_Mission_4_Chatter_Dialog_40_Speech_Done(message)
if message == OnEnter then
State_Mission_4_Chatter_Dialog_40_Done = true
end
end
function State_Mission_4_Chatter_Dialog_41_Speech_Done(message)
if message == OnEnter then
State_Mission_4_Chatter_Dialog_41_Done = true
end
end
function State_Mission_4_Chatter_Dialog_42_Speech_Done(message)
if message == OnEnter then
State_Mission_4_Chatter_Dialog_42_Done = true
end
end
function State_Mission_4_Chatter_Dialog_43_Speech_Done(message)
if message == OnEnter then
State_Mission_4_Chatter_Dialog_43_Done = true
end
end
function State_Mission_4_Chatter_Dialog_44_Speech_Done(message)
if message == OnEnter then
State_Mission_4_Chatter_Dialog_44_Done = true
end
end
function State_Mission_4_Chatter_Dialog_45_Speech_Done(message)
if message == OnEnter then
State_Mission_4_Chatter_Dialog_45_Done = true
end
end
function State_Mission_4_Chatter_Dialog_46_Speech_Done(message)
if message == OnEnter then
State_Mission_4_Chatter_Dialog_46_Done = true
end
end
function State_Mission_4_Chatter_Dialog_47_Speech_Done(message)
if message == OnEnter then
State_Mission_4_Chatter_Dialog_47_Done = true
end
end
function State_Mission_4_Chatter_Dialog_48_Speech_Done(message)
if message == OnEnter then
State_Mission_4_Chatter_Dialog_48_Done = true
end
end
function State_Mission_4_Chatter_Dialog_49_Speech_Done(message)
if message == OnEnter then
State_Mission_4_Chatter_Dialog_49_Done = true
end
end
function State_Mission_4_Chatter_Dialog_50_Speech_Done(message)
if message == OnEnter then
State_Mission_4_Chatter_Dialog_50_Done = true
end
end
function State_Mission_4_Chatter_Dialog_51_Speech_Done(message)
if message == OnEnter then
State_Mission_4_Chatter_Dialog_51_Done = true
end
end
function State_Mission_4_Chatter_Dialog_52_Speech_Done(message)
if message == OnEnter then
State_Mission_4_Chatter_Dialog_52_Done = true
end
end
function State_Mission_4_Chatter_Dialog_53_Speech_Done(message)
if message == OnEnter then
State_Mission_4_Chatter_Dialog_53_Done = true
end
end
function State_Mission_4_Chatter_Dialog_54_Speech_Done(message)
if message == OnEnter then
State_Mission_4_Chatter_Dialog_54_Done = true
end
end
function State_Mission_4_Chatter_Dialog_55_Speech_Done(message)
if message == OnEnter then
State_Mission_4_Chatter_Dialog_55_Done = true
end
end
function State_Mission_4_Chatter_Dialog_56_Speech_Done(message)
if message == OnEnter then
State_Mission_4_Chatter_Dialog_56_Done = true
end
end
function State_Mission_4_Chatter_Dialog_57_Speech_Done(message)
if message == OnEnter then
State_Mission_4_Chatter_Dialog_57_Done = true
end
end
function State_Mission_4_Chatter_Dialog_58_Speech_Done(message)
if message == OnEnter then
State_Mission_4_Chatter_Dialog_58_Done = true
end
end
function State_Mission_4_Chatter_Dialog_59_Speech_Done(message)
if message == OnEnter then
State_Mission_4_Chatter_Dialog_59_Done = true
end
end
function State_Mission_4_Chatter_Dialog_60_Speech_Done(message)
if message == OnEnter then
State_Mission_4_Chatter_Dialog_60_Done = true
end
end
function State_Mission_4_Chatter_Dialog_61_Speech_Done(message)
if message == OnEnter then
State_Mission_4_Chatter_Dialog_61_Done = true
end
end
function State_Mission_4_Chatter_Dialog_62_Speech_Done(message)
if message == OnEnter then
State_Mission_4_Chatter_Dialog_62_Done = true
end
end
function State_Mission_4_Chatter_Dialog_63_Speech_Done(message)
if message == OnEnter then
State_Mission_4_Chatter_Dialog_63_Done = true
end
end
function State_Mission_4_Chatter_Dialog_64_Speech_Done(message)
if message == OnEnter then
State_Mission_4_Chatter_Dialog_64_Done = true
end
end
function State_Mission_4_Chatter_Dialog_65_Speech_Done(message)
if message == OnEnter then
State_Mission_4_Chatter_Dialog_65_Done = true
end
end