Initial commit
This commit is contained in:
596
DATA/SCRIPTS/STORY/STORY_REBEL_ACTIII_M09_SPACE.LUA
Normal file
596
DATA/SCRIPTS/STORY/STORY_REBEL_ACTIII_M09_SPACE.LUA
Normal file
@@ -0,0 +1,596 @@
|
||||
--/////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
--
|
||||
-- (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:
|
||||
--
|
||||
-- $Author: Brian_Hayes $
|
||||
--
|
||||
-- $Change:
|
||||
--
|
||||
-- $DateTime:
|
||||
--
|
||||
-- $Revision:
|
||||
--
|
||||
--/////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
require("PGStoryMode")
|
||||
|
||||
-----------------------------------------------------------------------------------------------------------------------
|
||||
-- Definitions -- This function is called once when the script is first created.
|
||||
-----------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
function Definitions()
|
||||
|
||||
DebugMessage("%s -- In Definitions", tostring(Script))
|
||||
|
||||
StoryModeEvents =
|
||||
{
|
||||
Rebel_A3_M09_Begin = State_Rebel_A3_M09_Begin
|
||||
,Rebel_M09_IntroCine_Dialog_Line_01_Remove_Text = State_IntroCine_Dialog_Line_01_Remove_Text
|
||||
,Rebel_M09_IntroCine_Dialog_Line_02_Remove_Text = State_IntroCine_Dialog_Line_02_Remove_Text
|
||||
,Rebel_M09_IntroCine_Dialog_Line_03_Remove_Text = State_IntroCine_Dialog_Line_03_Remove_Text
|
||||
,Rebel_M09_IntroCine_Dialog_Line_04_Remove_Text = State_IntroCine_Dialog_Line_04_Remove_Text
|
||||
,Rebel_M09_IntroCine_Dialog_Line_05_Remove_Text = State_IntroCine_Dialog_Line_05_Remove_Text
|
||||
,Rebel_A3_M09_Plans_Recovered_01b_Remove_Movie = State_M09_Plans_Recovered
|
||||
--,Rebel_A3_M09_Plans_Recovered_00_Remove_Movie = State_Rebel_A3_M09_Plans_Recovered_00
|
||||
}
|
||||
|
||||
-- Waves of enemy units recover from EMP throughout the mission
|
||||
|
||||
--time_to_wakeup_1 = 45 original
|
||||
time_to_wakeup_1 = 5
|
||||
wakeup_table_1 = {
|
||||
{"Tartan_Patrol_Cruiser", "1a"}
|
||||
,{"Tartan_Patrol_Cruiser", "1b"}
|
||||
,{"Victory_Destroyer", "1c"}
|
||||
}
|
||||
|
||||
--time_to_wakeup_2 = 90 original
|
||||
time_to_wakeup_2 = 60
|
||||
wakeup_table_2 = {
|
||||
{"Victory_Destroyer", "2a"}
|
||||
,{"Tartan_Patrol_Cruiser", "2b"}
|
||||
,{"Tartan_Patrol_Cruiser", "2c"}
|
||||
,{"Tartan_Patrol_Cruiser", "2d"}
|
||||
,{"Tartan_Patrol_Cruiser", "2e"}
|
||||
,{"Tartan_Patrol_Cruiser", "2f"}
|
||||
}
|
||||
|
||||
--time_to_wakeup_3 = 135 original
|
||||
time_to_wakeup_3 = 120
|
||||
wakeup_table_3 = {
|
||||
{"Star_Destroyer", "3a"}
|
||||
,{"Star_Destroyer", "3b"}
|
||||
,{"Tartan_Patrol_Cruiser", "3c"}
|
||||
,{"Tartan_Patrol_Cruiser", "3d"}
|
||||
,{"Tartan_Patrol_Cruiser", "3e"}
|
||||
,{"Tartan_Patrol_Cruiser", "3f"}
|
||||
,{"Tartan_Patrol_Cruiser", "3g"}
|
||||
}
|
||||
|
||||
--time_to_wakeup_4 = 180 original
|
||||
time_to_wakeup_4 = 180
|
||||
--time_to_get_plans = 60 original
|
||||
time_to_get_plans = 60
|
||||
time_trigger = 0
|
||||
|
||||
--time_to_make_transport1_vulnerable = 20 -- time_to_wakeup_1 + GameRandom(10,30)
|
||||
--time_to_make_transport2_vulnerable = 20 -- time_to_wakeup_2 + GameRandom(10,30)
|
||||
--time_to_make_transport3_vulnerable = 40 -- time_to_wakeup_3 + GameRandom(10,30)
|
||||
time_to_make_transport1_vulnerable = 0 -- time_to_wakeup_1 + GameRandom(10,30)
|
||||
time_to_make_transport2_vulnerable = 0 -- time_to_wakeup_2 + GameRandom(10,30)
|
||||
time_to_make_transport3_vulnerable = 0 -- time_to_wakeup_3 + GameRandom(10,30)
|
||||
time_to_make_transport4_vulnerable = 0 -- time_to_wakeup_3 + GameRandom(35,60)
|
||||
|
||||
exit_range = 400
|
||||
|
||||
first_time_serviced = true
|
||||
flag_shuttles_escaping = false
|
||||
|
||||
fog_id = nil
|
||||
|
||||
end
|
||||
|
||||
function State_Rebel_A3_M09_Begin(message)
|
||||
if message == OnEnter then
|
||||
|
||||
-- Prevent the AI from performing an automatic fog of war reveal for this tactical scenario.
|
||||
-- MessageBox("disallowing ai controlled fog reveal")
|
||||
GlobalValue.Set("Allow_AI_Controlled_Fog_Reveal", 0)
|
||||
|
||||
rebel_player = Find_Player("Rebel")
|
||||
|
||||
-- Find the transports
|
||||
transport1 = Find_Hint("RM09_ALLIANCE_SHUTTLE", "1")
|
||||
transport2 = Find_Hint("RM09_ALLIANCE_SHUTTLE", "2")
|
||||
transport3 = Find_Hint("RM09_ALLIANCE_SHUTTLE", "3")
|
||||
transport4 = Find_Hint("RM09_ALLIANCE_SHUTTLE", "4")
|
||||
if not transport1 or not transport2 or not transport3 or not transport4 then
|
||||
return
|
||||
end
|
||||
|
||||
starbase = Find_First_Object("EMPIRE_STAR_BASE_4")
|
||||
if not starbase then
|
||||
return
|
||||
end
|
||||
|
||||
-- Exit point for shuttles
|
||||
exit_marker = Find_Hint("GENERIC_MARKER_SPACE", "shuttle_escape")
|
||||
if TestValid(exit_marker) then
|
||||
Register_Prox(exit_marker, Exit_Prox, exit_range, rebel_player)
|
||||
else
|
||||
return
|
||||
end
|
||||
|
||||
-- Get all of the defense satellites
|
||||
sat_list = Find_All_Objects_With_Hint("defense_sat")
|
||||
for i, sat in pairs(sat_list) do
|
||||
if TestValid(sat) then
|
||||
sat.Prevent_AI_Usage(true)
|
||||
sat.Prevent_Opportunity_Fire(true)
|
||||
end
|
||||
end
|
||||
|
||||
Create_Thread("Intro_Cinematic")
|
||||
|
||||
end
|
||||
end
|
||||
|
||||
------------------------------------------------------------------------------------------------------------------------
|
||||
-- Opening Cinematic stuff
|
||||
------------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
function Intro_Cinematic()
|
||||
|
||||
Suspend_AI(1)
|
||||
Lock_Controls(1)
|
||||
Letter_Box_In(0)
|
||||
|
||||
transport1 = Find_Hint("RM09_ALLIANCE_SHUTTLE", "1")
|
||||
transport2 = Find_Hint("RM09_ALLIANCE_SHUTTLE", "2")
|
||||
transport3 = Find_Hint("RM09_ALLIANCE_SHUTTLE", "3")
|
||||
transport4 = Find_Hint("RM09_ALLIANCE_SHUTTLE", "4")
|
||||
|
||||
if not transport1 or not transport2 or not transport3 or not transport4 then
|
||||
return
|
||||
end
|
||||
|
||||
Start_Cinematic_Camera()
|
||||
|
||||
Set_Cinematic_Camera_Key(transport3, 600, 15, 60, 1, 0, 0, 0)
|
||||
Set_Cinematic_Target_Key(transport3, 0, 0, 0, 0, 0, 0, 0)
|
||||
|
||||
--Resume_Hyperspace_In()
|
||||
|
||||
if TestValid(transport1) then
|
||||
--transport1.Cinematic_Hyperspace_In(69)
|
||||
transport1.Cinematic_Hyperspace_In(9)
|
||||
end
|
||||
|
||||
if TestValid(transport2) then
|
||||
--transport2.Cinematic_Hyperspace_In(81)
|
||||
transport2.Cinematic_Hyperspace_In(21)
|
||||
end
|
||||
|
||||
if TestValid(transport3) then
|
||||
--transport3.Cinematic_Hyperspace_In(63)
|
||||
transport3.Cinematic_Hyperspace_In(23)
|
||||
end
|
||||
|
||||
if TestValid(transport4) then
|
||||
--transport4.Cinematic_Hyperspace_In(75)
|
||||
transport4.Cinematic_Hyperspace_In(15)
|
||||
end
|
||||
|
||||
Fade_Screen_In(1)
|
||||
Sleep(1)
|
||||
Resume_Hyperspace_In()
|
||||
Sleep(5)
|
||||
|
||||
Transition_Cinematic_Camera_Key(transport3, 6.0, 375, 15, 310, 1, 0, 0, 0)
|
||||
Transition_Cinematic_Target_Key(transport3, 2.5, 0, 0, 0, 0, 0, 0, 0)
|
||||
Sleep(5)
|
||||
|
||||
Story_Event("CUE_M09_DIALOG_REBELPILOT_01")
|
||||
end
|
||||
|
||||
----------------------------------------------------------------------------------
|
||||
-- cinematic dialog lua callbacks here
|
||||
-----------------------------------------------------------------------------------
|
||||
|
||||
function State_IntroCine_Dialog_Line_01_Remove_Text(message)
|
||||
if message == OnEnter then
|
||||
|
||||
Sleep(1)
|
||||
|
||||
antilles = Find_First_Object("SUNDERED_HEART")
|
||||
|
||||
if not TestValid(antilles) then
|
||||
return
|
||||
end
|
||||
|
||||
Set_Cinematic_Camera_Key(antilles, 500, 18, 290, 1, 0, 0, 0)
|
||||
Set_Cinematic_Target_Key(antilles, 0, 0, 0, 0, 0, 0, 0)
|
||||
Transition_Cinematic_Camera_Key(antilles, 20.0, 450, 13, 260, 1, 0, 0, 0)
|
||||
|
||||
Story_Event("CUE_M09_DIALOG_ANTILLES_01")
|
||||
--Antilles: It's borrowed time at best. When they get moving again, we better not be around
|
||||
end
|
||||
end
|
||||
|
||||
function State_IntroCine_Dialog_Line_02_Remove_Text(message)
|
||||
if message == OnEnter then
|
||||
|
||||
-- Sleep(1)
|
||||
Story_Event("CUE_M09_DIALOG_ANTILLES_02")
|
||||
--Antilles: Boarding parties, get going. Search the station and collect any data you can!
|
||||
|
||||
if not TestValid(transport3) then
|
||||
return
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function State_IntroCine_Dialog_Line_03_Remove_Text(message)
|
||||
if message == OnEnter then
|
||||
Set_Cinematic_Camera_Key(transport3, 350, 25, 170, 1, transport3, 1, 0)
|
||||
Set_Cinematic_Target_Key(transport3, 0, 0, 0, 0, transport3, 0, 0)
|
||||
Transition_Cinematic_Camera_Key(transport3, 10, 450, 20, 190, 1, transport3, 1, 0)
|
||||
|
||||
MoveTransportsToStarbase()
|
||||
|
||||
Story_Event("CUE_M09_DIALOG_REBELPILOT_02")
|
||||
--Rebel Soldier: Yes, sir!
|
||||
|
||||
Sleep(6)
|
||||
|
||||
--camera shot from starbase
|
||||
starbase = Find_Hint("EMPIRE_STAR_BASE_4", "starbase")
|
||||
if not TestValid(starbase) then
|
||||
return
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function State_IntroCine_Dialog_Line_04_Remove_Text(message)
|
||||
if message == OnEnter then
|
||||
Sleep(8)
|
||||
Story_Event("CUE_M09_DIALOG_ANTILLES_03")
|
||||
--Antilles: That EMP didn't last as long as we thought! Protect the boarding party and take out any ship that reactivates!
|
||||
|
||||
cine_ship = Find_Hint("Tartan_Patrol_Cruiser", "unaffected")
|
||||
|
||||
if not TestValid(cine_ship) then
|
||||
return
|
||||
end
|
||||
|
||||
cine_ship2 = Find_Hint("Tartan_Patrol_Cruiser", "unaffected2")
|
||||
|
||||
if not TestValid(cine_ship2) then
|
||||
return
|
||||
end
|
||||
|
||||
cine_ship.Suspend_Locomotor(false)
|
||||
cine_ship2.Suspend_Locomotor(false)
|
||||
|
||||
cine_ship.Prevent_AI_Usage(false)
|
||||
cine_ship2.Prevent_AI_Usage(false)
|
||||
|
||||
cine_ship.Prevent_Opportunity_Fire(false)
|
||||
cine_ship2.Prevent_Opportunity_Fire(false)
|
||||
cine_ship2.Prevent_AI_Usage(false)
|
||||
|
||||
cine_ship.Move_To(antilles)
|
||||
cine_ship2.Move_To(antilles)
|
||||
|
||||
Sleep(1)
|
||||
|
||||
Set_Cinematic_Camera_Key(cine_ship, 500, 15, 190, 1, cine_ship, 1, 0)
|
||||
Set_Cinematic_Target_Key(antilles, 0, 0, 0, 0, antilles, 0, 0)
|
||||
|
||||
end
|
||||
end
|
||||
|
||||
function State_IntroCine_Dialog_Line_05_Remove_Text(message)
|
||||
if message == OnEnter then
|
||||
|
||||
Sleep(2)
|
||||
Point_Camera_At(antilles)
|
||||
Transition_To_Tactical_Camera(2)
|
||||
Letter_Box_Out(2)
|
||||
Sleep(2)
|
||||
End_Cinematic_Camera()
|
||||
|
||||
Suspend_AI(0)
|
||||
Lock_Controls(0)
|
||||
Register_Timers()
|
||||
fog_id = FogOfWar.Reveal_All(rebel_player)
|
||||
end
|
||||
end
|
||||
|
||||
function Register_Timers()
|
||||
|
||||
-- Don't register the timer events unitl the cinematics are done playing
|
||||
|
||||
Register_Timer(Wake_Sats, time_to_wakeup_4)
|
||||
|
||||
-- Register timers for enemy ship wakeup events
|
||||
Register_Timer(Wake_Units, time_to_wakeup_1, wakeup_table_1)
|
||||
Register_Timer(Wake_Units, time_to_wakeup_2, wakeup_table_2)
|
||||
Register_Timer(Wake_Units, time_to_wakeup_3, wakeup_table_3)
|
||||
|
||||
-- Register timers to make transports vulnerable to enemy fire
|
||||
Register_Timer(SwitchToRebel, time_to_make_transport1_vulnerable, transport1)
|
||||
Register_Timer(SwitchToRebel, time_to_make_transport2_vulnerable, transport2)
|
||||
Register_Timer(SwitchToRebel, time_to_make_transport3_vulnerable, transport3)
|
||||
Register_Timer(SwitchToRebel, time_to_make_transport4_vulnerable, transport4)
|
||||
|
||||
-- If all of the transports are killed, the player loses
|
||||
Register_Death_Event(transport1, Transport_Destroyed)
|
||||
Register_Death_Event(transport2, Transport_Destroyed)
|
||||
Register_Death_Event(transport3, Transport_Destroyed)
|
||||
Register_Death_Event(transport4, Transport_Destroyed)
|
||||
|
||||
-- The player has to survive with at least one transport until this timer, then escape
|
||||
--Register_Timer(Get_Plans, time_to_get_plans)
|
||||
end
|
||||
|
||||
function MoveTransportsToStarbase()
|
||||
if not flag_shuttles_escaping then
|
||||
|
||||
transport1 = Find_Hint("RM09_ALLIANCE_SHUTTLE", "1")
|
||||
transport2 = Find_Hint("RM09_ALLIANCE_SHUTTLE", "2")
|
||||
transport3 = Find_Hint("RM09_ALLIANCE_SHUTTLE", "3")
|
||||
transport4 = Find_Hint("RM09_ALLIANCE_SHUTTLE", "4")
|
||||
|
||||
transport1_move_to = Find_Hint("GENERIC_MARKER_SPACE", "transport1moveto")
|
||||
transport2_move_to = Find_Hint("GENERIC_MARKER_SPACE", "transport2moveto")
|
||||
transport3_move_to = Find_Hint("GENERIC_MARKER_SPACE", "transport3moveto")
|
||||
transport4_move_to = Find_Hint("GENERIC_MARKER_SPACE", "transport4moveto")
|
||||
|
||||
if TestValid(transport1) then
|
||||
transport1.Move_To(transport1_move_to)
|
||||
end
|
||||
|
||||
if TestValid(transport2) then
|
||||
transport2.Move_To(transport2_move_to)
|
||||
end
|
||||
|
||||
if TestValid(transport3) then
|
||||
transport3.Move_To(transport3_move_to)
|
||||
end
|
||||
|
||||
if TestValid(transport4) then
|
||||
transport4.Move_To(transport4_move_to)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function Exit_Prox(prox_obj, trigger_obj)
|
||||
--MessageBox("Rebel unit close to marker")
|
||||
if trigger_obj == transport1 or trigger_obj == transport2 or trigger_obj == transport3 or trigger_obj == transport4 then
|
||||
Story_Event("shuttles_clear")
|
||||
prox_obj.Cancel_Event_Object_In_Range(Exit_Prox)
|
||||
end
|
||||
end
|
||||
|
||||
function Wake_Sats()
|
||||
for i, sat in pairs(sat_list) do
|
||||
if TestValid(sat) then
|
||||
sat.Prevent_AI_Usage(false)
|
||||
sat.Prevent_Opportunity_Fire(false)
|
||||
sat.Prevent_All_Fire(false)
|
||||
--flagging sats here
|
||||
sat.Highlight(true)
|
||||
Add_Radar_Blip(sat, "somename")
|
||||
|
||||
end
|
||||
end
|
||||
|
||||
Story_Event("sats_awake")
|
||||
end
|
||||
|
||||
-- Turn on AI and target of opportunity fire by and for all units of a given type and hint in the table
|
||||
function Wake_Units(unit_type_table)
|
||||
|
||||
if unit_type_table == wakeup_table_1 then
|
||||
Story_Event("batch_1_wake")
|
||||
elseif unit_type_table == wakeup_table_2 then
|
||||
Story_Event("batch_2_wake")
|
||||
elseif unit_type_table == wakeup_table_3 then
|
||||
Story_Event("batch_3_wake")
|
||||
end
|
||||
|
||||
for i, type_and_hint in pairs(unit_type_table) do
|
||||
unit = Find_Hint(type_and_hint[1], type_and_hint[2])
|
||||
if TestValid(unit) then
|
||||
unit.Prevent_AI_Usage(false)
|
||||
unit.Prevent_Opportunity_Fire(false)
|
||||
unit.Suspend_Locomotor(false)
|
||||
unit.Prevent_All_Fire(false)
|
||||
|
||||
--jdg flags these guys
|
||||
unit.Highlight(true)
|
||||
Add_Radar_Blip(unit, "somename")
|
||||
else
|
||||
return
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
|
||||
end
|
||||
|
||||
-- Make units vulnerable by setting them as player units (but not selectable/controllable)
|
||||
function SwitchToRebel(unit)
|
||||
unit.Set_Selectable(false)
|
||||
unit.Change_Owner(rebel_player)
|
||||
--unit.Prevent_Opportunity_Fire(false)
|
||||
unit.Suspend_Locomotor(true)
|
||||
unit.Prevent_All_Fire(true)
|
||||
|
||||
end
|
||||
|
||||
|
||||
|
||||
function State_M09_Plans_Recovered(message)
|
||||
if message == OnEnter then
|
||||
if not flag_shuttles_escaping then
|
||||
flag_shuttles_escaping = true
|
||||
|
||||
-- Make transports move to an exit point
|
||||
if TestValid(transport1) then
|
||||
--transport1.Set_Selectable(true)
|
||||
transport1.Suspend_Locomotor(false)
|
||||
transport1.Move_To(exit_marker)
|
||||
end
|
||||
if TestValid(transport2) then
|
||||
--transport2.Set_Selectable(true)
|
||||
transport2.Suspend_Locomotor(false)
|
||||
transport2.Move_To(exit_marker)
|
||||
end
|
||||
if TestValid(transport3) then
|
||||
--transport3.Set_Selectable(true)
|
||||
transport3.Suspend_Locomotor(false)
|
||||
transport3.Move_To(exit_marker)
|
||||
end
|
||||
if TestValid(transport4) then
|
||||
--transport4.Set_Selectable(true)
|
||||
transport4.Suspend_Locomotor(false)
|
||||
transport4.Move_To(exit_marker)
|
||||
end
|
||||
|
||||
Create_Thread("Ending_Cinematic")
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
|
||||
-- Here we can get functionality outside (and before) event functions
|
||||
function Story_Mode_Service()
|
||||
|
||||
if first_time_serviced then
|
||||
first_time_serviced = false
|
||||
|
||||
-- Turn AI off globally while we establish which units the scripted AI is allowed to use
|
||||
Suspend_AI(1)
|
||||
|
||||
empire_player = Find_Player("Empire")
|
||||
rebel_player = Find_Player("Rebel")
|
||||
empire_unit_list = Find_All_Objects_Of_Type(empire_player)
|
||||
for i, unit in pairs(empire_unit_list) do
|
||||
|
||||
--Make sure that any units which may have been given move orders
|
||||
--before we had a chance to suspend the AI, now only have stop orders.
|
||||
if unit.Is_Category("Corvette") or unit.Is_Category("Frigate") or unit.Is_Category("Transport")
|
||||
or (unit.Is_Category("Capital") and not unit.Get_Type() == Find_Object_Type("EMPIRE_STAR_BASE_4")) then
|
||||
unit.Move_To(unit.Get_Position())
|
||||
end
|
||||
|
||||
-- Prevent the Starbase from ever firing
|
||||
if unit.Get_Type() == Find_Object_Type("EMPIRE_STAR_BASE_4") then
|
||||
unit.Prevent_All_Fire(true)
|
||||
unit.Set_Selectable(false)
|
||||
end
|
||||
|
||||
-- Turn on EMP effects (not working)
|
||||
Hide_Sub_Object(unit, 0, "pi_damage_elec_cap00.alo")
|
||||
Hide_Sub_Object(unit, 0, "pi_damage_elec_sd00.alo")
|
||||
|
||||
-- Turn off AI and target of opportunity fire by and for this unit
|
||||
unit.Prevent_AI_Usage(true)
|
||||
unit.Prevent_Opportunity_Fire(true)
|
||||
unit.Suspend_Locomotor(true)
|
||||
unit.Prevent_All_Fire(true)
|
||||
end
|
||||
|
||||
-- Reenable AI globally, so that when we stop preventing ai usage for one unit, it will wake
|
||||
Suspend_AI(0)
|
||||
|
||||
end
|
||||
end
|
||||
|
||||
------------------------------------------------------------------------------------------------------------------------
|
||||
-- dme Mission over, trigger end cinematic.
|
||||
------------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
|
||||
function State_Rebel_A3_M09_Plans_Recovered_00(message)
|
||||
if message == OnEnter then
|
||||
Create_Thread("Ending_Cinematic")
|
||||
end
|
||||
end
|
||||
|
||||
------------------------------------------------------------------------------------------------------------------------
|
||||
-- dme Ending Cinematic stuff
|
||||
------------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
|
||||
function Ending_Cinematic()
|
||||
|
||||
Story_Event("DISABLE_ANTILLES_KILLED")
|
||||
Fade_Screen_Out(.5)
|
||||
Suspend_AI(1)
|
||||
Lock_Controls(1)
|
||||
Letter_Box_In(0)
|
||||
|
||||
Story_Event("START_END_CINEMATIC")
|
||||
|
||||
-- Ensure Antilles is still present for this cinematic
|
||||
|
||||
sundered_heart = Find_First_Object("SUNDERED_HEART")
|
||||
if not sundered_heart then
|
||||
return
|
||||
end
|
||||
|
||||
warp_loc = Find_Hint("GENERIC_MARKER_SPACE", "warploc")
|
||||
|
||||
Start_Cinematic_Camera()
|
||||
Fade_Screen_In(2)
|
||||
|
||||
-- Set_Cinematic_Camera_Key(target_pos, xoffset_dist, yoffset_pitch, zoffset_yaw, angles?, attach_object, use_object_rotation, cinematic_animation)
|
||||
Set_Cinematic_Camera_Key(warp_loc, 1000, -10, -90, 1, 0, 1, 0)
|
||||
|
||||
-- Set_Cinematic_Camera_Key(target_pos, xoffset_dist, yoffset_pitch, zoffset_yaw, angles?, attach_object, use_object_rotation, cinematic_animation)
|
||||
Set_Cinematic_Target_Key(sundered_heart, 0, 0, 0, 0, sundered_heart, 0, 0)
|
||||
|
||||
-- Transition_Cinematic_Camera_Key(target_pos, time, xoffset_dist, yoffset_pitch, zoffset_yaw, angles?, attach_object, use_object_rotation, cinematic_animation)
|
||||
Transition_Cinematic_Camera_Key(warp_loc, 5, 200, 2.5, -37.5, 1, 0, 1, 0)
|
||||
Transition_Cinematic_Camera_Key(warp_loc, 5, 200, 17, 15, 1, 0, 1, 0)
|
||||
|
||||
|
||||
rebel = Find_Player("Rebel")
|
||||
Start_Cinematic_Space_Retreat(rebel.Get_ID(), 8)
|
||||
|
||||
Sleep(4)
|
||||
Story_Event("MISSION_09_VICTORY")
|
||||
|
||||
Sleep(3.9)
|
||||
Set_Cinematic_Target_Key(sundered_heart, 0, 0, 0, 0, 0, 0, 0)
|
||||
End_Cinematic_Camera()
|
||||
end
|
||||
Reference in New Issue
Block a user