From 78ffaf6e0ad196f9695c3fbf90fa06bac17e4408 Mon Sep 17 00:00:00 2001 From: Frank Date: Wed, 20 Sep 2023 14:38:24 +0200 Subject: [PATCH 1/3] Update OpsGroup.lua - Fix that loading is never done --- Moose Development/Moose/Ops/OpsGroup.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Moose Development/Moose/Ops/OpsGroup.lua b/Moose Development/Moose/Ops/OpsGroup.lua index c628cf603..ba562e542 100644 --- a/Moose Development/Moose/Ops/OpsGroup.lua +++ b/Moose Development/Moose/Ops/OpsGroup.lua @@ -8123,7 +8123,7 @@ function OPSGROUP:_CheckCargoTransport() for _,_cargo in pairs(self.cargoTZC.Cargos) do local cargo=_cargo --Ops.OpsGroup#OPSGROUP.CargoGroup - if cargo.type==OPSTRANSPORT.CargoType.OPSTRANPORT then + if cargo.type==OPSTRANSPORT.CargoType.OPSGROUP then -- Check if anyone is still boarding. if cargo.opsgroup and cargo.opsgroup:IsBoarding(self.groupname) then From ca84fa11cdc779433bc3d6f721ef75a279b0981b Mon Sep 17 00:00:00 2001 From: Applevangelist Date: Wed, 20 Sep 2023 17:17:12 +0200 Subject: [PATCH 2/3] #ATIS * Added Spanish TTS locale ("es") --- Moose Development/Moose/Ops/ATIS.lua | 66 ++++++++++++++++++++++++++-- 1 file changed, 63 insertions(+), 3 deletions(-) diff --git a/Moose Development/Moose/Ops/ATIS.lua b/Moose Development/Moose/Ops/ATIS.lua index 1c6f4e6bc..e0aea4bbd 100644 --- a/Moose Development/Moose/Ops/ATIS.lua +++ b/Moose Development/Moose/Ops/ATIS.lua @@ -386,7 +386,7 @@ -- -- atis=ATIS:New("Batumi", 305, radio.modulation.AM) -- atis:SetSRS("D:\\DCS\\_SRS\\", "female", "de_DE") --- atis:SetLocale("de") +-- atis:SetLocale("de") -- available locales from source are "en", "de" and "es" -- atis:Start() -- -- ## FARPS @@ -808,7 +808,67 @@ ATIS.Messages = { TACAN = "Tackan", FARP = "Farp", DELIMITER = "Komma", -- decimal delimiter - } + }, + -- Set ES Locale translations for ATIS thanks to @Ritu + ES = + { + HOURS = "horas", + TIME = "horas", + NOCLOUDINFO = "Información sobre capa de nubes no disponible", + OVERCAST = "Nublado", + BROKEN = "Nubes rotas", + SCATTERED = "Nubes dispersas", + FEWCLOUDS = "Ligeramente nublado", + NOCLOUDS = "Despejado", + AIRPORT = "Aeropuerto", + INFORMATION ="Informacion", + SUNRISEAT = "Amanecer a las %s hora local", + SUNSETAT = "Puesta de sol a las %s hora local", + WINDFROMMS = "Viento procedente de %s con %s m/s", + WINDFROMKNOTS = "Viento de %s con %s nudos", + GUSTING = "ráfagas", + VISIKM = "Visibilidad %s km", + VISISM = "Visibilidad %s millas", + RAIN = "Lluvia", + TSTORM = "Tormenta", + SNOW = "Nieve", + SSTROM = "Tormenta de nieve", + FOG = "Niebla", + DUST = "Polvo", + PHENOMENA = "Fenómenos meteorológicos", + CLOUDBASEM = "Capa de nubes de %s a %s metros", + CLOUDBASEFT = "Capa de nubes de %s a %s pies", + TEMPERATURE = "Temperatura", + DEWPOINT = "Punto de rocio", + ALTIMETER = "Altímetro", + ACTIVERUN = "Pista activa", + LEFT = "Izquierda", + RIGHT = "Derecha", + RWYLENGTH = "Longitud de pista", + METERS = "Metro", + FEET = "Pie", + ELEVATION = "Elevación", + TOWERFREQ = "Frecuencias de la torre de control", + ILSFREQ = "Fecuencia ILS", + OUTERNDB = "Frecuencia NDB externa", + INNERNDB = "Frecuencia NDB interior", + VORFREQ = "Frecuencia VOR", + VORFREQTTS = "Frecuencia V O R", + TACANCH = "Canal TACAN %d Xaver", + RSBNCH = "Canal RSBN", + PRMGCH = "Canal PRMG", + ADVISE = "Avise en el contacto inicial a torre de que tiene la informacion", + STATUTE = "Millas inglesas", + DEGREES = "Grados Celsius", + FAHRENHEIT = "Grados Fahrenheit", + INCHHG = "Pulgadas de mercurio", + MMHG = "Milímeteros de Mercurio", + HECTO = "Hectopascales", + METERSPER = "Metros por segundo", + TACAN = "Tacan", + FARP = "Farp", + DELIMITER = "Punto", -- decimal delimiter + }, } --- @@ -821,7 +881,7 @@ _ATIS = {} --- ATIS class version. -- @field #string version -ATIS.version = "0.10.1" +ATIS.version = "0.10.2" ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -- TODO list From b1436b66d49521e60307729416b47286a40bde52 Mon Sep 17 00:00:00 2001 From: Frank Date: Wed, 20 Sep 2023 21:52:28 +0200 Subject: [PATCH 3/3] LEGION - Added random asset score - Added nil check for request.cargogroupset in :onafterAssetDead --- .../Moose/Functional/Warehouse.lua | 9 +++++-- Moose Development/Moose/Ops/Legion.lua | 27 +++++++++++++++++-- 2 files changed, 32 insertions(+), 4 deletions(-) diff --git a/Moose Development/Moose/Functional/Warehouse.lua b/Moose Development/Moose/Functional/Warehouse.lua index dc92562b1..7c2643455 100644 --- a/Moose Development/Moose/Functional/Warehouse.lua +++ b/Moose Development/Moose/Functional/Warehouse.lua @@ -5498,8 +5498,13 @@ function WAREHOUSE:onafterAssetDead(From, Event, To, asset, request) --- -- Remove dead group from cargo group set. - request.cargogroupset:Remove(groupname, NoTriggerEvent) - self:T(self.lid..string.format("Removed selfpropelled cargo %s: ncargo=%d.", groupname, request.cargogroupset:Count())) + if request.cargogroupset then + -- cargogroupset was nil for user case. Difficult to reproduce so we add a nil check. + request.cargogroupset:Remove(groupname, NoTriggerEvent) + self:T(self.lid..string.format("Removed selfpropelled cargo %s: ncargo=%d.", groupname, request.cargogroupset:Count())) + else + self:E(self.lid..string.format("ERROR: cargogroupset is nil for request ID=%s!", tostring(request.uid))) + end else diff --git a/Moose Development/Moose/Ops/Legion.lua b/Moose Development/Moose/Ops/Legion.lua index 15cad88be..7405fc02a 100644 --- a/Moose Development/Moose/Ops/Legion.lua +++ b/Moose Development/Moose/Ops/Legion.lua @@ -45,9 +45,14 @@ LEGION = { cohorts = {}, } +--- Random score that is added to the asset score in the selection process. +-- @field #number RandomAssetScore +LEGION.RandomAssetScore=1 + + --- LEGION class version. -- @field #string version -LEGION.version="0.4.0" +LEGION.version="0.5.0" ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -- ToDo list @@ -3229,7 +3234,25 @@ function LEGION._OptimizeAssetSelection(assets, MissionType, TargetVec2, Include -- Calculate the mission score of all assets. for _,_asset in pairs(assets) do local asset=_asset --Functional.Warehouse#WAREHOUSE.Assetitem + + -- Calculate the asset score. asset.score=LEGION.CalculateAssetMissionScore(asset, MissionType, TargetVec2, IncludePayload) + + if IncludePayload then + + -- Max random asset score. + local RandomScoreMax=asset.legion and asset.legion.RandomAssetScore or LEGION.RandomAssetScore + + -- Random score. + local RandomScore=math.random(0, RandomScoreMax) + + -- Debug info. + --env.info(string.format("Asset %s: randomscore=%d, max=%d", asset.spawngroupname, RandomScore, RandomScoreMax)) + + -- Add a bit of randomness. + asset.score=asset.score+RandomScore + + end end --- Sort assets wrt to their mission score. Higher is better. @@ -3246,7 +3269,7 @@ function LEGION._OptimizeAssetSelection(assets, MissionType, TargetVec2, Include local text=string.format("Optimized %d assets for %s mission/transport (payload=%s):", #assets, MissionType, tostring(IncludePayload)) for i,Asset in pairs(assets) do local asset=Asset --Functional.Warehouse#WAREHOUSE.Assetitem - text=text..string.format("\n%s %s: score=%d", asset.squadname, asset.spawngroupname, asset.score or -1) + text=text..string.format("\n%d. %s [%s]: score=%d", i, asset.spawngroupname, asset.squadname, asset.score or -1) asset.score=nil end env.info(text)