Initial commit
This commit is contained in:
276
DATA/SCRIPTS/STORY/STORY_REBEL_ACTIII_M09_LAND.LUA
Normal file
276
DATA/SCRIPTS/STORY/STORY_REBEL_ACTIII_M09_LAND.LUA
Normal file
@@ -0,0 +1,276 @@
|
||||
--/////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
--
|
||||
-- (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
|
||||
}
|
||||
|
||||
at_at_list = {}
|
||||
power_generator = nil
|
||||
han_made_it = false
|
||||
chewie_made_it = false
|
||||
|
||||
spawn1 = {
|
||||
"Imperial_Stormtrooper_Squad"
|
||||
}
|
||||
|
||||
spawn2 = {
|
||||
"Imperial_Anti_Infantry_Brigade"
|
||||
}
|
||||
|
||||
spawn3 = {
|
||||
"Imperial_Armor_Group"
|
||||
}
|
||||
|
||||
spawn4 = {
|
||||
"Imperial_Stormtrooper_Squad",
|
||||
}
|
||||
|
||||
start_service = false
|
||||
|
||||
end
|
||||
|
||||
-----------------------------------------------------------------------------------------------------------------------
|
||||
-- Generator Destroyed
|
||||
-----------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
function GeneratorDestroyed()
|
||||
|
||||
Story_Event("GENERATOR_DESTROYED")
|
||||
|
||||
-- Release the ATAT's
|
||||
for i,unit in pairs(at_at_list) do
|
||||
unit.Attack_Move(han)
|
||||
end
|
||||
|
||||
-- Set up trigger for when Han and Chewie get to the cargo area
|
||||
cargo_area = Find_Hint("GENERIC_MARKER_LAND", "cargoarea")
|
||||
cargo_range = 100
|
||||
Register_Prox(cargo_area, Prox_Cargo, cargo_range, rebel)
|
||||
|
||||
-- Hack! wipe out turbo-lasers when generator blows
|
||||
turbo_lasers = Find_All_Objects_Of_Type("E_GROUND_TURBOLASER_TOWER")
|
||||
for i,unit in pairs(turbo_lasers) do
|
||||
unit.Take_Damage(10000)
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
-----------------------------------------------------------------------------------------------------------------------
|
||||
-- Spawn_Ambush_Squad - Spawns a squad of units and sends them to attack Han and Chewie
|
||||
-----------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
function Spawn_Ambush_Squad(spawn_marker_name,spawn_type_list)
|
||||
|
||||
spawn_marker = Find_Hint("GENERIC_MARKER_LAND", spawn_marker_name)
|
||||
if not spawn_marker then
|
||||
--MessageBox("Couldn't find spawn marker %s",spawn_marker_name)
|
||||
end
|
||||
|
||||
new_units = SpawnList(spawn_type_list,spawn_marker,empire,false,true)
|
||||
for i,unit in pairs(new_units) do
|
||||
unit.Attack_Move(han)
|
||||
end
|
||||
end
|
||||
|
||||
-----------------------------------------------------------------------------------------------------------------------
|
||||
-- Prox_Cargo
|
||||
-----------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
function Prox_Cargo(prox_obj, trigger_obj)
|
||||
|
||||
prox_obj.Cancel_Event_Object_In_Range(Prox_Cargo)
|
||||
|
||||
-- Ambush!
|
||||
Spawn_Ambush_Squad("spawn1",spawn1)
|
||||
Spawn_Ambush_Squad("spawn2",spawn2)
|
||||
Spawn_Ambush_Squad("spawn3",spawn3)
|
||||
Spawn_Ambush_Squad("spawn4",spawn4)
|
||||
|
||||
Story_Event("REACHED_CARGO")
|
||||
|
||||
falcon_marker = Find_Hint("GENERIC_MARKER_LAND", "falcon")
|
||||
if not falcon_marker then
|
||||
--MessageBox("Couldn't find the falcon marker")
|
||||
end
|
||||
falcon_range = 100
|
||||
Register_Prox(falcon_marker, Prox_Falcon, falcon_range, rebel)
|
||||
--MessageBox("Registered Prox_Falcon")
|
||||
end
|
||||
|
||||
|
||||
-----------------------------------------------------------------------------------------------------------------------
|
||||
-- Prox_Falcon
|
||||
-----------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
function Prox_Falcon(prox_obj, trigger_obj)
|
||||
|
||||
--MessageBox("Prox_Falcon triggered")
|
||||
|
||||
if trigger_obj == han then
|
||||
--MessageBox("Han Made It")
|
||||
han_made_it = true
|
||||
end
|
||||
|
||||
if trigger_obj == chewie then
|
||||
--MessageBox("Chewie Made It")
|
||||
chewie_made_it = true
|
||||
end
|
||||
|
||||
if han_made_it and chewie_made_it then
|
||||
--MessageBox("Han and Chewie made it")
|
||||
Story_Event("REACHED_FALCON") -- victory!
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
-----------------------------------------------------------------------------------------------------------------------
|
||||
-- Tell_Units_To_Guard
|
||||
-----------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
function Tell_Units_To_Guard(unit_list)
|
||||
|
||||
for i, unit in pairs(unit_list) do
|
||||
if unit.Get_Hint() ~= "disabled" then
|
||||
unit.Guard_Target(unit.Get_Position())
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
|
||||
-----------------------------------------------------------------------------------------------------------------------
|
||||
-- Function for Event:
|
||||
-----------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
|
||||
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)
|
||||
|
||||
DebugMessage("]]]] LUA: State_Rebel_M06_Begin")
|
||||
|
||||
-- Get handles to Han and Chewie
|
||||
han_list = Find_All_Objects_Of_Type("HAN_SOLO")
|
||||
han = han_list[1]
|
||||
chewie_list = Find_All_Objects_Of_Type("CHEWBACCA")
|
||||
chewie = chewie_list[1]
|
||||
|
||||
|
||||
-- For debugging purposes! TAKE OUT --
|
||||
--han.Make_Invulnerable(true)
|
||||
--chewie.Make_Invulnerable(true)
|
||||
-- For debugging purposes! TAKE OUT --
|
||||
|
||||
|
||||
-- Get Players
|
||||
spawn1_marker = Find_Hint("GENERIC_MARKER_LAND", "spawn1")
|
||||
empire = Find_Player("Empire")
|
||||
rebel = Find_Player("Rebel")
|
||||
|
||||
|
||||
-- Find the At-At's that we are going to activate
|
||||
at_at_list = Find_All_Objects_Of_Type("AT_AT_WALKER_REB09")
|
||||
|
||||
|
||||
-- Find the power_generator
|
||||
power_generator_list = Find_All_Objects_Of_Type("POWER_GENERATOR_E")
|
||||
power_generator = power_generator_list[1]
|
||||
if not power_generator then
|
||||
--MessageBox("Couldn't Find Empire Power Generator!")
|
||||
return
|
||||
end
|
||||
|
||||
|
||||
-- Release some units when the generator goes down
|
||||
Register_Death_Event(power_generator,GeneratorDestroyed)
|
||||
|
||||
|
||||
-- Find all disabled objects
|
||||
disabled_list = Find_All_Objects_With_Hint("disabled")
|
||||
for i,unit in pairs(disabled_list) do
|
||||
--DebugMessage("]]]] disabling unit %s",unit.Get_Type().Get_Name())
|
||||
unit.Prevent_Opportunity_Fire(true)
|
||||
end
|
||||
|
||||
|
||||
-- Set most of the units to guard
|
||||
--MessageBox("Set to defend mode")
|
||||
guard_list = Find_All_Objects_Of_Type("STORMTROOPER_TEAM")
|
||||
Tell_Units_To_Guard(guard_list)
|
||||
guard_list = Find_All_Objects_Of_Type("AT_ST_WALKER")
|
||||
Tell_Units_To_Guard(guard_list)
|
||||
guard_list = Find_All_Objects_Of_Type("TIE_CRAWLER")
|
||||
Tell_Units_To_Guard(guard_list)
|
||||
--MessageBox("Done setting defend mode")
|
||||
|
||||
|
||||
-- Tell the service func that things have been initialized
|
||||
start_service = true
|
||||
|
||||
end
|
||||
end
|
||||
|
||||
-----------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
function Story_Mode_Service()
|
||||
|
||||
if start_service then
|
||||
if not TestValid(han) or not TestValid(chewie) then
|
||||
Story_Event("HAN_OR_CHEWIE_KILLED")
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
-----------------------------------------------------------------------------------------------------------------------
|
||||
Reference in New Issue
Block a user