106 lines
4.2 KiB
Lua
106 lines
4.2 KiB
Lua
-- $Id: //depot/Projects/StarWars_Steam/FOC/Run/Data/Scripts/GameObject/E3_Felucia_Zone.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/GameObject/E3_Felucia_Zone.lua $
|
|
--
|
|
-- Original Author: Jeff_Stewart
|
|
--
|
|
-- $Author: Brian_Hayes $
|
|
--
|
|
-- $Change: 637819 $
|
|
--
|
|
-- $DateTime: 2017/03/22 10:16:16 $
|
|
--
|
|
-- $Revision: #1 $
|
|
--
|
|
--/////////////////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
require("PGStateMachine")
|
|
require("PGSpawnUnits")
|
|
|
|
function Definitions()
|
|
|
|
-- Object isn't valid at this point so don't do any operations that
|
|
-- would require it. State_Init is the first chance you have to do
|
|
-- operations on Object
|
|
|
|
DebugMessage("%s -- In Definitions", tostring(Script))
|
|
Define_State("State_Init", State_Init);
|
|
end
|
|
|
|
|
|
function State_Init(message)
|
|
if message == OnEnter then
|
|
-- Register a prox event that looks for any nearby units
|
|
empire_player = Find_Player("Empire")
|
|
underworld_player = Find_Player("Underworld")
|
|
reinforce_list = {
|
|
"Imperial_Stormtrooper_Squad"
|
|
}
|
|
Register_Prox(Object, Reinforce_Point, 50, underworld_player)
|
|
elseif message == OnUpdate then
|
|
--Do Nothing
|
|
elseif message == OnExit then
|
|
end
|
|
end
|
|
|
|
function Reinforce_Point()
|
|
--This function tests whether tyber zann is close to the landing platform
|
|
--if so, we drop off a few stormtroopers, if not set the timer a little shorter
|
|
--so that we check again earlier
|
|
Object.Play_SFX_Event("SFX_UMP_EmpireKesselAlarm")
|
|
--function ReinforceList(type_list, entry_marker, player, allow_ai_usage, delete_after_scenario, ignore_reinforcement_rules, callback)
|
|
--ReinforceList(reinforce_list, Object, empire_player, false, true, true, Find_And_Attack)
|
|
|
|
player_unit_list = Find_All_Objects_Of_Type(empire_player)
|
|
closest_infantry = Find_Nearest(Object, underworld_player, true)
|
|
area = closest_infantry.Get_Position()
|
|
|
|
for i, player_unit in pairs(player_unit_list) do
|
|
if TestValid(player_unit) then
|
|
--MessageBox("Player_Back_To_Vulnerable")
|
|
player_unit.Attack_Move(area)
|
|
end
|
|
end
|
|
end
|
|
|
|
function Find_And_Attack(attack_list)
|
|
--This function is passed to every unloaded storm trooper squad
|
|
--the squads look for tyber's location and attack move towards it
|
|
closest_infantry = Find_Nearest(Object, underworld_player, true)
|
|
--tyber_zann=Find_First_Object("TYBER_ZANN")
|
|
area = closest_infantry.Get_Position()
|
|
for k, unit in pairs(attack_list) do
|
|
if TestValid(unit) then
|
|
if TestValid(closest_infantry) then
|
|
unit.Attack_Move(area)
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|