Initial commit
This commit is contained in:
161
DATA/SCRIPTS/GAMEOBJECT/SANDCRAWLER.LUA
Normal file
161
DATA/SCRIPTS/GAMEOBJECT/SANDCRAWLER.LUA
Normal file
@@ -0,0 +1,161 @@
|
||||
-- $Id: //depot/Projects/StarWars_Steam/FOC/Run/Data/Scripts/GameObject/SandCrawler.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/SandCrawler.lua $
|
||||
--
|
||||
-- Original Author: Brian Hayes
|
||||
--
|
||||
-- $Author: Brian_Hayes $
|
||||
--
|
||||
-- $Change: 637819 $
|
||||
--
|
||||
-- $DateTime: 2017/03/22 10:16:16 $
|
||||
--
|
||||
-- $Revision: #1 $
|
||||
--
|
||||
--/////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
require("PGStateMachine")
|
||||
|
||||
--
|
||||
-- This is a pretty simple trigger script.
|
||||
-- It just listens for any object entering a box of 100 meters centered on the marker
|
||||
--
|
||||
-- 4/29/2005 10:50:24 AM -- BMH
|
||||
--
|
||||
|
||||
|
||||
--
|
||||
-- Definitions -- This function is called once when the script is first created.
|
||||
--
|
||||
-- @since 4/29/2005 10:51:40 AM -- BMH
|
||||
--
|
||||
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
|
||||
|
||||
-- half-width of the box around our object.
|
||||
object_trap_size = 80
|
||||
|
||||
DebugMessage("%s -- In Definitions", tostring(Script))
|
||||
|
||||
Define_State("State_Init", State_Init);
|
||||
Define_State("State_Object_Is_Damaged", State_Object_Is_Damaged);
|
||||
|
||||
end
|
||||
|
||||
|
||||
--
|
||||
-- State_Object_In_Range -- We've caught an object.
|
||||
--
|
||||
-- @param message The message describing our progression through this state. OnEnter, OnUpdate, OnExit.
|
||||
-- @since 4/29/2005 10:51:40 AM -- BMH
|
||||
--
|
||||
function State_Object_Is_Damaged(message)
|
||||
if message == OnEnter then
|
||||
DebugMessage("%s -- State_Object_Is_Damaged(OnEnter), Caught %s", tostring(Script), tostring(caught_object))
|
||||
|
||||
marker = Find_Hint("E3Demo_Marker_Tanks", "Tank_Marker");
|
||||
-- marker = Find_Hint("E3Demo_Marker_Tanks");
|
||||
|
||||
DebugMessage("%s -- Got marker %s", tostring(Script), tostring(marker))
|
||||
Point_Camera_At(marker)
|
||||
units = BlockOnCommand(Reinforce_Unit(reinforce_type, marker, caught_object.Get_Owner().Get_Enemy()))
|
||||
-- units = Spawn_Unit(reinforce_type, marker, caught_object.Get_Owner().Get_Enemy())
|
||||
|
||||
for i,unit in ipairs(units) do
|
||||
unit.Prevent_AI_Usage(true)
|
||||
unit.Attack_Move(caught_object)
|
||||
DebugMessage("%s -- Issued move order for unit %s", tostring(Script), tostring(unit))
|
||||
end
|
||||
|
||||
-- Sleep for 60 seconds then reset the trap.
|
||||
-- Sleep(60)
|
||||
|
||||
-- Go back to State_Init to reset the trap.
|
||||
-- Set_Next_State("State_Init")
|
||||
|
||||
elseif message == OnUpdate then
|
||||
elseif message == OnExit then
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
--
|
||||
-- State_Init -- The Init state. Set our trap to catch an object.
|
||||
--
|
||||
-- @param message The message describing our progression through this state. OnEnter, OnUpdate, OnExit.
|
||||
-- @since 4/29/2005 10:51:40 AM -- BMH
|
||||
--
|
||||
function State_Init(message)
|
||||
|
||||
if message == OnEnter then
|
||||
-- When an object enters within 50 meters call our event.
|
||||
DebugMessage("%s -- State_Init(OnEnter)", tostring(Script))
|
||||
Object.Event_Object_In_Range(object_in_range_handler, object_trap_size)
|
||||
|
||||
reinforce_type = Find_Object_Type("Rebel_Light_Tank_Brigade")
|
||||
storm_type = Find_Object_Type("Stormtrooper")
|
||||
|
||||
elseif message == OnUpdate then
|
||||
|
||||
-- if Object.Get_Hull() < 1.0 then
|
||||
-- Set_Next_State("State_Object_Is_Damaged")
|
||||
-- end
|
||||
|
||||
elseif message == OnExit then
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
|
||||
--
|
||||
-- object_in_range_handler -- Our object in range callback handler. Passed into the
|
||||
-- Object.Event_Object_In_Range function during State_Init.
|
||||
--
|
||||
-- @param object GameObject of the object that entered our box
|
||||
-- @since 4/29/2005 10:51:40 AM -- BMH
|
||||
--
|
||||
function object_in_range_handler(prox_obj, object)
|
||||
|
||||
if object.Get_Type() ~= storm_type then
|
||||
return
|
||||
end
|
||||
-- DebugMessage("%s -- Object %s in range.", tostring(Script), tostring(object))
|
||||
|
||||
-- Cancel the object in range event from signaling anymore.
|
||||
Object.Cancel_Event_Object_In_Range(object_in_range_handler)
|
||||
|
||||
-- gotcha!
|
||||
caught_object = object;
|
||||
|
||||
-- Advance our state to Object_In_Range
|
||||
Set_Next_State("State_Object_Is_Damaged")
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user