757 lines
22 KiB
Lua
757 lines
22 KiB
Lua
-- $Id: //depot/Projects/StarWars_Steam/FOC/Run/Data/Scripts/Story/Story_Underworld_Mandalore_Piracy_Prologue.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_Mandalore_Piracy_Prologue.lua $
|
|
--
|
|
-- Original Author: Dan Etter
|
|
--
|
|
-- $Author: Brian_Hayes $
|
|
--
|
|
-- $Change: 637819 $
|
|
--
|
|
-- $DateTime: 2017/03/22 10:16:16 $
|
|
--
|
|
-- $Revision: #1 $
|
|
--
|
|
--/////////////////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
require("PGStateMachine")
|
|
require("PGStoryMode")
|
|
|
|
--
|
|
-- Definitions -- This function is called once when the script is first created.
|
|
--
|
|
function Definitions()
|
|
|
|
DebugMessage("%s -- In Definitions", tostring(Script))
|
|
|
|
StoryModeEvents =
|
|
{
|
|
Underworld_Tutorial_Piracy_Mission_Begin = State_Underworld_Tutorial_Piracy_Mission_Begin,
|
|
Underworld_Tutorial_Piracy_Speech_Line_00_Remove_Text = State_Underworld_Tutorial_Piracy_Speech_Line_00_Remove_Text,
|
|
Underworld_Tutorial_Piracy_Speech_Line_01_Remove_Text = State_Underworld_Tutorial_Piracy_Speech_Line_01_Remove_Text,
|
|
Underworld_Tutorial_Piracy_Speech_Line_02_Remove_Text = State_Underworld_Tutorial_Piracy_Speech_Line_02_Remove_Text,
|
|
Underworld_Tutorial_Piracy_Speech_Line_03_Remove_Text = State_Underworld_Tutorial_Piracy_Speech_Line_03_Remove_Text,
|
|
Underworld_Tutorial_Piracy_Speech_Line_04_Remove_Text = State_Underworld_Tutorial_Piracy_Speech_Line_04_Remove_Text,
|
|
Underworld_Tutorial_Piracy_Speech_Line_05_Remove_Text = State_Underworld_Tutorial_Piracy_Speech_Line_05_Remove_Text,
|
|
Underworld_Tutorial_Piracy_Speech_Line_06_Remove_Text = State_Underworld_Tutorial_Piracy_Speech_Line_06_Remove_Text,
|
|
Underworld_Tutorial_Piracy_Speech_Line_100_Remove_Text = State_Underworld_Tutorial_Piracy_Speech_Line_100_Remove_Text
|
|
}
|
|
|
|
underworld = Find_Player("Underworld")
|
|
rebel = Find_Player("Rebel")
|
|
empire = Find_Player("Empire")
|
|
hutts = Find_Player("Hutts")
|
|
neutral = Find_Player("Neutral")
|
|
|
|
camera_offset = 125
|
|
|
|
mission_started = false
|
|
intro_rotate = true
|
|
vwings_killed = false
|
|
vwing_alive = true
|
|
strategist_spawned = false
|
|
engines_destroyed = false
|
|
escort_destroyed = false
|
|
shuttle_prox_given = false
|
|
guard_cycle = true
|
|
strategist_neutral = false
|
|
guard1_attacked = false
|
|
guard2_attacked = false
|
|
guard3_attacked = false
|
|
guard4_attacked = false
|
|
guard5_attacked = false
|
|
guard6_attacked = false
|
|
guard7_attacked = false
|
|
|
|
end
|
|
|
|
function State_Underworld_Tutorial_Piracy_Mission_Begin(message)
|
|
if message == OnEnter then
|
|
shuttle = Find_First_Object("TYBER_ZANN_BOARDING_SHUTTLE_PROLOGUE")
|
|
|
|
if TestValid(shuttle) then
|
|
shuttle.Highlight(true)
|
|
shuttle.Set_Cannot_Be_Killed(true)
|
|
end
|
|
|
|
Story_Event("ADD_OBJECTIVE_03")
|
|
|
|
--Spawn in my hutt forces
|
|
vwing_spawn_0 = Find_Hint ("STORY_TRIGGER_ZONE_00","vwingspawn0")
|
|
vwing_spawn_1 = Find_Hint ("STORY_TRIGGER_ZONE_00","vwingspawn1")
|
|
vwing_spawn_2 = Find_Hint ("STORY_TRIGGER_ZONE_00","vwingspawn2")
|
|
vwing_spawn_3 = Find_Hint ("STORY_TRIGGER_ZONE_00","vwingspawn3")
|
|
vwing_spawn_4 = Find_Hint ("STORY_TRIGGER_ZONE_00","vwingspawn4")
|
|
hutt_base_loc = Find_Hint ("STORY_TRIGGER_ZONE_00","huttbase")
|
|
|
|
vwing_0_list = Spawn_Unit(Find_Object_Type("HUTT_VWING_SQUADRON"), vwing_spawn_0, hutts)
|
|
intro_vwing = vwing_0_list[1]
|
|
vwing_1_list = Spawn_Unit(Find_Object_Type("HUTT_VWING_SQUADRON"), vwing_spawn_1, hutts)
|
|
vwing_2_list = Spawn_Unit(Find_Object_Type("HUTT_VWING_SQUADRON"), vwing_spawn_2, hutts)
|
|
vwing_3_list = Spawn_Unit(Find_Object_Type("HUTT_VWING_SQUADRON"), vwing_spawn_3, hutts)
|
|
vwing_4_list = Spawn_Unit(Find_Object_Type("HUTT_VWING_SQUADRON"), vwing_spawn_4, hutts)
|
|
|
|
hutt_base = Create_Generic_Object (Find_Object_Type("HUTT_ASTEROID_BASE"), hutt_base_loc, hutts)
|
|
|
|
if TestValid(hutt_base) then
|
|
hutt_base.Set_Garrison_Spawn(false)
|
|
hutt_base.Prevent_Opportunity_Fire(true)
|
|
end
|
|
|
|
vwing_list = Find_All_Objects_Of_Type("HUTT_V-WING_FIGHTER")
|
|
|
|
for k, unit in pairs(vwing_list) do
|
|
if TestValid(unit) then
|
|
if unit.Get_Parent_Object() == vwing_0_list[1] then
|
|
vwing0 = unit
|
|
end
|
|
if unit.Get_Parent_Object() == vwing_1_list[1] then
|
|
vwing1 = unit
|
|
end
|
|
if unit.Get_Parent_Object() == vwing_2_list[1] then
|
|
vwing2 = unit
|
|
end
|
|
if unit.Get_Parent_Object() == vwing_3_list[1] then
|
|
vwing3 = unit
|
|
end
|
|
if unit.Get_Parent_Object() == vwing_4_list[1] then
|
|
vwing4 = unit
|
|
end
|
|
end
|
|
end
|
|
|
|
mission_started = true
|
|
|
|
|
|
current_cinematic_thread = Create_Thread("Intro_Cinematic")
|
|
end
|
|
end
|
|
|
|
function Story_Mode_Service()
|
|
if mission_started and not TestValid(shuttle) then
|
|
Story_Event("FAIL_OBJECTIVE_03")
|
|
end
|
|
|
|
underworld_unit_list = Find_All_Objects_Of_Type(underworld)
|
|
|
|
if mission_started and
|
|
underworld_unit_list[1].Get_Type().Get_Name() == "TYBER_ZANN_BOARDING_SHUTTLE_PROLOGUE" and
|
|
not TestValid(underworld_unit_list[2]) then
|
|
Story_Event("FAIL_NO_FORCES")
|
|
end
|
|
|
|
if mission_started and not vwings_killed then
|
|
fighter_list = Find_All_Objects_Of_Type("HUTT_V-WING_FIGHTER")
|
|
|
|
vwing_alive = false
|
|
for k, unit in pairs(fighter_list) do
|
|
if TestValid(unit) then
|
|
vwing_alive = true
|
|
end
|
|
end
|
|
|
|
if not vwing_alive then
|
|
vwings_killed = true
|
|
Story_Event("COMPLETE_OBJECTIVE_00")
|
|
Story_Event("TEXT_SPEECH_UNDERWORLD_PIRACY_TUTORIAL_04")
|
|
end
|
|
end
|
|
|
|
if mission_started and not TestValid(vwing_0_list[1]) then
|
|
vwing0_reveal.Undo_Reveal()
|
|
end
|
|
if mission_started and not TestValid(vwing_1_list[1]) then
|
|
vwing1_reveal.Undo_Reveal()
|
|
end
|
|
if mission_started and not TestValid(vwing_2_list[1]) then
|
|
vwing2_reveal.Undo_Reveal()
|
|
end
|
|
if mission_started and not TestValid(vwing_3_list[1]) then
|
|
vwing3_reveal.Undo_Reveal()
|
|
end
|
|
if mission_started and not TestValid(vwing_4_list[1]) then
|
|
vwing4_reveal.Undo_Reveal()
|
|
end
|
|
|
|
if strategist_spawned and not strategist.Are_Engines_Online() and not engines_destroyed and escort_destroyed then
|
|
Story_Event("COMPLETE_OBJECTIVE_01")
|
|
engines_destroyed = true
|
|
Create_Thread("Cycle_Guards")
|
|
if TestValid(strategist) then
|
|
strategist.Override_Max_Speed(0)
|
|
strategist.Suspend_Locomotor(true)
|
|
end
|
|
end
|
|
|
|
if strategist_spawned and not strategist.Are_Engines_Online() and not strategist_neutral then
|
|
strategist_neutral = true
|
|
strategist.Change_Owner(neutral)
|
|
|
|
if TestValid(strategist) then
|
|
strategist.Suspend_Locomotor(true)
|
|
end
|
|
|
|
if TestValid(guard1) then
|
|
guard1.Suspend_Locomotor(true)
|
|
end
|
|
|
|
if TestValid(guard2) then
|
|
guard2.Suspend_Locomotor(true)
|
|
end
|
|
|
|
if TestValid(guard3) then
|
|
guard3.Suspend_Locomotor(true)
|
|
end
|
|
|
|
if TestValid(guard4) then
|
|
guard4.Suspend_Locomotor(true)
|
|
end
|
|
|
|
if TestValid(guard5) then
|
|
guard5.Suspend_Locomotor(true)
|
|
end
|
|
|
|
if TestValid(guard6) then
|
|
guard6.Suspend_Locomotor(true)
|
|
end
|
|
|
|
if TestValid(guard7) then
|
|
guard7.Suspend_Locomotor(true)
|
|
end
|
|
|
|
underworld_list = Find_All_Objects_Of_Type(underworld)
|
|
|
|
for k, unit in pairs(underworld_list) do
|
|
if TestValid(unit) then
|
|
unit.Prevent_All_Fire(true)
|
|
end
|
|
end
|
|
|
|
for k, unit in pairs(underworld_list) do
|
|
if TestValid(unit) then
|
|
unit.Prevent_All_Fire(false)
|
|
end
|
|
end
|
|
end
|
|
|
|
if strategist_spawned and not escort_destroyed and
|
|
not TestValid(guard1) and
|
|
not TestValid(guard2) and
|
|
not TestValid(guard3) and
|
|
not TestValid(guard4) and
|
|
not TestValid(guard5) and
|
|
not TestValid(guard6) and
|
|
not TestValid(guard7) then
|
|
Story_Event("COMPLETE_OBJECTIVE_04")
|
|
Story_Event("ADD_OBJECTIVE_01")
|
|
|
|
escort_destroyed = true
|
|
end
|
|
|
|
if engines_destroyed and escort_destroyed and not shuttle_prox_given then
|
|
shuttle_prox_given = true
|
|
Story_Event("ADD_OBJECTIVE_02")
|
|
if TestValid(shuttle) then
|
|
Register_Prox(shuttle, Prox_Boarding_Shuttle, 100, neutral)
|
|
shuttle.Highlight(true)
|
|
end
|
|
end
|
|
|
|
if strategist_spawned and TestValid(strategist) then
|
|
strategist_reveal.Undo_Reveal()
|
|
strategist_reveal = FogOfWar.Reveal(underworld, strategist, 400, 400)
|
|
end
|
|
|
|
if strategist_spawned and not guard_cycle then
|
|
guard_cycle = true
|
|
Create_Thread("Cycle_Guards")
|
|
end
|
|
end
|
|
|
|
function Prox_Boarding_Shuttle(self_obj, trigger_obj)
|
|
if engines_destroyed and trigger_obj == strategist then
|
|
if TestValid(shuttle) then
|
|
shuttle.Highlight(false)
|
|
end
|
|
Story_Event("COMPLETE_OBJECTIVE_02")
|
|
Story_Event("TEXT_SPEECH_UNDERWORLD_PIRACY_TUTORIAL_06")
|
|
end
|
|
end
|
|
|
|
function Cycle_Guards()
|
|
Sleep(5)
|
|
guard_cycle = false
|
|
|
|
if TestValid(strategist) then
|
|
-- if TestValid(guard1) then
|
|
-- guard1.Attack_Move(strategist)
|
|
-- end
|
|
-- if TestValid(guard2) then
|
|
-- guard2.Attack_Move(strategist)
|
|
-- end
|
|
-- if TestValid(guard3) then
|
|
-- guard3.Attack_Move(strategist)
|
|
-- end
|
|
-- if TestValid(guard4) then
|
|
-- guard4.Attack_Move(strategist)
|
|
-- end
|
|
-- if TestValid(guard5) then
|
|
-- guard5.Attack_Move(strategist)
|
|
-- end
|
|
-- if TestValid(guard6) then
|
|
-- guard6.Attack_Move(strategist)
|
|
-- end
|
|
-- if TestValid(guard7) then
|
|
-- guard7.Attack_Move(strategist)
|
|
-- end
|
|
end
|
|
end
|
|
|
|
function Warp_In_Strategist()
|
|
Sleep(6)
|
|
|
|
warp_loc = Find_Hint("STORY_TRIGGER_ZONE_00","warpin")
|
|
strategist_list = Spawn_Unit(Find_Object_Type("HUTT_REFURBISHED_VENATOR"), warp_loc, hutts)
|
|
strategist = strategist_list[1]
|
|
strategist.Set_Cannot_Be_Killed(true)
|
|
if TestValid(strategist) then
|
|
strategist.Teleport_And_Face(warp_loc)
|
|
strategist.Hide(true)
|
|
end
|
|
|
|
warp_1_loc = Find_Hint("STORY_TRIGGER_ZONE_00","warpin1")
|
|
guard1_list = Spawn_Unit(Find_Object_Type("HUTT_IPV1_CRAFT"), warp_1_loc, hutts)
|
|
guard1 = guard1_list[1]
|
|
if TestValid(guard1) then
|
|
guard1.Teleport_And_Face(warp_1_loc)
|
|
guard1.Hide(true)
|
|
end
|
|
|
|
warp_2_loc = Find_Hint("STORY_TRIGGER_ZONE_00","warpin2")
|
|
guard2_list = Spawn_Unit(Find_Object_Type("HUTT_IPV1_CRAFT"), warp_2_loc, hutts)
|
|
guard2 = guard2_list[1]
|
|
if TestValid(guard2) then
|
|
guard2.Teleport_And_Face(warp_2_loc)
|
|
guard2.Hide(true)
|
|
end
|
|
|
|
warp_3_loc = Find_Hint("STORY_TRIGGER_ZONE_00","warpin3")
|
|
guard3_list = Spawn_Unit(Find_Object_Type("HUTT_IPV1_CRAFT"), warp_3_loc, hutts)
|
|
guard3 = guard3_list[1]
|
|
if TestValid(guard3) then
|
|
guard3.Teleport_And_Face(warp_3_loc)
|
|
guard3.Hide(true)
|
|
end
|
|
|
|
warp_4_loc = Find_Hint("STORY_TRIGGER_ZONE_00","warpin4")
|
|
guard4_list = Spawn_Unit(Find_Object_Type("HUTT_CORELLIAN_CORVETTE"), warp_4_loc, hutts)
|
|
guard4 = guard4_list[1]
|
|
if TestValid(guard4) then
|
|
guard4.Teleport_And_Face(warp_4_loc)
|
|
guard4.Hide(true)
|
|
end
|
|
|
|
warp_5_loc = Find_Hint("STORY_TRIGGER_ZONE_00","warpin5")
|
|
guard5_list = Spawn_Unit(Find_Object_Type("HUTT_IPV1_CRAFT"), warp_5_loc, hutts)
|
|
guard5 = guard5_list[1]
|
|
if TestValid(guard5) then
|
|
guard5.Teleport_And_Face(warp_5_loc)
|
|
guard5.Hide(true)
|
|
end
|
|
|
|
warp_6_loc = Find_Hint("STORY_TRIGGER_ZONE_00","warpin6")
|
|
guard6_list = Spawn_Unit(Find_Object_Type("HUTT_IPV1_CRAFT"), warp_6_loc, hutts)
|
|
guard6 = guard6_list[1]
|
|
if TestValid(guard6) then
|
|
guard6.Teleport_And_Face(warp_6_loc)
|
|
guard6.Hide(true)
|
|
end
|
|
|
|
warp_7_loc = Find_Hint("STORY_TRIGGER_ZONE_00","warpin7")
|
|
guard7_list = Spawn_Unit(Find_Object_Type("HUTT_IPV1_CRAFT"), warp_7_loc, hutts)
|
|
guard7 = guard7_list[1]
|
|
if TestValid(guard7) then
|
|
guard7.Teleport_And_Face(warp_7_loc)
|
|
guard7.Hide(true)
|
|
end
|
|
|
|
Create_Thread("Strategist_Midtro")
|
|
|
|
end
|
|
|
|
function Prox_Guard_Attack(self_obj, trigger_obj)
|
|
if not engines_destroyed and trigger_obj.Get_Owner() == underworld then
|
|
-- if self_obj == guard1 then
|
|
-- guard1_attacked = true
|
|
-- self_obj.Override_Max_Speed(2.75)
|
|
-- self_obj.Attack_Target(trigger_obj)
|
|
-- end
|
|
-- if self_obj == guard2 then
|
|
-- guard2_attacked = true
|
|
-- self_obj.Override_Max_Speed(2.75)
|
|
-- self_obj.Attack_Target(trigger_obj)
|
|
-- end
|
|
-- if self_obj == guard3 then
|
|
-- guard3_attacked = true
|
|
-- self_obj.Override_Max_Speed(2.75)
|
|
-- self_obj.Attack_Target(trigger_obj)
|
|
-- end
|
|
-- if self_obj == guard4 then
|
|
-- guard4_attacked = true
|
|
-- end
|
|
-- if self_obj == guard5 then
|
|
-- guard5_attacked = true
|
|
-- end
|
|
-- if self_obj == guard6 then
|
|
-- guard6_attacked = true
|
|
-- end
|
|
-- if self_obj == guard7 then
|
|
-- guard7_attacked = true
|
|
-- self_obj.Override_Max_Speed(2.75)
|
|
-- self_obj.Attack_Target(trigger_obj)
|
|
-- end
|
|
end
|
|
end
|
|
|
|
function Story_Handle_Esc()
|
|
if current_cinematic_thread ~= nil then
|
|
Thread.Kill(current_cinematic_thread)
|
|
current_cinematic_thread = nil
|
|
|
|
Stop_All_Music()
|
|
Stop_All_Speech()
|
|
Remove_All_Text()
|
|
|
|
Story_Event("PROLOGUE_MANDALORE_ESC_PREVENT_INTRO_DIALOG_AI_NOTIFICATION")
|
|
Create_Thread("End_Camera")
|
|
end
|
|
end
|
|
|
|
function End_Camera()
|
|
Transition_To_Tactical_Camera(6)
|
|
Sleep(4)
|
|
Letter_Box_Out(2)
|
|
Sleep(2)
|
|
Lock_Controls(0)
|
|
End_Cinematic_Camera()
|
|
|
|
if TestValid(vwing0) then
|
|
vwing0.Highlight(true)
|
|
Add_Radar_Blip(vwing0, "vwing_0_blip")
|
|
vwing0_reveal = FogOfWar.Reveal(underworld, vwing0, 400, 400)
|
|
end
|
|
|
|
if TestValid(vwing1) then
|
|
vwing1.Highlight(true)
|
|
Add_Radar_Blip(vwing1, "vwing_1_blip")
|
|
vwing1_reveal = FogOfWar.Reveal(underworld, vwing1, 400, 400)
|
|
end
|
|
|
|
if TestValid(vwing2) then
|
|
vwing2.Highlight(true)
|
|
Add_Radar_Blip(vwing2, "vwing_2_blip")
|
|
vwing2_reveal = FogOfWar.Reveal(underworld, vwing2, 400, 400)
|
|
end
|
|
|
|
if TestValid(vwing3) then
|
|
vwing3.Highlight(true)
|
|
Add_Radar_Blip(vwing3, "vwing_3_blip")
|
|
vwing3_reveal = FogOfWar.Reveal(underworld, vwing3, 400, 400)
|
|
end
|
|
|
|
if TestValid(vwing4) then
|
|
vwing4.Highlight(true)
|
|
Add_Radar_Blip(vwing4, "vwing_4_blip")
|
|
vwing4_reveal = FogOfWar.Reveal(underworld, vwing4, 400, 400)
|
|
end
|
|
|
|
Story_Event("ADD_OBJECTIVE_00")
|
|
|
|
fighter_list = Find_All_Objects_Of_Type("StarViper_Team")
|
|
for k, unit in pairs(fighter_list) do
|
|
if TestValid(unit) then
|
|
underworld.Select_Object(unit)
|
|
end
|
|
end
|
|
Story_Event("HIGHLIGHT_BUZZ")
|
|
|
|
Story_Event("TEXT_SPEECH_UNDERWORLD_TUTORIAL_100")
|
|
|
|
Sleep(10)
|
|
shuttle.Highlight(false)
|
|
end
|
|
|
|
|
|
|
|
-- ************************************************************************
|
|
-- ***********************INTRO CINEMATIC FUNCTION*************************
|
|
-- ************************************************************************
|
|
|
|
function Intro_Cinematic ()
|
|
|
|
Lock_Controls(1)
|
|
Start_Cinematic_Camera()
|
|
Cancel_Fast_Forward()
|
|
Letter_Box_In(0)
|
|
Fade_Screen_In(2)
|
|
|
|
intro_target = Find_First_Object("TYBER_ZANN_BOARDING_SHUTTLE_PROLOGUE")
|
|
|
|
Transition_Cinematic_Camera_Key(intro_target, 0, 175, 15, 45, 1, 1, 1, 0)
|
|
Transition_Cinematic_Target_Key(intro_target, 0, 0, 0, 7, 0, intro_target, 0, 0)
|
|
--Sleep(7)
|
|
|
|
Transition_Cinematic_Camera_Key(intro_target, 10, 175, 15, 135, 1, 1, 1, 0)
|
|
|
|
Story_Event("TEXT_SPEECH_UNDERWORLD_PIRACY_TUTORIAL_00")
|
|
|
|
Sleep(9.5)
|
|
|
|
while intro_rotate do
|
|
camera_offset = camera_offset + 90
|
|
Transition_Cinematic_Camera_Key(intro_target, 10, 175, 15, camera_offset, 1, 1, 1, 0)
|
|
|
|
if camera_offset == 315 then
|
|
camera_offset = -45
|
|
end
|
|
|
|
Sleep(9.5)
|
|
end
|
|
end
|
|
|
|
function Intro_Cinematic_01()
|
|
intro_rotate = false
|
|
|
|
|
|
Transition_Cinematic_Target_Key(intro_vwing, 9, 0, 0, 0, 0, intro_vwing, 0, 0)
|
|
Sleep(4)
|
|
Transition_Cinematic_Camera_Key(intro_vwing, 5, 400, 15, 60, 1, 1, 1, 0)
|
|
end
|
|
|
|
function Strategist_Midtro()
|
|
Suspend_AI(1)
|
|
Lock_Controls(1)
|
|
Start_Cinematic_Camera()
|
|
Cancel_Fast_Forward()
|
|
Letter_Box_In(0)
|
|
Fade_Screen_In(1)
|
|
|
|
if TestValid(guard1) then
|
|
guard1.Cinematic_Hyperspace_In(10)
|
|
guard1.Hide(false)
|
|
end
|
|
|
|
if TestValid(guard2) then
|
|
guard2.Cinematic_Hyperspace_In(25)
|
|
guard2.Hide(false)
|
|
end
|
|
|
|
if TestValid(guard3) then
|
|
guard3.Cinematic_Hyperspace_In(40)
|
|
guard3.Hide(false)
|
|
end
|
|
|
|
if TestValid(guard4) then
|
|
guard4.Cinematic_Hyperspace_In(55)
|
|
guard4.Hide(false)
|
|
end
|
|
|
|
if TestValid(guard5) then
|
|
guard5.Cinematic_Hyperspace_In(70)
|
|
guard5.Hide(false)
|
|
end
|
|
|
|
if TestValid(strategist) then
|
|
strategist.Cinematic_Hyperspace_In(85)
|
|
strategist.Hide(false)
|
|
end
|
|
|
|
if TestValid(guard6) then
|
|
guard6.Cinematic_Hyperspace_In(100)
|
|
guard6.Hide(false)
|
|
end
|
|
|
|
if TestValid(guard7) then
|
|
guard7.Cinematic_Hyperspace_In(115)
|
|
guard7.Hide(false)
|
|
end
|
|
|
|
Transition_Cinematic_Camera_Key(warp_loc, 0, 900, 20, 125, 1, 1, 1, 0)
|
|
Transition_Cinematic_Target_Key(warp_loc, 0, 0, 0, 7, 0, warp_loc, 0, 0)
|
|
|
|
Transition_Cinematic_Camera_Key(warp_loc, 15, 600, 10, 125, 1, 1, 1, 0)
|
|
|
|
Sleep(0.25)
|
|
warp_loc.Play_SFX_Event("Unit_Ship_Hyperspace_Enter")
|
|
Sleep(0.50)
|
|
warp_loc.Play_SFX_Event("Unit_Ship_Hyperspace_Enter")
|
|
Sleep(0.50)
|
|
warp_loc.Play_SFX_Event("Unit_Ship_Hyperspace_Enter")
|
|
Sleep(0.50)
|
|
warp_loc.Play_SFX_Event("Unit_Ship_Hyperspace_Enter")
|
|
Sleep(0.50)
|
|
warp_loc.Play_SFX_Event("Unit_Ship_Hyperspace_Enter")
|
|
Sleep(0.50)
|
|
warp_loc.Play_SFX_Event("Unit_Ship_Hyperspace_Enter")
|
|
Sleep(0.50)
|
|
warp_loc.Play_SFX_Event("Unit_Ship_Hyperspace_Enter")
|
|
Sleep(0.50)
|
|
warp_loc.Play_SFX_Event("Unit_Ship_Hyperspace_Enter")
|
|
Sleep(1.25)
|
|
|
|
|
|
|
|
Story_Event("TEXT_SPEECH_UNDERWORLD_PIRACY_TUTORIAL_05")
|
|
end
|
|
|
|
function State_Underworld_Tutorial_Piracy_Speech_Line_00_Remove_Text(message)
|
|
if message == OnEnter then
|
|
Story_Event("TEXT_SPEECH_UNDERWORLD_PIRACY_TUTORIAL_01")
|
|
end
|
|
end
|
|
|
|
function State_Underworld_Tutorial_Piracy_Speech_Line_01_Remove_Text(message)
|
|
if message == OnEnter then
|
|
Story_Event("TEXT_SPEECH_UNDERWORLD_PIRACY_TUTORIAL_02")
|
|
|
|
Create_Thread("Intro_Cinematic_01")
|
|
end
|
|
end
|
|
|
|
function State_Underworld_Tutorial_Piracy_Speech_Line_02_Remove_Text(message)
|
|
if message == OnEnter then
|
|
Story_Event("TEXT_SPEECH_UNDERWORLD_PIRACY_TUTORIAL_03")
|
|
end
|
|
end
|
|
|
|
function State_Underworld_Tutorial_Piracy_Speech_Line_03_Remove_Text(message)
|
|
if message == OnEnter then
|
|
current_cinematic_thread = nil
|
|
Create_Thread("End_Camera")
|
|
end
|
|
end
|
|
|
|
function State_Underworld_Tutorial_Piracy_Speech_Line_04_Remove_Text(message)
|
|
if message == OnEnter then
|
|
Create_Thread("Warp_In_Strategist")
|
|
end
|
|
end
|
|
|
|
function State_Underworld_Tutorial_Piracy_Speech_Line_05_Remove_Text(message)
|
|
if message == OnEnter then
|
|
Story_Event("ADD_OBJECTIVE_04")
|
|
|
|
Transition_To_Tactical_Camera(6)
|
|
Sleep(4)
|
|
Letter_Box_Out(2)
|
|
Sleep(2)
|
|
Lock_Controls(0)
|
|
End_Cinematic_Camera()
|
|
Suspend_AI(0)
|
|
|
|
if TestValid(strategist) then
|
|
strategist.Highlight(true)
|
|
Add_Radar_Blip(strategist, "strategist_blip")
|
|
strategist.Override_Max_Speed(1)
|
|
if TestValid(hutt_base_loc) then
|
|
strategist.Move_To(hutt_base_loc)
|
|
end
|
|
strategist_reveal = FogOfWar.Reveal(underworld, strategist, 400, 400)
|
|
end
|
|
|
|
if TestValid(guard1) then
|
|
guard1.Override_Max_Speed(1)
|
|
if TestValid(hutt_base_loc) then
|
|
guard1.Move_To(hutt_base_loc)
|
|
end
|
|
Register_Prox(guard1, Prox_Guard_Attack, 1200, underworld)
|
|
end
|
|
|
|
if TestValid(guard2) then
|
|
guard2.Override_Max_Speed(1)
|
|
if TestValid(hutt_base_loc) then
|
|
guard2.Move_To(hutt_base_loc)
|
|
end
|
|
Register_Prox(guard2, Prox_Guard_Attack, 1200, underworld)
|
|
end
|
|
|
|
if TestValid(guard3) then
|
|
guard3.Override_Max_Speed(1)
|
|
if TestValid(hutt_base_loc) then
|
|
guard3.Move_To(hutt_base_loc)
|
|
end
|
|
Register_Prox(guard3, Prox_Guard_Attack, 1200, underworld)
|
|
end
|
|
|
|
if TestValid(guard4) then
|
|
guard4.Override_Max_Speed(1)
|
|
if TestValid(hutt_base_loc) then
|
|
guard4.Move_To(hutt_base_loc)
|
|
end
|
|
Register_Prox(guard4, Prox_Guard_Attack, 1200, underworld)
|
|
end
|
|
|
|
if TestValid(guard5) then
|
|
guard5.Override_Max_Speed(1)
|
|
if TestValid(hutt_base_loc) then
|
|
guard5.Move_To(hutt_base_loc)
|
|
end
|
|
Register_Prox(guard5, Prox_Guard_Attack, 1200, underworld)
|
|
end
|
|
|
|
if TestValid(guard6) then
|
|
guard6.Override_Max_Speed(1)
|
|
if TestValid(hutt_base_loc) then
|
|
guard6.Move_To(hutt_base_loc)
|
|
end
|
|
Register_Prox(guard6, Prox_Guard_Attack, 1200, underworld)
|
|
end
|
|
|
|
if TestValid(guard7) then
|
|
guard7.Override_Max_Speed(1)
|
|
if TestValid(hutt_base_loc) then
|
|
guard7.Move_To(hutt_base_loc)
|
|
end
|
|
Register_Prox(guard7, Prox_Guard_Attack, 1200, underworld)
|
|
end
|
|
|
|
strategist_spawned = true
|
|
|
|
Sleep(1)
|
|
|
|
Story_Event("TEXT_SPEECH_UNDERWORLD_PIRACY_TUTORIAL_07")
|
|
end
|
|
end
|
|
|
|
|
|
|
|
function State_Underworld_Tutorial_Piracy_Speech_Line_06_Remove_Text(message)
|
|
if message == OnEnter then
|
|
Story_Event("SEND_VICTORY")
|
|
end
|
|
end |