From 88b6540f5b3b65309de2c43c76700c00b0d7e266 Mon Sep 17 00:00:00 2001 From: Thomas <72444570+Applevangelist@users.noreply.github.com> Date: Mon, 24 Apr 2023 11:09:03 +0200 Subject: [PATCH 1/6] AIRBASE - add Normandy AFBs (#1937) Add Normandy AFBs --- Moose Development/Moose/Wrapper/Airbase.lua | 83 +++++++++++++++++++-- 1 file changed, 77 insertions(+), 6 deletions(-) diff --git a/Moose Development/Moose/Wrapper/Airbase.lua b/Moose Development/Moose/Wrapper/Airbase.lua index 5e4a2d0e3..07c2acf7e 100644 --- a/Moose Development/Moose/Wrapper/Airbase.lua +++ b/Moose Development/Moose/Wrapper/Airbase.lua @@ -198,8 +198,47 @@ AIRBASE.Nevada = { -- * AIRBASE.Normandy.Needs_Oar_Point -- * AIRBASE.Normandy.Funtington -- * AIRBASE.Normandy.Tangmere --- * AIRBASE.Normandy.Ford_AF --- +-- * AIRBASE.Normandy.Ford +-- * AIRBASE.Normandy.Argentan +-- * AIRBASE.Normandy.Goulet +-- * AIRBASE.Normandy.Barville +-- * AIRBASE.Normandy.Essay +-- * AIRBASE.Normandy.Hauterive +-- * AIRBASE.Normandy.Lymington +-- * AIRBASE.Normandy.Vrigny +-- * AIRBASE.Normandy.Odiham +-- * AIRBASE.Normandy.Conches +-- * AIRBASE.Normandy.West_Malling +-- * AIRBASE.Normandy.Villacoublay +-- * AIRBASE.Normandy.Kenley +-- * AIRBASE.Normandy.Beauvais_Tille +-- * AIRBASE.Normandy.Cormeilles_en_Vexin +-- * AIRBASE.Normandy.Creil +-- * AIRBASE.Normandy.Guyancourt +-- * AIRBASE.Normandy.Lonrai +-- * AIRBASE.Normandy.Dinan_Trelivan +-- * AIRBASE.Normandy.Heathrow +-- * AIRBASE.Normandy.Fecamp_Benouville +-- * AIRBASE.Normandy.Farnborough +-- * AIRBASE.Normandy.Friston +-- * AIRBASE.Normandy.Deanland +-- * AIRBASE.Normandy.Triqueville +-- * AIRBASE.Normandy.Poix +-- * AIRBASE.Normandy.Orly +-- * AIRBASE.Normandy.Stoney_Cross +-- * AIRBASE.Normandy.Amiens_Glisy +-- * AIRBASE.Normandy.Ronai +-- * AIRBASE.Normandy.Rouen_Boos +-- * AIRBASE.Normandy.Deauville +-- * AIRBASE.Normandy.Saint_Aubin +-- * AIRBASE.Normandy.Flers +-- * AIRBASE.Normandy.Avranches_Le_Val_Saint_Pere +-- * AIRBASE.Normandy.Gravesend +-- * AIRBASE.Normandy.Beaumont_le_Roger +-- * AIRBASE.Normandy.Broglie +-- * AIRBASE.Normandy.Bernay_Saint_Martin +-- * AIRBASE.Normandy.Saint_Andre_de_lEure +-- -- @field Normandy AIRBASE.Normandy = { ["Saint_Pierre_du_Mont"] = "Saint Pierre du Mont", @@ -232,14 +271,46 @@ AIRBASE.Normandy = { ["Needs_Oar_Point"] = "Needs Oar Point", ["Funtington"] = "Funtington", ["Tangmere"] = "Tangmere", - ["Ford_AF"] = "Ford_AF", - ["Goulet"] = "Goulet", + ["Ford"] = "Ford", ["Argentan"] = "Argentan", - ["Vrigny"] = "Vrigny", + ["Goulet"] = "Goulet", + ["Barville"] = "Barville", ["Essay"] = "Essay", ["Hauterive"] = "Hauterive", - ["Barville"] = "Barville", + ["Lymington"] = "Lymington", + ["Vrigny"] = "Vrigny", + ["Odiham"] = "Odiham", ["Conches"] = "Conches", + ["West_Malling"] = "West Malling", + ["Villacoublay"] = "Villacoublay", + ["Kenley"] = "Kenley", + ["Beauvais_Tille"] = "Beauvais-Tille", + ["Cormeilles_en_Vexin"] = "Cormeilles-en-Vexin", + ["Creil"] = "Creil", + ["Guyancourt"] = "Guyancourt", + ["Lonrai"] = "Lonrai", + ["Dinan_Trelivan"] = "Dinan-Trelivan", + ["Heathrow"] = "Heathrow", + ["Fecamp_Benouville"] = "Fecamp-Benouville", + ["Farnborough"] = "Farnborough", + ["Friston"] = "Friston", + ["Deanland "] = "Deanland ", + ["Triqueville"] = "Triqueville", + ["Poix"] = "Poix", + ["Orly"] = "Orly", + ["Stoney_Cross"] = "Stoney Cross", + ["Amiens_Glisy"] = "Amiens-Glisy", + ["Ronai"] = "Ronai", + ["Rouen_Boos"] = "Rouen-Boos", + ["Deauville"] = "Deauville", + ["Saint_Aubin"] = "Saint-Aubin", + ["Flers"] = "Flers", + ["Avranches_Le_Val_Saint_Pere"] = "Avranches Le Val-Saint-Pere", + ["Gravesend"] = "Gravesend", + ["Beaumont_le_Roger"] = "Beaumont-le-Roger", + ["Broglie"] = "Broglie", + ["Bernay_Saint_Martin"] = "Bernay Saint Martin", + ["Saint_Andre_de_lEure"] = "Saint-Andre-de-lEure", } --- Airbases of the Persion Gulf Map: From c7d990850a24b8bad32590a198fa4e61e01387f1 Mon Sep 17 00:00:00 2001 From: Thomas <72444570+Applevangelist@users.noreply.github.com> Date: Mon, 24 Apr 2023 11:16:45 +0200 Subject: [PATCH 2/6] AIRBASE - add Normandy AFBs (#1937) (#1938) Add Normandy AFBs --- Moose Development/Moose/Wrapper/Airbase.lua | 83 +++++++++++++++++++-- 1 file changed, 77 insertions(+), 6 deletions(-) diff --git a/Moose Development/Moose/Wrapper/Airbase.lua b/Moose Development/Moose/Wrapper/Airbase.lua index 5e4a2d0e3..07c2acf7e 100644 --- a/Moose Development/Moose/Wrapper/Airbase.lua +++ b/Moose Development/Moose/Wrapper/Airbase.lua @@ -198,8 +198,47 @@ AIRBASE.Nevada = { -- * AIRBASE.Normandy.Needs_Oar_Point -- * AIRBASE.Normandy.Funtington -- * AIRBASE.Normandy.Tangmere --- * AIRBASE.Normandy.Ford_AF --- +-- * AIRBASE.Normandy.Ford +-- * AIRBASE.Normandy.Argentan +-- * AIRBASE.Normandy.Goulet +-- * AIRBASE.Normandy.Barville +-- * AIRBASE.Normandy.Essay +-- * AIRBASE.Normandy.Hauterive +-- * AIRBASE.Normandy.Lymington +-- * AIRBASE.Normandy.Vrigny +-- * AIRBASE.Normandy.Odiham +-- * AIRBASE.Normandy.Conches +-- * AIRBASE.Normandy.West_Malling +-- * AIRBASE.Normandy.Villacoublay +-- * AIRBASE.Normandy.Kenley +-- * AIRBASE.Normandy.Beauvais_Tille +-- * AIRBASE.Normandy.Cormeilles_en_Vexin +-- * AIRBASE.Normandy.Creil +-- * AIRBASE.Normandy.Guyancourt +-- * AIRBASE.Normandy.Lonrai +-- * AIRBASE.Normandy.Dinan_Trelivan +-- * AIRBASE.Normandy.Heathrow +-- * AIRBASE.Normandy.Fecamp_Benouville +-- * AIRBASE.Normandy.Farnborough +-- * AIRBASE.Normandy.Friston +-- * AIRBASE.Normandy.Deanland +-- * AIRBASE.Normandy.Triqueville +-- * AIRBASE.Normandy.Poix +-- * AIRBASE.Normandy.Orly +-- * AIRBASE.Normandy.Stoney_Cross +-- * AIRBASE.Normandy.Amiens_Glisy +-- * AIRBASE.Normandy.Ronai +-- * AIRBASE.Normandy.Rouen_Boos +-- * AIRBASE.Normandy.Deauville +-- * AIRBASE.Normandy.Saint_Aubin +-- * AIRBASE.Normandy.Flers +-- * AIRBASE.Normandy.Avranches_Le_Val_Saint_Pere +-- * AIRBASE.Normandy.Gravesend +-- * AIRBASE.Normandy.Beaumont_le_Roger +-- * AIRBASE.Normandy.Broglie +-- * AIRBASE.Normandy.Bernay_Saint_Martin +-- * AIRBASE.Normandy.Saint_Andre_de_lEure +-- -- @field Normandy AIRBASE.Normandy = { ["Saint_Pierre_du_Mont"] = "Saint Pierre du Mont", @@ -232,14 +271,46 @@ AIRBASE.Normandy = { ["Needs_Oar_Point"] = "Needs Oar Point", ["Funtington"] = "Funtington", ["Tangmere"] = "Tangmere", - ["Ford_AF"] = "Ford_AF", - ["Goulet"] = "Goulet", + ["Ford"] = "Ford", ["Argentan"] = "Argentan", - ["Vrigny"] = "Vrigny", + ["Goulet"] = "Goulet", + ["Barville"] = "Barville", ["Essay"] = "Essay", ["Hauterive"] = "Hauterive", - ["Barville"] = "Barville", + ["Lymington"] = "Lymington", + ["Vrigny"] = "Vrigny", + ["Odiham"] = "Odiham", ["Conches"] = "Conches", + ["West_Malling"] = "West Malling", + ["Villacoublay"] = "Villacoublay", + ["Kenley"] = "Kenley", + ["Beauvais_Tille"] = "Beauvais-Tille", + ["Cormeilles_en_Vexin"] = "Cormeilles-en-Vexin", + ["Creil"] = "Creil", + ["Guyancourt"] = "Guyancourt", + ["Lonrai"] = "Lonrai", + ["Dinan_Trelivan"] = "Dinan-Trelivan", + ["Heathrow"] = "Heathrow", + ["Fecamp_Benouville"] = "Fecamp-Benouville", + ["Farnborough"] = "Farnborough", + ["Friston"] = "Friston", + ["Deanland "] = "Deanland ", + ["Triqueville"] = "Triqueville", + ["Poix"] = "Poix", + ["Orly"] = "Orly", + ["Stoney_Cross"] = "Stoney Cross", + ["Amiens_Glisy"] = "Amiens-Glisy", + ["Ronai"] = "Ronai", + ["Rouen_Boos"] = "Rouen-Boos", + ["Deauville"] = "Deauville", + ["Saint_Aubin"] = "Saint-Aubin", + ["Flers"] = "Flers", + ["Avranches_Le_Val_Saint_Pere"] = "Avranches Le Val-Saint-Pere", + ["Gravesend"] = "Gravesend", + ["Beaumont_le_Roger"] = "Beaumont-le-Roger", + ["Broglie"] = "Broglie", + ["Bernay_Saint_Martin"] = "Bernay Saint Martin", + ["Saint_Andre_de_lEure"] = "Saint-Andre-de-lEure", } --- Airbases of the Persion Gulf Map: From 1060d63808ffcbcf6e55c1b80573c3d766f0c3ba Mon Sep 17 00:00:00 2001 From: Applevangelist Date: Mon, 24 Apr 2023 16:44:38 +0200 Subject: [PATCH 3/6] #SET_SCENERY * Added functions to count Life0, Life and RelativeLife points of SET_SCENERY --- Moose Development/Moose/Core/Set.lua | 42 +++++++++++++++++++++++++++- 1 file changed, 41 insertions(+), 1 deletion(-) diff --git a/Moose Development/Moose/Core/Set.lua b/Moose Development/Moose/Core/Set.lua index a48e917f6..d9b80bee8 100644 --- a/Moose Development/Moose/Core/Set.lua +++ b/Moose Development/Moose/Core/Set.lua @@ -7797,7 +7797,7 @@ do -- SET_SCENERY end - --- + --- [Internal] Determine if an object is to be included in the SET -- @param #SET_SCENERY self -- @param Wrapper.Scenery#SCENERY MScenery -- @return #SET_SCENERY self @@ -7805,4 +7805,44 @@ do -- SET_SCENERY self:F2( MScenery ) return true end + + --- Count overall initial (Life0) lifepoints of the SET objects. + -- @param #SET_SCENERY self + -- @return #number LIfe0Points + function SET_SCENERY:GetLife0() + local life0 = 0 + self:ForEachScenery( + function(obj) + local Obj = obj -- Wrapper.Scenery#SCENERY + life0 = life0 + Obj:GetLife0() + end + ) + return life0 + end + + --- Count overall current lifepoints of the SET objects. + -- @param #SET_SCENERY self + -- @return #number LifePoints + function SET_SCENERY:GetLife() + local life = 0 + self:ForEachScenery( + function(obj) + local Obj = obj -- Wrapper.Scenery#SCENERY + life = life + Obj:GetLife() + end + ) + return life + end + + --- Calculate current relative lifepoints of the SET objects, i.e. Life divided by Life0 as percentage value, eg 75 meaning 75% alive. + -- **CAVEAT**: Some objects change their life value or "hitpoints" **after** the first hit. Be aware that thus the relative life value might be > 100 after a hit. + -- @param #SET_SCENERY self + -- @return #number LifePoints + function SET_SCENERY:GetRelativeLife() + local life0 = self:GetLife0() + local life = self:GetLife() + local rlife = math.floor((life / life0) * 100) + return rlife + end + end From 6896dc155a610feaf77c3f720bfc2187442a8899 Mon Sep 17 00:00:00 2001 From: Applevangelist Date: Tue, 25 Apr 2023 09:12:25 +0200 Subject: [PATCH 4/6] #SCENERY * Added update of Life0 value if `GetLife()`is called #SET_SCENERY * Added Documentation --- Moose Development/Moose/Wrapper/Scenery.lua | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/Moose Development/Moose/Wrapper/Scenery.lua b/Moose Development/Moose/Wrapper/Scenery.lua index 8fe17ecfe..6a6f70bd9 100644 --- a/Moose Development/Moose/Wrapper/Scenery.lua +++ b/Moose Development/Moose/Wrapper/Scenery.lua @@ -63,12 +63,18 @@ function SCENERY:GetDCSObject() end --- Get current life points from the SCENERY Object. +-- **CAVEAT**: Some objects change their life value or "hitpoints" **after** the first hit. Hence we will adjust the life0 value to 120% +-- of the last life value if life exceeds life0 (initial life) at any point. Thus will will get a smooth percentage decrease, if you use this e.g. as success +-- criteria for a bombing task. --@param #SCENERY self --@return #number life function SCENERY:GetLife() local life = 0 if self.SceneryObject then life = self.SceneryObject:getLife() + if life > self.Life0 then + self.Life0 = math.floor(life * 1.2) + end end return life end @@ -110,11 +116,13 @@ end --@param #number Radius (optional) Search radius around coordinate, defaults to 100 --@return #SCENERY Scenery Object or `nil` if it cannot be found function SCENERY:FindByName(Name, Coordinate, Radius) - + local radius = Radius or 100 local name = Name or "unknown" local scenery = nil + BASE:T({name, radius, Coordinate:GetVec2()}) + --- -- @param Core.Point#COORDINATE coordinate -- @param #number radius @@ -170,6 +178,7 @@ function SCENERY:FindByZoneName( ZoneName ) zone = ZONE:FindByName(ZoneName) end local _id = zone:GetProperty('OBJECT ID') + BASE:T("Object ID ".._id) if not _id then -- this zone has no object ID BASE:E("**** Zone without object ID: "..ZoneName.." | Type: "..tostring(zone.ClassName)) @@ -235,4 +244,4 @@ end --@return #SCENERY self function SCENERY:Destroy() return self -end \ No newline at end of file +end From b96ebc1872abf9987e08ac6408503fb5cf1b14bc Mon Sep 17 00:00:00 2001 From: Applevangelist Date: Tue, 25 Apr 2023 09:12:31 +0200 Subject: [PATCH 5/6] #SCENERY * Added update of Life0 value if `GetLife()`is called #SET_SCENERY * Added Documentation --- Moose Development/Moose/Core/Set.lua | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/Moose Development/Moose/Core/Set.lua b/Moose Development/Moose/Core/Set.lua index d9b80bee8..2ba9d95ac 100644 --- a/Moose Development/Moose/Core/Set.lua +++ b/Moose Development/Moose/Core/Set.lua @@ -7835,12 +7835,15 @@ do -- SET_SCENERY end --- Calculate current relative lifepoints of the SET objects, i.e. Life divided by Life0 as percentage value, eg 75 meaning 75% alive. - -- **CAVEAT**: Some objects change their life value or "hitpoints" **after** the first hit. Be aware that thus the relative life value might be > 100 after a hit. + -- **CAVEAT**: Some objects change their life value or "hitpoints" **after** the first hit. Hence we will adjust the Life0 value to 120% + -- of the last life value if life exceeds life0 ata any point. + -- Thus will will get a smooth percentage decrease, if you use this e.g. as success criteria for a bombing task. -- @param #SET_SCENERY self -- @return #number LifePoints function SET_SCENERY:GetRelativeLife() - local life0 = self:GetLife0() local life = self:GetLife() + local life0 = self:GetLife0() + self:T3(string.format("Set Lifepoints: %d life0 | %d life",life0,life)) local rlife = math.floor((life / life0) * 100) return rlife end From d8b80aab1ace1d13dfcf006eb05ec0d8c281136a Mon Sep 17 00:00:00 2001 From: Frank Date: Tue, 25 Apr 2023 21:20:16 +0200 Subject: [PATCH 6/6] Update Socket.lua - Added `SOCKET:SendTextToSpeech()` function --- Moose Development/Moose/Utilities/Socket.lua | 34 ++++++++++++++++++-- 1 file changed, 32 insertions(+), 2 deletions(-) diff --git a/Moose Development/Moose/Utilities/Socket.lua b/Moose Development/Moose/Utilities/Socket.lua index 1970c60a2..93d64e3a0 100644 --- a/Moose Development/Moose/Utilities/Socket.lua +++ b/Moose Development/Moose/Utilities/Socket.lua @@ -49,17 +49,19 @@ SOCKET = { -- @field #string BOMBRESULT Range bombing. -- @field #string STRAFERESULT Range strafeing result. -- @field #string LSOGRADE Airboss LSO grade. +-- @field #string TTS Text-To-Speech. SOCKET.DataType={ TEXT="moose_text", BOMBRESULT="moose_bomb_result", STRAFERESULT="moose_strafe_result", LSOGRADE="moose_lso_grade", + TTS="moose_text2speech" } --- SOCKET class version. -- @field #string version -SOCKET.version="0.2.0" +SOCKET.version="0.3.0" ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -- TODO list @@ -140,7 +142,7 @@ end --- Send a text message. -- @param #SOCKET self --- @param #string Text Test message. +-- @param #string Text Text message. -- @return #SOCKET self function SOCKET:SendText(Text) @@ -154,4 +156,32 @@ function SOCKET:SendText(Text) return self end +--- Send a text-to-speech message. +-- @param #SOCKET self +-- @param #string Text The text message to speek. +-- @param #number Provider The TTS provider: 0=Microsoft (default), 1=Google. +-- @param #string Voice The specific voice to use, e.g. `"Microsoft David Desktop"` or "`en-US-Standard-A`". If not set, the service will choose a voice based on the other parameters such as culture and gender. +-- @param #string Culture The Culture or language code, *e.g.* `"en-US"`. +-- @param #string Gender The Gender, *i.e.* "male", "female". Default "female". +-- @param #number Volume The volume. Microsoft: [0,100] default 50, Google: [-96, 10] default 0. +-- @return #SOCKET self +function SOCKET:SendTextToSpeech(Text, Provider, Voice, Culture, Gender, Volume) + + Text=Text or "Hello World!" + + local message={} + + message.command = SOCKET.DataType.TTS + message.text = Text + message.provider=Provider + message.voice = Voice + message.culture = Culture + message.gender = Gender + message.volume = Volume + + self:SendTable(message) + + return self +end +