Merge pull request #26 from FlightControl-Master/Randomize-Zone-Spawning

Randomize zone spawning
This commit is contained in:
Sven Van de Velde 2016-04-27 15:32:42 +02:00
commit 218e435581
3 changed files with 17 additions and 20 deletions

View File

@ -517,7 +517,7 @@ function CARGO_GROUP:Spawn( Client )
self.CargoGroupName = self.CargoSpawn:SpawnFromUnit( self.CargoZone:GetCargoHostUnit(), 60, 30, 1 ):GetName()
else
--- ReSpawn the Cargo in the CargoZone without a host ...
self.CargoGroupName = self.CargoSpawn:SpawnInZone( self.CargoZone, 1 ):GetName()
self.CargoGroupName = self.CargoSpawn:SpawnInZone( self.CargoZone, true, 1 ):GetName()
end
self:StatusNone()
end

View File

@ -638,14 +638,17 @@ function SPAWN:SpawnFromUnit( HostUnit, OuterRadius, InnerRadius, SpawnIndex )
return nil
end
--- Will spawn a Group within a given @{ZONE}.
--- Will spawn a Group within a given @{Zone#ZONE}.
-- Once the group is spawned within the zone, it will continue on its route.
-- The first waypoint (where the group is spawned) is replaced with the zone coordinates.
-- @param #SPAWN self
-- @param #ZONE Zone The zone where the group is to be spawned.
-- @param Zone#ZONE Zone The zone where the group is to be spawned.
-- @param #number ZoneRandomize (Optional) Set to true if you want to randomize the starting point in the zone.
-- @param #number SpawnIndex (Optional) The index which group to spawn within the given zone.
-- @return Group#GROUP that was spawned.
-- @return #nil when nothing was spawned.
function SPAWN:SpawnInZone( Zone, SpawnIndex )
self:F( { self.SpawnTemplatePrefix, Zone, SpawnIndex } )
function SPAWN:SpawnInZone( Zone, ZoneRandomize, SpawnIndex )
self:F( { self.SpawnTemplatePrefix, Zone, ZoneRandomize, SpawnIndex } )
if Zone then
@ -660,11 +663,14 @@ function SPAWN:SpawnInZone( Zone, SpawnIndex )
if SpawnTemplate then
local ZonePoint = Zone:GetPointVec2()
local ZonePoint
if ZoneRandomize == true then
ZonePoint = Zone:GetRandomPointVec2()
else
ZonePoint = Zone:GetPointVec2()
end
SpawnTemplate.route.points = nil
SpawnTemplate.route.points = {}
SpawnTemplate.route.points[1] = {}
SpawnTemplate.route.points[1].x = ZonePoint.x
SpawnTemplate.route.points[1].y = ZonePoint.y
@ -674,17 +680,7 @@ function SPAWN:SpawnInZone( Zone, SpawnIndex )
SpawnTemplate.units[UnitID].y = ZonePoint.y
self:T( 'SpawnTemplate.units['..UnitID..'].x = ' .. SpawnTemplate.units[UnitID].x .. ', SpawnTemplate.units['..UnitID..'].y = ' .. SpawnTemplate.units[UnitID].y )
end
local SpawnPos = Zone:GetRandomPointVec2()
local Point = {}
Point.type = "Turning Point"
Point.x = SpawnPos.x
Point.y = SpawnPos.y
Point.action = "Cone"
Point.speed = 5
table.insert( SpawnTemplate.route.points, 2, Point )
return self:SpawnWithIndex( self.SpawnIndex )
end
end
@ -695,6 +691,7 @@ end
--- Will spawn a plane group in uncontrolled mode...
-- This will be similar to the uncontrolled flag setting in the ME.
-- @return #SPAWN self