130 lines
3.6 KiB
Lua
130 lines
3.6 KiB
Lua
-- $Id: //depot/Projects/StarWars/Run/Data/Scripts/FreeStore/HumanGalacticFreeStore.lua#2 $
|
|
--/////////////////////////////////////////////////////////////////////////////////////////////////
|
|
--
|
|
-- (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/Run/Data/Scripts/FreeStore/HumanGalacticFreeStore.lua $
|
|
--
|
|
-- Original Author: James Yarrow
|
|
--
|
|
-- $Author: Brian_Hayes $
|
|
--
|
|
-- $Change: 20677 $
|
|
--
|
|
-- $DateTime: 2005/06/24 17:01:12 $
|
|
--
|
|
-- $Revision: #2 $
|
|
--
|
|
--/////////////////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
require("pgcommands")
|
|
require("FleetEvents")
|
|
|
|
function Base_Definitions()
|
|
|
|
ServiceRate = 1
|
|
|
|
Common_Base_Definitions()
|
|
|
|
if Definitions then
|
|
Definitions()
|
|
end
|
|
|
|
FleetType = nil
|
|
fleet_table = {}
|
|
fleet_key = nil
|
|
fleet = nil
|
|
increment = 0.001
|
|
roll = nil
|
|
threshold = 0.0
|
|
event = nil
|
|
parent = nil
|
|
|
|
Init_Fleet_Events()
|
|
end
|
|
|
|
function main()
|
|
|
|
FleetType = Find_Object_Type("Galactic_Fleet")
|
|
|
|
if FreeStoreService then
|
|
while 1 do
|
|
FreeStoreService()
|
|
PumpEvents()
|
|
end
|
|
end
|
|
|
|
ScriptExit()
|
|
end
|
|
|
|
function On_Unit_Service(object)
|
|
parent = object.Get_Parent_Object()
|
|
if parent and parent.Get_Type() == FleetType then
|
|
fleet_table[parent] = parent
|
|
end
|
|
end
|
|
|
|
function FreeStoreService()
|
|
for fleet_key, fleet in pairs(fleet_table) do
|
|
if TestValid(fleet) then
|
|
Evaluate_Random_Event(fleet)
|
|
else
|
|
fleet_table[fleet_key] = nil
|
|
end
|
|
Sleep(0.5)
|
|
end
|
|
end
|
|
|
|
function Evaluate_Random_Event(fleet)
|
|
|
|
event = FleetEventTable.Sample()
|
|
|
|
if not event.Is_Appropriate_For_Fleet(fleet) then
|
|
return
|
|
end
|
|
|
|
--roll to determine whether an event takes place. The chance of an event
|
|
--increases with the amount of time that's passed with no event.
|
|
roll = GameRandom.Get_Float()
|
|
|
|
if roll > threshold then
|
|
threshold = increment + threshold
|
|
return
|
|
end
|
|
|
|
threshold = 0.0
|
|
|
|
if GameRandom.Get_Float() > event.Get_Avoidance_Chance(fleet) then
|
|
--Execute event
|
|
event.Execute(fleet)
|
|
else
|
|
--Inform user that event was avoided
|
|
event.Avoided(fleet)
|
|
end
|
|
|
|
end
|
|
|
|
function On_Unit_Added(object)
|
|
end |