- fixed cargo APC unloading in case of enemy presence and loading in case of enemy destroy or leave.

- fixed boarding near range to 5 meters for cargo units.
This commit is contained in:
FlightControl 2018-08-28 07:16:42 +02:00
parent dffd66940d
commit 1aabb1bfbd
3 changed files with 4 additions and 5 deletions

View File

@ -423,7 +423,7 @@ function AI_CARGO_APC:onbeforeLoad( APC, From, Event, To )
for _, Cargo in pairs( self.CargoSet:GetSet() ) do
local Cargo = Cargo -- Cargo.Cargo#CARGO
self:F( { IsUnLoaded = Cargo:IsUnLoaded(), IsDeployed = Cargo:IsDeployed(), Cargo:GetName(), APC:GetName() } )
if Cargo:IsUnLoaded() and not Cargo:IsDeployed() then
if Cargo:IsUnLoaded() then -- and not Cargo:IsDeployed() then
if Cargo:IsInLoadRadius( APCUnit:GetCoordinate() ) then
self:F( { "In radius", APCUnit:GetName() } )
@ -551,7 +551,6 @@ function AI_CARGO_APC:onafterUnload( APC, From, Event, To, Deployed )
for _, Cargo in pairs( APCUnit:GetCargo() ) do
if Cargo:IsLoaded() then
Cargo:UnBoard()
Cargo:SetDeployed( true )
self:__Unboard( 10, Cargo, Deployed )
end
end
@ -580,7 +579,6 @@ function AI_CARGO_APC:onafterUnboard( APC, From, Event, To, Cargo, Deployed )
for _, Cargo in pairs( APCUnit:GetCargo() ) do
if Cargo:IsLoaded() then
Cargo:UnBoard()
Cargo:SetDeployed( true )
self:__Unboard( 10, Cargo, Deployed )
return
end
@ -605,6 +603,7 @@ function AI_CARGO_APC:onbeforeUnloaded( APC, From, Event, To, Cargo, Deployed )
self:F( { APC, From, Event, To, Cargo:GetName(), Deployed = Deployed } )
local AllUnloaded = true
Cargo:SetDeployed( true )
--Cargo:Regroup()

View File

@ -239,7 +239,7 @@ do -- CARGO_UNIT
if not self.CargoInAir then
-- If NearRadius is given, then use the given NearRadius, otherwise calculate the NearRadius
-- based upon the Carrier bounding radius, which is calculated from the bounding rectangle on the Y axis.
local NearRadius = CargoCarrier:GetBoundingRadius( NearRadius )
local NearRadius = CargoCarrier:GetBoundingRadius( NearRadius ) + 5
if self:IsNear( CargoCarrier:GetPointVec2(), NearRadius ) then
self:Load( CargoCarrier, NearRadius, ... )
else

View File

@ -279,7 +279,7 @@ function POSITIONABLE:GetBoundingRadius()
local Z = Box.max.z - Box.min.z
local CX = X / 2
local CZ = Z / 2
return math.max( CX, CZ ) + 3
return math.max( CX, CZ )
end
BASE:E( { "Cannot GetBoundingRadius", Positionable = self, Alive = self:IsAlive() } )