Merge remote-tracking branch 'origin/master' into develop

This commit is contained in:
Applevangelist
2024-02-29 09:54:38 +01:00
4 changed files with 584 additions and 546 deletions
+5 -1
View File
@@ -19,6 +19,10 @@
-- --
-- === -- ===
-- --
-- ### [Demo Missions](https://github.com/FlightControl-Master/MOOSE_Demos/tree/master/Functional/FOX)
--
-- ===
--
-- ### Author: **funkyfranky** -- ### Author: **funkyfranky**
-- @module Functional.Fox -- @module Functional.Fox
-- @image Functional_FOX.png -- @image Functional_FOX.png
@@ -437,7 +441,7 @@ function FOX:SetProtectedGroupSet(groupset)
return self return self
end end
--- Add a group to the protected set. --- Add a group to the protected set. Works only with AI!
-- @param #FOX self -- @param #FOX self
-- @param Wrapper.Group#GROUP group Protected group. -- @param Wrapper.Group#GROUP group Protected group.
-- @return #FOX self -- @return #FOX self
+34 -6
View File
@@ -79,6 +79,7 @@
-- --
-- ### Contributions: -- ### Contributions:
-- --
-- * **Applevangelist**: Additional functionality, fixes.
-- * **Wingthor (TAW)**: Testing & Advice. -- * **Wingthor (TAW)**: Testing & Advice.
-- * **Dutch-Baron (TAW)**: Testing & Advice. -- * **Dutch-Baron (TAW)**: Testing & Advice.
-- * **Whisper**: Testing and Advice. -- * **Whisper**: Testing and Advice.
@@ -116,11 +117,13 @@
-- Special targets can be set that will give extra scores to the players when these are destroyed. -- Special targets can be set that will give extra scores to the players when these are destroyed.
-- Use the methods @{#SCORING.AddUnitScore}() and @{#SCORING.RemoveUnitScore}() to specify a special additional score for a specific @{Wrapper.Unit}s. -- Use the methods @{#SCORING.AddUnitScore}() and @{#SCORING.RemoveUnitScore}() to specify a special additional score for a specific @{Wrapper.Unit}s.
-- Use the methods @{#SCORING.AddStaticScore}() and @{#SCORING.RemoveStaticScore}() to specify a special additional score for a specific @{Wrapper.Static}s. -- Use the methods @{#SCORING.AddStaticScore}() and @{#SCORING.RemoveStaticScore}() to specify a special additional score for a specific @{Wrapper.Static}s.
-- Use the method @{#SCORING.SetGroupGroup}() to specify a special additional score for a specific @{Wrapper.Group}s. -- Use the method @{#SCORING.AddScoreSetGroup}() to specify a special additional score for a specific @{Wrapper.Group}s gathered in a @{Core.Set#SET_GROUP}.
-- --
-- local Scoring = SCORING:New( "Scoring File" ) -- local Scoring = SCORING:New( "Scoring File" )
-- Scoring:AddUnitScore( UNIT:FindByName( "Unit #001" ), 200 ) -- Scoring:AddUnitScore( UNIT:FindByName( "Unit #001" ), 200 )
-- Scoring:AddStaticScore( STATIC:FindByName( "Static #1" ), 100 ) -- Scoring:AddStaticScore( STATIC:FindByName( "Static #1" ), 100 )
-- local GroupSet = SET_GROUP:New():FilterPrefixes("RAT"):FilterStart()
-- Scoring:AddScoreSetGroup( GroupSet, 100)
-- --
-- The above grants an additional score of 200 points for Unit #001 and an additional 100 points of Static #1 if these are destroyed. -- The above grants an additional score of 200 points for Unit #001 and an additional 100 points of Static #1 if these are destroyed.
-- Note that later in the mission, one can remove these scores set, for example, when the a goal achievement time limit is over. -- Note that later in the mission, one can remove these scores set, for example, when the a goal achievement time limit is over.
@@ -226,7 +229,7 @@ SCORING = {
ClassID = 0, ClassID = 0,
Players = {}, Players = {},
AutoSave = true, AutoSave = true,
version = "1.17.1" version = "1.18.1"
} }
local _SCORINGCoalition = { local _SCORINGCoalition = {
@@ -428,6 +431,31 @@ function SCORING:AddScoreGroup( ScoreGroup, Score )
return self return self
end end
--- Specify a special additional score for a @{Core.Set#SET_GROUP}.
-- @param #SCORING self
-- @param Core.Set#SET_GROUP Set The @{Core.Set#SET_GROUP} for which each @{Wrapper.Unit} in each Group a Score is given.
-- @param #number Score The Score value.
-- @return #SCORING
function SCORING:AddScoreSetGroup(Set, Score)
local set = Set:GetSetObjects()
for _,_group in pairs (set) do
if _group and _group:IsAlive() then
self:AddScoreGroup(_group,Score)
end
end
local function AddScore(group)
self:AddScoreGroup(group,Score)
end
function Set:OnAfterAdded(From,Event,To,ObjectName,Object)
AddScore(Object)
end
return self
end
--- Add a @{Core.Zone} to define additional scoring when any object is destroyed in that zone. --- Add a @{Core.Zone} to define additional scoring when any object is destroyed in that zone.
-- Note that if a @{Core.Zone} with the same name is already within the scoring added, the @{Core.Zone} (type) and Score will be replaced! -- Note that if a @{Core.Zone} with the same name is already within the scoring added, the @{Core.Zone} (type) and Score will be replaced!
-- This allows for a dynamic destruction zone evolution within your mission. -- This allows for a dynamic destruction zone evolution within your mission.
@@ -1935,9 +1963,9 @@ end
--- Handles the event when one player kill another player --- Handles the event when one player kill another player
-- @param #SCORING self -- @param #SCORING self
-- @param #PLAYER Player the ataching player -- @param #Wrapper.Client#CLIENT Player the atacking player
-- @param #string TargetPlayerName the name of the killed player -- @param #string TargetPlayerName the name of the killed player
-- @param #bool IsTeamKill true if this kill was a team kill -- @param #boolean IsTeamKill true if this kill was a team kill
-- @param #number TargetThreatLevel Thread level of the target -- @param #number TargetThreatLevel Thread level of the target
-- @param #number PlayerThreatLevelThread level of the player -- @param #number PlayerThreatLevelThread level of the player
-- @param #number Score The score based on both threat levels -- @param #number Score The score based on both threat levels
@@ -1946,9 +1974,9 @@ function SCORING:OnKillPvP(Player, TargetPlayerName, IsTeamKill, TargetThreatLev
end end
--- Handles the event when one player kill another player --- Handles the event when one player kill another player
-- @param #SCORING self -- @param #SCORING self
-- @param #PLAYER Player the ataching player -- @param #Wrapper.Client#CLIENT Player the atacking player
-- @param #string TargetUnitName the name of the killed unit -- @param #string TargetUnitName the name of the killed unit
-- @param #bool IsTeamKill true if this kill was a team kill -- @param #boolean IsTeamKill true if this kill was a team kill
-- @param #number TargetThreatLevel Thread level of the target -- @param #number TargetThreatLevel Thread level of the target
-- @param #number PlayerThreatLevelThread level of the player -- @param #number PlayerThreatLevelThread level of the player
-- @param #number Score The score based on both threat levels -- @param #number Score The score based on both threat levels
+147 -143
View File
@@ -169,163 +169,167 @@ AIRBASE.Nevada = {
--- Airbases of the Normandy map: --- Airbases of the Normandy map:
-- --
-- * AIRBASE.Normandy.Saint_Pierre_du_Mont -- * AIRBASE.Normandy.Abbeville_Drucat
-- * AIRBASE.Normandy.Lignerolles -- * AIRBASE.Normandy.Amiens_Glisy
-- * AIRBASE.Normandy.Cretteville -- * AIRBASE.Normandy.Argentan
-- * AIRBASE.Normandy.Maupertus -- * AIRBASE.Normandy.Avranches_Le_Val_Saint_Pere
-- * AIRBASE.Normandy.Brucheville -- * AIRBASE.Normandy.Azeville
-- * AIRBASE.Normandy.Meautis -- * AIRBASE.Normandy.Barville
-- * AIRBASE.Normandy.Cricqueville_en_Bessin -- * AIRBASE.Normandy.Bazenville
-- * AIRBASE.Normandy.Lessay -- * AIRBASE.Normandy.Beaumont_le_Roger
-- * AIRBASE.Normandy.Sainte_Laurent_sur_Mer -- * AIRBASE.Normandy.Beauvais_Tille
-- * AIRBASE.Normandy.Biniville -- * AIRBASE.Normandy.Beny_sur_Mer
-- * AIRBASE.Normandy.Cardonville -- * AIRBASE.Normandy.Bernay_Saint_Martin
-- * AIRBASE.Normandy.Deux_Jumeaux -- * AIRBASE.Normandy.Beuzeville
-- * AIRBASE.Normandy.Chippelle -- * AIRBASE.Normandy.Biggin_Hill
-- * AIRBASE.Normandy.Beuzeville -- * AIRBASE.Normandy.Biniville
-- * AIRBASE.Normandy.Azeville -- * AIRBASE.Normandy.Broglie
-- * AIRBASE.Normandy.Picauville -- * AIRBASE.Normandy.Brucheville
-- * AIRBASE.Normandy.Le_Molay -- * AIRBASE.Normandy.Cardonville
-- * AIRBASE.Normandy.Longues_sur_Mer -- * AIRBASE.Normandy.Carpiquet
-- * AIRBASE.Normandy.Carpiquet -- * AIRBASE.Normandy.Chailey
-- * AIRBASE.Normandy.Bazenville -- * AIRBASE.Normandy.Chippelle
-- * AIRBASE.Normandy.Sainte_Croix_sur_Mer -- * AIRBASE.Normandy.Conches
-- * AIRBASE.Normandy.Beny_sur_Mer -- * AIRBASE.Normandy.Cormeilles_en_Vexin
-- * AIRBASE.Normandy.Rucqueville -- * AIRBASE.Normandy.Creil
-- * AIRBASE.Normandy.Sommervieu -- * AIRBASE.Normandy.Cretteville
-- * AIRBASE.Normandy.Lantheuil -- * AIRBASE.Normandy.Cricqueville_en_Bessin
-- * AIRBASE.Normandy.Evreux -- * AIRBASE.Normandy.Deanland
-- * AIRBASE.Normandy.Chailey -- * AIRBASE.Normandy.Deauville
-- * AIRBASE.Normandy.Needs_Oar_Point -- * AIRBASE.Normandy.Detling
-- * AIRBASE.Normandy.Funtington -- * AIRBASE.Normandy.Deux_Jumeaux
-- * AIRBASE.Normandy.Tangmere -- * AIRBASE.Normandy.Dinan_Trelivan
-- * AIRBASE.Normandy.Ford -- * AIRBASE.Normandy.Dunkirk_Mardyck
-- * AIRBASE.Normandy.Argentan -- * AIRBASE.Normandy.Essay
-- * AIRBASE.Normandy.Goulet -- * AIRBASE.Normandy.Evreux
-- * AIRBASE.Normandy.Barville -- * AIRBASE.Normandy.Farnborough
-- * AIRBASE.Normandy.Essay -- * AIRBASE.Normandy.Fecamp_Benouville
-- * AIRBASE.Normandy.Hauterive -- * AIRBASE.Normandy.Flers
-- * AIRBASE.Normandy.Lymington -- * AIRBASE.Normandy.Ford
-- * AIRBASE.Normandy.Vrigny -- * AIRBASE.Normandy.Friston
-- * AIRBASE.Normandy.Odiham -- * AIRBASE.Normandy.Funtington
-- * AIRBASE.Normandy.Conches -- * AIRBASE.Normandy.Goulet
-- * AIRBASE.Normandy.West_Malling -- * AIRBASE.Normandy.Gravesend
-- * AIRBASE.Normandy.Villacoublay -- * AIRBASE.Normandy.Guyancourt
-- * AIRBASE.Normandy.Kenley -- * AIRBASE.Normandy.Hauterive
-- * AIRBASE.Normandy.Beauvais_Tille -- * AIRBASE.Normandy.Heathrow
-- * AIRBASE.Normandy.Cormeilles_en_Vexin -- * AIRBASE.Normandy.High_Halden
-- * AIRBASE.Normandy.Creil -- * AIRBASE.Normandy.Kenley
-- * AIRBASE.Normandy.Guyancourt -- * AIRBASE.Normandy.Lantheuil
-- * AIRBASE.Normandy.Lonrai -- * AIRBASE.Normandy.Le_Molay
-- * AIRBASE.Normandy.Dinan_Trelivan -- * AIRBASE.Normandy.Lessay
-- * AIRBASE.Normandy.Heathrow -- * AIRBASE.Normandy.Lignerolles
-- * AIRBASE.Normandy.Fecamp_Benouville -- * AIRBASE.Normandy.Longues_sur_Mer
-- * AIRBASE.Normandy.Farnborough -- * AIRBASE.Normandy.Lonrai
-- * AIRBASE.Normandy.Friston -- * AIRBASE.Normandy.Lymington
-- * AIRBASE.Normandy.Deanland -- * AIRBASE.Normandy.Lympne
-- * AIRBASE.Normandy.Triqueville -- * AIRBASE.Normandy.Manston
-- * AIRBASE.Normandy.Poix -- * AIRBASE.Normandy.Maupertus
-- * AIRBASE.Normandy.Orly -- * AIRBASE.Normandy.Meautis
-- * AIRBASE.Normandy.Stoney_Cross -- * AIRBASE.Normandy.Merville_Calonne
-- * AIRBASE.Normandy.Amiens_Glisy -- * AIRBASE.Normandy.Needs_Oar_Point
-- * AIRBASE.Normandy.Ronai -- * AIRBASE.Normandy.Odiham
-- * AIRBASE.Normandy.Rouen_Boos -- * AIRBASE.Normandy.Orly
-- * AIRBASE.Normandy.Deauville -- * AIRBASE.Normandy.Picauville
-- * AIRBASE.Normandy.Saint_Aubin -- * AIRBASE.Normandy.Poix
-- * AIRBASE.Normandy.Flers -- * AIRBASE.Normandy.Ronai
-- * AIRBASE.Normandy.Avranches_Le_Val_Saint_Pere -- * AIRBASE.Normandy.Rouen_Boos
-- * AIRBASE.Normandy.Gravesend -- * AIRBASE.Normandy.Rucqueville
-- * AIRBASE.Normandy.Beaumont_le_Roger -- * AIRBASE.Normandy.Saint_Andre_de_lEure
-- * AIRBASE.Normandy.Broglie -- * AIRBASE.Normandy.Saint_Aubin
-- * AIRBASE.Normandy.Bernay_Saint_Martin -- * AIRBASE.Normandy.Saint_Omer_Wizernes
-- * AIRBASE.Normandy.Saint_Andre_de_lEure -- * AIRBASE.Normandy.Saint_Pierre_du_Mont
-- * AIRBASE.Normandy.Biggin_Hill -- * AIRBASE.Normandy.Sainte_Croix_sur_Mer
-- * AIRBASE.Normandy.Manston -- * AIRBASE.Normandy.Sainte_Laurent_sur_Mer
-- * AIRBASE.Normandy.Detling -- * AIRBASE.Normandy.Sommervieu
-- * AIRBASE.Normandy.Lympne -- * AIRBASE.Normandy.Stoney_Cross
-- * AIRBASE.Normandy.Abbeville_Drucat -- * AIRBASE.Normandy.Tangmere
-- * AIRBASE.Normandy.Merville_Calonne -- * AIRBASE.Normandy.Triqueville
-- * AIRBASE.Normandy.Saint_Omer_Wizernes -- * AIRBASE.Normandy.Villacoublay
-- * AIRBASE.Normandy.Vrigny
-- * AIRBASE.Normandy.West_Malling
-- --
-- @field Normandy -- @field Normandy
AIRBASE.Normandy = { AIRBASE.Normandy = {
["Saint_Pierre_du_Mont"] = "Saint Pierre du Mont", ["Abbeville_Drucat"] = "Abbeville Drucat",
["Lignerolles"] = "Lignerolles", ["Amiens_Glisy"] = "Amiens-Glisy",
["Cretteville"] = "Cretteville",
["Maupertus"] = "Maupertus",
["Brucheville"] = "Brucheville",
["Meautis"] = "Meautis",
["Cricqueville_en_Bessin"] = "Cricqueville-en-Bessin",
["Lessay"] = "Lessay",
["Sainte_Laurent_sur_Mer"] = "Sainte-Laurent-sur-Mer",
["Biniville"] = "Biniville",
["Cardonville"] = "Cardonville",
["Deux_Jumeaux"] = "Deux Jumeaux",
["Chippelle"] = "Chippelle",
["Beuzeville"] = "Beuzeville",
["Azeville"] = "Azeville",
["Picauville"] = "Picauville",
["Le_Molay"] = "Le Molay",
["Longues_sur_Mer"] = "Longues-sur-Mer",
["Carpiquet"] = "Carpiquet",
["Bazenville"] = "Bazenville",
["Sainte_Croix_sur_Mer"] = "Sainte-Croix-sur-Mer",
["Beny_sur_Mer"] = "Beny-sur-Mer",
["Rucqueville"] = "Rucqueville",
["Sommervieu"] = "Sommervieu",
["Lantheuil"] = "Lantheuil",
["Evreux"] = "Evreux",
["Chailey"] = "Chailey",
["Needs_Oar_Point"] = "Needs Oar Point",
["Funtington"] = "Funtington",
["Tangmere"] = "Tangmere",
["Ford"] = "Ford",
["Argentan"] = "Argentan", ["Argentan"] = "Argentan",
["Goulet"] = "Goulet", ["Avranches_Le_Val_Saint_Pere"] = "Avranches Le Val-Saint-Pere",
["Azeville"] = "Azeville",
["Barville"] = "Barville", ["Barville"] = "Barville",
["Essay"] = "Essay", ["Bazenville"] = "Bazenville",
["Hauterive"] = "Hauterive", ["Beaumont_le_Roger"] = "Beaumont-le-Roger",
["Lymington"] = "Lymington",
["Vrigny"] = "Vrigny",
["Odiham"] = "Odiham",
["Conches"] = "Conches",
["West_Malling"] = "West Malling",
["Villacoublay"] = "Villacoublay",
["Kenley"] = "Kenley",
["Beauvais_Tille"] = "Beauvais-Tille", ["Beauvais_Tille"] = "Beauvais-Tille",
["Beny_sur_Mer"] = "Beny-sur-Mer",
["Bernay_Saint_Martin"] = "Bernay Saint Martin",
["Beuzeville"] = "Beuzeville",
["Biggin_Hill"] = "Biggin Hill",
["Biniville"] = "Biniville",
["Broglie"] = "Broglie",
["Brucheville"] = "Brucheville",
["Cardonville"] = "Cardonville",
["Carpiquet"] = "Carpiquet",
["Chailey"] = "Chailey",
["Chippelle"] = "Chippelle",
["Conches"] = "Conches",
["Cormeilles_en_Vexin"] = "Cormeilles-en-Vexin", ["Cormeilles_en_Vexin"] = "Cormeilles-en-Vexin",
["Creil"] = "Creil", ["Creil"] = "Creil",
["Guyancourt"] = "Guyancourt", ["Cretteville"] = "Cretteville",
["Lonrai"] = "Lonrai", ["Cricqueville_en_Bessin"] = "Cricqueville-en-Bessin",
["Dinan_Trelivan"] = "Dinan-Trelivan",
["Heathrow"] = "Heathrow",
["Fecamp_Benouville"] = "Fecamp-Benouville",
["Farnborough"] = "Farnborough",
["Friston"] = "Friston",
["Deanland"] = "Deanland", ["Deanland"] = "Deanland",
["Triqueville"] = "Triqueville", ["Deauville"] = "Deauville",
["Poix"] = "Poix", ["Detling"] = "Detling",
["Deux_Jumeaux"] = "Deux Jumeaux",
["Dinan_Trelivan"] = "Dinan-Trelivan",
["Dunkirk_Mardyck"] = "Dunkirk-Mardyck",
["Essay"] = "Essay",
["Evreux"] = "Evreux",
["Farnborough"] = "Farnborough",
["Fecamp_Benouville"] = "Fecamp-Benouville",
["Flers"] = "Flers",
["Ford"] = "Ford",
["Friston"] = "Friston",
["Funtington"] = "Funtington",
["Goulet"] = "Goulet",
["Gravesend"] = "Gravesend",
["Guyancourt"] = "Guyancourt",
["Hauterive"] = "Hauterive",
["Heathrow"] = "Heathrow",
["High_Halden"] = "High Halden",
["Kenley"] = "Kenley",
["Lantheuil"] = "Lantheuil",
["Le_Molay"] = "Le Molay",
["Lessay"] = "Lessay",
["Lignerolles"] = "Lignerolles",
["Longues_sur_Mer"] = "Longues-sur-Mer",
["Lonrai"] = "Lonrai",
["Lymington"] = "Lymington",
["Lympne"] = "Lympne",
["Manston"] = "Manston",
["Maupertus"] = "Maupertus",
["Meautis"] = "Meautis",
["Merville_Calonne"] = "Merville Calonne",
["Needs_Oar_Point"] = "Needs Oar Point",
["Odiham"] = "Odiham",
["Orly"] = "Orly", ["Orly"] = "Orly",
["Stoney_Cross"] = "Stoney Cross", ["Picauville"] = "Picauville",
["Amiens_Glisy"] = "Amiens-Glisy", ["Poix"] = "Poix",
["Ronai"] = "Ronai", ["Ronai"] = "Ronai",
["Rouen_Boos"] = "Rouen-Boos", ["Rouen_Boos"] = "Rouen-Boos",
["Deauville"] = "Deauville", ["Rucqueville"] = "Rucqueville",
["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", ["Saint_Andre_de_lEure"] = "Saint-Andre-de-lEure",
["Biggin_Hill"] = "Biggin Hill", ["Saint_Aubin"] = "Saint-Aubin",
["Manston"] = "Manston",
["Detling"] = "Detling",
["Lympne"] = "Lympne",
["Abbeville_Drucat"] = "Abbeville Drucat",
["Merville_Calonne"] = "Merville Calonne",
["Saint_Omer_Wizernes"] = "Saint-Omer Wizernes", ["Saint_Omer_Wizernes"] = "Saint-Omer Wizernes",
["Saint_Pierre_du_Mont"] = "Saint Pierre du Mont",
["Sainte_Croix_sur_Mer"] = "Sainte-Croix-sur-Mer",
["Sainte_Laurent_sur_Mer"] = "Sainte-Laurent-sur-Mer",
["Sommervieu"] = "Sommervieu",
["Stoney_Cross"] = "Stoney Cross",
["Tangmere"] = "Tangmere",
["Triqueville"] = "Triqueville",
["Villacoublay"] = "Villacoublay",
["Vrigny"] = "Vrigny",
["West_Malling"] = "West Malling",
} }
--- Airbases of the Persion Gulf Map: --- Airbases of the Persion Gulf Map:
+2
View File
@@ -1244,7 +1244,9 @@ function UNIT:GetThreatLevel()
if Attributes["Fighters"] then ThreatLevel = 10 if Attributes["Fighters"] then ThreatLevel = 10
elseif Attributes["Multirole fighters"] then ThreatLevel = 9 elseif Attributes["Multirole fighters"] then ThreatLevel = 9
elseif Attributes["Interceptors"] then ThreatLevel = 9
elseif Attributes["Battleplanes"] then ThreatLevel = 8 elseif Attributes["Battleplanes"] then ThreatLevel = 8
elseif Attributes["Battle airplanes"] then ThreatLevel = 8
elseif Attributes["Attack helicopters"] then ThreatLevel = 7 elseif Attributes["Attack helicopters"] then ThreatLevel = 7
elseif Attributes["Strategic bombers"] then ThreatLevel = 6 elseif Attributes["Strategic bombers"] then ThreatLevel = 6
elseif Attributes["Bombers"] then ThreatLevel = 5 elseif Attributes["Bombers"] then ThreatLevel = 5