mirror of
https://github.com/FlightControl-Master/MOOSE.git
synced 2026-08-29 10:05:25 +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: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: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:SetDefaultCapTimeInterval( 180, 600 ) -- Between 180 and 600 seconds.
|
||||
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" )
|
||||
@@ -2446,7 +2446,13 @@ do -- AI_A2A_DISPATCHER
|
||||
local DefenderGrouping = DefenderSquadron.Grouping or self.DefenderDefault.Grouping
|
||||
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
|
||||
Spawn:InitGrouping( ( DefenderGrouping < DefendersNeeded ) and DefenderGrouping or DefendersNeeded )
|
||||
else
|
||||
@@ -2457,8 +2463,9 @@ do -- AI_A2A_DISPATCHER
|
||||
local DefenderGCI = Spawn:SpawnAtAirbase( DefenderSquadron.Airbase, TakeoffMethod )
|
||||
self:F( { GCIDefender = DefenderGCI:GetName() } )
|
||||
|
||||
self:AddDefenderToSquadron( DefenderSquadron, DefenderGCI )
|
||||
DefendersNeeded = DefendersNeeded - DefenderGCI:GetSize()
|
||||
|
||||
self:AddDefenderToSquadron( DefenderSquadron, DefenderGCI )
|
||||
|
||||
if DefenderGCI then
|
||||
|
||||
@@ -2502,6 +2509,7 @@ do -- AI_A2A_DISPATCHER
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
else
|
||||
-- There isn't any closest airbase anymore, break the loop.
|
||||
break
|
||||
|
||||
Reference in New Issue
Block a user