diff --git a/Moose Development/Moose/AI/AI_Cargo.lua b/Moose Development/Moose/AI/AI_Cargo.lua index eb51e29e0..6251f4e38 100644 --- a/Moose Development/Moose/AI/AI_Cargo.lua +++ b/Moose Development/Moose/AI/AI_Cargo.lua @@ -213,7 +213,7 @@ function AI_CARGO:onbeforeLoad( Carrier, From, Event, To, PickupZone ) local Boarding = false - local LoadInterval = 2 + local LoadInterval = 5 local LoadDelay = 0 local Carrier_List = {} local Carrier_Weight = {} @@ -261,8 +261,8 @@ function AI_CARGO:onbeforeLoad( Carrier, From, Event, To, PickupZone ) if Carrier_Weight[CarrierUnit] > CargoWeight then --and CargoBayFreeVolume > CargoVolume then Carrier:RouteStop() --Cargo:Ungroup() - Cargo:__Board( LoadDelay, CarrierUnit, 25 ) - LoadDelay = LoadDelay + LoadInterval + Cargo:__Board( -LoadDelay, CarrierUnit, 25 ) + LoadDelay = LoadDelay + Cargo:GetCount() * LoadInterval self:__Board( LoadDelay, Cargo, CarrierUnit, PickupZone ) -- So now this CarrierUnit has Cargo that is being loaded. @@ -308,7 +308,7 @@ function AI_CARGO:onafterBoard( Carrier, From, Event, To, Cargo, CarrierUnit, Pi if Carrier and Carrier:IsAlive() then self:F({ IsLoaded = Cargo:IsLoaded(), Cargo:GetName(), Carrier:GetName() } ) if not Cargo:IsLoaded() then - self:__Board( 10, Cargo, CarrierUnit, PickupZone ) + self:__Board( -10, Cargo, CarrierUnit, PickupZone ) return end end @@ -397,7 +397,7 @@ function AI_CARGO:onafterUnload( Carrier, From, Event, To, DeployZone ) self:F( { Cargo = Cargo:GetName(), Isloaded = Cargo:IsLoaded() } ) if Cargo:IsLoaded() then Cargo:__UnBoard( UnboardDelay ) - UnboardDelay = UnboardDelay + UnboardInterval + UnboardDelay = UnboardDelay + Cargo:GetCount() * UnboardInterval Cargo:SetDeployed( true ) self:__Unboard( UnboardDelay, Cargo, CarrierUnit, DeployZone ) end diff --git a/Moose Development/Moose/AI/AI_Cargo_Dispatcher.lua b/Moose Development/Moose/AI/AI_Cargo_Dispatcher.lua index cc0c5572c..780f7c39b 100644 --- a/Moose Development/Moose/AI/AI_Cargo_Dispatcher.lua +++ b/Moose Development/Moose/AI/AI_Cargo_Dispatcher.lua @@ -1097,13 +1097,14 @@ function AI_CARGO_DISPATCHER:onafterMonitor() local PickupCargo = nil local PickupZone = nil + --self.SetCargo:Flush() for CargoName, Cargo in UTILS.spairs( self.SetCargo:GetSet(), function( t, a, b ) return t[a]:GetWeight() < t[b]:GetWeight() end ) do local Cargo = Cargo -- Cargo.Cargo#CARGO self:F( { Cargo = Cargo:GetName(), UnLoaded = Cargo:IsUnLoaded(), Deployed = Cargo:IsDeployed(), PickupCargo = self.PickupCargo[Carrier] ~= nil } ) if Cargo:IsUnLoaded() == true and Cargo:IsDeployed() == false then local CargoCoordinate = Cargo:GetCoordinate() local CoordinateFree = true - self.PickupZoneSet:Flush() + --self.PickupZoneSet:Flush() PickupZone = self.PickupZoneSet and self.PickupZoneSet:IsCoordinateInZone( CargoCoordinate ) if not self.PickupZoneSet or PickupZone then for CarrierPickup, Coordinate in pairs( self.PickupCargo ) do diff --git a/Moose Development/Moose/Cargo/CargoUnit.lua b/Moose Development/Moose/Cargo/CargoUnit.lua index 4429fc279..f499fb7a8 100644 --- a/Moose Development/Moose/Cargo/CargoUnit.lua +++ b/Moose Development/Moose/Cargo/CargoUnit.lua @@ -271,7 +271,7 @@ do -- CARGO_UNIT local TaskRoute = self.CargoObject:TaskRoute( Points ) self.CargoObject:SetTask( TaskRoute, 2 ) - self:__Boarding( -1, CargoCarrier, NearRadius ) + self:__Boarding( -5, CargoCarrier, NearRadius ) self.RunCount = 0 end end @@ -297,8 +297,13 @@ do -- CARGO_UNIT if self:IsNear( CargoCarrier:GetPointVec2(), NearRadius ) then self:__Load( 1, CargoCarrier, ... ) else - self:__Boarding( -1, CargoCarrier, NearRadius, ... ) - self.RunCount = self.RunCount + 1 + if self:IsNear( CargoCarrier:GetPointVec2(), 20 ) then + self:__Boarding( -2, CargoCarrier, NearRadius, ... ) + self.RunCount = self.RunCount + 2 + else + self:__Boarding( -10, CargoCarrier, NearRadius, ... ) + self.RunCount = self.RunCount + 10 + end if self.RunCount >= 40 then self.RunCount = 0 local Speed = 90