mirror of
https://github.com/FlightControl-Master/MOOSE.git
synced 2026-08-23 11:40:57 +00:00
Fixed an issue with the overhead parameter
Now the GCI will spawn the actual overhead needed, independent of the grouping parameter. For example, when grouping was 1 and overhead 1.5, only one plane was spawned. Now two planes are spawned of 2 groups of 1 unit.
This commit is contained in:
@@ -772,6 +772,8 @@ do -- AI_A2A_DISPATCHER
|
|||||||
|
|
||||||
self:SetEngageRadius()
|
self:SetEngageRadius()
|
||||||
self:SetGciRadius()
|
self:SetGciRadius()
|
||||||
|
self:SetIntercept( 300 ) -- A default intercept delay time of 300 seconds.
|
||||||
|
self:SetDisengageRadius( 100000 ) -- The default disengage radius is 100 km.
|
||||||
|
|
||||||
self:SetDefaultTakeoff( AI_A2A_DISPATCHER.Takeoff.Air )
|
self:SetDefaultTakeoff( AI_A2A_DISPATCHER.Takeoff.Air )
|
||||||
self:SetDefaultLanding( AI_A2A_DISPATCHER.Landing.NearAirbase )
|
self:SetDefaultLanding( AI_A2A_DISPATCHER.Landing.NearAirbase )
|
||||||
@@ -781,8 +783,6 @@ do -- AI_A2A_DISPATCHER
|
|||||||
self:SetDefaultDamageThreshold( 0.4 ) -- When 40% of damage, go RTB.
|
self:SetDefaultDamageThreshold( 0.4 ) -- When 40% of damage, go RTB.
|
||||||
self:SetDefaultCapTimeInterval( 180, 600 ) -- Between 180 and 600 seconds.
|
self:SetDefaultCapTimeInterval( 180, 600 ) -- Between 180 and 600 seconds.
|
||||||
self:SetDefaultCapLimit( 1 ) -- Maximum one CAP per squadron.
|
self:SetDefaultCapLimit( 1 ) -- Maximum one CAP per squadron.
|
||||||
self:SetIntercept( 300 ) -- A default intercept delay time of 300 seconds.
|
|
||||||
self:SetDisengageRadius( 100000 ) -- The default disengage radius is 100 km.
|
|
||||||
|
|
||||||
|
|
||||||
self:AddTransition( "Started", "Assign", "Started" )
|
self:AddTransition( "Started", "Assign", "Started" )
|
||||||
@@ -2446,7 +2446,13 @@ do -- AI_A2A_DISPATCHER
|
|||||||
local DefenderGrouping = DefenderSquadron.Grouping or self.DefenderDefault.Grouping
|
local DefenderGrouping = DefenderSquadron.Grouping or self.DefenderDefault.Grouping
|
||||||
local DefendersNeeded = math.ceil( DefendersCount * DefenderOverhead )
|
local DefendersNeeded = math.ceil( DefendersCount * DefenderOverhead )
|
||||||
|
|
||||||
local Spawn = DefenderSquadron.Spawn[ math.random( 1, #DefenderSquadron.Spawn ) ]
|
self:F( { DefaultOverhead = self.DefenderDefault.Overhead, Overhead = DefenderOverhead } )
|
||||||
|
self:F( { DefaultGrouping = self.DefenderDefault.Grouping, Grouping = DefenderGrouping } )
|
||||||
|
self:F( { DefendersCount = DefendersCount, DefendersNeeded = DefendersNeeded } )
|
||||||
|
|
||||||
|
while ( DefendersNeeded > 0 ) do
|
||||||
|
|
||||||
|
local Spawn = DefenderSquadron.Spawn[ math.random( 1, #DefenderSquadron.Spawn ) ] -- Functional.Spawn#SPAWN
|
||||||
if DefenderGrouping then
|
if DefenderGrouping then
|
||||||
Spawn:InitGrouping( ( DefenderGrouping < DefendersNeeded ) and DefenderGrouping or DefendersNeeded )
|
Spawn:InitGrouping( ( DefenderGrouping < DefendersNeeded ) and DefenderGrouping or DefendersNeeded )
|
||||||
else
|
else
|
||||||
@@ -2457,8 +2463,9 @@ do -- AI_A2A_DISPATCHER
|
|||||||
local DefenderGCI = Spawn:SpawnAtAirbase( DefenderSquadron.Airbase, TakeoffMethod )
|
local DefenderGCI = Spawn:SpawnAtAirbase( DefenderSquadron.Airbase, TakeoffMethod )
|
||||||
self:F( { GCIDefender = DefenderGCI:GetName() } )
|
self:F( { GCIDefender = DefenderGCI:GetName() } )
|
||||||
|
|
||||||
self:AddDefenderToSquadron( DefenderSquadron, DefenderGCI )
|
DefendersNeeded = DefendersNeeded - DefenderGCI:GetSize()
|
||||||
|
|
||||||
|
self:AddDefenderToSquadron( DefenderSquadron, DefenderGCI )
|
||||||
|
|
||||||
if DefenderGCI then
|
if DefenderGCI then
|
||||||
|
|
||||||
@@ -2502,6 +2509,7 @@ do -- AI_A2A_DISPATCHER
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
end
|
||||||
else
|
else
|
||||||
-- There isn't any closest airbase anymore, break the loop.
|
-- There isn't any closest airbase anymore, break the loop.
|
||||||
break
|
break
|
||||||
|
|||||||
Reference in New Issue
Block a user