From 1aabb1bfbd3c8dceb2b0e47727ba068090f9f13c Mon Sep 17 00:00:00 2001 From: FlightControl Date: Tue, 28 Aug 2018 07:16:42 +0200 Subject: [PATCH] - 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. --- Moose Development/Moose/AI/AI_Cargo_APC.lua | 5 ++--- Moose Development/Moose/Cargo/CargoUnit.lua | 2 +- Moose Development/Moose/Wrapper/Positionable.lua | 2 +- 3 files changed, 4 insertions(+), 5 deletions(-) diff --git a/Moose Development/Moose/AI/AI_Cargo_APC.lua b/Moose Development/Moose/AI/AI_Cargo_APC.lua index c1c871cdd..466803656 100644 --- a/Moose Development/Moose/AI/AI_Cargo_APC.lua +++ b/Moose Development/Moose/AI/AI_Cargo_APC.lua @@ -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() diff --git a/Moose Development/Moose/Cargo/CargoUnit.lua b/Moose Development/Moose/Cargo/CargoUnit.lua index da9c73f2b..621a9a3a9 100644 --- a/Moose Development/Moose/Cargo/CargoUnit.lua +++ b/Moose Development/Moose/Cargo/CargoUnit.lua @@ -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 diff --git a/Moose Development/Moose/Wrapper/Positionable.lua b/Moose Development/Moose/Wrapper/Positionable.lua index ac10a4f90..08889ea78 100644 --- a/Moose Development/Moose/Wrapper/Positionable.lua +++ b/Moose Development/Moose/Wrapper/Positionable.lua @@ -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() } )