From 1ecbf22f0acd5f45b563fd3e6c26f1bb66dd47ae Mon Sep 17 00:00:00 2001 From: Frank Date: Fri, 30 Aug 2019 23:48:41 +0200 Subject: [PATCH] misc --- Moose Development/Moose/Core/Database.lua | 5 +- Moose Development/Moose/Core/Point.lua | 20 ++++--- .../Moose/Functional/Warehouse.lua | 52 +++++++++------- Moose Development/Moose/Ops/FlightGroup.lua | 60 ++++++++++++------- 4 files changed, 83 insertions(+), 54 deletions(-) diff --git a/Moose Development/Moose/Core/Database.lua b/Moose Development/Moose/Core/Database.lua index 6b281d920..312f94072 100644 --- a/Moose Development/Moose/Core/Database.lua +++ b/Moose Development/Moose/Core/Database.lua @@ -549,8 +549,9 @@ end -- This method is used by the SPAWN class. -- @param #DATABASE self -- @param #table SpawnTemplate Template of the group to spawn. +-- @param #string Groupname (Optional) Name of the group. -- @return Wrapper.Group#GROUP Spawned group. -function DATABASE:Spawn( SpawnTemplate ) +function DATABASE:Spawn( SpawnTemplate, Groupname ) self:F( SpawnTemplate.name ) self:T( { SpawnTemplate.SpawnCountryID, SpawnTemplate.SpawnCategoryID } ) @@ -565,7 +566,7 @@ function DATABASE:Spawn( SpawnTemplate ) SpawnTemplate.CountryID = nil SpawnTemplate.CategoryID = nil - self:_RegisterGroupTemplate( SpawnTemplate, SpawnCoalitionID, SpawnCategoryID, SpawnCountryID ) + self:_RegisterGroupTemplate( SpawnTemplate, SpawnCoalitionID, SpawnCategoryID, SpawnCountryID, Groupname ) self:T3( SpawnTemplate ) coalition.addGroup( SpawnCountryID, SpawnCategoryID, SpawnTemplate ) diff --git a/Moose Development/Moose/Core/Point.lua b/Moose Development/Moose/Core/Point.lua index 972f14711..6f27891f8 100644 --- a/Moose Development/Moose/Core/Point.lua +++ b/Moose Development/Moose/Core/Point.lua @@ -1251,17 +1251,19 @@ do -- COORDINATE -- Loop over all airbases. for _,_airbase in pairs(airbases) do local airbase=_airbase --Wrapper.Airbase#AIRBASE - local category=airbase:GetDesc().category - if Category and Category==category or Category==nil then - local dist=self:Get2DDistance(airbase:GetCoordinate()) - if closest==nil then - distmin=dist - closest=airbase - else - if dist arrived", element.name)) + + if element.unit and element.unit:IsAlive() then + + local coord=unit:GetCoordinate() + + local airbase=coord:GetClosestAirbase() + + local _,_,dist,parking=coord:GetClosestParkingSpot(airbase) + + if dist and dist<10 and unit:InAir()==false then + self:ElementArrived(element, airbase, parking) + self:I(self.sid..string.format("Element %s shut down engines ==> arrived", element.name)) + else + self:I(self.sid..string.format("Element %s shut down engines (in air) ==> dead", element.name)) + self:ElementDead(element) + end + else - self:I(self.sid..string.format("Element %s shut down engines (in air) ==> dead", element.name)) - self:ElementDead(element) + + self:I(self.sid..string.format("Element %s shut down engines (bug is not alive) ==> dead", element.name)) + self:ElementDead(element) + end + + else end end