Initial commit

This commit is contained in:
2026-02-28 14:00:45 -06:00
commit 16d3170787
1134 changed files with 589134 additions and 0 deletions

View File

@@ -0,0 +1,613 @@
-- $Id: //depot/Projects/StarWars_Steam/FOC/Run/Data/Scripts/Story/Story_Empire_ActIII_M09_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_Empire_ActIII_M09_LAND.lua $
--
-- Original Author: Jim_Richmond
--
-- $Author: Brian_Hayes $
--
-- $Change: 637819 $
--
-- $DateTime: 2017/03/22 10:16:16 $
--
-- $Revision: #1 $
--
--/////////////////////////////////////////////////////////////////////////////////////////////////
require("PGStoryMode")
function Definitions()
StoryModeEvents =
{
Empire_A03M09_Begin = State_Empire_M09_Begin
,Empire_ActIII_M09_00 = State_Empire_ActIII_M09_00
,Empire_ActIII_M09_03 = State_Empire_ActIII_M09_03
,Empire_ActIII_M09_WIN_CONDITION = State_Empire_ActIII_M09_WIN_CONDITION
,Empire_ActIII_M09_WIN_CONDITION_01 = State_Empire_ActIII_M09_WIN_CONDITION_01
}
reinforcement_list1 = {
"Bothan_Resistors"
}
reinforcement_list2 = {
"Rebel_Tank_Buster_Squad"
,"Rebel_Tank_Buster_Squad"
,"Rebel_Tank_Buster_Squad"
,"Rebel_Tank_Buster_Squad"
}
reinforcement_list3 = {
"Rebel_Light_Tank_Brigade"
}
flag_building01_dead = false
flag_building02_dead = false
flag_building03_dead = false
flag_building04_dead = false
flag_building05_dead = false
flag_building06_dead = false
flag_building07_dead = false
flag_building08_dead = false
flag_map_revealed = false
flag_intialized = false
fog_id = nil
end
function State_Empire_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)
structure_list = Find_All_Objects_Of_Type("Bothan_Spawn_House_Mission")
Suspend_AI(1)
Lock_Controls(1)
Letter_Box_In(0)
-- *** Get the Imperial player ***
imperial_player = Find_Player("Empire")
bothan_player = Find_Player("Rebel")
rebel_player = Find_Player("Rebel")
--rebel_player.Enable_As_Actor()
--tracking building here
building_01 = Find_Hint("BOTHAN_SPAWN_HOUSE_MISSION", "building01")
building_02 = Find_Hint("BOTHAN_SPAWN_HOUSE_MISSION", "building02")
building_03 = Find_Hint("BOTHAN_SPAWN_HOUSE_MISSION", "building03")
building_04 = Find_Hint("BOTHAN_SPAWN_HOUSE_MISSION", "building04")
building_05 = Find_Hint("BOTHAN_SPAWN_HOUSE_MISSION", "building05")
building_06 = Find_Hint("BOTHAN_SPAWN_HOUSE_MISSION", "building06")
building_07 = Find_Hint("BOTHAN_SPAWN_HOUSE_MISSION", "building07")
building_08 = Find_Hint("BOTHAN_SPAWN_HOUSE_MISSION", "building08")
-- find all of the objects we need for the mission cinematics
-- *** EMPEROR PALPATINE ***
emperor_palpatine = Find_Hint("EMPEROR_PALPATINE", "emperor")
-- check to see that we were able to obtain emperor palpatine
if not TestValid(emperor_palpatine) then
--MessageBox("Couldn't find the emperor!!!")
ScriptExit()
end
emperor_palpatine.Enable_Behavior(78, false)
-- *** PALPATINE GUARD 1 ***
guard_palpatine_1 = Find_Hint("IMPERIAL_GUARD_NON_AI", "emperorguard1")
-- check to see that we were able to obtain the guard
if not TestValid(guard_palpatine_1) then
--MessageBox("Couldn't find emperors first guard!!!")
ScriptExit()
end
-- *** PALPATINE GUARD 2 ***
guard_palpatine_2 = Find_Hint("IMPERIAL_GUARD_NON_AI", "emperorguard2")
-- check to see that we were able to obtain the guard
if not TestValid(guard_palpatine_2) then
--MessageBox("Couldn't find emperors second guard!!!")
ScriptExit()
end
-- *** BOTHAN 1 ***
bothan_1 = Find_Hint("BOTHAN_CIVILIAN_MISSION", "bothan1")
-- check to see that we were able to obtain the first bothan
if not TestValid(bothan_1) then
--MessageBox("Couldn't find the first bothan!!!")
ScriptExit()
end
-- *** BOTHAN 2 ***
bothan_2 = Find_Hint("BOTHAN_CIVILIAN_MISSION", "bothan2")
-- check to see that we were able to obtain the second bothan
if not TestValid(bothan_2) then
--MessageBox("Couldn't find the second bothan!!!")
ScriptExit()
end
-- *** BOTHAN 3 ***
bothan_3 = Find_Hint("BOTHAN_CIVILIAN_MISSION", "bothan3")
-- check to see that we were able to obtain the third bothan
if not TestValid(bothan_3) then
--MessageBox("Couldn't find the third bothan!!!")
ScriptExit()
end
-- *** BOTHAN 4 ***
bothan_4 = Find_Hint("BOTHAN_CIVILIAN_MISSION", "bothan4")
-- check to see that we were able to obtain the third bothan
if not TestValid(bothan_4) then
--MessageBox("Couldn't find the third bothan!!!")
ScriptExit()
end
-- *** BOTHAN 5 ***
bothan_5 = Find_Hint("BOTHAN_CIVILIAN_MISSION", "bothan5")
-- check to see that we were able to obtain the third bothan
if not TestValid(bothan_5) then
--MessageBox("Couldn't find the third bothan!!!")
ScriptExit()
end
-- *** BOTHAN 6 ***
bothan_6 = Find_Hint("BOTHAN_CIVILIAN_MISSION", "bothan6")
-- check to see that we were able to obtain the third bothan
if not TestValid(bothan_6) then
--MessageBox("Couldn't find the third bothan!!!")
ScriptExit()
end
-- *** BOTHAN 7 ***
bothan_7 = Find_Hint("BOTHAN_CIVILIAN_MISSION", "bothan7")
-- check to see that we were able to obtain the third bothan
if not TestValid(bothan_7) then
--MessageBox("Couldn't find the third bothan!!!")
ScriptExit()
end
-- Next, we need to get all of the relevent position markers
-- *** Emperor Palpatine's shuttle position marker ***
emperor_shuttle_pos = Find_Hint("GENERIC_MARKER_LAND", "emperorshuttle")
if not TestValid(emperor_shuttle_pos) then
--MessageBox("Couldn't find the emperor's shuttle position!!!")
ScriptExit()
end
-- *** Emperor Palpatine's move to marker ***
emperor_move_to_pos_1 = Find_Hint("GENERIC_MARKER_LAND", "emperormoveto1")
if not TestValid(emperor_move_to_pos_1) then
--MessageBox("Couldn't find the emperor's first move to position!!!")
ScriptExit()
end
emperor_move_to_pos_2 = Find_Hint("GENERIC_MARKER_LAND", "emperormoveto2")
if not TestValid(emperor_move_to_pos_2) then
--MessageBox("Couldn't find the emperor's second move to position!!!")
ScriptExit()
end
emperor_end_cinematic_start = Find_Hint("GENERIC_MARKER_LAND", "emperorfinalcinematicstart")
if not TestValid(emperor_end_cinematic_start) then
--MessageBox("Couldn't find the emperor's end cinematic start position!!!")
ScriptExit()
end
emperor_end_cinematic_end = Find_Hint("GENERIC_MARKER_LAND", "emperorfinalcinematicend")
if not TestValid(emperor_end_cinematic_end) then
--MessageBox("Couldn't find the emperor's final cinematic position!!!")
ScriptExit()
end
-- *** Palpatine's first guard's move to marker ***
emperor_guard_move_to_pos_1 = Find_Hint("GENERIC_MARKER_LAND", "emperorguard1moveto1")
if not TestValid(emperor_guard_move_to_pos_1) then
--MessageBox("Couldn't find the first emperor's guard's move to position!!!")
ScriptExit()
end
-- *** Palpatine's second guard's move to marker ***
emperor_guard_move_to_pos_2 = Find_Hint("GENERIC_MARKER_LAND", "emperorguard2moveto1")
if not TestValid(emperor_guard_move_to_pos_2) then
--MessageBox("Couldn't find the second emperor's guard's move to position!!!")
ScriptExit()
end
-- *** Find the second Bothan's run to position marker ***
bothan_2_run_to_pos = Find_Hint("GENERIC_MARKER_LAND", "bothan2run")
if not TestValid(bothan_2_run_to_pos) then
--MessageBox("Couldn't find the second bothans run to position!!!")
ScriptExit()
end
-- *** Find the third Bothan's run to position marker ***
bothan_3_run_to_pos = Find_Hint("GENERIC_MARKER_LAND", "bothan3run")
if not TestValid(bothan_3_run_to_pos) then
--MessageBox("Couldn't find the third bothans run to position!!!")
ScriptExit()
end
emperor_cinematic_End_Move_to = Find_Hint("GENERIC_MARKER_LAND", "cinematicfinishemperor")
emperor_Finalstop_Move_to = Find_Hint("GENERIC_MARKER_LAND", "emperorfinalstop1")
-- Dead Bothans for finale
Dead_Bothans_1 = Find_Hint("Dead_Bothan", "deadbothan1")
Dead_Bothans_2 = Find_Hint("Dead_Bothan", "deadbothan2")
Dead_Bothans_3 = Find_Hint("Dead_Bothan", "deadbothan3")
Dead_Bothans_4 = Find_Hint("Dead_Bothan", "deadbothan4")
Dead_Bothans_5 = Find_Hint("Dead_Bothan", "deadbothan5")
Dead_Bothans_6 = Find_Hint("Dead_Bothan", "deadbothan6")
Dead_Bothans_7 = Find_Hint("Dead_Bothan", "deadbothan7")
Dead_Bothans_8 = Find_Hint("Dead_Bothan", "deadbothan8")
Dead_Bothans_9 = Find_Hint("Dead_Bothan", "deadbothan9")
Dead_Bothans_10 = Find_Hint("Dead_Bothan", "deadbothan10")
Dead_Bothans_11 = Find_Hint("Dead_Bothan", "deadbothan11")
Dead_Bothans_12 = Find_Hint("Dead_Bothan", "deadbothan12")
Dead_Bothans_13 = Find_Hint("Dead_Bothan", "deadbothan13")
-- *** Create the emperors shuttle and set it to the proper place in its animation ***
-- Create_Cinematic_Transport(object_type_name, player_id, transport_pos, zangle, phase_mode, anim_delta, idle_time, persist,hint)
-- TRANSPORT_PHASE_LANDING = 1, TRANSPORT_PHASE_UNLOADING = 2, TRANSPORT_PHASE_LEAVING = 3
emperor_tyderium_shuttle = Create_Cinematic_Transport("Shuttle_Tyderium_Landing", imperial_player.Get_ID(), emperor_shuttle_pos, 0, 1, 0.25, 20, 1)
if not emperor_tyderium_shuttle then
--MessageBox("Couldn't create the emperors shuttle!!!")
ScriptExit()
end
-- Set the tactical camera to the emperor
Point_Camera_At(emperor_move_to_pos_1)
-- Start the Cinematic Camera
Start_Cinematic_Camera()
Set_Cinematic_Camera_Key(emperor_tyderium_shuttle, 180, 4, 88, 1, 0, 0, 0)
Set_Cinematic_Target_Key(emperor_tyderium_shuttle, 0, 50, 5, 0, emperor_tyderium_shuttle, 0, 1)
guard_palpatine_1.Prevent_AI_Usage(true)
guard_palpatine_2.Prevent_AI_Usage(true)
emperor_palpatine.Hide(true)
guard_palpatine_1.Hide(true)
guard_palpatine_2.Hide(true)
Hide_Sub_Object(emperor_palpatine, 1, "lightsaber")
-- Disable holster weapon
Dead_Bothans_1.Hide(true)
Dead_Bothans_2.Hide(true)
Dead_Bothans_3.Hide(true)
Dead_Bothans_4.Hide(true)
Dead_Bothans_5.Hide(true)
Dead_Bothans_6.Hide(true)
Dead_Bothans_7.Hide(true)
Dead_Bothans_8.Hide(true)
Dead_Bothans_9.Hide(true)
Dead_Bothans_10.Hide(true)
Dead_Bothans_11.Hide(true)
Dead_Bothans_12.Hide(true)
Dead_Bothans_13.Hide(true)
-- Fade the screen in on the opening
Fade_Screen_In(1)
Transition_Cinematic_Camera_Key(emperor_tyderium_shuttle, 6, 180, 4, 75, 1, 0, 0, 0)
Sleep(7)
-- Set Camera shot of the Bothans Bowing
Set_Cinematic_Camera_Key(bothan_1, 20, 35, 300, 1, 0, 0, 0)
Set_Cinematic_Target_Key(bothan_1, 15, 15, 130, 1, 0, 0, 0)
Transition_Cinematic_Camera_Key(bothan_1, 5, 25, 40, 300, 1, 0, 0, 0)
Transition_Cinematic_Target_Key(bothan_1, 5, 15, 0, 130, 1, 0, 0, 0)
bothan_1.Play_Animation("cinematic", false, 1)
Sleep(.1)
bothan_2.Play_Animation("cinematic", false, 1)
bothan_3.Play_Animation("cinematic", false, 1)
Sleep(.1)
bothan_4.Play_Animation("cinematic", false, 1)
Sleep(.1)
bothan_5.Play_Animation("cinematic", false, 1)
bothan_6.Play_Animation("cinematic", false, 1)
Sleep(.1)
bothan_7.Play_Animation("cinematic", false, 1)
emperor_palpatine.Hide(false)
guard_palpatine_1.Hide(false)
guard_palpatine_2.Hide(false)
emperor_palpatine.Teleport(emperor_move_to_pos_1)
guard_palpatine_1.Teleport(emperor_guard_move_to_pos_1)
guard_palpatine_2.Teleport(emperor_guard_move_to_pos_2)
Sleep(2.0)
emperor_palpatine.Play_Animation("cinematic", false, 0)
guard_palpatine_1.Play_Animation("cinematic", false, 0)
guard_palpatine_2.Play_Animation("cinematic", false, 0)
Sleep(0.3)
Set_Cinematic_Camera_Key(emperor_palpatine, 20, 20, 90, 1, 0, 0, 0)
Set_Cinematic_Target_Key(emperor_tyderium_shuttle, 0, 0, 30, 0, 0, 0, 0)
bothan_1.Play_Animation("cinematic", true, 2)
bothan_2.Play_Animation("cinematic", true, 2)
bothan_3.Play_Animation("cinematic", true, 2)
bothan_4.Play_Animation("cinematic", true, 2)
bothan_5.Play_Animation("cinematic", true, 2)
bothan_6.Play_Animation("cinematic", true, 2)
bothan_7.Play_Animation("cinematic", true, 2)
-- Signal the XML script that lua is done handling the beginning of the mission
Story_Event("LUA_EM09_BEGIN_FINISHED")
Sleep(3)
Set_Cinematic_Camera_Key(emperor_tyderium_shuttle, 170, 3, 75, 1, 0, 0, 0)
Set_Cinematic_Target_Key(emperor_palpatine, 0, 0, 10, 0, 0, 0, 0)
Sleep(3)
emperor_palpatine.Play_Animation("cinematic", true, 1)
end
end
-- Emperor speaks
function State_Empire_ActIII_M09_03(message)
if message == OnEnter then
-- Fry the first bothan
bothan_1.Change_Owner(bothan_player)
bothan_2.Change_Owner(bothan_player)
bothan_3.Change_Owner(bothan_player)
bothan_4.Change_Owner(bothan_player)
bothan_5.Change_Owner(bothan_player)
bothan_6.Change_Owner(bothan_player)
bothan_7.Change_Owner(bothan_player)
--bothan_1.Prevent_Opportunity_Fire(true)
--bothan_2.Prevent_Opportunity_Fire(true)
--bothan_3.Prevent_Opportunity_Fire(true)
--bothan_4.Prevent_Opportunity_Fire(true)
--bothan_5.Prevent_Opportunity_Fire(true)
--bothan_6.Prevent_Opportunity_Fire(true)
--bothan_7.Prevent_Opportunity_Fire(true)
Sleep(.2)
emperor_palpatine.Activate_Ability("force_lightning", bothan_1)
Transition_Cinematic_Target_Key(emperor_palpatine, 3, 0, 40, 0, 0, 0, 0, 0)
emperor_palpatine.Reset_Ability_Counter()
Sleep(5)
Suspend_AI(0)
Lock_Controls(0)
-- Enable holster weapon
emperor_palpatine.Enable_Behavior(78, true)
Hide_Sub_Object(emperor_palpatine, 0, "lightsaber")
Transition_To_Tactical_Camera(2)
Sleep(1)
Letter_Box_Out(1)
Sleep(1)
End_Cinematic_Camera()
Sleep(5)
for i, structure in pairs(structure_list) do
Add_Radar_Blip(structure, "somename")
structure.Highlight(true, 50)
end
flag_intialized = true
Story_Event("MISSION_BEGINNING_HINT")
end
end
-- Called after win condition is met
function State_Empire_ActIII_M09_WIN_CONDITION(message)
if message == OnEnter then
Create_Thread("EM09_Ending_Cinematic")
end
end
function EM09_Ending_Cinematic()
--vehicle_delete_list = Find_All_Objects_Of_Type("T2B_Tank")
--for i, unit in pairs(vehicle_delete_list) do
-- unit.Despawn()
--end
--vehicle_delete_list = Find_All_Objects_Of_Type("Squad_Plex_Soldier")
--for i, unit in pairs(vehicle_delete_list) do
-- unit.Despawn()
--end
emperor_palpatine.In_End_Cinematic(true)
Dead_Bothans_1.In_End_Cinematic(true)
Dead_Bothans_2.In_End_Cinematic(true)
Dead_Bothans_3.In_End_Cinematic(true)
Dead_Bothans_4.In_End_Cinematic(true)
Dead_Bothans_5.In_End_Cinematic(true)
Dead_Bothans_6.In_End_Cinematic(true)
Dead_Bothans_7.In_End_Cinematic(true)
Dead_Bothans_8.In_End_Cinematic(true)
Dead_Bothans_9.In_End_Cinematic(true)
Dead_Bothans_10.In_End_Cinematic(true)
Dead_Bothans_11.In_End_Cinematic(true)
Dead_Bothans_12.In_End_Cinematic(true)
Dead_Bothans_13.In_End_Cinematic(true)
Do_End_Cinematic_Cleanup()
Fade_Screen_Out(1)
Sleep(3)
Suspend_AI(1)
Lock_Controls(1)
Letter_Box_In(0)
emperor_palpatine.Teleport(emperor_end_cinematic_start)
emperor_palpatine.Face_Immediate(emperor_Finalstop_Move_to)
Sleep(0.5)
-- Unhide Dead Bothans
Dead_Bothans_1.Hide(false)
Dead_Bothans_2.Hide(false)
Dead_Bothans_3.Hide(false)
Dead_Bothans_4.Hide(false)
Dead_Bothans_5.Hide(false)
Dead_Bothans_6.Hide(false)
Dead_Bothans_7.Hide(false)
Dead_Bothans_8.Hide(false)
Dead_Bothans_9.Hide(false)
Dead_Bothans_10.Hide(false)
Dead_Bothans_11.Hide(false)
Dead_Bothans_12.Hide(false)
Dead_Bothans_13.Hide(false)
Start_Cinematic_Camera()
Sleep(2)
Set_Cinematic_Camera_Key(emperor_palpatine, 40, 5, 5, 1, emperor_palpatine, 1, 0)
Set_Cinematic_Target_Key(emperor_palpatine, 0, 0, 20, 0, 0, 0, 0)
Transition_Cinematic_Camera_Key(emperor_palpatine, 10, 130, 30, 30, 1, 0, 0, 0)
Transition_Cinematic_Target_Key(emperor_Finalstop_Move_to, 3.1, 0, 0, 10, 0, 0, 0, 0)
Fade_Screen_In(2)
--BlockOnCommand(emperor_palpatine.Move_To(emperor_Finalstop_Move_to))
BlockOnCommand(emperor_palpatine.Move_To(emperor_Finalstop_Move_to), 5)
Sleep(1)
Hide_Sub_Object(emperor_palpatine, 1, "lightsaber")
emperor_palpatine.Play_Animation("cinematic", true, 1)
Story_Event("LUA_EM09_START_END")
--Sleep(3)
end
-- Called after final emperor speech is started
function State_Empire_ActIII_M09_WIN_CONDITION_01(message)
if message == OnEnter then
Sleep(2)
Fade_Screen_Out(2)
Sleep(2)
Hide_Sub_Object(emperor_palpatine, 0, "lightsaber")
Suspend_AI(0)
Lock_Controls(0)
Letter_Box_Out(0)
End_Cinematic_Camera()
Story_Event("LUA_EM09_FINISHED_END")
end
end
function Story_Mode_Service()
if not flag_intialized then
return
end
if not TestValid(building_01) and not flag_building01_dead then
flag_building01_dead = true
end
if not TestValid(building_02) and not flag_building02_dead then
flag_building02_dead = true
end
if not TestValid(building_03) and not flag_building03_dead then
flag_building03_dead = true
end
if not TestValid(building_04) and not flag_building04_dead then
flag_building04_dead = true
end
if not TestValid(building_05) and not flag_building05_dead then
flag_building05_dead = true
end
if not TestValid(building_06) and not flag_building06_dead then
flag_building06_dead = true
end
if not TestValid(building_07) and not flag_building07_dead then
flag_building07_dead = true
end
if not TestValid(building_08) and not flag_building08_dead then
flag_building08_dead = true
end
if flag_building01_dead and
flag_building02_dead and
flag_building03_dead and
flag_building04_dead and
flag_building05_dead and
flag_building06_dead and
flag_building07_dead and
flag_building08_dead and
not flag_map_revealed then
if TestValid(emperor_palpatine) then
flag_map_revealed = true
--MessageBox("revealing map")
fog_id = FogOfWar.Reveal(imperial_player,emperor_palpatine.Get_Position(),200000,200000)
end
end
end