Initial commit
This commit is contained in:
318
DATA/SCRIPTS/STORY/STORY_EMPIRE_ACTI_M04_LAND.LUA
Normal file
318
DATA/SCRIPTS/STORY/STORY_EMPIRE_ACTI_M04_LAND.LUA
Normal file
@@ -0,0 +1,318 @@
|
||||
-- $Id: //depot/Projects/StarWars_Steam/FOC/Run/Data/Scripts/Story/Story_Empire_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_Empire_ActI_M04_LAND.lua $
|
||||
--
|
||||
-- Original Author: Steve_Copeland
|
||||
--
|
||||
-- $Author: Brian_Hayes $
|
||||
--
|
||||
-- $Change: 637819 $
|
||||
--
|
||||
-- $DateTime: 2017/03/22 10:16:16 $
|
||||
--
|
||||
-- $Revision: #1 $
|
||||
--
|
||||
--/////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
require("PGStoryMode")
|
||||
|
||||
--
|
||||
-- Definitions -- This function is called once when the script is first created.
|
||||
--
|
||||
function Definitions()
|
||||
|
||||
StoryModeEvents =
|
||||
{
|
||||
Empire_M04_Land_Begin = State_Empire_M04_Land_Begin
|
||||
}
|
||||
|
||||
reinforcement_list1 = {
|
||||
"Geonosian_Resistors"
|
||||
}
|
||||
|
||||
|
||||
|
||||
-- For memory pool cleanup hints
|
||||
rebel_player = nil
|
||||
flag_spire_1_dead = false
|
||||
flag_spire_2_dead = false
|
||||
flag_spire_3_dead = false
|
||||
flag_spire_4_dead = false
|
||||
flag_spire_5_dead = false
|
||||
flag_spire_6_dead = false
|
||||
|
||||
flag_initialized = false
|
||||
|
||||
counter_spires_killed = 0
|
||||
timer_geonosian_spawn = 60
|
||||
|
||||
fog_id = nil
|
||||
|
||||
end
|
||||
|
||||
function State_Empire_M04_Land_Begin(message)
|
||||
if message == OnEnter then
|
||||
rebel_player = Find_Player("Rebel")
|
||||
ewok_player = Find_Player("Rebel")
|
||||
|
||||
structure_list = Find_All_Objects_Of_Type("GEONOSIAN_SPAWN_HOUSE")
|
||||
|
||||
fog_id = FogOfWar.Reveal_All(rebel_player)
|
||||
|
||||
--spawn some geonosians around the spires
|
||||
geonosian_spawner_table = Find_All_Objects_With_Hint("solo-spawner")
|
||||
|
||||
for i,unit in pairs(geonosian_spawner_table) do
|
||||
SpawnList(reinforcement_list1, unit, ewok_player, true, true)
|
||||
end
|
||||
|
||||
|
||||
|
||||
--MessageBox("about to create intro cine!!!")
|
||||
Create_Thread("Intro_Cinematic")
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
function Geonosian_Spawn_Loop()
|
||||
--MessageBox("Geonosian_Spawn_Loop hit!!!")
|
||||
max_spawn_times = 50
|
||||
current_spawn_times = 0
|
||||
max_geonosians_allowed = 50
|
||||
repeat
|
||||
current_spawn_times = current_spawn_times + 1
|
||||
|
||||
-- Spawn some guys at the first structure that hasn't been destroyed (if any)
|
||||
building_still_standing = false
|
||||
|
||||
for i, building in pairs(structure_list) do
|
||||
if building.Get_Hull() then
|
||||
building_still_standing = true
|
||||
|
||||
current_geonosian_count = 0
|
||||
geonosian_list = Find_All_Objects_Of_Type("GEONOSIAN")
|
||||
|
||||
current_geonosian_count =table.getn(geonosian_list)
|
||||
|
||||
for i, unit in pairs(geonosian_list) do
|
||||
current_geonosian_count = current_geonosian_count + 1
|
||||
end
|
||||
|
||||
--DebugMessage("%s<>Found %i Geonosian objects...spires killed is %i", tostring(Script), current_geonosian_count, counter_spires_killed)
|
||||
|
||||
|
||||
if current_geonosian_count >= max_geonosians_allowed then
|
||||
--MessageBox("more than 100 geonosians...not spawning!!!")
|
||||
break
|
||||
end
|
||||
|
||||
|
||||
--MessageBox("spawning some dudes")
|
||||
geonosian_list = SpawnList(reinforcement_list1, building, ewok_player, true, true)
|
||||
break
|
||||
|
||||
end
|
||||
end
|
||||
|
||||
if counter_spires_killed == 1 then
|
||||
timer_geonosian_spawn = 45
|
||||
end
|
||||
|
||||
if counter_spires_killed == 2 then
|
||||
timer_geonosian_spawn = 30
|
||||
end
|
||||
|
||||
if counter_spires_killed == 3 then
|
||||
timer_geonosian_spawn = 15
|
||||
end
|
||||
|
||||
if counter_spires_killed == 4 then
|
||||
timer_geonosian_spawn = 7
|
||||
end
|
||||
|
||||
if counter_spires_killed >= 5 then
|
||||
timer_geonosian_spawn = 3
|
||||
end
|
||||
|
||||
Sleep(timer_geonosian_spawn)
|
||||
until current_spawn_times > max_spawn_times or not building_still_standing
|
||||
end
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
function Intro_Cinematic()
|
||||
|
||||
--MessageBox("intro cine function hit!!!")
|
||||
-- Lock out controls for intro cinematic and reveal FOW
|
||||
Suspend_AI(1)
|
||||
Lock_Controls(1)
|
||||
Letter_Box_In(0)
|
||||
|
||||
-- now find the cinematic spire and pan around it
|
||||
spire = Find_Hint("GEONOSIAN_SPAWN_HOUSE", "spire4")
|
||||
if not spire then
|
||||
--MessageBox("intro cine Can't find spire!!!")
|
||||
return
|
||||
end
|
||||
|
||||
|
||||
Start_Cinematic_Camera()
|
||||
Fade_Screen_In(.5)
|
||||
|
||||
-- this pans around the geonosian spire...also shows the rebel base
|
||||
|
||||
base_loc = Find_Hint("GENERIC_MARKER_LAND", "rebelbase1")
|
||||
entry_loc = Find_Hint("GENERIC_MARKER_LAND", "entry")
|
||||
|
||||
-- Set_Cinematic_Camera_Key(target_pos, xoffset_dist, yoffset_pitch, zoffset_yaw, angles?, attach_object, use_object_rotation, cinematic_animation)
|
||||
Set_Cinematic_Camera_Key(spire, 400, 6, 30, 1, 0, 0, 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(spire, 0, 0, 0, 0, 0, 0, 0)
|
||||
-- Transition_Cinematic_Camera_Key(target_pos, xoffset_dist, yoffset_pitch, zoffset_yaw, angles?, attach_object, use_object_rotation, cinematic_animation)
|
||||
Transition_Cinematic_Camera_Key(spire, 10, 1200, 12, -60, 1, 0, 0, 0)
|
||||
|
||||
Sleep(5)
|
||||
|
||||
-- This cinematic pans around the Rebel Base.
|
||||
|
||||
-- Set_Cinematic_Camera_Key(target_pos, xoffset_dist, yoffset_pitch, zoffset_yaw, angles?, attach_object, use_object_rotation, cinematic_animation)
|
||||
Set_Cinematic_Camera_Key(base_loc, 400, 6, 30, 1, 0, 0, 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(base_loc, 0, 0, 0, 0, 0, 0, 0)
|
||||
-- Transition_Cinematic_Camera_Key(target_pos, xoffset_dist, yoffset_pitch, zoffset_yaw, angles?, attach_object, use_object_rotation, cinematic_animation)
|
||||
Transition_Cinematic_Camera_Key(base_loc, 6, 800, 30, 120, 1, 0, 0, 0)
|
||||
|
||||
Sleep(6)
|
||||
|
||||
-- Set_Cinematic_Camera_Key(target_pos, xoffset_dist, yoffset_pitch, zoffset_yaw, angles?, attach_object, use_object_rotation, cinematic_animation)
|
||||
Set_Cinematic_Camera_Key(base_loc, 800, 30, 120, 1, 0, 0, 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(base_loc, 0, 0, 0, 0, 0, 0, 0)
|
||||
-- Transition_Cinematic_Target_Key(target_pos, xoffset_dist, yoffset_pitch, zoffset_yaw, angles?, attach_object, use_object_rotation, cinematic_animation)
|
||||
Transition_Cinematic_Target_Key(entry_loc, 1, 0, 0, 0, 1, 0, 0, 0)
|
||||
|
||||
Sleep(0.5)
|
||||
|
||||
Transition_To_Tactical_Camera(5)
|
||||
|
||||
Sleep(5)
|
||||
|
||||
--Fade_Screen_Out(.5)
|
||||
Transition_To_Tactical_Camera(2)
|
||||
--Sleep(2)
|
||||
End_Cinematic_Camera()
|
||||
--Fade_Screen_In(.5)
|
||||
Letter_Box_Out(.5)
|
||||
Lock_Controls(0)
|
||||
Suspend_AI(0)
|
||||
|
||||
spire_1 = Find_Hint("GEONOSIAN_SPAWN_HOUSE", "spire1")
|
||||
spire_2 = Find_Hint("GEONOSIAN_SPAWN_HOUSE", "spire2")
|
||||
spire_3 = Find_Hint("GEONOSIAN_SPAWN_HOUSE", "spire3")
|
||||
spire_4 = Find_Hint("GEONOSIAN_SPAWN_HOUSE", "spire4")
|
||||
spire_5 = Find_Hint("GEONOSIAN_SPAWN_HOUSE", "spire5")
|
||||
spire_6 = Find_Hint("GEONOSIAN_SPAWN_HOUSE", "spire6")
|
||||
|
||||
if TestValid(spire_1) then
|
||||
Add_Radar_Blip(spire_1, "blip_spire1")
|
||||
end
|
||||
|
||||
if TestValid(spire_2) then
|
||||
Add_Radar_Blip(spire_2, "blip_spire2")
|
||||
end
|
||||
|
||||
if TestValid(spire_3) then
|
||||
Add_Radar_Blip(spire_3, "blip_spire3")
|
||||
end
|
||||
|
||||
if TestValid(spire_4) then
|
||||
Add_Radar_Blip(spire_4, "blip_spire4")
|
||||
end
|
||||
|
||||
if TestValid(spire_5) then
|
||||
Add_Radar_Blip(spire_5, "blip_spire5")
|
||||
end
|
||||
|
||||
if TestValid(spire_6) then
|
||||
Add_Radar_Blip(spire_6, "blip_spire6")
|
||||
end
|
||||
flag_initialized = true
|
||||
Geonosian_Spawn_Loop()
|
||||
|
||||
|
||||
end
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
-- Here is an opportunity for updates outside of an event
|
||||
function Story_Mode_Service()
|
||||
|
||||
if not flag_initialized then
|
||||
return
|
||||
end
|
||||
|
||||
if not TestValid(spire_1) and not flag_spire_1_dead then
|
||||
flag_spire_1_dead = true
|
||||
counter_spires_killed = counter_spires_killed + 1
|
||||
end
|
||||
|
||||
if not TestValid(spire_2) and not flag_spire_2_dead then
|
||||
flag_spire_2_dead = true
|
||||
counter_spires_killed = counter_spires_killed + 1
|
||||
end
|
||||
|
||||
if not TestValid(spire_3) and not flag_spire_3_dead then
|
||||
flag_spire_3_dead = true
|
||||
counter_spires_killed = counter_spires_killed + 1
|
||||
end
|
||||
|
||||
if not TestValid(spire_4) and not flag_spire_4_dead then
|
||||
flag_spire_4_dead = true
|
||||
counter_spires_killed = counter_spires_killed + 1
|
||||
end
|
||||
|
||||
if not TestValid(spire_5) and not flag_spire_5_dead then
|
||||
flag_spire_5_dead = true
|
||||
counter_spires_killed = counter_spires_killed + 1
|
||||
end
|
||||
|
||||
if not TestValid(spire_6) and not flag_spire_6_dead then
|
||||
flag_spire_6_dead = true
|
||||
counter_spires_killed = counter_spires_killed + 1
|
||||
end
|
||||
|
||||
end
|
||||
Reference in New Issue
Block a user