mirror of
https://github.com/FlightControl-Master/MOOSE.git
synced 2025-10-29 16:58:06 +00:00
Added Templating from a SET_GROUP object
This commit is contained in:
parent
126810a273
commit
6d2e8d34fb
@ -1,4 +1,4 @@
|
|||||||
--- **Functional** -- Spawn dynamically new GROUPs in your missions.
|
--- **Core** -- SPAWN class dynamically spawns new groups of units in your missions.
|
||||||
--
|
--
|
||||||
-- 
|
-- 
|
||||||
--
|
--
|
||||||
@ -55,8 +55,12 @@
|
|||||||
|
|
||||||
--- # SPAWN class, extends @{Base#BASE}
|
--- # SPAWN class, extends @{Base#BASE}
|
||||||
--
|
--
|
||||||
|
-- -- 
|
||||||
|
--
|
||||||
|
-- ===
|
||||||
|
--
|
||||||
-- The SPAWN class allows to spawn dynamically new groups.
|
-- The SPAWN class allows to spawn dynamically new groups.
|
||||||
-- Each SPAWN object needs to be have a related **template group** setup in the Mission Editor (ME),
|
-- Each SPAWN object needs to be have related **template groups** setup in the Mission Editor (ME),
|
||||||
-- which is a normal group with the **Late Activation** flag set.
|
-- which is a normal group with the **Late Activation** flag set.
|
||||||
-- This template group will never be activated in your mission.
|
-- This template group will never be activated in your mission.
|
||||||
-- SPAWN uses that **template group** to reference to all the characteristics
|
-- SPAWN uses that **template group** to reference to all the characteristics
|
||||||
@ -521,6 +525,43 @@ function SPAWN:InitRandomizeTemplate( SpawnTemplatePrefixTable )
|
|||||||
return self
|
return self
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
|
--- Randomize templates to be used as the unit representatives for the Spawned group.
|
||||||
|
-- This method becomes useful when you need to spawn groups with random templates of groups defined within the mission editor,
|
||||||
|
-- but they will all follow the same Template route and have the same prefix name.
|
||||||
|
-- In other words, this method randomizes between a defined set of groups the template to be used for each new spawn of a group.
|
||||||
|
-- @param #SPAWN self
|
||||||
|
-- @param Core.Set#SET_GROUP SpawnTemplateSet A SET_GROUP object set, that contains the groups that are possible unit representatives of the group to be spawned.
|
||||||
|
-- @return #SPAWN
|
||||||
|
-- @usage
|
||||||
|
-- -- NATO Tank Platoons invading Gori.
|
||||||
|
--
|
||||||
|
-- -- Choose between different 'US Tank Platoon Template' configurations to be spawned for the
|
||||||
|
-- -- 'US Tank Platoon Left', 'US Tank Platoon Middle' and 'US Tank Platoon Right' SPAWN objects.
|
||||||
|
--
|
||||||
|
-- -- Each new SPAWN will randomize the route, with a defined time interval of 200 seconds with 40% time variation (randomization) and
|
||||||
|
-- -- with a limit set of maximum 12 Units alive simulteneously and 150 Groups to be spawned during the whole mission.
|
||||||
|
--
|
||||||
|
-- Spawn_US_PlatoonSet = SET_GROUP:New():FilterPrefixes( "US Tank Platoon Templates" ):FilterOnce()
|
||||||
|
--
|
||||||
|
-- --- Now use the Spawn_US_PlatoonSet to define the templates using InitRandomizeTemplateSet.
|
||||||
|
-- Spawn_US_Platoon_Left = SPAWN:New( 'US Tank Platoon Left' ):InitLimit( 12, 150 ):Schedule( 200, 0.4 ):InitRandomizeTemplateSet( Spawn_US_PlatoonSet ):InitRandomizeRoute( 3, 3, 2000 )
|
||||||
|
-- Spawn_US_Platoon_Middle = SPAWN:New( 'US Tank Platoon Middle' ):InitLimit( 12, 150 ):Schedule( 200, 0.4 ):InitRandomizeTemplateSet( Spawn_US_PlatoonSet ):InitRandomizeRoute( 3, 3, 2000 )
|
||||||
|
-- Spawn_US_Platoon_Right = SPAWN:New( 'US Tank Platoon Right' ):InitLimit( 12, 150 ):Schedule( 200, 0.4 ):InitRandomizeTemplateSet( Spawn_US_PlatoonSet ):InitRandomizeRoute( 3, 3, 2000 )
|
||||||
|
function SPAWN:InitRandomizeTemplateSet( SpawnTemplateSet )
|
||||||
|
self:F( { self.SpawnTemplatePrefix } )
|
||||||
|
|
||||||
|
self.SpawnTemplatePrefixTable = SpawnTemplateSet:GetSetNames()
|
||||||
|
self.SpawnRandomizeTemplate = true
|
||||||
|
|
||||||
|
for SpawnGroupID = 1, self.SpawnMaxGroups do
|
||||||
|
self:_RandomizeTemplate( SpawnGroupID )
|
||||||
|
end
|
||||||
|
|
||||||
|
return self
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
--- When spawning a new group, make the grouping of the units according the InitGrouping setting.
|
--- When spawning a new group, make the grouping of the units according the InitGrouping setting.
|
||||||
-- @param #SPAWN self
|
-- @param #SPAWN self
|
||||||
-- @param #number Grouping Indicates the maximum amount of units in the group.
|
-- @param #number Grouping Indicates the maximum amount of units in the group.
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user