From 6dec5ea8f8894e04c4937aa3eadb81c4c57e3a8f Mon Sep 17 00:00:00 2001 From: Khopa Date: Wed, 27 May 2020 21:45:58 +0200 Subject: [PATCH] Reworked payloads, factions, map display, carrier. Re-added Tarawa support, many minor bug fixes. UI changes. --- game/db.py | 192 ++++++------ game/event/event.py | 2 +- game/factions/china_2000.py | 5 +- game/factions/france_1995.py | 16 +- game/factions/france_2005.py | 59 ++++ game/factions/germany_1990.py | 1 + game/factions/india_2010.py | 6 + game/factions/italy_1990.py | 11 +- game/factions/libya_2011.py | 48 +++ game/factions/spain_1990.py | 14 + game/factions/uk_1990.py | 15 + game/factions/usa_1955.py | 2 + game/factions/usa_1990.py | 10 + game/factions/usa_2005.py | 13 +- game/game.py | 95 +++++- game/infos/information.py | 11 + game/operation/operation.py | 6 +- game/settings.py | 2 +- gen/aircraft.py | 58 +++- gen/environmentgen.py | 15 +- gen/fleet/carrier_group.py | 10 +- .../{heli_carrier_group.py => lha_group.py} | 11 +- gen/fleet/ship_group_generator.py | 21 +- gen/flights/ai_flight_planner.py | 15 +- gen/ground_forces/ai_ground_planner.py | 2 + gen/groundobjectsgen.py | 5 +- qt_ui/main.py | 20 +- qt_ui/main2.py | 67 ----- qt_ui/uiconstants.py | 13 +- qt_ui/widgets/QFactionsInfos.py | 31 ++ qt_ui/widgets/QTopPanel.py | 19 +- qt_ui/widgets/map/QLiberationMap.py | 51 ++-- qt_ui/widgets/map/QMapControlPoint.py | 35 ++- qt_ui/widgets/map/QMapGroundObject.py | 18 +- qt_ui/windows/QLiberationWindow.py | 34 ++- qt_ui/windows/QNewGameWizard.py | 26 +- .../airfield/QAircraftRecruitmentMenu.py | 2 + qt_ui/windows/mission/QMissionPlanning.py | 5 + .../windows/mission/flight/QFlightCreator.py | 20 +- .../QPredefinedWaypointSelectionWindow.py | 17 +- qt_ui/windows/settings/QSettingsWindow.py | 20 +- resources/customized_payloads/A-10A.lua | 154 ++++++++++ resources/customized_payloads/A-10C.lua | 174 +++++++++++ resources/customized_payloads/AJS37.lua | 165 +++++++++++ resources/customized_payloads/AV8BNA.lua | 239 +++++++++++++++ resources/customized_payloads/C-101CC.lua | 153 ++++++++++ resources/customized_payloads/F-14B.lua | 262 +++++++++++++++++ resources/customized_payloads/F-15C.lua | 277 ++++++++++++++++++ resources/customized_payloads/F-16C_50.lua | 226 ++++++++++++++ resources/customized_payloads/F-4E.lua | 221 ++++++++++++++ resources/customized_payloads/F-5E-3.lua | 171 +++++++++++ .../customized_payloads/FA-18C_hornet.lua | 273 +++++++++++++++++ resources/customized_payloads/JF-17.lua | 189 ++++++++++++ resources/customized_payloads/Ka-50.lua | 137 +++++++++ resources/customized_payloads/L-39C.lua | 101 +++++++ resources/customized_payloads/L-39ZA.lua | 137 +++++++++ resources/customized_payloads/M-2000C.lua | 197 +++++++++++++ resources/customized_payloads/Mi-8MT.lua | 201 +++++++++++++ resources/customized_payloads/MiG-15bis.lua | 84 ++++++ resources/customized_payloads/MiG-19P.lua | 161 ++++++++++ resources/customized_payloads/MiG-21bis.lua | 169 +++++++++++ resources/customized_payloads/MiG-23MLD.lua | 143 +++++++++ resources/customized_payloads/MiG-27K.lua | 158 ++++++++++ resources/customized_payloads/MiG-29A.lua | 183 ++++++++++++ resources/customized_payloads/MiG-29G.lua | 171 +++++++++++ resources/customized_payloads/MiG-29S.lua | 187 ++++++++++++ resources/customized_payloads/MiG-31.lua | 182 ++++++++++++ .../customized_payloads/Mirage 2000-5.lua | 242 +++++++++++++++ resources/customized_payloads/SA342L.lua | 109 +++++++ resources/customized_payloads/SA342M.lua | 169 +++++++++++ .../customized_payloads/SA342Mistral.lua | 169 +++++++++++ resources/customized_payloads/Su-17M4.lua | 182 ++++++++++++ resources/customized_payloads/Su-24M.lua | 160 ++++++++++ resources/customized_payloads/Su-25.lua | 222 ++++++++++++++ resources/customized_payloads/Su-25T.lua | 241 +++++++++++++++ resources/customized_payloads/Su-27.lua | 250 ++++++++++++++++ resources/customized_payloads/Su-30.lua | 250 ++++++++++++++++ resources/customized_payloads/Su-33.lua | 274 +++++++++++++++++ resources/customized_payloads/Su-34.lua | 271 +++++++++++++++++ resources/customized_payloads/Tornado GR4.lua | 247 ++++++++++++++++ resources/customized_payloads/Tornado IDS.lua | 206 +++++++++++++ resources/customized_payloads/UH-1H.lua | 142 +++++++++ resources/stylesheets/style.css | 30 ++ resources/ui/misc/hourglass.png | Bin 0 -> 541 bytes .../ui/misc/{pass_turn.png => proceed.png} | Bin theater/caucasus.py | 95 ++++-- theater/controlpoint.py | 27 +- theater/nevada.py | 26 +- theater/normandy.py | 14 +- theater/persiangulf.py | 163 +++++++---- theater/start_generator.py | 27 +- theater/theatergroundobject.py | 1 + userdata/persistency.py | 18 +- 93 files changed, 8799 insertions(+), 474 deletions(-) create mode 100644 game/factions/france_2005.py create mode 100644 game/factions/libya_2011.py create mode 100644 game/infos/information.py rename gen/fleet/{heli_carrier_group.py => lha_group.py} (54%) delete mode 100644 qt_ui/main2.py create mode 100644 qt_ui/widgets/QFactionsInfos.py create mode 100644 resources/customized_payloads/A-10A.lua create mode 100644 resources/customized_payloads/A-10C.lua create mode 100644 resources/customized_payloads/AJS37.lua create mode 100644 resources/customized_payloads/AV8BNA.lua create mode 100644 resources/customized_payloads/C-101CC.lua create mode 100644 resources/customized_payloads/F-14B.lua create mode 100644 resources/customized_payloads/F-15C.lua create mode 100644 resources/customized_payloads/F-16C_50.lua create mode 100644 resources/customized_payloads/F-4E.lua create mode 100644 resources/customized_payloads/F-5E-3.lua create mode 100644 resources/customized_payloads/FA-18C_hornet.lua create mode 100644 resources/customized_payloads/JF-17.lua create mode 100644 resources/customized_payloads/Ka-50.lua create mode 100644 resources/customized_payloads/L-39C.lua create mode 100644 resources/customized_payloads/L-39ZA.lua create mode 100644 resources/customized_payloads/M-2000C.lua create mode 100644 resources/customized_payloads/Mi-8MT.lua create mode 100644 resources/customized_payloads/MiG-15bis.lua create mode 100644 resources/customized_payloads/MiG-19P.lua create mode 100644 resources/customized_payloads/MiG-21bis.lua create mode 100644 resources/customized_payloads/MiG-23MLD.lua create mode 100644 resources/customized_payloads/MiG-27K.lua create mode 100644 resources/customized_payloads/MiG-29A.lua create mode 100644 resources/customized_payloads/MiG-29G.lua create mode 100644 resources/customized_payloads/MiG-29S.lua create mode 100644 resources/customized_payloads/MiG-31.lua create mode 100644 resources/customized_payloads/Mirage 2000-5.lua create mode 100644 resources/customized_payloads/SA342L.lua create mode 100644 resources/customized_payloads/SA342M.lua create mode 100644 resources/customized_payloads/SA342Mistral.lua create mode 100644 resources/customized_payloads/Su-17M4.lua create mode 100644 resources/customized_payloads/Su-24M.lua create mode 100644 resources/customized_payloads/Su-25.lua create mode 100644 resources/customized_payloads/Su-25T.lua create mode 100644 resources/customized_payloads/Su-27.lua create mode 100644 resources/customized_payloads/Su-30.lua create mode 100644 resources/customized_payloads/Su-33.lua create mode 100644 resources/customized_payloads/Su-34.lua create mode 100644 resources/customized_payloads/Tornado GR4.lua create mode 100644 resources/customized_payloads/Tornado IDS.lua create mode 100644 resources/customized_payloads/UH-1H.lua create mode 100644 resources/ui/misc/hourglass.png rename resources/ui/misc/{pass_turn.png => proceed.png} (100%) diff --git a/game/db.py b/game/db.py index d175d5c3..61848136 100644 --- a/game/db.py +++ b/game/db.py @@ -15,11 +15,13 @@ from dcs.unitgroup import * from game.factions.china_2000 import China_2000 from game.factions.france_1995 import France_1995 +from game.factions.france_2005 import France_2005 from game.factions.germany_1990 import Germany_1990 from game.factions.insurgent import Insurgent from game.factions.iran_2015 import Iran_2015 from game.factions.israel_2000 import Israel_2000 from game.factions.italy_1990 import Italy_1990 +from game.factions.libya_2011 import Lybia_2011 from game.factions.netherlands_1990 import Netherlands_1990 from game.factions.north_korea_2000 import NorthKorea_2000 from game.factions.pakistan_2015 import Pakistan_2015 @@ -187,6 +189,7 @@ PRICES = { Armor.MBT_Challenger_II: 30, Armor.IFV_Marder: 10, Armor.IFV_MCV_80: 10, + Armor.IFV_LAV_25: 7, Artillery.MLRS_M270: 55, Artillery.SPH_M109_Paladin: 25, @@ -411,6 +414,8 @@ UNIT_BY_TASK = { Armor.IFV_MCV_80, Armor.IFV_MCV_80, Armor.IFV_MCV_80, + Armor.IFV_LAV_25, + Armor.IFV_LAV_25, Armor.IFV_Marder, Armor.IFV_Marder, Armor.IFV_Marder, @@ -542,29 +547,6 @@ CARRIER_TAKEOFF_BAN = [ Su_33, # Kuznecow is bugged in a way that only 2 aircraft could be spawned ] -""" -AirDefense units that will be spawned at control points not related to the current operation -""" -EXTRA_AA = { - "Russia": AirDefence.SAM_SA_9_Strela_1_9P31, - "USA": AirDefence.SAM_Linebacker_M6, - "France": AirDefence.SPAAA_Gepard, - "Germany": AirDefence.SPAAA_Gepard, - "China": AirDefence.SPAAA_ZSU_23_4_Shilka, - "UK": AirDefence.AAA_Vulcan_M163, - "Iran": AirDefence.SPAAA_ZSU_23_4_Shilka, - "North Korea": AirDefence.AAA_ZU_23_Closed, - "Italy": AirDefence.AAA_Vulcan_M163, - "Spain": AirDefence.AAA_Vulcan_M163, - "The Netherlands": AirDefence.AAA_Vulcan_M163, - "Turkey": AirDefence.AAA_Vulcan_M163, - "Israel": AirDefence.AAA_Vulcan_M163, - "India": AirDefence.SPAAA_ZSU_23_4_Shilka, - "United Arab Emirates": AirDefence.Stinger_MANPADS, - "Insurgents": AirDefence.AAA_ZU_23_Insurgent_on_Ural_375, - "Third Reich": AirDefence.AAA_Flak_Vierling_38, -} - """ Units separated by country. Currently only Russia and USA are supported. country : DCS Country name @@ -576,6 +558,7 @@ FACTIONS = { "Russia 1990": Russia_1990, "Russia 2010": Russia_2010, "Iran 2015": Iran_2015, + "Lybia 2011": Lybia_2011, "China 2000": China_2000, "North Korea 2000": NorthKorea_2000, "Insurgent": Insurgent, @@ -587,6 +570,7 @@ FACTIONS = { "USA 1955 (Require WW2 Pack)": USA_1955, "USA 1944 (Require WW2 Pack)": USA_1944, "France 1995": France_1995, + "France 2005": France_2005, "Germany 1990": Germany_1990, "Netherlands 1990": Netherlands_1990, "United Kingdown 1990": UnitedKingdom_1990, @@ -631,105 +615,77 @@ where: Payload will be used for operation of following type, "*" category will be used always, no matter the operation. """ + +COMMON_OVERRIDE = { + CAP: "CAP", + Intercept: "CAP", + CAS: "CAS", + PinpointStrike: "STRIKE", + SEAD: "SEAD", + AntishipStrike: "ANTISHIP", + GroundAttack: "STRIKE" +} + PLANE_PAYLOAD_OVERRIDES = { + FA_18C_hornet: { - CAS: "AIM-9M*2,AGM-65D*2,Mk-82*4,FLIR Pod,Fuel", - CAP: "AIM-120*4,AIM-9*2,AIM-7*2,Fuel", - Escort: "AIM-120*4,AIM-9*2,AIM-7*2,Fuel", - PinpointStrike: "MK-82*8,AIM-9*2,AIM-7,FLIR Pod,Fuel", - AntishipStrike: "MK-82*8,AIM-9*2,AIM-7,FLIR Pod,Fuel", - SEAD: "AGM-88*2,AIM-9*2,AIM-7,FLIR Pod,Fuel*3" + CAP: "CAP HEAVY", + Intercept: "CAP HEAVY", + CAS: "CAS MAVERICK F", + PinpointStrike: "STRIKE", + SEAD: "SEAD", + AntishipStrike: "ANTISHIP", + GroundAttack: "STRIKE" }, - JF_17: { - CAS: "PL-5Ex2, 2*SD-10x2, 800L Tank", - CAP: "PL-5Ex2, 2*GBU-12x2, BRM1x2, WMD7", - SEAD: "PL-5Ex2, LD-10x2, 1100L Tankx2, WMD7" - }, - - F_14B: { - CAP: "AIM-54A-MK47*4, AIM-7M*2, AIM-9M*2, XT*2", - Escort: "AIM-54A-MK47*4, AIM-7M*2, AIM-9M*2, XT*2", - CAS: "AIM-54A-MK60*1, AIM-7M*1, AIM-9M*2, XT*2, Mk-82*2, LANTIRN", - GroundAttack: "AIM54, AIM-9M*2, XT*2, GBU-12*4, LANTIRN", - }, - - Su_25T: { - CAS: "APU-8 Vikhr-M*2,Kh-25ML,R-73*2,SPPU-22*2,Mercury LLTV Pod,MPS-410", - SEAD: "Kh58*2_Kh25MPU*2_Kh25ML*2_R73*2_L-081_MPS-410" - }, - - Su_33: { - CAP: "R-73*4,R-27R*2,R-27ER*6", - Escort: "R-73*4,R-27R*2,R-27ER*6", - }, - - AJS37: { - CAS: "CAS (75 GUN): RB-75*2, AKAN", - }, - - AV8BNA: { - CAS: "AS 2", - SEAD: "Stand Off 2" - }, + A_10A: COMMON_OVERRIDE, + A_10C: COMMON_OVERRIDE, + AV8BNA: COMMON_OVERRIDE, + C_101CC: COMMON_OVERRIDE, + F_5E_3: COMMON_OVERRIDE, + F_14B: COMMON_OVERRIDE, + F_15C: COMMON_OVERRIDE, + F_16C_50: COMMON_OVERRIDE, + JF_17: COMMON_OVERRIDE, + M_2000C: COMMON_OVERRIDE, + MiG_15bis: COMMON_OVERRIDE, + MiG_19P: COMMON_OVERRIDE, + MiG_21Bis: COMMON_OVERRIDE, + AJS37: COMMON_OVERRIDE, + Su_25T:COMMON_OVERRIDE, + Su_25:COMMON_OVERRIDE, + Su_27:COMMON_OVERRIDE, + Su_33:COMMON_OVERRIDE, + MiG_29A:COMMON_OVERRIDE, + MiG_29G:COMMON_OVERRIDE, + MiG_29S:COMMON_OVERRIDE, + Su_24M:COMMON_OVERRIDE, + Su_30: COMMON_OVERRIDE, + Su_34: COMMON_OVERRIDE, + MiG_23MLD: COMMON_OVERRIDE, + MiG_27K: COMMON_OVERRIDE, + Tornado_GR4: COMMON_OVERRIDE, + Tornado_IDS: COMMON_OVERRIDE, + Mirage_2000_5: COMMON_OVERRIDE, + MiG_31:COMMON_OVERRIDE, + SA342M:COMMON_OVERRIDE, + SA342L:COMMON_OVERRIDE, + SA342Mistral:COMMON_OVERRIDE, + Mi_8MT:COMMON_OVERRIDE, + Ka_50:COMMON_OVERRIDE, + L_39ZA:COMMON_OVERRIDE, + L_39C:COMMON_OVERRIDE, + Su_17M4: COMMON_OVERRIDE, + F_4E: COMMON_OVERRIDE, AH_64D:{ CAS: "AGM-114K*16" }, - A_10C: { - CAS: "AGM-65D*2,AGM-65H*2,GBU-12*2,GBU-38*2,AIM-9*2,TGP,ECM,MK151*7", - GroundAttack: "AGM-65K*2,GBU-12*8,AIM-9M*2.ECM,TGP", - }, - - Ka_50: { - CAS: "12x9A4172, 40xS-8", - GroundAttack: "12x9A4172, 40xS-8", - }, - - M_2000C: { - CAP: "Combat Air Patrol", - Escort: "Combat Air Patrol", - GroundAttack: "MK-82S Heavy Strike", - }, - - Mirage_2000_5: { - CAP: "R 550*2,MICA IR*2,MICA AR*2,Fuel*3", - }, - - MiG_21Bis: { - CAP: "Patrol, medium range", - }, - - Su_24M: { - CAS: "S-24*6", - SEAD: "Kh25MPU*2_Kh25ML*2_L-081" - }, - Su_25TM: { SEAD: "Kh-31P*2_Kh-25ML*4_R-73*2_L-081_MPS410", }, - Su_17M4: { - CAS: "Kh-25MR*4,R-60M*2,Fuel*2", - SEAD: "Kh25MPU*2_Kh25ML*2_,R60M*2_Fuel*2" - }, - - Su_30: { - SEAD: "Kh-31P*4,R-73*2,R-77*2,ECM", - }, - - Su_34: { - SEAD: "Kh-25MPU*6,R-73*2,R-77*2,ECM", - }, - - MiG_27K: { - SEAD: "Kh-25MPU*2,R-60M*2,Fuel" - }, - - F_4E: { - SEAD: "AGM-45*4,AIM-7*2,ECM" - } } """ @@ -787,10 +743,28 @@ CARRIER_CAPABLE = [ FA_18C_hornet, F_14B, AV8BNA, + Su_33, UH_1H, Mi_8MT, Ka_50, + AH_1W, + OH_58D, + + SA342L, + SA342M, + SA342Minigun, + SA342Mistral, +] + +LHA_CAPABLE = [ + AV8BNA, + + UH_1H, + Mi_8MT, + Ka_50, + AH_1W, + OH_58D, SA342L, SA342M, diff --git a/game/event/event.py b/game/event/event.py index e55685e3..be3fb9eb 100644 --- a/game/event/event.py +++ b/game/event/event.py @@ -190,7 +190,7 @@ class Event: # -- AA Site groups for i, ground_object in enumerate(cp.ground_objects): - if ground_object.dcs_identifier in ["AA", "CARRIER"]: + if ground_object.dcs_identifier in ["AA", "CARRIER", "LHA"]: for g in ground_object.groups: for u in g.units: if u.name == destroyed_ground_unit_name: diff --git a/game/factions/china_2000.py b/game/factions/china_2000.py index 3c4fd3f2..9960bb53 100644 --- a/game/factions/china_2000.py +++ b/game/factions/china_2000.py @@ -46,7 +46,7 @@ China_2000 = { Tanker_Elnya_160 ], "shorad":[ - AirDefence.AAA_ZU_23_Closed, + AirDefence.SPAAA_ZSU_23_4_Shilka, AirDefence.Rapier_FSA_Launcher, # Standing as PL-9C Shorad AirDefence.HQ_7_Self_Propelled_LN ], "aircraft_carrier": [ @@ -56,5 +56,8 @@ China_2000 = { Type_052C_Destroyer ], "cruiser": [ Type_054A_Frigate, + ], "carrier_names": [ + "001 Liaoning", + "002 Shandong", ] } \ No newline at end of file diff --git a/game/factions/france_1995.py b/game/factions/france_1995.py index 82efb9bc..552e8125 100644 --- a/game/factions/france_1995.py +++ b/game/factions/france_1995.py @@ -6,7 +6,7 @@ from dcs.helicopters import * France_1995 = { "country": "France", "side": "blue", - "units":[ + "units": [ M_2000C, Mirage_2000_5, @@ -19,21 +19,25 @@ France_1995 = { SA342L, Armor.MBT_Leclerc, - Armor.TPz_Fuchs, # Standing as VAB + Armor.TPz_Fuchs, # Standing as VAB + Armor.APC_Cobra, # Standing as VBL + Armor.ATGM_M1134_Stryker, # Standing as VAB Mephisto + Artillery.SPH_M109_Paladin, # Standing as AMX30 AuF1 + Artillery.MLRS_M270, Unarmed.Transport_M818, Infantry.Infantry_M4, - Infantry.Infantry_M4, + Infantry.Soldier_M249, AirDefence.SAM_Roland_ADS, AirDefence.SAM_Hawk_PCP, - AirDefence.HQ_7_Self_Propelled_LN, # Standing as Crotale + AirDefence.HQ_7_Self_Propelled_LN, # Standing as Crotale CVN_74_John_C__Stennis, LHA_1_Tarawa, Armed_speedboat, - - ], "shorad":[ + + ], "shorad": [ AirDefence.HQ_7_Self_Propelled_LN, AirDefence.SAM_Roland_ADS ] diff --git a/game/factions/france_2005.py b/game/factions/france_2005.py new file mode 100644 index 00000000..3b2b235b --- /dev/null +++ b/game/factions/france_2005.py @@ -0,0 +1,59 @@ +from dcs.vehicles import * +from dcs.ships import * +from dcs.planes import * +from dcs.helicopters import * + +France_2005 = { + "country": "France", + "side": "blue", + "units":[ + M_2000C, + Mirage_2000_5, + FA_18C_hornet, # Standing as Rafale M + + KC_135, + S_3B_Tanker, + C_130, + E_3A, + + SA342M, + SA342L, + + Armor.MBT_Leclerc, + Armor.TPz_Fuchs, # Standing as VAB + Armor.APC_Cobra, # Standing as VBL + Armor.ATGM_M1134_Stryker, # Standing as VAB Mephisto + Artillery.SPH_M109_Paladin, # Standing as AMX30 AuF1 + Artillery.MLRS_M270, + + Unarmed.Transport_M818, + Infantry.Infantry_M4, + Infantry.Soldier_M249, + + AirDefence.SAM_Roland_ADS, + AirDefence.SAM_Hawk_PCP, + AirDefence.HQ_7_Self_Propelled_LN, # Standing as Crotale + + CVN_74_John_C__Stennis, + LHA_1_Tarawa, + Armed_speedboat, + + ], "shorad":[ + AirDefence.HQ_7_Self_Propelled_LN, + AirDefence.SAM_Roland_ADS + ], "aircraft_carrier": [ + CVN_74_John_C__Stennis, # Standing as CDG Aircraft Carrier + ], "helicopter_carrier": [ + LHA_1_Tarawa, # Standing as Mistral Class + ], "destroyer": [ + Oliver_Hazzard_Perry_class, + ], "cruiser": [ + Ticonderoga_class, + ], "carrier_names": [ + "R91 Charles de Gaulle", + ], "lhanames": [ + "L9013 Mistral", + "L9014 Tonerre", + "L9015 Dixmude" + ] +} \ No newline at end of file diff --git a/game/factions/germany_1990.py b/game/factions/germany_1990.py index 23d36843..d5acbc89 100644 --- a/game/factions/germany_1990.py +++ b/game/factions/germany_1990.py @@ -27,6 +27,7 @@ Germany_1990 = { Unarmed.Transport_M818, Infantry.Infantry_M4, + Infantry.Soldier_M249, AirDefence.SAM_Roland_ADS, AirDefence.SAM_Hawk_PCP, diff --git a/game/factions/india_2010.py b/game/factions/india_2010.py index 15eb1fca..f5de2046 100644 --- a/game/factions/india_2010.py +++ b/game/factions/india_2010.py @@ -43,5 +43,11 @@ India_2010 = { AirDefence.SAM_SA_13_Strela_10M3_9A35M3, AirDefence.SAM_SA_8_Osa_9A33, AirDefence.SAM_SA_19_Tunguska_2S6 + ], "aircraft_carrier": [ + CV_1143_5_Admiral_Kuznetsov, + ], "destroyer": [ + FSG_1241_1MP_Molniya, + ], "carrier_names": [ + "INS Vikramaditya" ] } \ No newline at end of file diff --git a/game/factions/italy_1990.py b/game/factions/italy_1990.py index 8d1a6210..ad9a9bc5 100644 --- a/game/factions/italy_1990.py +++ b/game/factions/italy_1990.py @@ -31,7 +31,16 @@ Italy_1990 = { CVN_74_John_C__Stennis, LHA_1_Tarawa, Armed_speedboat, - ], "shorad":[ + ], "shorad":[ AirDefence.SAM_Avenger_M1097, + ], "helicopter_carrier": [ + LHA_1_Tarawa, + ], "destroyer": [ + Oliver_Hazzard_Perry_class, + ], "cruiser": [ + Ticonderoga_class, + ], "lha_names": [ + "Giuseppe Garibaldi", + "Cavour", ] } diff --git a/game/factions/libya_2011.py b/game/factions/libya_2011.py new file mode 100644 index 00000000..fbde9f03 --- /dev/null +++ b/game/factions/libya_2011.py @@ -0,0 +1,48 @@ +from dcs.vehicles import * +from dcs.ships import * +from dcs.planes import * +from dcs.helicopters import * + +Lybia_2011 = { + "country": "Libya", + "side": "red", + "units": [ + + MiG_21Bis, + MiG_23MLD, + Su_24M, + Su_17M4, + Mi_24V, + + IL_76MD, + IL_78M, + An_26B, + An_30M, + Yak_40, + A_50, + + AirDefence.SAM_SA_8_Osa_9A33, + AirDefence.SAM_SA_2_LN_SM_90, + AirDefence.SAM_SA_3_S_125_LN_5P73, + AirDefence.SAM_SA_6_Kub_LN_2P25, + AirDefence.HQ_7_Self_Propelled_LN, + + Armor.IFV_BMP_1, + Armor.ARV_MTLB_U_BOMAN, + Armor.ARV_BRDM_2, + Armor.MBT_T_55, + Armor.MBT_T_72B, + Artillery.MLRS_BM_21_Grad, + + Unarmed.Transport_Ural_375, + Unarmed.Transport_UAZ_469, + + Infantry.Paratrooper_RPG_16, + Infantry.Infantry_Soldier_Insurgents + + ], + "shorad":[ + AirDefence.HQ_7_Self_Propelled_LN, + AirDefence.SAM_SA_8_Osa_9A33, + ] +} \ No newline at end of file diff --git a/game/factions/spain_1990.py b/game/factions/spain_1990.py index 5109a6cd..d18aa074 100644 --- a/game/factions/spain_1990.py +++ b/game/factions/spain_1990.py @@ -17,10 +17,12 @@ Spain_1990 = { E_3A, Armor.MBT_M60A3_Patton, + Armor.MBT_Leopard_2, Armor.APC_M113, Unarmed.Transport_M818, Infantry.Infantry_M4, + Infantry.Soldier_M249, AirDefence.SAM_Hawk_PCP, AirDefence.SAM_Avenger_M1097, @@ -30,5 +32,17 @@ Spain_1990 = { Armed_speedboat, ], "shorad":[ AirDefence.SAM_Avenger_M1097, + ], "aircraft_carrier": [ + CVN_74_John_C__Stennis, # Standing as Principe de Asturias + ], "helicopter_carrier": [ + LHA_1_Tarawa, # Standing as Juan Carlos + ], "destroyer": [ + Oliver_Hazzard_Perry_class, + ], "cruiser": [ + Ticonderoga_class, + ], "carrier_names": [ + "Principe de Asturias", + ], "lhanames": [ + "Juan Carlos I", ] } \ No newline at end of file diff --git a/game/factions/uk_1990.py b/game/factions/uk_1990.py index 33cb324e..4a3ba654 100644 --- a/game/factions/uk_1990.py +++ b/game/factions/uk_1990.py @@ -21,9 +21,12 @@ UnitedKingdom_1990 = { Armor.MBT_Challenger_II, Armor.IFV_MCV_80, + Armor.APC_M1043_HMMWV_Armament, + Armor.ATGM_M1045_HMMWV_TOW, Unarmed.Transport_M818, Infantry.Infantry_M4, + Infantry.Soldier_M249, AirDefence.Rapier_FSA_Launcher, AirDefence.SAM_Avenger_M1097, # Standing as Starstreak @@ -31,5 +34,17 @@ UnitedKingdom_1990 = { CVN_74_John_C__Stennis, LHA_1_Tarawa, Armed_speedboat, + ], "shorad":[ + AirDefence.SAM_Avenger_M1097, + ], "helicopter_carrier": [ + LHA_1_Tarawa, + ], "destroyer": [ + Oliver_Hazzard_Perry_class, + ], "cruiser": [ + Ticonderoga_class, + ], "lha_names": [ + "HMS Invincible", + "HMS Illustrious", + "HMS Ark Royal", ] } \ No newline at end of file diff --git a/game/factions/usa_1955.py b/game/factions/usa_1955.py index 81b74c60..9d442388 100644 --- a/game/factions/usa_1955.py +++ b/game/factions/usa_1955.py @@ -17,6 +17,8 @@ USA_1955 = { Armor.MT_M4A4_Sherman_Firefly, Armor.MT_M4_Sherman, + Armor.MBT_M60A3_Patton, + Armor.APC_M2A1, Armor.M30_Cargo_Carrier, Unarmed.Transport_M818, diff --git a/game/factions/usa_1990.py b/game/factions/usa_1990.py index 9b1a97c2..e8d3eb89 100644 --- a/game/factions/usa_1990.py +++ b/game/factions/usa_1990.py @@ -48,5 +48,15 @@ USA_1990 = { Oliver_Hazzard_Perry_class, ], "cruiser": [ Ticonderoga_class, + ], "carrier_names": [ + "CVN-72 Abraham Lincoln", + "CVN-73 Georges Washington", + "CVN-74 John C. Stennis", + ], "lhanames": [ + "LHA-1 Tarawa", + "LHA-2 Saipan", + "LHA-3 Belleau Wood", + "LHA-4 Nassau", + "LHA-5 Peleliu" ] } \ No newline at end of file diff --git a/game/factions/usa_2005.py b/game/factions/usa_2005.py index dde1a4f6..f7ae445d 100644 --- a/game/factions/usa_2005.py +++ b/game/factions/usa_2005.py @@ -16,8 +16,6 @@ USA_2005 = { A_10C, AV8BNA, - B_1B, - KC_135, S_3B_Tanker, C_130, @@ -28,6 +26,7 @@ USA_2005 = { Armor.MBT_M1A2_Abrams, Armor.ATGM_M1134_Stryker, + Armor.APC_M1126_Stryker_ICV, Armor.IFV_M2A2_Bradley, Armor.IFV_LAV_25, Armor.APC_M1043_HMMWV_Armament, @@ -56,5 +55,15 @@ USA_2005 = { Oliver_Hazzard_Perry_class, ], "cruiser": [ Ticonderoga_class, + ], "carrier_names": [ + "CVN-72 Abraham Lincoln", + "CVN-73 Georges Washington", + "CVN-74 John C. Stennis", + ], "lhanames": [ + "LHA-1 Tarawa", + "LHA-2 Saipan", + "LHA-3 Belleau Wood", + "LHA-4 Nassau", + "LHA-5 Peleliu" ] } diff --git a/game/game.py b/game/game.py index fcbca5e1..51f6afbc 100644 --- a/game/game.py +++ b/game/game.py @@ -7,6 +7,7 @@ from dcs.task import * from dcs.vehicles import * from game.game_stats import GameStats +from game.infos.information import Information from gen.conflictgen import Conflict from gen.flights.ai_flight_planner import FlightPlanner from gen.ground_forces.ai_ground_planner import GroundPlanner @@ -52,7 +53,7 @@ AWACS_BUDGET_COST = 4 PLAYER_BUDGET_INITIAL = 450 # Base post-turn bonus value -PLAYER_BUDGET_BASE = 10 +PLAYER_BUDGET_BASE = 20 # Bonus multiplier logarithm base PLAYER_BUDGET_IMPORTANCE_LOG = 2 @@ -84,6 +85,7 @@ class Game: self.game_stats.update(self) self.planners = {} self.ground_planners = {} + self.informations = [] def _roll(self, prob, mult): if self.settings.version == "dev": @@ -208,13 +210,17 @@ class Game: else: event.skip() - for cp in self.theater.enemy_points(): - self._commision_units(cp) + + self._enemy_reinforcement() self._budget_player() if not no_action: for cp in self.theater.player_points(): cp.base.affect_strength(+PLAYER_BASE_STRENGTH_RECOVERY) + else: + for cp in self.theater.player_points(): + if not cp.is_carrier and not cp.is_lha: + cp.base.affect_strength(-PLAYER_BASE_STRENGTH_RECOVERY) self.ignored_cps = [] if ignored_cps: @@ -242,6 +248,89 @@ class Game: + def _enemy_reinforcement(self): + MAX_ARMOR = 50 * self.settings.multiplier + MAX_AIRCRAFT = 50 * self.settings.multiplier + + production = 0 + for enemy_point in self.theater.enemy_points(): + for g in enemy_point.ground_objects: + if g.category == "power": + production = production + 4 + elif g.category == "warehouse": + production = production + 2 + elif g.category == "fuel": + production = production + 2 + elif g.category == "ammo": + production = production + 2 + elif g.category == "farp": + production = production + 1 + elif g.category == "fob": + production = production + 1 + elif g.category == "factory": + production = production + 10 + elif g.category == "comms": + production = production + 8 + elif g.category == "oil": + production = production + 8 + + budget_for_armored_units = production / 2 + budget_for_aircraft = production / 2 + + potential_cp_armor = [] + for cp in self.theater.enemy_points(): + for cpe in cp.connected_points: + if cpe.captured and cp.base.total_armor < MAX_ARMOR: + potential_cp_armor.append(cp) + if len(potential_cp_armor) == 0: + potential_cp_armor = self.theater.enemy_points() + + i = 0 + potential_units = [u for u in db.FACTIONS[self.enemy_name]["units"] if u in db.UNIT_BY_TASK[PinpointStrike]] + + print("Enemy Recruiting") + print(potential_cp_armor) + print(budget_for_armored_units) + print(potential_units) + + if len(potential_units) > 0 and len(potential_cp_armor) > 0: + while budget_for_armored_units > 0: + i = i + 1 + if i > 50 or budget_for_armored_units <= 0: + break + target_cp = random.choice(potential_cp_armor) + if target_cp.base.total_armor >= MAX_ARMOR: + continue + unit = random.choice(potential_units) + price = db.PRICES[unit]*2 + budget_for_armored_units -= price * 2 + target_cp.base.armor[unit] = target_cp.base.armor.get(unit, 0) + 2 + info = Information("Enemy Reinforcement", unit.id + " x 2 at " + target_cp.name, self.turn) + print(str(info)) + self.informations.append(info) + + if budget_for_armored_units > 0: + budget_for_aircraft += budget_for_armored_units + + potential_units = [u for u in db.FACTIONS[self.enemy_name]["units"] if u in db.UNIT_BY_TASK[CAS] or u in db.UNIT_BY_TASK[CAP]] + if len(potential_units) > 0 and len(potential_cp_armor) > 0: + while budget_for_aircraft > 0: + i = i + 1 + if i > 50 or budget_for_aircraft <= 0: + break + target_cp = random.choice(potential_cp_armor) + if target_cp.base.total_planes >= MAX_AIRCRAFT: + continue + unit = random.choice(potential_units) + price = db.PRICES[unit]*2 + budget_for_aircraft -= price * 2 + target_cp.base.aircraft[unit] = target_cp.base.aircraft.get(unit, 0) + 2 + info = Information("Enemy Reinforcement", unit.id + " x 2 at " + target_cp.name, self.turn) + print(str(info)) + self.informations.append(info) + + + @property def current_turn_daytime(self): return ["dawn", "day", "dusk", "night"][self.turn % 4] diff --git a/game/infos/information.py b/game/infos/information.py new file mode 100644 index 00000000..4fd12d2f --- /dev/null +++ b/game/infos/information.py @@ -0,0 +1,11 @@ + +class Information(): + + def __init__(self, title="", text="", turn=0): + self.title = title + self.text = text + self.turn = turn + + def __str__(self): + s = "[" + str(self.turn) + "] " + self.title + "\n" + self.text + return s \ No newline at end of file diff --git a/game/operation/operation.py b/game/operation/operation.py index 444fd8d2..14dd8d43 100644 --- a/game/operation/operation.py +++ b/game/operation/operation.py @@ -18,7 +18,6 @@ class Operation: conflict = None # type: Conflict armorgen = None # type: ArmorConflictGenerator airgen = None # type: AircraftConflictGenerator - extra_aagen = None # type: ExtraAAConflictGenerator shipgen = None # type: ShipGenerator triggersgen = None # type: TriggersGenerator airsupportgen = None # type: AirSupportConflictGenerator @@ -77,7 +76,6 @@ class Operation: player_country = self.from_cp.captured and self.attacker_country or self.defender_country enemy_country = self.from_cp.captured and self.defender_country or self.attacker_country - self.extra_aagen = ExtraAAConflictGenerator(mission, conflict, self.game, player_country, enemy_country) def prepare(self, terrain: Terrain, is_quick: bool): with open("resources/default_options.lua", "r") as f: @@ -195,12 +193,12 @@ class Operation: # Inject Lua Scripts load_mist = TriggerStart(comment="Load Mist Lua Framework") - with open(os.path.abspath("./resources/scripts/mist_4_3_74.lua")) as f: + with open("./resources/scripts/mist_4_3_74.lua") as f: load_mist.add_action(DoScript(String(f.read()))) self.current_mission.triggerrules.triggers.append(load_mist) load_dcs_libe = TriggerStart(comment="Load DCS Liberation Script") - with open(os.path.abspath("./resources/scripts/dcs_liberation.lua")) as f: + with open("./resources/scripts/dcs_liberation.lua") as f: script = f.read() json_location = "[["+os.path.abspath("resources\\scripts\\json.lua")+"]]" state_location = "[[" + os.path.abspath("state.json") + "]]" diff --git a/game/settings.py b/game/settings.py index 81f377aa..ef29c22c 100644 --- a/game/settings.py +++ b/game/settings.py @@ -7,7 +7,7 @@ class Settings: labels = "Full" only_player_takeoff = True night_disabled = False - + supercarrier = False multiplier = 1 sams = True cold_start = False diff --git a/gen/aircraft.py b/gen/aircraft.py index 9fe2f584..88925ed9 100644 --- a/gen/aircraft.py +++ b/gen/aircraft.py @@ -42,18 +42,14 @@ TRANSPORT_LANDING_ALT = 2000 DEFENCE_ENGAGEMENT_MAX_DISTANCE = 60000 INTERCEPT_MAX_DISTANCE = 200000 -GROUP_VERTICAL_OFFSET = 300 - class AircraftConflictGenerator: escort_targets = [] # type: typing.List[typing.Tuple[FlyingGroup, int]] - vertical_offset = None # type: int def __init__(self, mission: Mission, conflict: Conflict, settings: Settings): self.m = mission self.settings = settings self.conflict = conflict - self.vertical_offset = 0 self.escort_targets = [] def _start_type(self) -> StartType: @@ -91,6 +87,8 @@ class AircraftConflictGenerator: did_load_loadout = False unit_type = group.units[0].unit_type + print("SETUP GROUP : " + str(for_task) + " -- " + str(group.name)) + if unit_type in db.PLANE_PAYLOAD_OVERRIDES: override_loadout = db.PLANE_PAYLOAD_OVERRIDES[unit_type] if type(override_loadout) == dict: @@ -163,12 +161,11 @@ class AircraftConflictGenerator: assert count > 0 assert unit is not None - self.vertical_offset += GROUP_VERTICAL_OFFSET if unit_type in helicopters.helicopter_map.values(): - alt = WARM_START_HELI_ALT + self.vertical_offset + alt = WARM_START_HELI_ALT speed = WARM_START_HELI_AIRSPEED else: - alt = WARM_START_ALTITUDE + self.vertical_offset + alt = WARM_START_ALTITUDE speed = WARM_START_AIRSPEED pos = Point(at.x + random.randint(100, 1000), at.y + random.randint(100, 1000)) @@ -334,12 +331,18 @@ class AircraftConflictGenerator: group = self.generate_planned_flight(cp, country, flight) if flight.flight_type == FlightType.INTERCEPTION: self.setup_group_as_intercept_flight(group, flight) - elif flight.flight_type == FlightType.CAP: + elif flight.flight_type in [FlightType.CAP, FlightType.TARCAP, FlightType.BARCAP]: self.setup_group_as_cap_flight(group, flight) - elif flight.flight_type == FlightType.CAS: + elif flight.flight_type in [FlightType.CAS, FlightType.BAI]: self.setup_group_as_cas_flight(group, flight) - elif flight.flight_type == FlightType.SEAD or flight.flight_type == FlightType.DEAD: + elif flight.flight_type in [FlightType.STRIKE]: + self.setup_group_as_strike_flight(group, flight) + elif flight.flight_type in [FlightType.ANTISHIP]: + self.setup_group_as_antiship_flight(group, flight) + elif flight.flight_type in [FlightType.SEAD, FlightType.DEAD]: self.setup_group_as_sead_flight(group, flight) + else: + self.setup_group_as_cap_flight(group, flight) self._setup_custom_payload(flight, group) def generate_planned_flight(self, cp, country, flight:Flight): @@ -413,17 +416,50 @@ class AircraftConflictGenerator: group.points[0].tasks.append(CASTaskAction()) group.points[0].tasks.append(OptReactOnThreat(OptReactOnThreat.Values.EvadeFire)) group.points[0].tasks.append(OptROE(OptROE.Values.OpenFireWeaponFree)) + group.points[0].tasks.append(OptRestrictJettison(True)) for point in flight.points: group.add_waypoint(Point(point.x,point.y), point.alt) def setup_group_as_sead_flight(self, group, flight): + group.task = SEAD.name self._setup_group(group, SEAD, flight.client_count) group.points[0].tasks.clear() group.points[0].tasks.append(SEADTaskAction()) group.points[0].tasks.append(OptReactOnThreat(OptReactOnThreat.Values.EvadeFire)) - group.points[0].tasks.append(OptROE(OptROE.Values.WeaponFree)) + group.points[0].tasks.append(OptROE(OptROE.Values.OpenFireWeaponFree)) + group.points[0].tasks.append(OptRestrictJettison(True)) + + i = 1 + for point in flight.points: + group.add_waypoint(Point(point.x,point.y), point.alt) + group.points[i].tasks.clear() + group.points[i].tasks.append(SEADTaskAction()) + i = i + 1 + + def setup_group_as_strike_flight(self, group, flight): + group.task = PinpointStrike.name + self._setup_group(group, GroundAttack, flight.client_count) + + group.points[0].tasks.clear() + group.points[0].tasks.append(CASTaskAction()) + group.points[0].tasks.append(OptReactOnThreat(OptReactOnThreat.Values.EvadeFire)) + group.points[0].tasks.append(OptROE(OptROE.Values.OpenFireWeaponFree)) + group.points[0].tasks.append(OptRestrictJettison(True)) + + for point in flight.points: + group.add_waypoint(Point(point.x,point.y), point.alt) + + def setup_group_as_antiship_flight(self, group, flight): + group.task = AntishipStrike.name + self._setup_group(group, AntishipStrike, flight.client_count) + + group.points[0].tasks.clear() + group.points[0].tasks.append(AntishipStrikeTaskAction()) + group.points[0].tasks.append(OptReactOnThreat(OptReactOnThreat.Values.EvadeFire)) + group.points[0].tasks.append(OptROE(OptROE.Values.OpenFireWeaponFree)) + group.points[0].tasks.append(OptRestrictJettison(True)) for point in flight.points: group.add_waypoint(Point(point.x,point.y), point.alt) diff --git a/gen/environmentgen.py b/gen/environmentgen.py index de73391e..4f369c92 100644 --- a/gen/environmentgen.py +++ b/gen/environmentgen.py @@ -56,11 +56,20 @@ class EnviromentGenerator: start_time = self.game.current_day daytime = self.game.current_turn_daytime - if self.game.settings.night_disabled and daytime == "night": - daytime = "day" logging.info("Mission time will be {}".format(daytime)) + if self.game.settings.night_disabled: + logging.info("Skip Night mission due to user settings") + if daytime == "dawn": + time_range = (8, 9) + elif daytime == "noon": + time_range = (10, 12) + elif daytime == "dusk": + time_range = (12, 14) + elif daytime == "night": + time_range = (14, 17) + else: + time_range = self.game.theater.daytime_map[daytime] - time_range = self.game.theater.daytime_map[daytime] start_time += timedelta(hours=random.randint(*time_range)) logging.info("time - {}, slot - {}, night skipped - {}".format( diff --git a/gen/fleet/carrier_group.py b/gen/fleet/carrier_group.py index a2d60e8b..30cffdaa 100644 --- a/gen/fleet/carrier_group.py +++ b/gen/fleet/carrier_group.py @@ -13,7 +13,11 @@ class CarrierGroupGenerator(GroupGenerator): # Add carrier if "aircraft_carrier" in self.faction.keys(): - carrier_type = random.choice(self.faction["aircraft_carrier"]) + + if "supercarrier" in self.faction.keys() and self.game.settings.supercarrier: + carrier_type = random.choice(self.faction["supercarrier"]) + else: + carrier_type = random.choice(self.faction["aircraft_carrier"]) self.add_unit(carrier_type, "Carrier", self.position.x, self.position.y, self.heading) else: return @@ -24,4 +28,6 @@ class CarrierGroupGenerator(GroupGenerator): self.add_unit(dd_type, "DD2", self.position.x + 250, self.position.y - 450, self.heading) self.add_unit(dd_type, "DD3", self.position.x + 450, self.position.y + 850, self.heading) - self.add_unit(dd_type, "DD4", self.position.x + 450, self.position.y - 850, self.heading) \ No newline at end of file + self.add_unit(dd_type, "DD4", self.position.x + 450, self.position.y - 850, self.heading) + + self.get_generated_group().points[0].speed = 20 \ No newline at end of file diff --git a/gen/fleet/heli_carrier_group.py b/gen/fleet/lha_group.py similarity index 54% rename from gen/fleet/heli_carrier_group.py rename to gen/fleet/lha_group.py index d9e26ea8..65ee149a 100644 --- a/gen/fleet/heli_carrier_group.py +++ b/gen/fleet/lha_group.py @@ -3,23 +3,22 @@ import random from gen.sam.group_generator import GroupGenerator -class HelicopterCarrierGroupGenerator(GroupGenerator): +class LHAGroupGenerator(GroupGenerator): def __init__(self, game, ground_object, faction): - super(HelicopterCarrierGroupGenerator, self).__init__(game, ground_object) + super(LHAGroupGenerator, self).__init__(game, ground_object) self.faction = faction def generate(self): # Add carrier - if self.faction["aircraft_carrier"]: + if "helicopter_carrier" in self.faction.keys(): carrier_type = random.choice(self.faction["helicopter_carrier"]) - self.add_unit(carrier_type, "Carrier", self.position.x, self.position.y, self.heading) + self.add_unit(carrier_type, "LHA", self.position.x, self.position.y, self.heading) # Add destroyers escort dd_type = random.choice(self.faction["destroyer"]) self.add_unit(dd_type, "DD1", self.position.x + 50, self.position.y + 150, self.heading) self.add_unit(dd_type, "DD2", self.position.x + 50, self.position.y - 150, self.heading) - self.add_unit(dd_type, "DD3", self.position.x + 150, self.position.y + 250, self.heading) - self.add_unit(dd_type, "DD4", self.position.x + 150, self.position.y - 250, self.heading) \ No newline at end of file + self.get_generated_group().points[0].speed = 20 \ No newline at end of file diff --git a/gen/fleet/ship_group_generator.py b/gen/fleet/ship_group_generator.py index c902d09b..5892e28b 100644 --- a/gen/fleet/ship_group_generator.py +++ b/gen/fleet/ship_group_generator.py @@ -1,15 +1,11 @@ -import random - -from dcs.vehicles import Armor - from game import db -from gen.defenses.armored_group_generator import ArmoredGroupGenerator from gen.fleet.carrier_group import CarrierGroupGenerator +from gen.fleet.lha_group import LHAGroupGenerator def generate_carrier_group(faction:str, game, ground_object): """ - This generate a ship group + This generate a carrier group :param parentCp: The parent control point :param ground_object: The ground object which will own the ship group :param country: Owner country @@ -18,3 +14,16 @@ def generate_carrier_group(faction:str, game, ground_object): generator = CarrierGroupGenerator(game, ground_object, db.FACTIONS[faction]) generator.generate() return generator.get_generated_group() + + +def generate_lha_group(faction:str, game, ground_object): + """ + This generate a lha carrier group + :param parentCp: The parent control point + :param ground_object: The ground object which will own the ship group + :param country: Owner country + :return: Nothing, but put the group reference inside the ground object + """ + generator = LHAGroupGenerator(game, ground_object, db.FACTIONS[faction]) + generator.generate() + return generator.get_generated_group() \ No newline at end of file diff --git a/gen/flights/ai_flight_planner.py b/gen/flights/ai_flight_planner.py index c4e0eada..6ab1666a 100644 --- a/gen/flights/ai_flight_planner.py +++ b/gen/flights/ai_flight_planner.py @@ -21,20 +21,6 @@ SEAD_EVERY_X_MINUTES = 40 class FlightPlanner: - from_cp = None - game = None - - interceptor_flights = [] - cap_flights = [] - cas_flights = [] - strike_flights = [] - sead_flights = [] - custom_flights = [] - flights = [] - - potential_sead_targets = [] - potential_strike_targets = [] - def __init__(self, from_cp, game): # TODO : have the flight planner depend on a 'stance' setting : [Defensive, Aggresive... etc] and faction doctrine # TODO : the flight planner should plan package and operations @@ -52,6 +38,7 @@ class FlightPlanner: self.cas_flights = [] self.strike_flights = [] self.sead_flights = [] + self.custom_flights = [] self.flights = [] self.potential_sead_targets = [] self.potential_strike_targets = [] diff --git a/gen/ground_forces/ai_ground_planner.py b/gen/ground_forces/ai_ground_planner.py index 18661930..cb6d772a 100644 --- a/gen/ground_forces/ai_ground_planner.py +++ b/gen/ground_forces/ai_ground_planner.py @@ -3,6 +3,7 @@ from enum import Enum from dcs.vehicles import * +from gen import Conflict from gen.ground_forces.combat_stance import CombatStance from theater import ControlPoint @@ -156,6 +157,7 @@ class CombatGroup: self.units = [] self.role = role self.assigned_enemy_cp = None + self.start_position = None def __str__(self): s = "" diff --git a/gen/groundobjectsgen.py b/gen/groundobjectsgen.py index 6ad68a3e..6f1cbd61 100644 --- a/gen/groundobjectsgen.py +++ b/gen/groundobjectsgen.py @@ -77,19 +77,16 @@ class GroundObjectsGenerator: vehicle.position.y = u.position.y vehicle.heading = u.heading vg.add_unit(vehicle) - elif ground_object.dcs_identifier == "CARRIER": + elif ground_object.dcs_identifier in ["CARRIER", "LHA"]: for g in ground_object.groups: if len(g.units) > 0: utype = unit_type_from_name(g.units[0].type) - sg = self.m.ship_group(side, g.name, utype, position=g.position, heading=g.units[0].heading) sg.units[0].name = self.m.string(g.units[0].name) for i, u in enumerate(g.units): if i > 0: - print(u.type) - print(type(u.type)) ship = Ship(self.m.next_unit_id(), self.m.string(u.name), unit_type_from_name(u.type)) ship.position.x = u.position.x ship.position.y = u.position.y diff --git a/qt_ui/main.py b/qt_ui/main.py index 374edb85..e4b25889 100644 --- a/qt_ui/main.py +++ b/qt_ui/main.py @@ -15,22 +15,13 @@ from userdata import persistency, logging as logging_module if __name__ == "__main__": - assert len(sys.argv) >= 3, "__init__.py should be started with two mandatory arguments: %UserProfile% location and application version" + persistency.setup(installation.get_dcs_saved_games_directory()) - persistency.setup(sys.argv[1]) - source_path = os.path.join(os.path.dirname(os.path.realpath(__file__)), "..\\resources\\payloads") - compiled_path = os.path.join(os.path.dirname(os.path.realpath(__file__)), "..\\resources\\payloads") - the_path = None - if os.path.exists(source_path): - the_path = source_path - else: - the_path = compiled_path + custom_payloads = os.path.join(os.path.dirname(os.path.realpath(__file__)), "..\\resources\\customized_payloads") + if os.path.exists(custom_payloads): + dcs.planes.FlyingType.payload_dirs.append(custom_payloads) - dcs.planes.FlyingType.payload_dirs = [ - the_path - ] - - VERSION_STRING = sys.argv[2] + VERSION_STRING = "2.0" logging_module.setup_version_string(VERSION_STRING) logging.info("Using {} as userdata folder".format(persistency.base_path())) @@ -47,7 +38,6 @@ if __name__ == "__main__": uiconstants.load_aircraft_icons() uiconstants.load_vehicle_icons() - persistency.setup(sys.argv[1]) css = "" with open("./resources/stylesheets/style.css") as stylesheet: diff --git a/qt_ui/main2.py b/qt_ui/main2.py deleted file mode 100644 index 4cac9f59..00000000 --- a/qt_ui/main2.py +++ /dev/null @@ -1,67 +0,0 @@ -import datetime - -# from dcs import Mission -# from dcs.terrain import Caucasus -# from dcs.vehicles import AirDefence -# -# from game import Game -# from gen.sam.sam_avenger import AvengerGenerator -# from gen.sam.sam_chaparral import ChaparralGenerator -# from gen.sam.sam_gepard import GepardGenerator -# from gen.sam.sam_hawk import HawkGenerator -# from gen.sam.sam_linebacker import LinebackerGenerator -# from gen.sam.sam_patriot import PatriotGenerator -# from gen.sam.sam_rapier import RapierGenerator -# from gen.sam.sam_roland import RolandGenerator -# from gen.sam.sam_sa10 import SA10Generator -# from gen.sam.sam_sa11 import SA11Generator -# from gen.sam.sam_sa13 import SA13Generator -# from gen.sam.sam_sa15 import SA15Generator -# from gen.sam.sam_sa19 import SA19Generator -# from gen.sam.sam_sa2 import SA2Generator -# from gen.sam.sam_sa3 import SA3Generator -# from gen.sam.sam_sa6 import SA6Generator -# from gen.sam.sam_sa8 import SA8Generator -# from gen.sam.sam_sa9 import SA9Generator -# from gen.sam.sam_zsu23 import ZSU23Generator -# from gen.sam.sam_zu23 import ZU23Generator -# from gen.sam.sam_zu23_ural import ZU23UralGenerator -# from theater import TheaterGroundObject -# from theater.caucasus import WesternGeorgia -# -# ter = Caucasus() -# m = Mission() -# -# -# -# game = Game("USA 1990", "Iran 2015", WesternGeorgia(), datetime.datetime.now()) -# -# generated_groups = [] -# -# for i,c in enumerate([SA3Generator, SA2Generator, SA6Generator, RapierGenerator, -# HawkGenerator, SA10Generator, SA19Generator, ZU23Generator, -# SA8Generator, SA11Generator, SA9Generator, SA13Generator, -# ZSU23Generator, SA15Generator, GepardGenerator, RolandGenerator, -# PatriotGenerator, ZU23UralGenerator, ChaparralGenerator, -# AvengerGenerator, LinebackerGenerator]): -# t = TheaterGroundObject() -# t.position = ter.kutaisi().position -# t.position.x += i*250 -# t.dcs_identifier = "AA" -# gen = c(game, t) -# gen.generate() -# vehicle_group = gen.get_generated_group() -# generated_groups.append(vehicle_group) -# -# for g in generated_groups: -# g.name = m.string(g.name) -# for unit in g.units: -# unit.name = m.string(unit.name) -# m.country("USA").add_vehicle_group(g) -# -# m.save("./test.miz") -from dcs.helicopters import SA342M - -from game import db - -print(db.unit_type_name(None)) \ No newline at end of file diff --git a/qt_ui/uiconstants.py b/qt_ui/uiconstants.py index 6ffb1ffc..1c40423b 100644 --- a/qt_ui/uiconstants.py +++ b/qt_ui/uiconstants.py @@ -20,8 +20,10 @@ LABELS_OPTIONS = ["Full", "Abbreviated", "Dot Only", "Off"] SKILL_OPTIONS = ["Average", "Good", "High", "Excellent"] COLORS: Dict[str, QColor] = { - "red": QColor(255, 125, 125), - "bright_red": QColor(200, 64, 64), + "dark_red": QColor(140, 20, 20), + "red": QColor(200, 80, 80), + "bright_red": QColor(150, 80, 80), + "super_red": QColor(200, 120, 120), "blue": QColor(164, 164, 255), "dark_blue": QColor(45, 62, 80), "white": QColor(255, 255, 255), @@ -29,8 +31,8 @@ COLORS: Dict[str, QColor] = { "bright_green": QColor(64, 200, 64), "black": QColor(0, 0, 0), "black_transparent": QColor(0, 0, 0, 64), - "blue_transparent": QColor(164, 164, 255, 64), - "red_transparent": QColor(255, 125, 125, 64) + "blue_transparent": QColor(164, 164, 255, 32), + "red_transparent": QColor(255, 125, 125, 32) } @@ -59,7 +61,8 @@ def load_icons(): ICONS["Night"] = QPixmap("./resources/ui/daytime/night.png") ICONS["Money"] = QPixmap("./resources/ui/misc/money_icon.png") - ICONS["PassTurn"] = QPixmap("./resources/ui/misc/pass_turn.png") + ICONS["PassTurn"] = QPixmap("./resources/ui/misc/hourglass.png") + ICONS["Proceed"] = QPixmap("./resources/ui/misc/proceed.png") ICONS["Settings"] = QPixmap("./resources/ui/misc/settings.png") ICONS["Statistics"] = QPixmap("./resources/ui/misc/statistics.png") ICONS["Ordnance"] = QPixmap("./resources/ui/misc/ordnance_icon.png") diff --git a/qt_ui/widgets/QFactionsInfos.py b/qt_ui/widgets/QFactionsInfos.py new file mode 100644 index 00000000..51240ae4 --- /dev/null +++ b/qt_ui/widgets/QFactionsInfos.py @@ -0,0 +1,31 @@ +from PySide2.QtWidgets import QLabel, QGroupBox, QGridLayout +from game import Game + + +class QFactionsInfos(QGroupBox): + """ + UI Component to display current turn and time info + """ + + def __init__(self, game): + super(QFactionsInfos, self).__init__("Factions") + + self.player_name = QLabel("") + self.enemy_name = QLabel("") + self.setGame(game) + + self.layout = QGridLayout() + self.layout.addWidget(QLabel("Player : "),0,0) + self.layout.addWidget(self.player_name,0,1) + self.layout.addWidget(QLabel("Enemy : "),1,0) + self.layout.addWidget(self.enemy_name,1,1) + self.setLayout(self.layout) + + def setGame(self, game: Game): + if game is not None: + self.player_name.setText(game.player_name) + self.enemy_name.setText(game.enemy_name) + else: + self.player_name.setText("") + self.enemy_name.setText("") + diff --git a/qt_ui/widgets/QTopPanel.py b/qt_ui/widgets/QTopPanel.py index 7fc01dfd..114f8097 100644 --- a/qt_ui/widgets/QTopPanel.py +++ b/qt_ui/widgets/QTopPanel.py @@ -2,6 +2,7 @@ from PySide2.QtWidgets import QFrame, QHBoxLayout, QPushButton, QVBoxLayout from game import Game from qt_ui.widgets.QBudgetBox import QBudgetBox +from qt_ui.widgets.QFactionsInfos import QFactionsInfos from qt_ui.windows.stats.QStatsWindow import QStatsWindow from qt_ui.widgets.QTurnCounter import QTurnCounter @@ -30,12 +31,17 @@ class QTopPanel(QFrame): self.passTurnButton.clicked.connect(self.passTurn) self.proceedButton = QPushButton("Proceed") - self.proceedButton.setIcon(CONST.ICONS["PassTurn"]) + self.proceedButton.setIcon(CONST.ICONS["Proceed"]) self.proceedButton.setProperty("style", "btn-primary") self.proceedButton.clicked.connect(self.proceed) if self.game and self.game.turn == 0: self.proceedButton.setEnabled(False) + elif not len(self.game.planners.keys()) == self.game.theater.controlpoints: + self.proceedButton.setEnabled(False) + else: + self.proceedButton.setEnabled(True) + self.factionsInfos = QFactionsInfos(self.game) self.submenus = QVBoxLayout() self.settings = QPushButton("Settings") @@ -52,10 +58,11 @@ class QTopPanel(QFrame): self.submenus.addWidget(self.statistics) self.layout = QHBoxLayout() - self.layout.addStretch(1) - self.layout.addLayout(self.submenus) + self.layout.addWidget(self.factionsInfos) self.layout.addWidget(self.turnCounter) self.layout.addWidget(self.budgetBox) + self.layout.addLayout(self.submenus) + self.layout.addStretch(1) self.layout.addWidget(self.passTurnButton) self.layout.addWidget(self.proceedButton) self.setLayout(self.layout) @@ -65,6 +72,10 @@ class QTopPanel(QFrame): if game is not None: self.turnCounter.setCurrentTurn(self.game.turn, self.game.current_day) self.budgetBox.setBudget(self.game.budget, self.game.budget_reward_amount) + self.factionsInfos.setGame(self.game) + + if not len(self.game.planners.keys()) == self.game.theater.controlpoints: + self.proceedButton.setEnabled(False) def openSettings(self): self.subwindow = QSettingsWindow(self.game) @@ -75,7 +86,7 @@ class QTopPanel(QFrame): self.subwindow.show() def passTurn(self): - self.game.pass_turn() + self.game.pass_turn(no_action=True) GameUpdateSignal.get_instance().updateGame(self.game) self.proceedButton.setEnabled(True) diff --git a/qt_ui/widgets/map/QLiberationMap.py b/qt_ui/widgets/map/QLiberationMap.py index 6c713b71..25f6e0e2 100644 --- a/qt_ui/widgets/map/QLiberationMap.py +++ b/qt_ui/widgets/map/QLiberationMap.py @@ -5,6 +5,7 @@ from PySide2.QtCore import Qt, QRect, QPointF from PySide2.QtGui import QPixmap, QBrush, QColor, QWheelEvent, QPen, QFont from PySide2.QtWidgets import QGraphicsView, QFrame, QGraphicsOpacityEffect from dcs import Point +from dcs.mapping import point_from_heading import qt_ui.uiconstants as CONST from game import Game, db @@ -114,12 +115,17 @@ class QLiberationMap(QGraphicsView): unit = db.unit_type_from_name(u.type) if unit.threat_range > max_range: max_range = unit.threat_range + if max_range >= 6000: + scene.addEllipse(go_pos[0] - max_range/300.0 + 8, go_pos[1] - max_range/300.0 + 8, max_range/150.0, max_range/150.0, pen, brush) - scene.addEllipse(go_pos[0] - max_range/300.0 + 8, go_pos[1] - max_range/300.0 + 8, max_range/150.0, max_range/150.0, pen, brush) - + for cp in self.game.theater.enemy_points(): + if self.get_display_rule("lines"): + self.scene_create_lines_for_cp(cp) + for cp in self.game.theater.player_points(): if self.get_display_rule("lines"): self.scene_create_lines_for_cp(cp) + for cp in self.game.theater.controlpoints: if self.get_display_rule("flight_paths"): if cp.id in self.game.planners.keys(): planner = self.game.planners[cp.id] @@ -138,38 +144,33 @@ class QLiberationMap(QGraphicsView): pos = self._transform_point(cp.position) for connected_cp in cp.connected_points: pos2 = self._transform_point(connected_cp.position) - if connected_cp.captured != cp.captured: + if not cp.captured: color = CONST.COLORS["red"] - elif connected_cp.captured and cp.captured: + elif cp.captured: color = CONST.COLORS["blue"] else: - color = CONST.COLORS["black_transparent"] + color = CONST.COLORS["red"] pen = QPen(brush=color) pen.setColor(color) - pen.setWidth(4) - scene.addLine(pos[0], pos[1], pos2[0], pos2[1], pen=pen) - + pen.setWidth(16) if cp.captured and not connected_cp.captured and Conflict.has_frontline_between(cp, connected_cp): - frontline = self._frontline_vector(cp, connected_cp) - if not frontline: - continue + if not cp.captured: + scene.addLine(pos[0], pos[1], pos2[0], pos2[1], pen=pen) + else: + posx, h = Conflict.frontline_position(self.game.theater, cp, connected_cp) + pos2 = self._transform_point(posx) + scene.addLine(pos[0], pos[1], pos2[0], pos2[1], pen=pen) - frontline_pos, heading, distance = frontline + p1 = point_from_heading(pos2[0], pos2[1], h+180, 25) + p2 = point_from_heading(pos2[0], pos2[1], h, 25) + frontline_pen = QPen(brush=CONST.COLORS["bright_red"]) + frontline_pen.setColor(CONST.COLORS["bright_red"]) + frontline_pen.setWidth(18) + scene.addLine(p1[0], p1[1], p2[0], p2[1], pen=frontline_pen) - if distance < 10000: - frontline_pos = frontline_pos.point_from_heading(heading + 180, 5000) - distance = 10000 - - start_coords = self._transform_point(frontline_pos, treshold=10) - end_coords = self._transform_point(frontline_pos.point_from_heading(heading, distance), - treshold=60) - - frontline_pen = QPen(brush=CONST.COLORS["bright_red"]) - frontline_pen.setColor(CONST.COLORS["bright_red"]) - frontline_pen.setWidth(4) - frontline_pen.setStyle(Qt.DashDotLine) - scene.addLine(start_coords[0], start_coords[1], end_coords[0], end_coords[1], pen=frontline_pen) + else: + scene.addLine(pos[0], pos[1], pos2[0], pos2[1], pen=pen) def _frontline_vector(self, from_cp: ControlPoint, to_cp: ControlPoint): # Cache mechanism to avoid performing frontline vector computation on every frame diff --git a/qt_ui/widgets/map/QMapControlPoint.py b/qt_ui/widgets/map/QMapControlPoint.py index d0da6371..774d1d77 100644 --- a/qt_ui/widgets/map/QMapControlPoint.py +++ b/qt_ui/widgets/map/QMapControlPoint.py @@ -37,24 +37,24 @@ class QMapControlPoint(QGraphicsRectItem): painter.setPen(self.pen_color) r = option.rect - painter.drawChord(r, -180*16, -180*16) + painter.drawEllipse(r.x(), r.y(), r.width(), r.height()) - gauge = QRect(r.x(), - r.y()+CONST.CP_SIZE/2 + 2, - r.width(), - CONST.CP_SIZE / 4) + #gauge = QRect(r.x(), + # r.y()+CONST.CP_SIZE/2 + 2, + # r.width(), + # CONST.CP_SIZE / 4) - painter.setBrush(CONST.COLORS["bright_red"]) - painter.setPen(CONST.COLORS["black"]) - painter.drawRect(gauge) + #painter.setBrush(CONST.COLORS["bright_red"]) + #painter.setPen(CONST.COLORS["black"]) + #painter.drawRect(gauge) - gauge2 = QRect(r.x(), - r.y() + CONST.CP_SIZE / 2 + 2, - r.width()*self.model.base.strength, - CONST.CP_SIZE / 4) + #gauge2 = QRect(r.x(), + # r.y() + CONST.CP_SIZE / 2 + 2, + # r.width()*self.model.base.strength, + # CONST.CP_SIZE / 4) - painter.setBrush(CONST.COLORS["green"]) - painter.drawRect(gauge2) + #painter.setBrush(CONST.COLORS["green"]) + #painter.drawRect(gauge2) else: # TODO : not drawing sunk carriers. Can be improved to display sunk carrier. pass @@ -64,6 +64,9 @@ class QMapControlPoint(QGraphicsRectItem): self.update() self.setCursor(Qt.PointingHandCursor) + def mouseMoveEvent(self, event:QGraphicsSceneMouseEvent): + self.update() + def hoverLeaveEvent(self, event: QGraphicsSceneHoverEvent): self.update() @@ -87,9 +90,9 @@ class QMapControlPoint(QGraphicsRectItem): @property def brush_color(self)->QColor: if self.parent.game.player_country in db.BLUEFOR_FACTIONS: - return self.model.captured and CONST.COLORS["blue"] or CONST.COLORS["red"] + return self.model.captured and CONST.COLORS["blue"] or CONST.COLORS["super_red"] else: - return self.model.captured and CONST.COLORS["red"] or CONST.COLORS["blue"] + return self.model.captured and CONST.COLORS["super_red"] or CONST.COLORS["blue"] @property def pen_color(self) -> QColor: diff --git a/qt_ui/widgets/map/QMapGroundObject.py b/qt_ui/widgets/map/QMapGroundObject.py index aca20ea6..9af06fee 100644 --- a/qt_ui/widgets/map/QMapGroundObject.py +++ b/qt_ui/widgets/map/QMapGroundObject.py @@ -1,6 +1,6 @@ -from PySide2.QtCore import QPoint, QRect, QPointF +from PySide2.QtCore import QPoint, QRect, QPointF, Qt from PySide2.QtGui import QPainter -from PySide2.QtWidgets import QGraphicsRectItem, QGraphicsItem +from PySide2.QtWidgets import QGraphicsRectItem, QGraphicsItem, QGraphicsSceneHoverEvent, QGraphicsSceneMouseEvent import qt_ui.uiconstants as CONST from game import db @@ -41,8 +41,20 @@ class QMapGroundObject(QGraphicsRectItem): painter.save() if not self.model.is_dead and not self.cp.captured: painter.drawPixmap(option.rect, CONST.ICONS[self.model.category]) - elif not self.model.is_dead and self.model.category == "aa": + elif not self.model.is_dead: painter.drawPixmap(option.rect, CONST.ICONS[self.model.category + "_blue"]) else: painter.drawPixmap(option.rect, CONST.ICONS["destroyed"]) painter.restore() + + def hoverEnterEvent(self, event: QGraphicsSceneHoverEvent): + self.update() + self.setCursor(Qt.PointingHandCursor) + + def mouseMoveEvent(self, event:QGraphicsSceneMouseEvent): + self.update() + self.setCursor(Qt.PointingHandCursor) + + def hoverLeaveEvent(self, event: QGraphicsSceneHoverEvent): + self.update() + diff --git a/qt_ui/windows/QLiberationWindow.py b/qt_ui/windows/QLiberationWindow.py index 6d989f74..f2332caf 100644 --- a/qt_ui/windows/QLiberationWindow.py +++ b/qt_ui/windows/QLiberationWindow.py @@ -1,3 +1,4 @@ +import sys import webbrowser from PySide2 import QtGui @@ -73,7 +74,7 @@ class QLiberationWindow(QMainWindow): def initToolbar(self): self.tool_bar = self.addToolBar("File") self.tool_bar.addAction(self.newGameAction) - self.tool_bar.addAction(QIcon(CONST.ICONS["Open"]), "Open") + #self.tool_bar.addAction(QIcon(CONST.ICONS["Open"]), "Open") self.tool_bar.addAction(self.saveGameAction) def initMenuBar(self): @@ -81,15 +82,18 @@ class QLiberationWindow(QMainWindow): file_menu = self.menu.addMenu("File") file_menu.addAction(self.newGameAction) - file_menu.addAction(QIcon(CONST.ICONS["Open"]), "Open") + #file_menu.addAction(QIcon(CONST.ICONS["Open"]), "Open") # TODO : implement file_menu.addAction(self.saveGameAction) - file_menu.addAction("Save As") + #file_menu.addAction("Save As") # TODO : implement + #file_menu.addAction("Close Current Game", lambda: self.closeGame()) # Not working + file_menu.addAction("Exit" , lambda: self.exit()) + help_menu = self.menu.addMenu("Help") - help_menu.addAction("Online Manual", lambda: webbrowser.open_new_tab(URLS["Manual"])) - help_menu.addAction("Troubleshooting Guide", lambda: webbrowser.open_new_tab(URLS["Troubleshooting"])) - help_menu.addAction("Modding Guide", lambda: webbrowser.open_new_tab(URLS["Modding"])) - help_menu.addSeparator() + #help_menu.addAction("Online Manual", lambda: webbrowser.open_new_tab(URLS["Manual"])) + #help_menu.addAction("Troubleshooting Guide", lambda: webbrowser.open_new_tab(URLS["Troubleshooting"])) + #help_menu.addAction("Modding Guide", lambda: webbrowser.open_new_tab(URLS["Modding"])) + #help_menu.addSeparator() ----> Note from Khopa : I disable these links since it's not up to date for this branch help_menu.addAction("Contribute", lambda: webbrowser.open_new_tab(URLS["Repository"])) help_menu.addAction("Forum Thread", lambda: webbrowser.open_new_tab(URLS["ForumThread"])) help_menu.addAction("Report an issue", lambda: webbrowser.open_new_tab(URLS["Issues"])) @@ -151,6 +155,13 @@ class QLiberationWindow(QMainWindow): self.game = game GameUpdateSignal.get_instance().updateGame(self.game) + def closeGame(self): + self.game = None + GameUpdateSignal.get_instance().updateGame(self.game) + + def exit(self): + sys.exit(0) + def setGame(self, game: Game): self.game = game @@ -158,10 +169,11 @@ class QLiberationWindow(QMainWindow): text = "

DCS Liberation

" + \ "

Repository

" + \ "Source code : https://github.com/shdwp/dcs_liberation
" + \ - "

Contributors

" + \ - "Author : sdwp

" + \ - "Contributors : Khopa, Wrycu, calvinmorrow, JohanAberg

" + \ - "Special Thanks : rp- (pydcs framework) " + "

Authors/Contributors


" + \ + "shdwp, Khopa, Wrycu, calvinmorrow, JohanAberg
" + \ + "

Special Thanks :

" \ + "rp- for the pydcs framework
"\ + "Grimes (mrSkortch) & Speed for the MIST framework
" about = QMessageBox() about.setWindowTitle("About DCS Liberation") diff --git a/qt_ui/windows/QNewGameWizard.py b/qt_ui/windows/QNewGameWizard.py index 4e9efb0c..d467df26 100644 --- a/qt_ui/windows/QNewGameWizard.py +++ b/qt_ui/windows/QNewGameWizard.py @@ -35,8 +35,10 @@ class NewGameWizard(QtWidgets.QWizard): isTerrainPg = self.field("isTerrainPg") isTerrainNttr = self.field("isTerrainNttr") isTerrainCaucasusSmall = self.field("isTerrainCaucasusSmall") + isTerrainCaucasusSmallInverted = self.field("isTerrainCaucasusSmallInverted") isIranianCampaignTheater = self.field("isIranianCampaignTheater") isTerrainNormandy = self.field("isTerrainNormandy") + isTerrainEmirates = self.field("isTerrainEmirates") timePeriod = db.TIME_PERIODS[list(db.TIME_PERIODS.keys())[self.field("timePeriod")]] sams = self.field("sams") midGame = self.field("midGame") @@ -51,17 +53,17 @@ class NewGameWizard(QtWidgets.QWizard): conflicttheater = nevada.NevadaTheater() elif isTerrainCaucasusSmall: conflicttheater = caucasus.WesternGeorgia() + elif isTerrainCaucasusSmallInverted: + conflicttheater = caucasus.WesternGeorgiaInverted() elif isIranianCampaignTheater: conflicttheater = persiangulf.IranianCampaign() + elif isTerrainEmirates: + conflicttheater = persiangulf.Emirates() elif isTerrainNormandy: conflicttheater = normandy.NormandyTheater() else: conflicttheater = caucasus.CaucasusTheater() - - print("player_name, enemy_name, conflicttheater, sams, midGame, multiplier, timePeriod") - print(player_name, enemy_name, conflicttheater, sams, midGame, multiplier, timePeriod) - print(isIranianCampaignTheater, isTerrainPg) self.generatedGame = self.start_new_game(player_name, enemy_name, conflicttheater, sams, midGame, multiplier, timePeriod) @@ -204,18 +206,22 @@ class TheaterConfiguration(QtWidgets.QWizardPage): # Terrain selection terrainGroup = QtWidgets.QGroupBox("Terrain") - terrainCaucasus = QtWidgets.QRadioButton("Caucasus - Full map") - terrainCaucasus.setIcon(QtGui.QIcon(CONST.ICONS["Terrain_Caucasus"])) terrainCaucasusSmall = QtWidgets.QRadioButton("Caucasus - Western Georgia [RECOMMENDED]") terrainCaucasusSmall.setIcon(QtGui.QIcon(CONST.ICONS["Terrain_Caucasus"])) + terrainCaucasusSmallInverted = QtWidgets.QRadioButton("Caucasus - Western Georgia Inverted [RECOMMENDED]") + terrainCaucasusSmallInverted.setIcon(QtGui.QIcon(CONST.ICONS["Terrain_Caucasus"])) + terrainCaucasus = QtWidgets.QRadioButton("Caucasus - Full map") + terrainCaucasus.setIcon(QtGui.QIcon(CONST.ICONS["Terrain_Caucasus"])) terrainPg = QtWidgets.QRadioButton("Persian Gulf - Full Map") terrainPg.setIcon(QtGui.QIcon(CONST.ICONS["Terrain_Persian_Gulf"])) - terrainIran = QtWidgets.QRadioButton("Persian Gulf - Iranian Campaign [RECOMMENDED]") + terrainIran = QtWidgets.QRadioButton("Persian Gulf - Invasion of Iran [RECOMMENDED]") terrainIran.setIcon(QtGui.QIcon(CONST.ICONS["Terrain_Persian_Gulf"])) + terrainEmirates = QtWidgets.QRadioButton("Persian Gulf - Emirates [RECOMMENDED]") + terrainEmirates.setIcon(QtGui.QIcon(CONST.ICONS["Terrain_Persian_Gulf"])) terrainNttr = QtWidgets.QRadioButton("Nevada - Full") terrainNttr.setIcon(QtGui.QIcon(CONST.ICONS["Terrain_Nevada"])) - terrainNormandy = QtWidgets.QRadioButton("Normandy") + terrainNormandy = QtWidgets.QRadioButton("Normandy [Alpha]") terrainNormandy.setIcon(QtGui.QIcon(CONST.ICONS["Terrain_Normandy"])) terrainCaucasusSmall.setChecked(True) @@ -231,8 +237,10 @@ class TheaterConfiguration(QtWidgets.QWizardPage): # Register fields self.registerField('isTerrainCaucasus', terrainCaucasus) self.registerField('isTerrainCaucasusSmall', terrainCaucasusSmall) + self.registerField('isTerrainCaucasusSmallInverted', terrainCaucasusSmallInverted) self.registerField('isTerrainPg', terrainPg) self.registerField('isIranianCampaignTheater', terrainIran) + self.registerField('isTerrainEmirates', terrainEmirates) self.registerField('isTerrainNttr', terrainNttr) self.registerField('isTerrainNormandy', terrainNormandy) self.registerField('timePeriod', timePeriodSelect) @@ -240,8 +248,10 @@ class TheaterConfiguration(QtWidgets.QWizardPage): # Build layout terrainGroupLayout = QtWidgets.QVBoxLayout() terrainGroupLayout.addWidget(terrainCaucasusSmall) + terrainGroupLayout.addWidget(terrainCaucasusSmallInverted) terrainGroupLayout.addWidget(terrainCaucasus) terrainGroupLayout.addWidget(terrainIran) + terrainGroupLayout.addWidget(terrainEmirates) terrainGroupLayout.addWidget(terrainPg) terrainGroupLayout.addWidget(terrainNttr) terrainGroupLayout.addWidget(terrainNormandy) diff --git a/qt_ui/windows/basemenu/airfield/QAircraftRecruitmentMenu.py b/qt_ui/windows/basemenu/airfield/QAircraftRecruitmentMenu.py index 68999940..a9c52bb0 100644 --- a/qt_ui/windows/basemenu/airfield/QAircraftRecruitmentMenu.py +++ b/qt_ui/windows/basemenu/airfield/QAircraftRecruitmentMenu.py @@ -53,6 +53,8 @@ class QAircraftRecruitmentMenu(QGroupBox, QRecruitBehaviour): for unit_type in units_column: if self.cp.is_carrier and not unit_type in db.CARRIER_CAPABLE: continue + if self.cp.is_lha and not unit_type in db.LHA_CAPABLE: + continue row = self.add_purchase_row(unit_type, task_box_layout, row) stretch = QVBoxLayout() stretch.addStretch() diff --git a/qt_ui/windows/mission/QMissionPlanning.py b/qt_ui/windows/mission/QMissionPlanning.py index 81dc6240..eaef78f0 100644 --- a/qt_ui/windows/mission/QMissionPlanning.py +++ b/qt_ui/windows/mission/QMissionPlanning.py @@ -73,6 +73,9 @@ class QMissionPlanning(QDialog): @Slot(str) def on_departure_cp_changed(self, cp_name): cps = [cp for cp in self.game.theater.controlpoints if cp.name == cp_name] + + print(cps) + if len(cps) == 1: self.selected_cp = cps[0] self.planner = self.game.planners[cps[0].id] @@ -80,6 +83,8 @@ class QMissionPlanning(QDialog): else: self.planned_flight_view.set_flight_planner(None) + print(self.selected_cp.id) + def on_flight_selection_change(self): index = self.planned_flight_view.selectionModel().currentIndex().row() flight = self.planner.flights[index] diff --git a/qt_ui/windows/mission/flight/QFlightCreator.py b/qt_ui/windows/mission/flight/QFlightCreator.py index 7e729e67..533a3b3c 100644 --- a/qt_ui/windows/mission/flight/QFlightCreator.py +++ b/qt_ui/windows/mission/flight/QFlightCreator.py @@ -42,14 +42,16 @@ class QFlightCreator(QDialog): self.select_type_aircraft.setCurrentIndex(0) self.select_flight_type = QComboBox() - self.select_flight_type.addItem("CAP", userData=FlightType.CAP) - self.select_flight_type.addItem("BARCAP", userData=FlightType.BARCAP) - self.select_flight_type.addItem("TARCAP", userData=FlightType.TARCAP) - self.select_flight_type.addItem("INTERCEPT", userData=FlightType.INTERCEPTION) - self.select_flight_type.addItem("CAS", userData=FlightType.CAS) - self.select_flight_type.addItem("SEAD", userData=FlightType.SEAD) - self.select_flight_type.addItem("DEAD", userData=FlightType.DEAD) - self.select_flight_type.addItem("STRIKE", userData=FlightType.STRIKE) + self.select_flight_type.addItem("CAP [Combat Air Patrol]", userData=FlightType.CAP) + self.select_flight_type.addItem("BARCAP [Barrier Combat Air Patrol]", userData=FlightType.BARCAP) + self.select_flight_type.addItem("TARCAP [Target Combat Air Patrol]", userData=FlightType.TARCAP) + self.select_flight_type.addItem("INTERCEPT [Interception]", userData=FlightType.INTERCEPTION) + self.select_flight_type.addItem("CAS [Close Air Support]", userData=FlightType.CAS) + self.select_flight_type.addItem("BAI [Battlefield Interdiction]", userData=FlightType.CAS) + self.select_flight_type.addItem("SEAD [Suppression of Enemy Air Defenses]", userData=FlightType.SEAD) + self.select_flight_type.addItem("DEAD [Destruction of Enemy Air Defenses]", userData=FlightType.DEAD) + self.select_flight_type.addItem("STRIKE [Strike]", userData=FlightType.STRIKE) + self.select_flight_type.addItem("ANTISHIP [Antiship Attack]", userData=FlightType.ANTISHIP) self.select_flight_type.setCurrentIndex(0) self.select_count_of_aircraft = QSpinBox() @@ -71,13 +73,11 @@ class QFlightCreator(QDialog): type_layout.addStretch() type_layout.addWidget(self.select_type_aircraft, alignment=Qt.AlignRight) - count_layout = QHBoxLayout() count_layout.addWidget(QLabel("Count : ")) count_layout.addStretch() count_layout.addWidget(self.select_count_of_aircraft, alignment=Qt.AlignRight) - flight_type_layout = QHBoxLayout() flight_type_layout.addWidget(QLabel("Task : ")) flight_type_layout.addStretch() diff --git a/qt_ui/windows/mission/flight/waypoints/QPredefinedWaypointSelectionWindow.py b/qt_ui/windows/mission/flight/waypoints/QPredefinedWaypointSelectionWindow.py index 9ab97faa..093db2d7 100644 --- a/qt_ui/windows/mission/flight/waypoints/QPredefinedWaypointSelectionWindow.py +++ b/qt_ui/windows/mission/flight/waypoints/QPredefinedWaypointSelectionWindow.py @@ -108,7 +108,7 @@ class QPredefinedWaypointSelectionWindow(QDialog): for ecp in enemy_cp: wpt = FlightWaypoint((select_cp.position.x + ecp.position.x)/2, (select_cp.position.y + ecp.position.y)/2, 800) wpt.name = "Frontline with " + ecp.name + " [CAS]" - wpt.description = "Provide CAS" + wpt.description = "Frontline" self.wpt_selection_box.addItem(wpt.name, userData=wpt) if len(enemy_cp) == 0: self.wpt_selection_box.addItem("None", userData=None) @@ -117,7 +117,10 @@ class QPredefinedWaypointSelectionWindow(QDialog): if not ground_object.is_dead and not ground_object.dcs_identifier == "AA": wpt = FlightWaypoint(ground_object.position.x,ground_object.position.y, 0) wpt.name = ground_object.category + " #" + str(ground_object.object_id) + " @ site #" + str(ground_object.group_id) - wpt.description = "Ennemy Building" + if select_cp.captured: + wpt.description = "Friendly Building" + else: + wpt.description = "Enemy Building" self.wpt_selection_box.addItem(wpt.name, userData=wpt) elif selected_wpt_type == PREDEFINED_WAYPOINT_CATEGORIES[2]: # Known units position for ground_object in select_cp.ground_objects: @@ -126,12 +129,18 @@ class QPredefinedWaypointSelectionWindow(QDialog): for u in g.units: wpt = FlightWaypoint(ground_object.position.x, ground_object.position.y, 0) wpt.name = u.type + " @ site #" + str(ground_object.group_id) - wpt.description = "Ennemy unit to be destroyed" + if select_cp.captured: + wpt.description = "Friendly unit :" + u.type + else: + wpt.description = "Enemy unit :" + u.type self.wpt_selection_box.addItem(wpt.name, userData=wpt) elif selected_wpt_type == PREDEFINED_WAYPOINT_CATEGORIES[3]: # CAS wpt = FlightWaypoint(select_cp.position.x, select_cp.position.y, 0) wpt.name = select_cp.name - wpt.description = "Position of " + select_cp.name + if select_cp.captured: + wpt.description = "Position of " + select_cp.name + " [Friendly Airbase]" + else: + wpt.description = "Position of " + select_cp.name + " [Enemy Airbase]" self.wpt_selection_box.addItem("Airbase", userData=wpt) else: self.wpt_selection_box.addItem("None", userData=None) diff --git a/qt_ui/windows/settings/QSettingsWindow.py b/qt_ui/windows/settings/QSettingsWindow.py index 97c2b591..59ef75de 100644 --- a/qt_ui/windows/settings/QSettingsWindow.py +++ b/qt_ui/windows/settings/QSettingsWindow.py @@ -131,10 +131,21 @@ class QSettingsWindow(QDialog): self.takeOffOnlyForPlayerGroup.setChecked(self.game.settings.only_player_takeoff) self.takeOffOnlyForPlayerGroup.toggled.connect(self.applySettings) - self.generatorLayout.addWidget(QLabel("Aircraft cold start"), 0, 0) - self.generatorLayout.addWidget(self.coldStart, 0, 1) - self.generatorLayout.addWidget(QLabel("Takeoff only for player group"), 1, 0) - self.generatorLayout.addWidget(self.takeOffOnlyForPlayerGroup, 1, 1) + self.coldStart = QCheckBox() + self.coldStart.setChecked(self.game.settings.cold_start) + self.coldStart.toggled.connect(self.applySettings) + + self.supercarrier = QCheckBox() + self.supercarrier.setChecked(self.game.settings.supercarrier) + self.supercarrier.toggled.connect(self.applySettings) + + # Settings not used anymore + # self.generatorLayout.addWidget(QLabel("Aircraft cold start"), 0, 0) + # self.generatorLayout.addWidget(self.coldStart, 0, 1) + # self.generatorLayout.addWidget(QLabel("Takeoff only for player group"), 1, 0) + # self.generatorLayout.addWidget(self.takeOffOnlyForPlayerGroup, 1, 1) + self.generatorLayout.addWidget(QLabel("Use Supercarrier Module"), 0, 0) + self.generatorLayout.addWidget(self.supercarrier, 0, 1) def initCheatLayout(self): @@ -177,6 +188,7 @@ class QSettingsWindow(QDialog): self.game.settings.night_disabled = self.noNightMission.isChecked() self.game.settings.only_player_takeoff = self.takeOffOnlyForPlayerGroup.isChecked() self.game.settings.cold_start = self.coldStart.isChecked() + self.game.settings.supercarrier = self.supercarrier.isChecked() GameUpdateSignal.get_instance().updateGame(self.game) diff --git a/resources/customized_payloads/A-10A.lua b/resources/customized_payloads/A-10A.lua new file mode 100644 index 00000000..7f76e1b0 --- /dev/null +++ b/resources/customized_payloads/A-10A.lua @@ -0,0 +1,154 @@ +local unitPayloads = { + ["name"] = "A-10A", + ["payloads"] = { + [1] = { + ["name"] = "CAP", + ["pylons"] = { + [1] = { + ["CLSID"] = "LAU-105_2*AIM-9P5", + ["num"] = 11, + }, + [2] = { + ["CLSID"] = "LAU-105_2*AIM-9P5", + ["num"] = 1, + }, + [3] = { + ["CLSID"] = "Fuel_Tank_FT600", + ["num"] = 6, + }, + }, + ["tasks"] = { + }, + }, + [2] = { + ["name"] = "CAS", + ["pylons"] = { + [1] = { + ["CLSID"] = "LAU-105_2*AIM-9P5", + ["num"] = 11, + }, + [2] = { + ["CLSID"] = "LAU-105_2*AIM-9P5", + ["num"] = 1, + }, + [3] = { + ["CLSID"] = "{DAC53A2F-79CA-42FF-A77A-F5649B601308}", + ["num"] = 9, + }, + [4] = { + ["CLSID"] = "{DAC53A2F-79CA-42FF-A77A-F5649B601308}", + ["num"] = 3, + }, + [5] = { + ["CLSID"] = "{174C6E6D-0C3D-42ff-BCB3-0853CB371F5C}", + ["num"] = 4, + }, + [6] = { + ["CLSID"] = "{174C6E6D-0C3D-42ff-BCB3-0853CB371F5C}", + ["num"] = 8, + }, + [7] = { + ["CLSID"] = "{174C6E6D-0C3D-42ff-BCB3-0853CB371F5C}", + ["num"] = 2, + }, + [8] = { + ["CLSID"] = "{174C6E6D-0C3D-42ff-BCB3-0853CB371F5C}", + ["num"] = 10, + }, + }, + ["tasks"] = { + }, + }, + [3] = { + ["name"] = "SEAD", + ["pylons"] = { + [1] = { + ["CLSID"] = "LAU-105_2*AIM-9P5", + ["num"] = 11, + }, + [2] = { + ["CLSID"] = "LAU-105_2*AIM-9P5", + ["num"] = 1, + }, + [3] = { + ["CLSID"] = "{DAC53A2F-79CA-42FF-A77A-F5649B601308}", + ["num"] = 9, + }, + [4] = { + ["CLSID"] = "{DAC53A2F-79CA-42FF-A77A-F5649B601308}", + ["num"] = 3, + }, + }, + ["tasks"] = { + }, + }, + [4] = { + ["name"] = "STRIKE", + ["pylons"] = { + [1] = { + ["CLSID"] = "LAU-105_2*AIM-9P5", + ["num"] = 11, + }, + [2] = { + ["CLSID"] = "{6D21ECEA-F85B-4E8D-9D51-31DC9B8AA4EF}", + ["num"] = 1, + }, + [3] = { + ["CLSID"] = "{BCE4E030-38E9-423E-98ED-24BE3DA87C32}", + ["num"] = 9, + }, + [4] = { + ["CLSID"] = "{BCE4E030-38E9-423E-98ED-24BE3DA87C32}", + ["num"] = 3, + }, + [5] = { + ["CLSID"] = "{AB8B8299-F1CC-4359-89B5-2172E0CF4A5A}", + ["num"] = 8, + }, + [6] = { + ["CLSID"] = "{AB8B8299-F1CC-4359-89B5-2172E0CF4A5A}", + ["num"] = 4, + }, + [7] = { + ["CLSID"] = "{BCE4E030-38E9-423E-98ED-24BE3DA87C32}", + ["num"] = 6, + }, + [8] = { + ["CLSID"] = "{BCE4E030-38E9-423E-98ED-24BE3DA87C32}", + ["num"] = 5, + }, + [9] = { + ["CLSID"] = "{BCE4E030-38E9-423E-98ED-24BE3DA87C32}", + ["num"] = 7, + }, + }, + ["tasks"] = { + }, + }, + [5] = { + ["name"] = "ANTISHIP", + ["pylons"] = { + [1] = { + ["CLSID"] = "LAU-105_2*AIM-9P5", + ["num"] = 11, + }, + [2] = { + ["CLSID"] = "LAU-105_2*AIM-9P5", + ["num"] = 1, + }, + [3] = { + ["CLSID"] = "{DAC53A2F-79CA-42FF-A77A-F5649B601308}", + ["num"] = 9, + }, + [4] = { + ["CLSID"] = "{DAC53A2F-79CA-42FF-A77A-F5649B601308}", + ["num"] = 3, + }, + }, + ["tasks"] = { + }, + }, + }, + ["unitType"] = "A-10A", +} +return unitPayloads diff --git a/resources/customized_payloads/A-10C.lua b/resources/customized_payloads/A-10C.lua new file mode 100644 index 00000000..a74095bc --- /dev/null +++ b/resources/customized_payloads/A-10C.lua @@ -0,0 +1,174 @@ +local unitPayloads = { + ["name"] = "A-10C", + ["payloads"] = { + [1] = { + ["name"] = "CAP", + ["pylons"] = { + [1] = { + ["CLSID"] = "{DB434044-F5D0-4F1F-9BA9-B73027E18DD3}", + ["num"] = 11, + }, + [2] = { + ["CLSID"] = "{DB434044-F5D0-4F1F-9BA9-B73027E18DD3}", + ["num"] = 1, + }, + [3] = { + ["CLSID"] = "Fuel_Tank_FT600", + ["num"] = 6, + }, + }, + ["tasks"] = { + }, + }, + [2] = { + ["name"] = "CAS", + ["pylons"] = { + [1] = { + ["CLSID"] = "ALQ_184", + ["num"] = 1, + }, + [2] = { + ["CLSID"] = "{DB434044-F5D0-4F1F-9BA9-B73027E18DD3}", + ["num"] = 11, + }, + [3] = { + ["CLSID"] = "{DB769D48-67D7-42ED-A2BE-108D566C8B1E}", + ["num"] = 7, + }, + [4] = { + ["CLSID"] = "{174C6E6D-0C3D-42ff-BCB3-0853CB371F5C}", + ["num"] = 8, + }, + [5] = { + ["CLSID"] = "{A111396E-D3E8-4b9c-8AC9-2432489304D5}", + ["num"] = 10, + }, + [6] = { + ["CLSID"] = "{DB769D48-67D7-42ED-A2BE-108D566C8B1E}", + ["num"] = 5, + }, + [7] = { + ["CLSID"] = "{174C6E6D-0C3D-42ff-BCB3-0853CB371F5C}", + ["num"] = 4, + }, + [8] = { + ["CLSID"] = "{DAC53A2F-79CA-42FF-A77A-F5649B601308}", + ["num"] = 9, + }, + [9] = { + ["CLSID"] = "{DAC53A2F-79CA-42FF-A77A-F5649B601308}", + ["num"] = 3, + }, + }, + ["tasks"] = { + [1] = 31, + }, + }, + [3] = { + ["name"] = "STRIKE", + ["pylons"] = { + [1] = { + ["CLSID"] = "ALQ_184", + ["num"] = 1, + }, + [2] = { + ["CLSID"] = "{DB434044-F5D0-4F1F-9BA9-B73027E18DD3}", + ["num"] = 11, + }, + [3] = { + ["CLSID"] = "{GBU-38}", + ["num"] = 7, + }, + [4] = { + ["CLSID"] = "{GBU-38}", + ["num"] = 8, + }, + [5] = { + ["CLSID"] = "{A111396E-D3E8-4b9c-8AC9-2432489304D5}", + ["num"] = 10, + }, + [6] = { + ["CLSID"] = "{GBU-38}", + ["num"] = 5, + }, + [7] = { + ["CLSID"] = "{GBU-38}", + ["num"] = 4, + }, + [8] = { + ["CLSID"] = "{GBU-38}", + ["num"] = 9, + }, + [9] = { + ["CLSID"] = "{GBU-38}", + ["num"] = 3, + }, + [10] = { + ["CLSID"] = "{AB8B8299-F1CC-4359-89B5-2172E0CF4A5A}", + ["num"] = 6, + }, + }, + ["tasks"] = { + [1] = 31, + }, + }, + [4] = { + ["name"] = "ANTISHIP", + ["pylons"] = { + [1] = { + ["CLSID"] = "ALQ_184", + ["num"] = 1, + }, + [2] = { + ["CLSID"] = "{DB434044-F5D0-4F1F-9BA9-B73027E18DD3}", + ["num"] = 11, + }, + [3] = { + ["CLSID"] = "{A111396E-D3E8-4b9c-8AC9-2432489304D5}", + ["num"] = 10, + }, + [4] = { + ["CLSID"] = "{DAC53A2F-79CA-42FF-A77A-F5649B601308}", + ["num"] = 9, + }, + [5] = { + ["CLSID"] = "{DAC53A2F-79CA-42FF-A77A-F5649B601308}", + ["num"] = 3, + }, + }, + ["tasks"] = { + [1] = 31, + }, + }, + [5] = { + ["name"] = "SEAD", + ["pylons"] = { + [1] = { + ["CLSID"] = "ALQ_184", + ["num"] = 1, + }, + [2] = { + ["CLSID"] = "{DB434044-F5D0-4F1F-9BA9-B73027E18DD3}", + ["num"] = 11, + }, + [3] = { + ["CLSID"] = "{A111396E-D3E8-4b9c-8AC9-2432489304D5}", + ["num"] = 10, + }, + [4] = { + ["CLSID"] = "{DAC53A2F-79CA-42FF-A77A-F5649B601308}", + ["num"] = 9, + }, + [5] = { + ["CLSID"] = "{DAC53A2F-79CA-42FF-A77A-F5649B601308}", + ["num"] = 3, + }, + }, + ["tasks"] = { + [1] = 31, + }, + }, + }, + ["unitType"] = "A-10C", +} +return unitPayloads diff --git a/resources/customized_payloads/AJS37.lua b/resources/customized_payloads/AJS37.lua new file mode 100644 index 00000000..c8ebdcf1 --- /dev/null +++ b/resources/customized_payloads/AJS37.lua @@ -0,0 +1,165 @@ +local unitPayloads = { + ["name"] = "AJS37", + ["payloads"] = { + [1] = { + ["name"] = "CAS", + ["pylons"] = { + [1] = { + ["CLSID"] = "{ARAKM70BHE}", + ["num"] = 3, + }, + [2] = { + ["CLSID"] = "{ARAKM70BHE}", + ["num"] = 2, + }, + [3] = { + ["CLSID"] = "{VIGGEN_X-TANK}", + ["num"] = 4, + }, + [4] = { + ["CLSID"] = "{ARAKM70BHE}", + ["num"] = 5, + }, + [5] = { + ["CLSID"] = "{ARAKM70BHE}", + ["num"] = 6, + }, + }, + ["tasks"] = { + [1] = 31, + }, + }, + [2] = { + ["name"] = "CAP", + ["pylons"] = { + [1] = { + ["CLSID"] = "{Robot74}", + ["num"] = 5, + }, + [2] = { + ["CLSID"] = "{Robot74}", + ["num"] = 3, + }, + [3] = { + ["CLSID"] = "{AKAN}", + ["num"] = 6, + }, + [4] = { + ["CLSID"] = "{AKAN}", + ["num"] = 2, + }, + [5] = { + ["CLSID"] = "{VIGGEN_X-TANK}", + ["num"] = 4, + }, + [6] = { + ["CLSID"] = "{Robot24}", + ["num"] = 7, + }, + [7] = { + ["CLSID"] = "{Robot24}", + ["num"] = 1, + }, + }, + ["tasks"] = { + [1] = 11, + }, + }, + [3] = { + ["name"] = "ANTISHIP", + ["pylons"] = { + [1] = { + ["CLSID"] = "{Rb15}", + ["num"] = 6, + }, + [2] = { + ["CLSID"] = "{Rb15}", + ["num"] = 2, + }, + [3] = { + ["CLSID"] = "{Robot74}", + ["num"] = 3, + }, + [4] = { + ["CLSID"] = "{Robot74}", + ["num"] = 5, + }, + [5] = { + ["CLSID"] = "{VIGGEN_X-TANK}", + ["num"] = 4, + }, + }, + ["tasks"] = { + [1] = 30, + }, + }, + [4] = { + ["name"] = "STRIKE", + ["pylons"] = { + [1] = { + ["CLSID"] = "{M71BOMBD}", + ["num"] = 6, + }, + [2] = { + ["CLSID"] = "{M71BOMBD}", + ["num"] = 5, + }, + [3] = { + ["CLSID"] = "{M71BOMBD}", + ["num"] = 3, + }, + [4] = { + ["CLSID"] = "{M71BOMBD}", + ["num"] = 2, + }, + [5] = { + ["CLSID"] = "{VIGGEN_X-TANK}", + ["num"] = 4, + }, + [6] = { + ["CLSID"] = "{Robot24J}", + ["num"] = 7, + }, + [7] = { + ["CLSID"] = "{Robot24J}", + ["num"] = 1, + }, + }, + ["tasks"] = { + [1] = 32, + }, + }, + [5] = { + ["name"] = "SEAD", + ["pylons"] = { + [1] = { + ["CLSID"] = "{BK90MJ1}", + ["num"] = 2, + }, + [2] = { + ["CLSID"] = "{BK90MJ1}", + ["num"] = 6, + }, + [3] = { + ["CLSID"] = "{VIGGEN_X-TANK}", + ["num"] = 4, + }, + [4] = { + ["CLSID"] = "{Robot74}", + ["num"] = 5, + }, + [5] = { + ["CLSID"] = "{Robot74}", + ["num"] = 3, + }, + }, + ["tasks"] = { + [1] = 32, + }, + }, + }, + ["tasks"] = { + }, + ["unitType"] = "AJS37", +} +return unitPayloads diff --git a/resources/customized_payloads/AV8BNA.lua b/resources/customized_payloads/AV8BNA.lua new file mode 100644 index 00000000..3015c576 --- /dev/null +++ b/resources/customized_payloads/AV8BNA.lua @@ -0,0 +1,239 @@ +local unitPayloads = { + ["name"] = "AV8BNA", + ["payloads"] = { + [1] = { + ["name"] = "Anti Armor", + ["pylons"] = { + [1] = { + ["CLSID"] = "{6CEB49FC-DED8-4DED-B053-E1F033FF72D3}", + ["num"] = 8, + }, + [2] = { + ["CLSID"] = "LAU_117_AGM_65G", + ["num"] = 7, + }, + [3] = { + ["CLSID"] = "LAU_117_AGM_65G", + ["num"] = 6, + }, + [4] = { + ["CLSID"] = "{GAU_12_Equalizer}", + ["num"] = 4, + }, + [5] = { + ["CLSID"] = "LAU_117_AGM_65G", + ["num"] = 3, + }, + [6] = { + ["CLSID"] = "LAU_117_AGM_65G", + ["num"] = 2, + }, + [7] = { + ["CLSID"] = "{6CEB49FC-DED8-4DED-B053-E1F033FF72D3}", + ["num"] = 1, + }, + [8] = { + ["CLSID"] = "{A111396E-D3E8-4b9c-8AC9-2432489304D5}", + ["num"] = 5, + }, + }, + ["tasks"] = { + [1] = 33, + }, + }, + [2] = { + ["name"] = "CAP", + ["pylons"] = { + [1] = { + ["CLSID"] = "{6CEB49FC-DED8-4DED-B053-E1F033FF72D3}", + ["num"] = 8, + }, + [2] = { + ["CLSID"] = "{6CEB49FC-DED8-4DED-B053-E1F033FF72D3}", + ["num"] = 1, + }, + [3] = { + ["CLSID"] = "{AIM-9M-ON-ADAPTER}", + ["num"] = 2, + }, + [4] = { + ["CLSID"] = "{AIM-9M-ON-ADAPTER}", + ["num"] = 7, + }, + [5] = { + ["CLSID"] = "{ALQ_164_RF_Jammer}", + ["num"] = 5, + }, + [6] = { + ["CLSID"] = "{GAU_12_Equalizer}", + ["num"] = 4, + }, + }, + ["tasks"] = { + }, + }, + [3] = { + ["name"] = "CAS", + ["pylons"] = { + [1] = { + ["CLSID"] = "{6CEB49FC-DED8-4DED-B053-E1F033FF72D3}", + ["num"] = 8, + }, + [2] = { + ["CLSID"] = "LAU_117_AGM_65G", + ["num"] = 7, + }, + [3] = { + ["CLSID"] = "LAU_117_AGM_65G", + ["num"] = 6, + }, + [4] = { + ["CLSID"] = "{GAU_12_Equalizer}", + ["num"] = 4, + }, + [5] = { + ["CLSID"] = "LAU_117_AGM_65G", + ["num"] = 3, + }, + [6] = { + ["CLSID"] = "LAU_117_AGM_65G", + ["num"] = 2, + }, + [7] = { + ["CLSID"] = "{6CEB49FC-DED8-4DED-B053-E1F033FF72D3}", + ["num"] = 1, + }, + [8] = { + ["CLSID"] = "{A111396E-D3E8-4b9c-8AC9-2432489304D5}", + ["num"] = 5, + }, + }, + ["tasks"] = { + [1] = 33, + }, + }, + [4] = { + ["name"] = "STRIKE", + ["pylons"] = { + [1] = { + ["CLSID"] = "{6CEB49FC-DED8-4DED-B053-E1F033FF72D3}", + ["num"] = 8, + }, + [2] = { + ["CLSID"] = "{7A44FF09-527C-4B7E-B42B-3F111CFE50FB}", + ["num"] = 7, + }, + [3] = { + ["CLSID"] = "{BRU-42_2*Mk-83_RIGHT}", + ["num"] = 6, + }, + [4] = { + ["CLSID"] = "{ALQ_164_RF_Jammer}", + ["num"] = 5, + }, + [5] = { + ["CLSID"] = "{BRU-42_2*Mk-83_LEFT}", + ["num"] = 3, + }, + [6] = { + ["CLSID"] = "{7A44FF09-527C-4B7E-B42B-3F111CFE50FB}", + ["num"] = 2, + }, + [7] = { + ["CLSID"] = "{6CEB49FC-DED8-4DED-B053-E1F033FF72D3}", + ["num"] = 1, + }, + [8] = { + ["CLSID"] = "{GAU_12_Equalizer}", + ["num"] = 4, + }, + }, + ["tasks"] = { + [1] = 32, + }, + }, + [5] = { + ["name"] = "ANTISHIP", + ["pylons"] = { + [1] = { + ["CLSID"] = "{6CEB49FC-DED8-4DED-B053-E1F033FF72D3}", + ["num"] = 8, + }, + [2] = { + ["CLSID"] = "LAU_117_AGM_65G", + ["num"] = 7, + }, + [3] = { + ["CLSID"] = "LAU_117_AGM_65G", + ["num"] = 6, + }, + [4] = { + ["CLSID"] = "{GAU_12_Equalizer}", + ["num"] = 4, + }, + [5] = { + ["CLSID"] = "LAU_117_AGM_65G", + ["num"] = 3, + }, + [6] = { + ["CLSID"] = "LAU_117_AGM_65G", + ["num"] = 2, + }, + [7] = { + ["CLSID"] = "{6CEB49FC-DED8-4DED-B053-E1F033FF72D3}", + ["num"] = 1, + }, + [8] = { + ["CLSID"] = "{A111396E-D3E8-4b9c-8AC9-2432489304D5}", + ["num"] = 5, + }, + }, + ["tasks"] = { + [1] = 33, + }, + }, + [6] = { + ["name"] = "SEAD", + ["pylons"] = { + [1] = { + ["CLSID"] = "{AGM_122_SIDEARM}", + ["num"] = 8, + }, + [2] = { + ["CLSID"] = "{AGM_122_SIDEARM}", + ["num"] = 1, + }, + [3] = { + ["CLSID"] = "{LAU_7_AGM_122_SIDEARM}", + ["num"] = 2, + }, + [4] = { + ["CLSID"] = "{LAU_7_AGM_122_SIDEARM}", + ["num"] = 7, + }, + [5] = { + ["CLSID"] = "{A111396E-D3E8-4b9c-8AC9-2432489304D5}", + ["num"] = 5, + }, + [6] = { + ["CLSID"] = "{GAU_12_Equalizer}", + ["num"] = 4, + }, + [7] = { + ["CLSID"] = "LAU_117_AGM_65G", + ["num"] = 3, + }, + [8] = { + ["CLSID"] = "LAU_117_AGM_65G", + ["num"] = 6, + }, + }, + ["tasks"] = { + }, + }, + }, + ["tasks"] = { + }, + ["unitType"] = "AV8BNA", +} +return unitPayloads diff --git a/resources/customized_payloads/C-101CC.lua b/resources/customized_payloads/C-101CC.lua new file mode 100644 index 00000000..0782a0fb --- /dev/null +++ b/resources/customized_payloads/C-101CC.lua @@ -0,0 +1,153 @@ +local unitPayloads = { + ["name"] = "C-101CC", + ["payloads"] = { + [1] = { + ["name"] = "ANTISHIP", + ["pylons"] = { + [1] = { + ["CLSID"] = "{1461CD18-429A-42A9-A21F-4C621ECD4573}", + ["num"] = 6, + }, + [2] = { + ["CLSID"] = "{1461CD18-429A-42A9-A21F-4C621ECD4573}", + ["num"] = 2, + }, + }, + ["tasks"] = { + [1] = 30, + }, + }, + [2] = { + ["name"] = "CAP", + ["pylons"] = { + [1] = { + ["CLSID"] = "{C-101-DEFA553}", + ["num"] = 4, + }, + [2] = { + ["CLSID"] = "{FC23864E-3B80-48E3-9C03-4DA8B1D7497B}", + ["num"] = 1, + }, + [3] = { + ["CLSID"] = "{FC23864E-3B80-48E3-9C03-4DA8B1D7497B}", + ["num"] = 7, + }, + }, + ["tasks"] = { + [1] = 17, + }, + }, + [3] = { + ["name"] = "CAS", + ["pylons"] = { + [1] = { + ["CLSID"] = "{C-101-DEFA553}", + ["num"] = 4, + }, + [2] = { + ["CLSID"] = "{BCE4E030-38E9-423E-98ED-24BE3DA87C32}", + ["num"] = 5, + }, + [3] = { + ["CLSID"] = "{BCE4E030-38E9-423E-98ED-24BE3DA87C32}", + ["num"] = 3, + }, + [4] = { + ["CLSID"] = "{A021F29D-18AB-4d3e-985C-FC9C60E35E9E}", + ["num"] = 2, + }, + [5] = { + ["CLSID"] = "{A021F29D-18AB-4d3e-985C-FC9C60E35E9E}", + ["num"] = 6, + }, + [6] = { + ["CLSID"] = "{6CEB49FC-DED8-4DED-B053-E1F033FF72D3}", + ["num"] = 7, + }, + [7] = { + ["CLSID"] = "{6CEB49FC-DED8-4DED-B053-E1F033FF72D3}", + ["num"] = 1, + }, + }, + ["tasks"] = { + [1] = 31, + }, + }, + [4] = { + ["name"] = "STRIKE", + ["pylons"] = { + [1] = { + ["CLSID"] = "{C-101-DEFA553}", + ["num"] = 4, + }, + [2] = { + ["CLSID"] = "{3C612111-C7AD-476E-8A8E-2485812F4E5C}", + ["num"] = 2, + }, + [3] = { + ["CLSID"] = "{3C612111-C7AD-476E-8A8E-2485812F4E5C}", + ["num"] = 6, + }, + [4] = { + ["CLSID"] = "{6CEB49FC-DED8-4DED-B053-E1F033FF72D3}", + ["num"] = 7, + }, + [5] = { + ["CLSID"] = "{6CEB49FC-DED8-4DED-B053-E1F033FF72D3}", + ["num"] = 1, + }, + [6] = { + ["CLSID"] = "{FB3CE165-BF07-4979-887C-92B87F13276B}", + ["num"] = 3, + }, + [7] = { + ["CLSID"] = "{FB3CE165-BF07-4979-887C-92B87F13276B}", + ["num"] = 5, + }, + }, + ["tasks"] = { + [1] = 31, + }, + }, + [5] = { + ["name"] = "SEAD", + ["pylons"] = { + [1] = { + ["CLSID"] = "{C-101-DEFA553}", + ["num"] = 4, + }, + [2] = { + ["CLSID"] = "{FB3CE165-BF07-4979-887C-92B87F13276B}", + ["num"] = 2, + }, + [3] = { + ["CLSID"] = "{FB3CE165-BF07-4979-887C-92B87F13276B}", + ["num"] = 6, + }, + [4] = { + ["CLSID"] = "{6CEB49FC-DED8-4DED-B053-E1F033FF72D3}", + ["num"] = 7, + }, + [5] = { + ["CLSID"] = "{6CEB49FC-DED8-4DED-B053-E1F033FF72D3}", + ["num"] = 1, + }, + [6] = { + ["CLSID"] = "{FB3CE165-BF07-4979-887C-92B87F13276B}", + ["num"] = 3, + }, + [7] = { + ["CLSID"] = "{FB3CE165-BF07-4979-887C-92B87F13276B}", + ["num"] = 5, + }, + }, + ["tasks"] = { + [1] = 31, + }, + }, + }, + ["tasks"] = { + }, + ["unitType"] = "C-101CC", +} +return unitPayloads diff --git a/resources/customized_payloads/F-14B.lua b/resources/customized_payloads/F-14B.lua new file mode 100644 index 00000000..64cccde5 --- /dev/null +++ b/resources/customized_payloads/F-14B.lua @@ -0,0 +1,262 @@ +local unitPayloads = { + ["name"] = "F-14B", + ["payloads"] = { + [1] = { + ["name"] = "CAP", + ["pylons"] = { + [1] = { + ["CLSID"] = "{LAU-138 wtip - AIM-9M}", + ["num"] = 10, + }, + [2] = { + ["CLSID"] = "{SHOULDER AIM-7MH}", + ["num"] = 9, + }, + [3] = { + ["CLSID"] = "{F14-300gal}", + ["num"] = 8, + }, + [4] = { + ["CLSID"] = "{AIM_54C_Mk47}", + ["num"] = 7, + }, + [5] = { + ["CLSID"] = "{AIM_54C_Mk47}", + ["num"] = 6, + }, + [6] = { + ["CLSID"] = "{AIM_54C_Mk47}", + ["num"] = 5, + }, + [7] = { + ["CLSID"] = "{AIM_54C_Mk47}", + ["num"] = 4, + }, + [8] = { + ["CLSID"] = "{F14-300gal}", + ["num"] = 3, + }, + [9] = { + ["CLSID"] = "{SHOULDER AIM-7MH}", + ["num"] = 2, + }, + [10] = { + ["CLSID"] = "{LAU-138 wtip - AIM-9M}", + ["num"] = 1, + }, + }, + ["tasks"] = { + [1] = 10, + [2] = 11, + [3] = 18, + [4] = 19, + }, + }, + [2] = { + ["name"] = "CAS", + ["pylons"] = { + [1] = { + ["CLSID"] = "{LAU-138 wtip - AIM-9M}", + ["num"] = 10, + }, + [2] = { + ["CLSID"] = "{PHXBRU3242_2*LAU10 RS}", + ["num"] = 9, + }, + [3] = { + ["CLSID"] = "{F14-300gal}", + ["num"] = 8, + }, + [4] = { + ["CLSID"] = "{BRU3242_LAU10}", + ["num"] = 7, + }, + [5] = { + ["CLSID"] = "{BRU-32 GBU-12}", + ["num"] = 6, + }, + [6] = { + ["CLSID"] = "{BRU-32 GBU-12}", + ["num"] = 5, + }, + [7] = { + ["CLSID"] = "{BRU3242_2*LAU10 R}", + ["num"] = 4, + }, + [8] = { + ["CLSID"] = "{F14-300gal}", + ["num"] = 3, + }, + [9] = { + ["CLSID"] = "{PHXBRU3242_2*LAU10 LS}", + ["num"] = 2, + }, + [10] = { + ["CLSID"] = "{LAU-138 wtip - AIM-9M}", + ["num"] = 1, + }, + }, + ["tasks"] = { + [1] = 10, + [2] = 11, + [3] = 18, + [4] = 19, + }, + }, + [3] = { + ["name"] = "STRIKE", + ["pylons"] = { + [1] = { + ["CLSID"] = "{LAU-138 wtip - AIM-9M}", + ["num"] = 10, + }, + [2] = { + ["CLSID"] = "{SHOULDER AIM_54C_Mk47 R}", + ["num"] = 9, + }, + [3] = { + ["CLSID"] = "{F14-300gal}", + ["num"] = 8, + }, + [4] = { + ["CLSID"] = "{BRU-32 MK-83}", + ["num"] = 7, + }, + [5] = { + ["CLSID"] = "{BRU-32 MK-83}", + ["num"] = 6, + }, + [6] = { + ["CLSID"] = "{BRU-32 MK-83}", + ["num"] = 5, + }, + [7] = { + ["CLSID"] = "{BRU-32 MK-83}", + ["num"] = 4, + }, + [8] = { + ["CLSID"] = "{F14-300gal}", + ["num"] = 3, + }, + [9] = { + ["CLSID"] = "{SHOULDER AIM_54C_Mk47 L}", + ["num"] = 2, + }, + [10] = { + ["CLSID"] = "{LAU-138 wtip - AIM-9M}", + ["num"] = 1, + }, + }, + ["tasks"] = { + [1] = 10, + [2] = 11, + [3] = 18, + [4] = 19, + }, + }, + [4] = { + ["name"] = "SEAD", + ["pylons"] = { + [1] = { + ["CLSID"] = "{LAU-138 wtip - AIM-9M}", + ["num"] = 10, + }, + [2] = { + ["CLSID"] = "{SHOULDER AIM_54C_Mk47 R}", + ["num"] = 9, + }, + [3] = { + ["CLSID"] = "{F14-300gal}", + ["num"] = 8, + }, + [4] = { + ["CLSID"] = "{BRU3242_ADM141}", + ["num"] = 7, + }, + [5] = { + ["CLSID"] = "{BRU-32 GBU-12}", + ["num"] = 6, + }, + [6] = { + ["CLSID"] = "{BRU-32 GBU-12}", + ["num"] = 5, + }, + [7] = { + ["CLSID"] = "{BRU3242_ADM141}", + ["num"] = 4, + }, + [8] = { + ["CLSID"] = "{F14-300gal}", + ["num"] = 3, + }, + [9] = { + ["CLSID"] = "{SHOULDER AIM_54C_Mk47 L}", + ["num"] = 2, + }, + [10] = { + ["CLSID"] = "{LAU-138 wtip - AIM-9M}", + ["num"] = 1, + }, + }, + ["tasks"] = { + [1] = 10, + [2] = 11, + [3] = 18, + [4] = 19, + }, + }, + [5] = { + ["name"] = "ANTISHIP", + ["pylons"] = { + [1] = { + ["CLSID"] = "{LAU-138 wtip - AIM-9M}", + ["num"] = 10, + }, + [2] = { + ["CLSID"] = "{SHOULDER AIM_54C_Mk47 R}", + ["num"] = 9, + }, + [3] = { + ["CLSID"] = "{F14-300gal}", + ["num"] = 8, + }, + [4] = { + ["CLSID"] = "{BRU3242_ADM141}", + ["num"] = 7, + }, + [5] = { + ["CLSID"] = "{BRU-32 MK-83}", + ["num"] = 6, + }, + [6] = { + ["CLSID"] = "{BRU-32 MK-83}", + ["num"] = 5, + }, + [7] = { + ["CLSID"] = "{BRU3242_ADM141}", + ["num"] = 4, + }, + [8] = { + ["CLSID"] = "{F14-300gal}", + ["num"] = 3, + }, + [9] = { + ["CLSID"] = "{SHOULDER AIM_54C_Mk47 L}", + ["num"] = 2, + }, + [10] = { + ["CLSID"] = "{LAU-138 wtip - AIM-9M}", + ["num"] = 1, + }, + }, + ["tasks"] = { + [1] = 10, + [2] = 11, + [3] = 18, + [4] = 19, + }, + }, + }, + ["unitType"] = "F-14B", +} +return unitPayloads diff --git a/resources/customized_payloads/F-15C.lua b/resources/customized_payloads/F-15C.lua new file mode 100644 index 00000000..f66928dd --- /dev/null +++ b/resources/customized_payloads/F-15C.lua @@ -0,0 +1,277 @@ +local unitPayloads = { + ["name"] = "F-15C", + ["payloads"] = { + [1] = { + ["name"] = "CAP", + ["pylons"] = { + [1] = { + ["CLSID"] = "{AIM-9P5}", + ["num"] = 1, + }, + [2] = { + ["CLSID"] = "{E1F29B21-F291-4589-9FD8-3272EEC69506}", + ["num"] = 2, + }, + [3] = { + ["CLSID"] = "{40EF17B7-F508-45de-8566-6FFECC0C1AB8}", + ["num"] = 3, + }, + [4] = { + ["CLSID"] = "{C8E06185-7CD6-4C90-959F-044679E90751}", + ["num"] = 4, + }, + [5] = { + ["CLSID"] = "{C8E06185-7CD6-4C90-959F-044679E90751}", + ["num"] = 5, + }, + [6] = { + ["CLSID"] = "{E1F29B21-F291-4589-9FD8-3272EEC69506}", + ["num"] = 6, + }, + [7] = { + ["CLSID"] = "{C8E06185-7CD6-4C90-959F-044679E90751}", + ["num"] = 7, + }, + [8] = { + ["CLSID"] = "{C8E06185-7CD6-4C90-959F-044679E90751}", + ["num"] = 8, + }, + [9] = { + ["CLSID"] = "{40EF17B7-F508-45de-8566-6FFECC0C1AB8}", + ["num"] = 9, + }, + [10] = { + ["CLSID"] = "{E1F29B21-F291-4589-9FD8-3272EEC69506}", + ["num"] = 10, + }, + [11] = { + ["CLSID"] = "{AIM-9P5}", + ["num"] = 11, + }, + }, + ["tasks"] = { + [1] = 18, + [2] = 19, + [3] = 11, + }, + }, + [2] = { + ["name"] = "CAS", + ["pylons"] = { + [1] = { + ["CLSID"] = "{AIM-9P5}", + ["num"] = 1, + }, + [2] = { + ["CLSID"] = "{E1F29B21-F291-4589-9FD8-3272EEC69506}", + ["num"] = 2, + }, + [3] = { + ["CLSID"] = "{40EF17B7-F508-45de-8566-6FFECC0C1AB8}", + ["num"] = 3, + }, + [4] = { + ["CLSID"] = "{C8E06185-7CD6-4C90-959F-044679E90751}", + ["num"] = 4, + }, + [5] = { + ["CLSID"] = "{C8E06185-7CD6-4C90-959F-044679E90751}", + ["num"] = 5, + }, + [6] = { + ["CLSID"] = "{E1F29B21-F291-4589-9FD8-3272EEC69506}", + ["num"] = 6, + }, + [7] = { + ["CLSID"] = "{C8E06185-7CD6-4C90-959F-044679E90751}", + ["num"] = 7, + }, + [8] = { + ["CLSID"] = "{C8E06185-7CD6-4C90-959F-044679E90751}", + ["num"] = 8, + }, + [9] = { + ["CLSID"] = "{40EF17B7-F508-45de-8566-6FFECC0C1AB8}", + ["num"] = 9, + }, + [10] = { + ["CLSID"] = "{E1F29B21-F291-4589-9FD8-3272EEC69506}", + ["num"] = 10, + }, + [11] = { + ["CLSID"] = "{AIM-9P5}", + ["num"] = 11, + }, + }, + ["tasks"] = { + [1] = 18, + [2] = 19, + [3] = 11, + }, + }, + [3] = { + ["name"] = "STRIKE", + ["pylons"] = { + [1] = { + ["CLSID"] = "{AIM-9P5}", + ["num"] = 1, + }, + [2] = { + ["CLSID"] = "{E1F29B21-F291-4589-9FD8-3272EEC69506}", + ["num"] = 2, + }, + [3] = { + ["CLSID"] = "{40EF17B7-F508-45de-8566-6FFECC0C1AB8}", + ["num"] = 3, + }, + [4] = { + ["CLSID"] = "{C8E06185-7CD6-4C90-959F-044679E90751}", + ["num"] = 4, + }, + [5] = { + ["CLSID"] = "{C8E06185-7CD6-4C90-959F-044679E90751}", + ["num"] = 5, + }, + [6] = { + ["CLSID"] = "{E1F29B21-F291-4589-9FD8-3272EEC69506}", + ["num"] = 6, + }, + [7] = { + ["CLSID"] = "{C8E06185-7CD6-4C90-959F-044679E90751}", + ["num"] = 7, + }, + [8] = { + ["CLSID"] = "{C8E06185-7CD6-4C90-959F-044679E90751}", + ["num"] = 8, + }, + [9] = { + ["CLSID"] = "{40EF17B7-F508-45de-8566-6FFECC0C1AB8}", + ["num"] = 9, + }, + [10] = { + ["CLSID"] = "{E1F29B21-F291-4589-9FD8-3272EEC69506}", + ["num"] = 10, + }, + [11] = { + ["CLSID"] = "{AIM-9P5}", + ["num"] = 11, + }, + }, + ["tasks"] = { + [1] = 18, + [2] = 19, + [3] = 11, + }, + }, + [4] = { + ["name"] = "ANTISHIP", + ["pylons"] = { + [1] = { + ["CLSID"] = "{AIM-9P5}", + ["num"] = 1, + }, + [2] = { + ["CLSID"] = "{E1F29B21-F291-4589-9FD8-3272EEC69506}", + ["num"] = 2, + }, + [3] = { + ["CLSID"] = "{40EF17B7-F508-45de-8566-6FFECC0C1AB8}", + ["num"] = 3, + }, + [4] = { + ["CLSID"] = "{C8E06185-7CD6-4C90-959F-044679E90751}", + ["num"] = 4, + }, + [5] = { + ["CLSID"] = "{C8E06185-7CD6-4C90-959F-044679E90751}", + ["num"] = 5, + }, + [6] = { + ["CLSID"] = "{E1F29B21-F291-4589-9FD8-3272EEC69506}", + ["num"] = 6, + }, + [7] = { + ["CLSID"] = "{C8E06185-7CD6-4C90-959F-044679E90751}", + ["num"] = 7, + }, + [8] = { + ["CLSID"] = "{C8E06185-7CD6-4C90-959F-044679E90751}", + ["num"] = 8, + }, + [9] = { + ["CLSID"] = "{40EF17B7-F508-45de-8566-6FFECC0C1AB8}", + ["num"] = 9, + }, + [10] = { + ["CLSID"] = "{E1F29B21-F291-4589-9FD8-3272EEC69506}", + ["num"] = 10, + }, + [11] = { + ["CLSID"] = "{AIM-9P5}", + ["num"] = 11, + }, + }, + ["tasks"] = { + [1] = 18, + [2] = 19, + [3] = 11, + }, + }, + [5] = { + ["name"] = "SEAD", + ["pylons"] = { + [1] = { + ["CLSID"] = "{AIM-9P5}", + ["num"] = 1, + }, + [2] = { + ["CLSID"] = "{E1F29B21-F291-4589-9FD8-3272EEC69506}", + ["num"] = 2, + }, + [3] = { + ["CLSID"] = "{40EF17B7-F508-45de-8566-6FFECC0C1AB8}", + ["num"] = 3, + }, + [4] = { + ["CLSID"] = "{C8E06185-7CD6-4C90-959F-044679E90751}", + ["num"] = 4, + }, + [5] = { + ["CLSID"] = "{C8E06185-7CD6-4C90-959F-044679E90751}", + ["num"] = 5, + }, + [6] = { + ["CLSID"] = "{E1F29B21-F291-4589-9FD8-3272EEC69506}", + ["num"] = 6, + }, + [7] = { + ["CLSID"] = "{C8E06185-7CD6-4C90-959F-044679E90751}", + ["num"] = 7, + }, + [8] = { + ["CLSID"] = "{C8E06185-7CD6-4C90-959F-044679E90751}", + ["num"] = 8, + }, + [9] = { + ["CLSID"] = "{40EF17B7-F508-45de-8566-6FFECC0C1AB8}", + ["num"] = 9, + }, + [10] = { + ["CLSID"] = "{E1F29B21-F291-4589-9FD8-3272EEC69506}", + ["num"] = 10, + }, + [11] = { + ["CLSID"] = "{AIM-9P5}", + ["num"] = 11, + }, + }, + ["tasks"] = { + [1] = 18, + [2] = 19, + [3] = 11, + }, + }, + }, + ["unitType"] = "F-15C", +} +return unitPayloads diff --git a/resources/customized_payloads/F-16C_50.lua b/resources/customized_payloads/F-16C_50.lua new file mode 100644 index 00000000..3f4cb98c --- /dev/null +++ b/resources/customized_payloads/F-16C_50.lua @@ -0,0 +1,226 @@ +local unitPayloads = { + ["name"] = "F-16C_50", + ["payloads"] = { + [1] = { + ["name"] = "CAP", + ["pylons"] = { + [1] = { + ["CLSID"] = "{8A0BE8AE-58D4-4572-9263-3144C0D06364}", + ["num"] = 5, + }, + [2] = { + ["CLSID"] = "{5CE2FF2A-645A-4197-B48D-8720AC69394F}", + ["num"] = 7, + }, + [3] = { + ["CLSID"] = "{5CE2FF2A-645A-4197-B48D-8720AC69394F}", + ["num"] = 3, + }, + [4] = { + ["CLSID"] = "{40EF17B7-F508-45de-8566-6FFECC0C1AB8}", + ["num"] = 2, + }, + [5] = { + ["CLSID"] = "{40EF17B7-F508-45de-8566-6FFECC0C1AB8}", + ["num"] = 1, + }, + [6] = { + ["CLSID"] = "{40EF17B7-F508-45de-8566-6FFECC0C1AB8}", + ["num"] = 8, + }, + [7] = { + ["CLSID"] = "{40EF17B7-F508-45de-8566-6FFECC0C1AB8}", + ["num"] = 9, + }, + [8] = { + ["CLSID"] = "{F376DBEE-4CAE-41BA-ADD9-B2910AC95DEC}", + ["num"] = 4, + }, + [9] = { + ["CLSID"] = "{F376DBEE-4CAE-41BA-ADD9-B2910AC95DEC}", + ["num"] = 6, + }, + }, + ["tasks"] = { + }, + }, + [2] = { + ["name"] = "CAS", + ["pylons"] = { + [1] = { + ["CLSID"] = "{8A0BE8AE-58D4-4572-9263-3144C0D06364}", + ["num"] = 5, + }, + [2] = { + ["CLSID"] = "{TER_9A_2R*MK-82}", + ["num"] = 7, + }, + [3] = { + ["CLSID"] = "{TER_9A_2L*CBU-97}", + ["num"] = 3, + }, + [4] = { + ["CLSID"] = "{40EF17B7-F508-45de-8566-6FFECC0C1AB8}", + ["num"] = 2, + }, + [5] = { + ["CLSID"] = "{40EF17B7-F508-45de-8566-6FFECC0C1AB8}", + ["num"] = 1, + }, + [6] = { + ["CLSID"] = "{40EF17B7-F508-45de-8566-6FFECC0C1AB8}", + ["num"] = 8, + }, + [7] = { + ["CLSID"] = "{40EF17B7-F508-45de-8566-6FFECC0C1AB8}", + ["num"] = 9, + }, + [8] = { + ["CLSID"] = "{TER_9A_2L*CBU-97}", + ["num"] = 4, + }, + [9] = { + ["CLSID"] = "{TER_9A_2R*CBU-97}", + ["num"] = 6, + }, + [10] = { + ["CLSID"] = "{A111396E-D3E8-4b9c-8AC9-2432489304D5}", + ["num"] = 11, + }, + }, + ["tasks"] = { + }, + }, + [3] = { + ["name"] = "ANTISHIP", + ["pylons"] = { + [1] = { + ["CLSID"] = "LAU3_HE5", + ["num"] = 6, + }, + [2] = { + ["CLSID"] = "LAU3_HE5", + ["num"] = 7, + }, + [3] = { + ["CLSID"] = "LAU3_HE5", + ["num"] = 4, + }, + [4] = { + ["CLSID"] = "LAU3_HE5", + ["num"] = 3, + }, + [5] = { + ["CLSID"] = "{40EF17B7-F508-45de-8566-6FFECC0C1AB8}", + ["num"] = 2, + }, + [6] = { + ["CLSID"] = "{40EF17B7-F508-45de-8566-6FFECC0C1AB8}", + ["num"] = 1, + }, + [7] = { + ["CLSID"] = "{40EF17B7-F508-45de-8566-6FFECC0C1AB8}", + ["num"] = 8, + }, + [8] = { + ["CLSID"] = "{40EF17B7-F508-45de-8566-6FFECC0C1AB8}", + ["num"] = 9, + }, + [9] = { + ["CLSID"] = "{8A0BE8AE-58D4-4572-9263-3144C0D06364}", + ["num"] = 5, + }, + }, + ["tasks"] = { + }, + }, + [4] = { + ["name"] = "STRIKE", + ["pylons"] = { + [1] = { + ["CLSID"] = "{AB8B8299-F1CC-4359-89B5-2172E0CF4A5A}", + ["num"] = 7, + }, + [2] = { + ["CLSID"] = "{TER_9A_2L*MK-82}", + ["num"] = 4, + }, + [3] = { + ["CLSID"] = "{TER_9A_2R*MK-82}", + ["num"] = 6, + }, + [4] = { + ["CLSID"] = "{AB8B8299-F1CC-4359-89B5-2172E0CF4A5A}", + ["num"] = 3, + }, + [5] = { + ["CLSID"] = "{40EF17B7-F508-45de-8566-6FFECC0C1AB8}", + ["num"] = 2, + }, + [6] = { + ["CLSID"] = "{40EF17B7-F508-45de-8566-6FFECC0C1AB8}", + ["num"] = 8, + }, + [7] = { + ["CLSID"] = "{40EF17B7-F508-45de-8566-6FFECC0C1AB8}", + ["num"] = 9, + }, + [8] = { + ["CLSID"] = "{40EF17B7-F508-45de-8566-6FFECC0C1AB8}", + ["num"] = 1, + }, + [9] = { + ["CLSID"] = "{8A0BE8AE-58D4-4572-9263-3144C0D06364}", + ["num"] = 5, + }, + }, + ["tasks"] = { + }, + }, + [5] = { + ["name"] = "SEAD", + ["pylons"] = { + [1] = { + ["CLSID"] = "{51F9AAE5-964F-4D21-83FB-502E3BFE5F8A}", + ["num"] = 6, + }, + [2] = { + ["CLSID"] = "{5335D97A-35A5-4643-9D9B-026C75961E52}", + ["num"] = 7, + }, + [3] = { + ["CLSID"] = "{DB769D48-67D7-42ED-A2BE-108D566C8B1E}", + ["num"] = 4, + }, + [4] = { + ["CLSID"] = "{5335D97A-35A5-4643-9D9B-026C75961E52}", + ["num"] = 3, + }, + [5] = { + ["CLSID"] = "{8A0BE8AE-58D4-4572-9263-3144C0D06364}", + ["num"] = 5, + }, + [6] = { + ["CLSID"] = "{40EF17B7-F508-45de-8566-6FFECC0C1AB8}", + ["num"] = 2, + }, + [7] = { + ["CLSID"] = "{40EF17B7-F508-45de-8566-6FFECC0C1AB8}", + ["num"] = 1, + }, + [8] = { + ["CLSID"] = "{40EF17B7-F508-45de-8566-6FFECC0C1AB8}", + ["num"] = 8, + }, + [9] = { + ["CLSID"] = "{40EF17B7-F508-45de-8566-6FFECC0C1AB8}", + ["num"] = 9, + }, + }, + ["tasks"] = { + }, + }, + }, + ["unitType"] = "F-16C_50", +} +return unitPayloads diff --git a/resources/customized_payloads/F-4E.lua b/resources/customized_payloads/F-4E.lua new file mode 100644 index 00000000..4c73fb34 --- /dev/null +++ b/resources/customized_payloads/F-4E.lua @@ -0,0 +1,221 @@ +local unitPayloads = { + ["name"] = "F-4E", + ["payloads"] = { + [1] = { + ["name"] = "CAP", + ["pylons"] = { + [1] = { + ["CLSID"] = "{7B4B122D-C12C-4DB4-834E-4D8BB4D863A8}", + ["num"] = 1, + }, + [2] = { + ["CLSID"] = "{9DDF5297-94B9-42FC-A45E-6E316121CD85}", + ["num"] = 2, + }, + [3] = { + ["CLSID"] = "{8D399DDA-FF81-4F14-904D-099B34FE7918}", + ["num"] = 3, + }, + [4] = { + ["CLSID"] = "{8D399DDA-FF81-4F14-904D-099B34FE7918}", + ["num"] = 4, + }, + [5] = { + ["CLSID"] = "{8D399DDA-FF81-4F14-904D-099B34FE7918}", + ["num"] = 6, + }, + [6] = { + ["CLSID"] = "{8D399DDA-FF81-4F14-904D-099B34FE7918}", + ["num"] = 7, + }, + [7] = { + ["CLSID"] = "{9DDF5297-94B9-42FC-A45E-6E316121CD85}", + ["num"] = 8, + }, + [8] = { + ["CLSID"] = "{7B4B122D-C12C-4DB4-834E-4D8BB4D863A8}", + ["num"] = 9, + }, + }, + ["tasks"] = { + [1] = 18, + [2] = 19, + [3] = 11, + }, + }, + [2] = { + ["name"] = "CAS", + ["pylons"] = { + [1] = { + ["CLSID"] = "{E6A6262A-CA08-4B3D-B030-E1A993B98453}", + ["num"] = 8, + }, + [2] = { + ["CLSID"] = "{E6A6262A-CA08-4B3D-B030-E1A993B98452}", + ["num"] = 2, + }, + [3] = { + ["CLSID"] = "{8D399DDA-FF81-4F14-904D-099B34FE7918}", + ["num"] = 4, + }, + [4] = { + ["CLSID"] = "{8D399DDA-FF81-4F14-904D-099B34FE7918}", + ["num"] = 6, + }, + [5] = { + ["CLSID"] = "{F3EFE0AB-E91A-42D8-9CA2-B63C91ED570A}", + ["num"] = 1, + }, + [6] = { + ["CLSID"] = "{F3EFE0AB-E91A-42D8-9CA2-B63C91ED570A}", + ["num"] = 9, + }, + [7] = { + ["CLSID"] = "{8D399DDA-FF81-4F14-904D-099B34FE7918}", + ["num"] = 3, + }, + [8] = { + ["CLSID"] = "{8D399DDA-FF81-4F14-904D-099B34FE7918}", + ["num"] = 7, + }, + }, + ["tasks"] = { + [1] = 11, + }, + }, + [3] = { + ["name"] = "SEAD", + ["pylons"] = { + [1] = { + ["CLSID"] = "{3E6B632D-65EB-44D2-9501-1C2D04515405}", + ["num"] = 8, + }, + [2] = { + ["CLSID"] = "{3E6B632D-65EB-44D2-9501-1C2D04515405}", + ["num"] = 2, + }, + [3] = { + ["CLSID"] = "{8D399DDA-FF81-4F14-904D-099B34FE7918}", + ["num"] = 4, + }, + [4] = { + ["CLSID"] = "{8D399DDA-FF81-4F14-904D-099B34FE7918}", + ["num"] = 6, + }, + [5] = { + ["CLSID"] = "{3E6B632D-65EB-44D2-9501-1C2D04515405}", + ["num"] = 1, + }, + [6] = { + ["CLSID"] = "{3E6B632D-65EB-44D2-9501-1C2D04515405}", + ["num"] = 9, + }, + [7] = { + ["CLSID"] = "{8D399DDA-FF81-4F14-904D-099B34FE7918}", + ["num"] = 3, + }, + [8] = { + ["CLSID"] = "{8D399DDA-FF81-4F14-904D-099B34FE7918}", + ["num"] = 7, + }, + [9] = { + ["CLSID"] = "{8B9E3FD0-F034-4A07-B6CE-C269884CC71B}", + ["num"] = 5, + }, + }, + ["tasks"] = { + [1] = 11, + }, + }, + [4] = { + ["name"] = "STRIKE", + ["pylons"] = { + [1] = { + ["CLSID"] = "{AB8B8299-F1CC-4359-89B5-2172E0CF4A5A}", + ["num"] = 8, + }, + [2] = { + ["CLSID"] = "{AB8B8299-F1CC-4359-89B5-2172E0CF4A5A}", + ["num"] = 2, + }, + [3] = { + ["CLSID"] = "{8D399DDA-FF81-4F14-904D-099B34FE7918}", + ["num"] = 4, + }, + [4] = { + ["CLSID"] = "{8D399DDA-FF81-4F14-904D-099B34FE7918}", + ["num"] = 6, + }, + [5] = { + ["CLSID"] = "{1C97B4A0-AA3B-43A8-8EE7-D11071457185}", + ["num"] = 1, + }, + [6] = { + ["CLSID"] = "{1C97B4A0-AA3B-43A8-8EE7-D11071457185}", + ["num"] = 9, + }, + [7] = { + ["CLSID"] = "{8D399DDA-FF81-4F14-904D-099B34FE7918}", + ["num"] = 3, + }, + [8] = { + ["CLSID"] = "{8D399DDA-FF81-4F14-904D-099B34FE7918}", + ["num"] = 7, + }, + [9] = { + ["CLSID"] = "{8B9E3FD0-F034-4A07-B6CE-C269884CC71B}", + ["num"] = 5, + }, + }, + ["tasks"] = { + [1] = 11, + }, + }, + [5] = { + ["name"] = "ANTISHIP", + ["pylons"] = { + [1] = { + ["CLSID"] = "{E6A6262A-CA08-4B3D-B030-E1A993B98453}", + ["num"] = 8, + }, + [2] = { + ["CLSID"] = "{E6A6262A-CA08-4B3D-B030-E1A993B98452}", + ["num"] = 2, + }, + [3] = { + ["CLSID"] = "{8D399DDA-FF81-4F14-904D-099B34FE7918}", + ["num"] = 4, + }, + [4] = { + ["CLSID"] = "{8D399DDA-FF81-4F14-904D-099B34FE7918}", + ["num"] = 6, + }, + [5] = { + ["CLSID"] = "{3E6B632D-65EB-44D2-9501-1C2D04515405}", + ["num"] = 1, + }, + [6] = { + ["CLSID"] = "{3E6B632D-65EB-44D2-9501-1C2D04515405}", + ["num"] = 9, + }, + [7] = { + ["CLSID"] = "{8D399DDA-FF81-4F14-904D-099B34FE7918}", + ["num"] = 3, + }, + [8] = { + ["CLSID"] = "{8D399DDA-FF81-4F14-904D-099B34FE7918}", + ["num"] = 7, + }, + [9] = { + ["CLSID"] = "{8B9E3FD0-F034-4A07-B6CE-C269884CC71B}", + ["num"] = 5, + }, + }, + ["tasks"] = { + [1] = 11, + }, + }, + }, + ["unitType"] = "F-4E", +} +return unitPayloads diff --git a/resources/customized_payloads/F-5E-3.lua b/resources/customized_payloads/F-5E-3.lua new file mode 100644 index 00000000..7aeace2b --- /dev/null +++ b/resources/customized_payloads/F-5E-3.lua @@ -0,0 +1,171 @@ +local unitPayloads = { + ["name"] = "F-5E-3", + ["payloads"] = { + [1] = { + ["name"] = "CAP", + ["pylons"] = { + [1] = { + ["CLSID"] = "{AIM-9P5}", + ["num"] = 7, + }, + [2] = { + ["CLSID"] = "{AIM-9P5}", + ["num"] = 1, + }, + [3] = { + ["CLSID"] = "{PTB-150GAL}", + ["num"] = 4, + }, + }, + ["tasks"] = { + [1] = 11, + }, + }, + [2] = { + ["name"] = "CAS", + ["pylons"] = { + [1] = { + ["CLSID"] = "{AIM-9P5}", + ["num"] = 7, + }, + [2] = { + ["CLSID"] = "{AIM-9P5}", + ["num"] = 1, + }, + [3] = { + ["CLSID"] = "{PTB-150GAL}", + ["num"] = 4, + }, + [4] = { + ["CLSID"] = "{LAU68_FFAR_MK5HEAT}", + ["num"] = 5, + }, + [5] = { + ["CLSID"] = "{LAU68_FFAR_MK5HEAT}", + ["num"] = 3, + }, + [6] = { + ["CLSID"] = "{LAU68_FFAR_MK5HEAT}", + ["num"] = 2, + }, + [7] = { + ["CLSID"] = "{LAU68_FFAR_MK5HEAT}", + ["num"] = 6, + }, + }, + ["tasks"] = { + [1] = 11, + }, + }, + [3] = { + ["name"] = "SEAD", + ["pylons"] = { + [1] = { + ["CLSID"] = "{AIM-9P5}", + ["num"] = 7, + }, + [2] = { + ["CLSID"] = "{AIM-9P5}", + ["num"] = 1, + }, + [3] = { + ["CLSID"] = "{PTB-150GAL}", + ["num"] = 4, + }, + [4] = { + ["CLSID"] = "{BCE4E030-38E9-423E-98ED-24BE3DA87C32}", + ["num"] = 5, + }, + [5] = { + ["CLSID"] = "{BCE4E030-38E9-423E-98ED-24BE3DA87C32}", + ["num"] = 3, + }, + [6] = { + ["CLSID"] = "{BCE4E030-38E9-423E-98ED-24BE3DA87C32}", + ["num"] = 2, + }, + [7] = { + ["CLSID"] = "{BCE4E030-38E9-423E-98ED-24BE3DA87C32}", + ["num"] = 6, + }, + }, + ["tasks"] = { + [1] = 11, + }, + }, + [4] = { + ["name"] = "STRIKE", + ["pylons"] = { + [1] = { + ["CLSID"] = "{AIM-9P5}", + ["num"] = 7, + }, + [2] = { + ["CLSID"] = "{AIM-9P5}", + ["num"] = 1, + }, + [3] = { + ["CLSID"] = "{0395076D-2F77-4420-9D33-087A4398130B}", + ["num"] = 4, + }, + [4] = { + ["CLSID"] = "{BCE4E030-38E9-423E-98ED-24BE3DA87C32}", + ["num"] = 5, + }, + [5] = { + ["CLSID"] = "{BCE4E030-38E9-423E-98ED-24BE3DA87C32}", + ["num"] = 3, + }, + [6] = { + ["CLSID"] = "{BCE4E030-38E9-423E-98ED-24BE3DA87C32}", + ["num"] = 2, + }, + [7] = { + ["CLSID"] = "{BCE4E030-38E9-423E-98ED-24BE3DA87C32}", + ["num"] = 6, + }, + }, + ["tasks"] = { + [1] = 11, + }, + }, + [5] = { + ["name"] = "ANTISHIP", + ["pylons"] = { + [1] = { + ["CLSID"] = "{AIM-9P5}", + ["num"] = 7, + }, + [2] = { + ["CLSID"] = "{AIM-9P5}", + ["num"] = 1, + }, + [3] = { + ["CLSID"] = "{PTB-150GAL}", + ["num"] = 4, + }, + [4] = { + ["CLSID"] = "{LAU68_FFAR_MK5HEAT}", + ["num"] = 5, + }, + [5] = { + ["CLSID"] = "{LAU68_FFAR_MK5HEAT}", + ["num"] = 3, + }, + [6] = { + ["CLSID"] = "{LAU68_FFAR_MK5HEAT}", + ["num"] = 2, + }, + [7] = { + ["CLSID"] = "{LAU68_FFAR_MK5HEAT}", + ["num"] = 6, + }, + }, + ["tasks"] = { + [1] = 11, + }, + }, + }, + ["unitType"] = "F-5E-3", +} +return unitPayloads diff --git a/resources/customized_payloads/FA-18C_hornet.lua b/resources/customized_payloads/FA-18C_hornet.lua new file mode 100644 index 00000000..bcf90452 --- /dev/null +++ b/resources/customized_payloads/FA-18C_hornet.lua @@ -0,0 +1,273 @@ +local unitPayloads = { + ["name"] = "FA-18C_hornet", + ["payloads"] = { + [1] = { + ["name"] = "CAS MAVERICK F", + ["pylons"] = { + [1] = { + ["CLSID"] = "LAU_117_AGM_65F", + ["num"] = 7, + }, + [2] = { + ["CLSID"] = "LAU_117_AGM_65F", + ["num"] = 8, + }, + [3] = { + ["CLSID"] = "{40EF17B7-F508-45de-8566-6FFECC0C1AB8}", + ["num"] = 6, + }, + [4] = { + ["CLSID"] = "{40EF17B7-F508-45de-8566-6FFECC0C1AB8}", + ["num"] = 4, + }, + [5] = { + ["CLSID"] = "{A111396E-D3E8-4b9c-8AC9-2432489304D5}", + ["num"] = 5, + }, + [6] = { + ["CLSID"] = "LAU_117_AGM_65F", + ["num"] = 3, + }, + [7] = { + ["CLSID"] = "LAU_117_AGM_65F", + ["num"] = 2, + }, + [8] = { + ["CLSID"] = "{5CE2FF2A-645A-4197-B48D-8720AC69394F}", + ["num"] = 1, + }, + [9] = { + ["CLSID"] = "{5CE2FF2A-645A-4197-B48D-8720AC69394F}", + ["num"] = 9, + }, + }, + ["tasks"] = { + [1] = 11, + }, + }, + [2] = { + ["name"] = "CAS MAVERICK E", + ["pylons"] = { + [1] = { + ["CLSID"] = "{F16A4DE0-116C-4A71-97F0-2CF85B0313EC}", + ["num"] = 7, + }, + [2] = { + ["CLSID"] = "{F16A4DE0-116C-4A71-97F0-2CF85B0313EC}", + ["num"] = 8, + }, + [3] = { + ["CLSID"] = "{40EF17B7-F508-45de-8566-6FFECC0C1AB8}", + ["num"] = 6, + }, + [4] = { + ["CLSID"] = "{40EF17B7-F508-45de-8566-6FFECC0C1AB8}", + ["num"] = 4, + }, + [5] = { + ["CLSID"] = "{A111396E-D3E8-4b9c-8AC9-2432489304D5}", + ["num"] = 5, + }, + [6] = { + ["CLSID"] = "{F16A4DE0-116C-4A71-97F0-2CF85B0313EC}", + ["num"] = 3, + }, + [7] = { + ["CLSID"] = "{F16A4DE0-116C-4A71-97F0-2CF85B0313EC}", + ["num"] = 2, + }, + [8] = { + ["CLSID"] = "{5CE2FF2A-645A-4197-B48D-8720AC69394F}", + ["num"] = 1, + }, + [9] = { + ["CLSID"] = "{5CE2FF2A-645A-4197-B48D-8720AC69394F}", + ["num"] = 9, + }, + }, + ["tasks"] = { + [1] = 11, + }, + }, + [3] = { + ["name"] = "CAP HEAVY", + ["pylons"] = { + [1] = { + ["CLSID"] = "LAU-115_2*LAU-127_AIM-120C", + ["num"] = 7, + }, + [2] = { + ["CLSID"] = "LAU-115_2*LAU-127_AIM-120C", + ["num"] = 8, + }, + [3] = { + ["CLSID"] = "{40EF17B7-F508-45de-8566-6FFECC0C1AB8}", + ["num"] = 6, + }, + [4] = { + ["CLSID"] = "{40EF17B7-F508-45de-8566-6FFECC0C1AB8}", + ["num"] = 4, + }, + [5] = { + ["CLSID"] = "{FPU_8A_FUEL_TANK}", + ["num"] = 5, + }, + [6] = { + ["CLSID"] = "LAU-115_2*LAU-127_AIM-120C", + ["num"] = 3, + }, + [7] = { + ["CLSID"] = "LAU-115_2*LAU-127_AIM-120C", + ["num"] = 2, + }, + [8] = { + ["CLSID"] = "{5CE2FF2A-645A-4197-B48D-8720AC69394F}", + ["num"] = 1, + }, + [9] = { + ["CLSID"] = "{5CE2FF2A-645A-4197-B48D-8720AC69394F}", + ["num"] = 9, + }, + }, + ["tasks"] = { + [1] = 11, + }, + }, + [4] = { + ["name"] = "STRIKE", + ["pylons"] = { + [1] = { + ["CLSID"] = "{BRU55_2*GBU-38}", + ["num"] = 7, + }, + [2] = { + ["CLSID"] = "{BRU33_2X_MK-83}", + ["num"] = 8, + }, + [3] = { + ["CLSID"] = "{40EF17B7-F508-45de-8566-6FFECC0C1AB8}", + ["num"] = 6, + }, + [4] = { + ["CLSID"] = "{40EF17B7-F508-45de-8566-6FFECC0C1AB8}", + ["num"] = 4, + }, + [5] = { + ["CLSID"] = "{FPU_8A_FUEL_TANK}", + ["num"] = 5, + }, + [6] = { + ["CLSID"] = "{BRU55_2*GBU-38}", + ["num"] = 3, + }, + [7] = { + ["CLSID"] = "{BRU33_2X_MK-83}", + ["num"] = 2, + }, + [8] = { + ["CLSID"] = "{5CE2FF2A-645A-4197-B48D-8720AC69394F}", + ["num"] = 1, + }, + [9] = { + ["CLSID"] = "{5CE2FF2A-645A-4197-B48D-8720AC69394F}", + ["num"] = 9, + }, + }, + ["tasks"] = { + [1] = 11, + }, + }, + [5] = { + ["name"] = "ANTISHIP", + ["pylons"] = { + [1] = { + ["CLSID"] = "{AGM_84D}", + ["num"] = 8, + }, + [2] = { + ["CLSID"] = "{AGM_84D}", + ["num"] = 7, + }, + [3] = { + ["CLSID"] = "{A111396E-D3E8-4b9c-8AC9-2432489304D5}", + ["num"] = 5, + }, + [4] = { + ["CLSID"] = "{40EF17B7-F508-45de-8566-6FFECC0C1AB8}", + ["num"] = 6, + }, + [5] = { + ["CLSID"] = "{40EF17B7-F508-45de-8566-6FFECC0C1AB8}", + ["num"] = 4, + }, + [6] = { + ["CLSID"] = "{5CE2FF2A-645A-4197-B48D-8720AC69394F}", + ["num"] = 1, + }, + [7] = { + ["CLSID"] = "{5CE2FF2A-645A-4197-B48D-8720AC69394F}", + ["num"] = 9, + }, + [8] = { + ["CLSID"] = "{AGM_84D}", + ["num"] = 3, + }, + [9] = { + ["CLSID"] = "{AGM_84D}", + ["num"] = 2, + }, + }, + ["tasks"] = { + [1] = 11, + }, + }, + [6] = { + ["name"] = "SEAD", + ["pylons"] = { + [1] = { + ["CLSID"] = "{B06DD79A-F21E-4EB9-BD9D-AB3844618C93}", + ["num"] = 7, + }, + [2] = { + ["CLSID"] = "{B06DD79A-F21E-4EB9-BD9D-AB3844618C93}", + ["num"] = 8, + }, + [3] = { + ["CLSID"] = "{40EF17B7-F508-45de-8566-6FFECC0C1AB8}", + ["num"] = 6, + }, + [4] = { + ["CLSID"] = "{40EF17B7-F508-45de-8566-6FFECC0C1AB8}", + ["num"] = 4, + }, + [5] = { + ["CLSID"] = "{FPU_8A_FUEL_TANK}", + ["num"] = 5, + }, + [6] = { + ["CLSID"] = "{B06DD79A-F21E-4EB9-BD9D-AB3844618C93}", + ["num"] = 3, + }, + [7] = { + ["CLSID"] = "{B06DD79A-F21E-4EB9-BD9D-AB3844618C93}", + ["num"] = 2, + }, + [8] = { + ["CLSID"] = "{5CE2FF2A-645A-4197-B48D-8720AC69394F}", + ["num"] = 1, + }, + [9] = { + ["CLSID"] = "{5CE2FF2A-645A-4197-B48D-8720AC69394F}", + ["num"] = 9, + }, + }, + ["tasks"] = { + [1] = 11, + }, + }, + }, + ["tasks"] = { + }, + ["unitType"] = "FA-18C_hornet", +} +return unitPayloads diff --git a/resources/customized_payloads/JF-17.lua b/resources/customized_payloads/JF-17.lua new file mode 100644 index 00000000..38af4714 --- /dev/null +++ b/resources/customized_payloads/JF-17.lua @@ -0,0 +1,189 @@ +local unitPayloads = { + ["name"] = "JF-17", + ["payloads"] = { + [1] = { + ["name"] = "CAP", + ["pylons"] = { + [1] = { + ["CLSID"] = "DIS_TANK800", + ["num"] = 5, + }, + [2] = { + ["CLSID"] = "DIS_TANK800", + ["num"] = 3, + }, + [3] = { + ["CLSID"] = "DIS_WMD7", + ["num"] = 4, + }, + [4] = { + ["CLSID"] = "DIS_PL-5EII", + ["num"] = 1, + }, + [5] = { + ["CLSID"] = "DIS_PL-5EII", + ["num"] = 7, + }, + [6] = { + ["CLSID"] = "DIS_SD-10_DUAL_R", + ["num"] = 6, + }, + [7] = { + ["CLSID"] = "DIS_SD-10_DUAL_L", + ["num"] = 2, + }, + }, + ["tasks"] = { + [1] = 10, + [2] = 11, + [3] = 19, + }, + }, + [2] = { + ["name"] = "CAS", + ["pylons"] = { + [1] = { + ["CLSID"] = "DIS_WMD7", + ["num"] = 4, + }, + [2] = { + ["CLSID"] = "DIS_PL-5EII", + ["num"] = 1, + }, + [3] = { + ["CLSID"] = "DIS_PL-5EII", + ["num"] = 7, + }, + [4] = { + ["CLSID"] = "DIS_BRM1_90", + ["num"] = 6, + }, + [5] = { + ["CLSID"] = "DIS_BRM1_90", + ["num"] = 2, + }, + }, + ["tasks"] = { + [1] = 10, + [2] = 11, + [3] = 19, + }, + }, + [3] = { + ["name"] = "STRIKE", + ["pylons"] = { + [1] = { + ["CLSID"] = "DIS_WMD7", + ["num"] = 4, + }, + [2] = { + ["CLSID"] = "DIS_PL-5EII", + ["num"] = 1, + }, + [3] = { + ["CLSID"] = "DIS_PL-5EII", + ["num"] = 7, + }, + [4] = { + ["CLSID"] = "DIS_GBU_12_DUAL", + ["num"] = 6, + }, + [5] = { + ["CLSID"] = "DIS_GBU_12_DUAL", + ["num"] = 2, + }, + [6] = { + ["CLSID"] = "DIS_GBU_16", + ["num"] = 3, + }, + [7] = { + ["CLSID"] = "DIS_GBU_16", + ["num"] = 5, + }, + }, + ["tasks"] = { + [1] = 10, + [2] = 11, + [3] = 19, + }, + }, + [4] = { + ["name"] = "SEAD", + ["pylons"] = { + [1] = { + ["CLSID"] = "DIS_WMD7", + ["num"] = 4, + }, + [2] = { + ["CLSID"] = "DIS_PL-5EII", + ["num"] = 1, + }, + [3] = { + ["CLSID"] = "DIS_PL-5EII", + ["num"] = 7, + }, + [4] = { + ["CLSID"] = "DIS_LD-10_DUAL_R", + ["num"] = 6, + }, + [5] = { + ["CLSID"] = "DIS_LD-10_DUAL_L", + ["num"] = 2, + }, + [6] = { + ["CLSID"] = "DIS_TANK800", + ["num"] = 3, + }, + [7] = { + ["CLSID"] = "DIS_TANK800", + ["num"] = 5, + }, + }, + ["tasks"] = { + [1] = 10, + [2] = 11, + [3] = 19, + }, + }, + [5] = { + ["name"] = "ANTISHIP", + ["pylons"] = { + [1] = { + ["CLSID"] = "DIS_WMD7", + ["num"] = 4, + }, + [2] = { + ["CLSID"] = "DIS_PL-5EII", + ["num"] = 1, + }, + [3] = { + ["CLSID"] = "DIS_PL-5EII", + ["num"] = 7, + }, + [4] = { + ["CLSID"] = "DIS_SD-10_DUAL_R", + ["num"] = 6, + }, + [5] = { + ["CLSID"] = "DIS_SD-10_DUAL_L", + ["num"] = 2, + }, + [6] = { + ["CLSID"] = "DIS_C-802AK", + ["num"] = 3, + }, + [7] = { + ["CLSID"] = "DIS_C-802AK", + ["num"] = 5, + }, + }, + ["tasks"] = { + [1] = 10, + [2] = 11, + [3] = 19, + }, + }, + }, + ["unitType"] = "JF-17", +} +return unitPayloads diff --git a/resources/customized_payloads/Ka-50.lua b/resources/customized_payloads/Ka-50.lua new file mode 100644 index 00000000..eb80a8b7 --- /dev/null +++ b/resources/customized_payloads/Ka-50.lua @@ -0,0 +1,137 @@ +local unitPayloads = { + ["name"] = "Ka-50", + ["payloads"] = { + [1] = { + ["name"] = "CAS", + ["pylons"] = { + [1] = { + ["CLSID"] = "{A6FD14D3-6D30-4C85-88A7-8D17BEE120E2}", + ["num"] = 1, + }, + [2] = { + ["CLSID"] = "{6A4B9E69-64FE-439a-9163-3A87FB6A4D81}", + ["num"] = 2, + }, + [3] = { + ["CLSID"] = "{6A4B9E69-64FE-439a-9163-3A87FB6A4D81}", + ["num"] = 3, + }, + [4] = { + ["CLSID"] = "{A6FD14D3-6D30-4C85-88A7-8D17BEE120E2}", + ["num"] = 4, + }, + }, + ["tasks"] = { + [1] = 31, + [2] = 32, + [3] = 18, + }, + }, + [2] = { + ["name"] = "CAP", + ["pylons"] = { + [1] = { + ["CLSID"] = "{A6FD14D3-6D30-4C85-88A7-8D17BEE120E2}", + ["num"] = 1, + }, + [2] = { + ["CLSID"] = "{6A4B9E69-64FE-439a-9163-3A87FB6A4D81}", + ["num"] = 2, + }, + [3] = { + ["CLSID"] = "{6A4B9E69-64FE-439a-9163-3A87FB6A4D81}", + ["num"] = 3, + }, + [4] = { + ["CLSID"] = "{A6FD14D3-6D30-4C85-88A7-8D17BEE120E2}", + ["num"] = 4, + }, + }, + ["tasks"] = { + [1] = 31, + [2] = 32, + [3] = 18, + }, + }, + [3] = { + ["name"] = "SEAD", + ["pylons"] = { + [1] = { + ["CLSID"] = "{6DADF342-D4BA-4D8A-B081-BA928C4AF86D}", + ["num"] = 1, + }, + [2] = { + ["CLSID"] = "{6A4B9E69-64FE-439a-9163-3A87FB6A4D81}", + ["num"] = 2, + }, + [3] = { + ["CLSID"] = "{6A4B9E69-64FE-439a-9163-3A87FB6A4D81}", + ["num"] = 3, + }, + [4] = { + ["CLSID"] = "{6DADF342-D4BA-4D8A-B081-BA928C4AF86D}", + ["num"] = 4, + }, + }, + ["tasks"] = { + [1] = 31, + [2] = 32, + [3] = 18, + }, + }, + [4] = { + ["name"] = "ANTISHIP", + ["pylons"] = { + [1] = { + ["CLSID"] = "{6DADF342-D4BA-4D8A-B081-BA928C4AF86D}", + ["num"] = 1, + }, + [2] = { + ["CLSID"] = "{6A4B9E69-64FE-439a-9163-3A87FB6A4D81}", + ["num"] = 2, + }, + [3] = { + ["CLSID"] = "{6A4B9E69-64FE-439a-9163-3A87FB6A4D81}", + ["num"] = 3, + }, + [4] = { + ["CLSID"] = "{6DADF342-D4BA-4D8A-B081-BA928C4AF86D}", + ["num"] = 4, + }, + }, + ["tasks"] = { + [1] = 31, + [2] = 32, + [3] = 18, + }, + }, + [5] = { + ["name"] = "STRIKE", + ["pylons"] = { + [1] = { + ["CLSID"] = "{A6FD14D3-6D30-4C85-88A7-8D17BEE120E2}", + ["num"] = 1, + }, + [2] = { + ["CLSID"] = "{FC56DF80-9B09-44C5-8976-DCFAFF219062}", + ["num"] = 2, + }, + [3] = { + ["CLSID"] = "{FC56DF80-9B09-44C5-8976-DCFAFF219062}", + ["num"] = 3, + }, + [4] = { + ["CLSID"] = "{A6FD14D3-6D30-4C85-88A7-8D17BEE120E2}", + ["num"] = 4, + }, + }, + ["tasks"] = { + [1] = 31, + [2] = 32, + [3] = 18, + }, + }, + }, + ["unitType"] = "Ka-50", +} +return unitPayloads diff --git a/resources/customized_payloads/L-39C.lua b/resources/customized_payloads/L-39C.lua new file mode 100644 index 00000000..6a273015 --- /dev/null +++ b/resources/customized_payloads/L-39C.lua @@ -0,0 +1,101 @@ +local unitPayloads = { + ["name"] = "L-39C", + ["payloads"] = { + [1] = { + ["name"] = "STRIKE", + ["pylons"] = { + [1] = { + ["CLSID"] = "{FB3CE165-BF07-4979-887C-92B87F13276B}", + ["num"] = 3, + }, + [2] = { + ["CLSID"] = "{FB3CE165-BF07-4979-887C-92B87F13276B}", + ["num"] = 1, + }, + }, + ["tasks"] = { + [1] = 31, + [2] = 30, + [3] = 32, + [4] = 34, + }, + }, + [2] = { + ["name"] = "CAS", + ["pylons"] = { + [1] = { + ["CLSID"] = "{UB-16-57UMP}", + ["num"] = 3, + }, + [2] = { + ["CLSID"] = "{UB-16-57UMP}", + ["num"] = 1, + }, + }, + ["tasks"] = { + [1] = 31, + [2] = 30, + [3] = 32, + [4] = 34, + }, + }, + [3] = { + ["name"] = "SEAD", + ["pylons"] = { + [1] = { + ["CLSID"] = "{UB-16-57UMP}", + ["num"] = 3, + }, + [2] = { + ["CLSID"] = "{UB-16-57UMP}", + ["num"] = 1, + }, + }, + ["tasks"] = { + [1] = 31, + [2] = 30, + [3] = 32, + [4] = 34, + }, + }, + [4] = { + ["name"] = "ANTISHIP", + ["pylons"] = { + [1] = { + ["CLSID"] = "{UB-16-57UMP}", + ["num"] = 3, + }, + [2] = { + ["CLSID"] = "{UB-16-57UMP}", + ["num"] = 1, + }, + }, + ["tasks"] = { + [1] = 31, + [2] = 30, + [3] = 32, + [4] = 34, + }, + }, + [5] = { + ["name"] = "CAP", + ["pylons"] = { + [1] = { + ["CLSID"] = "{R-3S}", + ["num"] = 3, + }, + [2] = { + ["CLSID"] = "{R-3S}", + ["num"] = 1, + }, + }, + ["tasks"] = { + [1] = 31, + }, + }, + }, + ["tasks"] = { + }, + ["unitType"] = "L-39C", +} +return unitPayloads diff --git a/resources/customized_payloads/L-39ZA.lua b/resources/customized_payloads/L-39ZA.lua new file mode 100644 index 00000000..5f9263bc --- /dev/null +++ b/resources/customized_payloads/L-39ZA.lua @@ -0,0 +1,137 @@ +local unitPayloads = { + ["name"] = "L-39ZA", + ["payloads"] = { + [1] = { + ["name"] = "CAP", + ["pylons"] = { + [1] = { + ["CLSID"] = "{APU-60-1_R_60M}", + ["num"] = 5, + }, + [2] = { + ["CLSID"] = "{APU-60-1_R_60M}", + ["num"] = 1, + }, + [3] = { + ["CLSID"] = "{PK-3}", + ["num"] = 4, + }, + [4] = { + ["CLSID"] = "{PK-3}", + ["num"] = 2, + }, + }, + ["tasks"] = { + [1] = 31, + }, + }, + [2] = { + ["name"] = "CAS", + ["pylons"] = { + [1] = { + ["CLSID"] = "{UB-16-57UMP}", + ["num"] = 5, + }, + [2] = { + ["CLSID"] = "{UB-16-57UMP}", + ["num"] = 1, + }, + [3] = { + ["CLSID"] = "{UB-16-57UMP}", + ["num"] = 4, + }, + [4] = { + ["CLSID"] = "{UB-16-57UMP}", + ["num"] = 2, + }, + }, + ["tasks"] = { + [1] = 31, + [2] = 32, + }, + }, + [3] = { + ["name"] = "STRIKE", + ["pylons"] = { + [1] = { + ["CLSID"] = "{FB3CE165-BF07-4979-887C-92B87F13276B}", + ["num"] = 5, + }, + [2] = { + ["CLSID"] = "{FB3CE165-BF07-4979-887C-92B87F13276B}", + ["num"] = 1, + }, + [3] = { + ["CLSID"] = "{FB3CE165-BF07-4979-887C-92B87F13276B}", + ["num"] = 4, + }, + [4] = { + ["CLSID"] = "{FB3CE165-BF07-4979-887C-92B87F13276B}", + ["num"] = 2, + }, + }, + ["tasks"] = { + [1] = 30, + [2] = 31, + [3] = 32, + [4] = 34, + }, + }, + [4] = { + ["name"] = "ANTISHIP", + ["pylons"] = { + [1] = { + ["CLSID"] = "{FB3CE165-BF07-4979-887C-92B87F13276B}", + ["num"] = 5, + }, + [2] = { + ["CLSID"] = "{FB3CE165-BF07-4979-887C-92B87F13276B}", + ["num"] = 1, + }, + [3] = { + ["CLSID"] = "{UB-16-57UMP}", + ["num"] = 4, + }, + [4] = { + ["CLSID"] = "{UB-16-57UMP}", + ["num"] = 2, + }, + }, + ["tasks"] = { + [1] = 30, + [2] = 31, + [3] = 32, + [4] = 34, + }, + }, + [5] = { + ["name"] = "SEAD", + ["pylons"] = { + [1] = { + ["CLSID"] = "{FB3CE165-BF07-4979-887C-92B87F13276B}", + ["num"] = 5, + }, + [2] = { + ["CLSID"] = "{FB3CE165-BF07-4979-887C-92B87F13276B}", + ["num"] = 1, + }, + [3] = { + ["CLSID"] = "{UB-16-57UMP}", + ["num"] = 4, + }, + [4] = { + ["CLSID"] = "{UB-16-57UMP}", + ["num"] = 2, + }, + }, + ["tasks"] = { + [1] = 30, + [2] = 31, + [3] = 32, + [4] = 34, + }, + }, + }, + ["unitType"] = "L-39ZA", +} +return unitPayloads diff --git a/resources/customized_payloads/M-2000C.lua b/resources/customized_payloads/M-2000C.lua new file mode 100644 index 00000000..52c706a1 --- /dev/null +++ b/resources/customized_payloads/M-2000C.lua @@ -0,0 +1,197 @@ +local unitPayloads = { + ["name"] = "M-2000C", + ["payloads"] = { + [1] = { + ["name"] = "CAP", + ["pylons"] = { + [1] = { + ["CLSID"] = "{MMagicII}", + ["num"] = 9, + }, + [2] = { + ["CLSID"] = "{MMagicII}", + ["num"] = 1, + }, + [3] = { + ["CLSID"] = "{Matra_S530D}", + ["num"] = 8, + }, + [4] = { + ["CLSID"] = "{Matra_S530D}", + ["num"] = 2, + }, + [5] = { + ["CLSID"] = "{M2KC_RPL_522}", + ["num"] = 5, + }, + }, + ["tasks"] = { + [1] = 11, + }, + }, + [2] = { + ["name"] = "CAS", + ["pylons"] = { + [1] = { + ["CLSID"] = "{Matra155RocketPod}", + ["num"] = 9, + }, + [2] = { + ["CLSID"] = "{Matra155RocketPod}", + ["num"] = 1, + }, + [3] = { + ["CLSID"] = "{Matra155RocketPod}", + ["num"] = 8, + }, + [4] = { + ["CLSID"] = "{Matra155RocketPod}", + ["num"] = 2, + }, + [5] = { + ["CLSID"] = "{M2KC_RPL_522}", + ["num"] = 5, + }, + }, + ["tasks"] = { + [1] = 11, + }, + }, + [3] = { + ["name"] = "STRIKE", + ["pylons"] = { + [1] = { + ["CLSID"] = "{MMagicII}", + ["num"] = 9, + }, + [2] = { + ["CLSID"] = "{MMagicII}", + ["num"] = 1, + }, + [3] = { + ["CLSID"] = "{M2KC_RAFAUT_MK82}", + ["num"] = 8, + }, + [4] = { + ["CLSID"] = "{M2KC_RAFAUT_MK82}", + ["num"] = 2, + }, + [5] = { + ["CLSID"] = "{M2KC_RPL_522}", + ["num"] = 5, + }, + [6] = { + ["CLSID"] = "{BCE4E030-38E9-423E-98ED-24BE3DA87C32}", + ["num"] = 6, + }, + [7] = { + ["CLSID"] = "{BCE4E030-38E9-423E-98ED-24BE3DA87C32}", + ["num"] = 3, + }, + [8] = { + ["CLSID"] = "{BCE4E030-38E9-423E-98ED-24BE3DA87C32}", + ["num"] = 4, + }, + [9] = { + ["CLSID"] = "{BCE4E030-38E9-423E-98ED-24BE3DA87C32}", + ["num"] = 7, + }, + }, + ["tasks"] = { + [1] = 11, + }, + }, + [4] = { + ["name"] = "ANTISHIP", + ["pylons"] = { + [1] = { + ["CLSID"] = "{MMagicII}", + ["num"] = 9, + }, + [2] = { + ["CLSID"] = "{MMagicII}", + ["num"] = 1, + }, + [3] = { + ["CLSID"] = "{M2KC_RAFAUT_MK82}", + ["num"] = 8, + }, + [4] = { + ["CLSID"] = "{M2KC_RAFAUT_MK82}", + ["num"] = 2, + }, + [5] = { + ["CLSID"] = "{M2KC_RPL_522}", + ["num"] = 5, + }, + [6] = { + ["CLSID"] = "{BCE4E030-38E9-423E-98ED-24BE3DA87C32}", + ["num"] = 6, + }, + [7] = { + ["CLSID"] = "{BCE4E030-38E9-423E-98ED-24BE3DA87C32}", + ["num"] = 3, + }, + [8] = { + ["CLSID"] = "{BCE4E030-38E9-423E-98ED-24BE3DA87C32}", + ["num"] = 4, + }, + [9] = { + ["CLSID"] = "{BCE4E030-38E9-423E-98ED-24BE3DA87C32}", + ["num"] = 7, + }, + }, + ["tasks"] = { + [1] = 11, + }, + }, + [5] = { + ["name"] = "SEAD", + ["pylons"] = { + [1] = { + ["CLSID"] = "{MMagicII}", + ["num"] = 9, + }, + [2] = { + ["CLSID"] = "{MMagicII}", + ["num"] = 1, + }, + [3] = { + ["CLSID"] = "{M2KC_RAFAUT_MK82}", + ["num"] = 8, + }, + [4] = { + ["CLSID"] = "{M2KC_RAFAUT_MK82}", + ["num"] = 2, + }, + [5] = { + ["CLSID"] = "{M2KC_RPL_522}", + ["num"] = 5, + }, + [6] = { + ["CLSID"] = "{BCE4E030-38E9-423E-98ED-24BE3DA87C32}", + ["num"] = 6, + }, + [7] = { + ["CLSID"] = "{BCE4E030-38E9-423E-98ED-24BE3DA87C32}", + ["num"] = 3, + }, + [8] = { + ["CLSID"] = "{BCE4E030-38E9-423E-98ED-24BE3DA87C32}", + ["num"] = 4, + }, + [9] = { + ["CLSID"] = "{BCE4E030-38E9-423E-98ED-24BE3DA87C32}", + ["num"] = 7, + }, + }, + ["tasks"] = { + [1] = 11, + }, + }, + }, + ["tasks"] = { + }, + ["unitType"] = "M-2000C", +} +return unitPayloads diff --git a/resources/customized_payloads/Mi-8MT.lua b/resources/customized_payloads/Mi-8MT.lua new file mode 100644 index 00000000..3e22cd4e --- /dev/null +++ b/resources/customized_payloads/Mi-8MT.lua @@ -0,0 +1,201 @@ +local unitPayloads = { + ["name"] = "Mi-8MT", + ["payloads"] = { + [1] = { + ["name"] = "CAP", + ["pylons"] = { + [1] = { + ["CLSID"] = "PKT_7_62", + ["num"] = 8, + }, + [2] = { + ["CLSID"] = "KORD_12_7", + ["num"] = 7, + }, + [3] = { + ["CLSID"] = "{05544F1A-C39C-466b-BC37-5BD1D52E57BB}", + ["num"] = 2, + }, + [4] = { + ["CLSID"] = "GUV_VOG", + ["num"] = 6, + }, + [5] = { + ["CLSID"] = "{05544F1A-C39C-466b-BC37-5BD1D52E57BB}", + ["num"] = 5, + }, + [6] = { + ["CLSID"] = "GUV_VOG", + ["num"] = 1, + }, + }, + ["tasks"] = { + [1] = 35, + }, + }, + [2] = { + ["name"] = "CAS", + ["pylons"] = { + [1] = { + ["CLSID"] = "PKT_7_62", + ["num"] = 8, + }, + [2] = { + ["CLSID"] = "KORD_12_7", + ["num"] = 7, + }, + [3] = { + ["CLSID"] = "{05544F1A-C39C-466b-BC37-5BD1D52E57BB}", + ["num"] = 2, + }, + [4] = { + ["CLSID"] = "GUV_VOG", + ["num"] = 6, + }, + [5] = { + ["CLSID"] = "{05544F1A-C39C-466b-BC37-5BD1D52E57BB}", + ["num"] = 5, + }, + [6] = { + ["CLSID"] = "GUV_VOG", + ["num"] = 1, + }, + [7] = { + ["CLSID"] = "{6A4B9E69-64FE-439a-9163-3A87FB6A4D81}", + ["num"] = 4, + }, + [8] = { + ["CLSID"] = "{6A4B9E69-64FE-439a-9163-3A87FB6A4D81}", + ["num"] = 3, + }, + }, + ["tasks"] = { + [1] = 35, + }, + }, + [3] = { + ["name"] = "SEAD", + ["pylons"] = { + [1] = { + ["CLSID"] = "PKT_7_62", + ["num"] = 8, + }, + [2] = { + ["CLSID"] = "KORD_12_7", + ["num"] = 7, + }, + [3] = { + ["CLSID"] = "{05544F1A-C39C-466b-BC37-5BD1D52E57BB}", + ["num"] = 2, + }, + [4] = { + ["CLSID"] = "GUV_VOG", + ["num"] = 6, + }, + [5] = { + ["CLSID"] = "{05544F1A-C39C-466b-BC37-5BD1D52E57BB}", + ["num"] = 5, + }, + [6] = { + ["CLSID"] = "GUV_VOG", + ["num"] = 1, + }, + [7] = { + ["CLSID"] = "{6A4B9E69-64FE-439a-9163-3A87FB6A4D81}", + ["num"] = 4, + }, + [8] = { + ["CLSID"] = "{6A4B9E69-64FE-439a-9163-3A87FB6A4D81}", + ["num"] = 3, + }, + }, + ["tasks"] = { + [1] = 35, + }, + }, + [4] = { + ["name"] = "STRIKE", + ["pylons"] = { + [1] = { + ["CLSID"] = "PKT_7_62", + ["num"] = 8, + }, + [2] = { + ["CLSID"] = "KORD_12_7", + ["num"] = 7, + }, + [3] = { + ["CLSID"] = "{3C612111-C7AD-476E-8A8E-2485812F4E5C}", + ["num"] = 2, + }, + [4] = { + ["CLSID"] = "{3C612111-C7AD-476E-8A8E-2485812F4E5C}", + ["num"] = 6, + }, + [5] = { + ["CLSID"] = "{3C612111-C7AD-476E-8A8E-2485812F4E5C}", + ["num"] = 5, + }, + [6] = { + ["CLSID"] = "{3C612111-C7AD-476E-8A8E-2485812F4E5C}", + ["num"] = 1, + }, + [7] = { + ["CLSID"] = "{3C612111-C7AD-476E-8A8E-2485812F4E5C}", + ["num"] = 4, + }, + [8] = { + ["CLSID"] = "{3C612111-C7AD-476E-8A8E-2485812F4E5C}", + ["num"] = 3, + }, + }, + ["tasks"] = { + [1] = 35, + }, + }, + [5] = { + ["name"] = "ANTISHIP", + ["pylons"] = { + [1] = { + ["CLSID"] = "PKT_7_62", + ["num"] = 8, + }, + [2] = { + ["CLSID"] = "KORD_12_7", + ["num"] = 7, + }, + [3] = { + ["CLSID"] = "{6A4B9E69-64FE-439a-9163-3A87FB6A4D81}", + ["num"] = 2, + }, + [4] = { + ["CLSID"] = "GUV_VOG", + ["num"] = 6, + }, + [5] = { + ["CLSID"] = "{6A4B9E69-64FE-439a-9163-3A87FB6A4D81}", + ["num"] = 5, + }, + [6] = { + ["CLSID"] = "GUV_VOG", + ["num"] = 1, + }, + [7] = { + ["CLSID"] = "{6A4B9E69-64FE-439a-9163-3A87FB6A4D81}", + ["num"] = 4, + }, + [8] = { + ["CLSID"] = "{6A4B9E69-64FE-439a-9163-3A87FB6A4D81}", + ["num"] = 3, + }, + }, + ["tasks"] = { + [1] = 35, + }, + }, + }, + ["tasks"] = { + }, + ["unitType"] = "Mi-8MT", +} +return unitPayloads diff --git a/resources/customized_payloads/MiG-15bis.lua b/resources/customized_payloads/MiG-15bis.lua new file mode 100644 index 00000000..74023ad8 --- /dev/null +++ b/resources/customized_payloads/MiG-15bis.lua @@ -0,0 +1,84 @@ +local unitPayloads = { + ["name"] = "MiG-15bis", + ["payloads"] = { + [1] = { + ["name"] = "CAP", + ["pylons"] = { + [1] = { + ["CLSID"] = "PTB300_MIG15", + ["num"] = 2, + }, + [2] = { + ["CLSID"] = "PTB300_MIG15", + ["num"] = 1, + }, + }, + ["tasks"] = { + }, + }, + [2] = { + ["name"] = "CAS", + ["pylons"] = { + [1] = { + ["CLSID"] = "FAB_50", + ["num"] = 2, + }, + [2] = { + ["CLSID"] = "FAB_50", + ["num"] = 1, + }, + }, + ["tasks"] = { + }, + }, + [3] = { + ["name"] = "SEAD", + ["pylons"] = { + [1] = { + ["CLSID"] = "FAB_50", + ["num"] = 2, + }, + [2] = { + ["CLSID"] = "FAB_50", + ["num"] = 1, + }, + }, + ["tasks"] = { + }, + }, + [4] = { + ["name"] = "STRIKE", + ["pylons"] = { + [1] = { + ["CLSID"] = "FAB_100M", + ["num"] = 2, + }, + [2] = { + ["CLSID"] = "FAB_100M", + ["num"] = 1, + }, + }, + ["tasks"] = { + }, + }, + [5] = { + ["name"] = "ANTISHIP", + ["pylons"] = { + [1] = { + ["CLSID"] = "FAB_100M", + ["num"] = 2, + }, + [2] = { + ["CLSID"] = "FAB_100M", + ["num"] = 1, + }, + }, + ["tasks"] = { + }, + }, + }, + ["tasks"] = { + }, + ["unitType"] = "MiG-15bis", +} +return unitPayloads diff --git a/resources/customized_payloads/MiG-19P.lua b/resources/customized_payloads/MiG-19P.lua new file mode 100644 index 00000000..84e6c479 --- /dev/null +++ b/resources/customized_payloads/MiG-19P.lua @@ -0,0 +1,161 @@ +local unitPayloads = { + ["name"] = "MiG-19P", + ["payloads"] = { + [1] = { + ["name"] = "CAP", + ["pylons"] = { + [1] = { + ["CLSID"] = "{K-13A}", + ["num"] = 6, + }, + [2] = { + ["CLSID"] = "{K-13A}", + ["num"] = 1, + }, + [3] = { + ["CLSID"] = "PTB760_MIG19", + ["num"] = 2, + }, + [4] = { + ["CLSID"] = "PTB760_MIG19", + ["num"] = 5, + }, + }, + ["tasks"] = { + [1] = 11, + }, + }, + [2] = { + ["name"] = "CAS", + ["pylons"] = { + [1] = { + ["CLSID"] = "{K-13A}", + ["num"] = 6, + }, + [2] = { + ["CLSID"] = "{K-13A}", + ["num"] = 1, + }, + [3] = { + ["CLSID"] = "{ORO57K_S5M_HEFRAG}", + ["num"] = 2, + }, + [4] = { + ["CLSID"] = "{ORO57K_S5M_HEFRAG}", + ["num"] = 5, + }, + [5] = { + ["CLSID"] = "{ORO57K_S5M_HEFRAG}", + ["num"] = 4, + }, + [6] = { + ["CLSID"] = "{ORO57K_S5M_HEFRAG}", + ["num"] = 3, + }, + }, + ["tasks"] = { + [1] = 11, + }, + }, + [3] = { + ["name"] = "STRIKE", + ["pylons"] = { + [1] = { + ["CLSID"] = "{K-13A}", + ["num"] = 6, + }, + [2] = { + ["CLSID"] = "{K-13A}", + ["num"] = 1, + }, + [3] = { + ["CLSID"] = "{3C612111-C7AD-476E-8A8E-2485812F4E5C}", + ["num"] = 2, + }, + [4] = { + ["CLSID"] = "{3C612111-C7AD-476E-8A8E-2485812F4E5C}", + ["num"] = 5, + }, + [5] = { + ["CLSID"] = "{ORO57K_S5M_HEFRAG}", + ["num"] = 4, + }, + [6] = { + ["CLSID"] = "{ORO57K_S5M_HEFRAG}", + ["num"] = 3, + }, + }, + ["tasks"] = { + [1] = 11, + }, + }, + [4] = { + ["name"] = "SEAD", + ["pylons"] = { + [1] = { + ["CLSID"] = "{K-13A}", + ["num"] = 6, + }, + [2] = { + ["CLSID"] = "{K-13A}", + ["num"] = 1, + }, + [3] = { + ["CLSID"] = "{3C612111-C7AD-476E-8A8E-2485812F4E5C}", + ["num"] = 2, + }, + [4] = { + ["CLSID"] = "{3C612111-C7AD-476E-8A8E-2485812F4E5C}", + ["num"] = 5, + }, + [5] = { + ["CLSID"] = "{ORO57K_S5M_HEFRAG}", + ["num"] = 4, + }, + [6] = { + ["CLSID"] = "{ORO57K_S5M_HEFRAG}", + ["num"] = 3, + }, + }, + ["tasks"] = { + [1] = 11, + }, + }, + [5] = { + ["name"] = "ANTISHIP", + ["pylons"] = { + [1] = { + ["CLSID"] = "{K-13A}", + ["num"] = 6, + }, + [2] = { + ["CLSID"] = "{K-13A}", + ["num"] = 1, + }, + [3] = { + ["CLSID"] = "{3C612111-C7AD-476E-8A8E-2485812F4E5C}", + ["num"] = 2, + }, + [4] = { + ["CLSID"] = "{3C612111-C7AD-476E-8A8E-2485812F4E5C}", + ["num"] = 5, + }, + [5] = { + ["CLSID"] = "{ORO57K_S5M_HEFRAG}", + ["num"] = 4, + }, + [6] = { + ["CLSID"] = "{ORO57K_S5M_HEFRAG}", + ["num"] = 3, + }, + }, + ["tasks"] = { + [1] = 11, + }, + }, + }, + ["tasks"] = { + }, + ["unitType"] = "MiG-19P", +} +return unitPayloads diff --git a/resources/customized_payloads/MiG-21bis.lua b/resources/customized_payloads/MiG-21bis.lua new file mode 100644 index 00000000..36934bb6 --- /dev/null +++ b/resources/customized_payloads/MiG-21bis.lua @@ -0,0 +1,169 @@ +local unitPayloads = { + ["name"] = "MiG-21Bis", + ["payloads"] = { + [1] = { + ["name"] = "CAP", + ["pylons"] = { + [1] = { + ["CLSID"] = "{PTB_490C_MIG21}", + ["num"] = 3, + }, + [2] = { + ["CLSID"] = "{R-3R}", + ["num"] = 2, + }, + [3] = { + ["CLSID"] = "{R-3R}", + ["num"] = 4, + }, + [4] = { + ["CLSID"] = "{R-60 2L}", + ["num"] = 1, + }, + [5] = { + ["CLSID"] = "{R-60 2R}", + ["num"] = 5, + }, + [6] = { + ["CLSID"] = "{ASO-2}", + ["num"] = 6, + }, + }, + ["tasks"] = { + [1] = 11, + }, + }, + [2] = { + ["name"] = "CAS", + ["pylons"] = { + [1] = { + ["CLSID"] = "{ASO-2}", + ["num"] = 6, + }, + [2] = { + ["CLSID"] = "{S-24B}", + ["num"] = 5, + }, + [3] = { + ["CLSID"] = "{UB-32_S5M}", + ["num"] = 4, + }, + [4] = { + ["CLSID"] = "{UB-32_S5M}", + ["num"] = 2, + }, + [5] = { + ["CLSID"] = "{S-24B}", + ["num"] = 1, + }, + [6] = { + ["CLSID"] = "{PTB_490C_MIG21}", + ["num"] = 3, + }, + }, + ["tasks"] = { + [1] = 11, + }, + }, + [3] = { + ["name"] = "ANTISHIP", + ["pylons"] = { + [1] = { + ["CLSID"] = "{ASO-2}", + ["num"] = 6, + }, + [2] = { + ["CLSID"] = "{S-24B}", + ["num"] = 5, + }, + [3] = { + ["CLSID"] = "{Kh-66_Grom}", + ["num"] = 4, + }, + [4] = { + ["CLSID"] = "{Kh-66_Grom}", + ["num"] = 2, + }, + [5] = { + ["CLSID"] = "{S-24B}", + ["num"] = 1, + }, + [6] = { + ["CLSID"] = "{PTB_490C_MIG21}", + ["num"] = 3, + }, + }, + ["tasks"] = { + [1] = 11, + }, + }, + [4] = { + ["name"] = "SEAD", + ["pylons"] = { + [1] = { + ["CLSID"] = "{ASO-2}", + ["num"] = 6, + }, + [2] = { + ["CLSID"] = "{S-24B}", + ["num"] = 5, + }, + [3] = { + ["CLSID"] = "{Kh-66_Grom}", + ["num"] = 4, + }, + [4] = { + ["CLSID"] = "{Kh-66_Grom}", + ["num"] = 2, + }, + [5] = { + ["CLSID"] = "{S-24B}", + ["num"] = 1, + }, + [6] = { + ["CLSID"] = "{PTB_490C_MIG21}", + ["num"] = 3, + }, + }, + ["tasks"] = { + [1] = 11, + }, + }, + [5] = { + ["name"] = "STRIKE", + ["pylons"] = { + [1] = { + ["CLSID"] = "{PTB_800_MIG21}", + ["num"] = 3, + }, + [2] = { + ["CLSID"] = "{35B698AC-9FEF-4EC4-AD29-484A0085F62B}", + ["num"] = 2, + }, + [3] = { + ["CLSID"] = "{35B698AC-9FEF-4EC4-AD29-484A0085F62B}", + ["num"] = 4, + }, + [4] = { + ["CLSID"] = "{ASO-2}", + ["num"] = 6, + }, + [5] = { + ["CLSID"] = "{FB3CE165-BF07-4979-887C-92B87F13276B}", + ["num"] = 1, + }, + [6] = { + ["CLSID"] = "{FB3CE165-BF07-4979-887C-92B87F13276B}", + ["num"] = 5, + }, + }, + ["tasks"] = { + [1] = 32, + }, + }, + }, + ["tasks"] = { + }, + ["unitType"] = "MiG-21Bis", +} +return unitPayloads diff --git a/resources/customized_payloads/MiG-23MLD.lua b/resources/customized_payloads/MiG-23MLD.lua new file mode 100644 index 00000000..080649bb --- /dev/null +++ b/resources/customized_payloads/MiG-23MLD.lua @@ -0,0 +1,143 @@ +local unitPayloads = { + ["name"] = "MiG-23MLD", + ["payloads"] = { + [1] = { + ["name"] = "CAP", + ["pylons"] = { + [1] = { + ["CLSID"] = "{CCF898C9-5BC7-49A4-9D1E-C3ED3D5166A1}", + ["num"] = 2, + }, + [2] = { + ["CLSID"] = "{B0DBC591-0F52-4F7D-AD7B-51E67725FB81}", + ["num"] = 3, + }, + [3] = { + ["CLSID"] = "{275A2855-4A79-4B2D-B082-91EA2ADF4691}", + ["num"] = 5, + }, + [4] = { + ["CLSID"] = "{CCF898C9-5BC7-49A4-9D1E-C3ED3D5166A1}", + ["num"] = 6, + }, + }, + ["tasks"] = { + [1] = 10, + }, + }, + [2] = { + ["name"] = "CAS", + ["pylons"] = { + [1] = { + ["CLSID"] = "{3858707D-F5D5-4bbb-BDD8-ABB0530EBC7C}", + ["num"] = 2, + }, + [2] = { + ["CLSID"] = "{F72F47E5-C83A-4B85-96ED-D3E46671EE9A}", + ["num"] = 3, + }, + [3] = { + ["CLSID"] = "{A5BAEAB7-6FAF-4236-AF72-0FD900F493F9}", + ["num"] = 4, + }, + [4] = { + ["CLSID"] = "{F72F47E5-C83A-4B85-96ED-D3E46671EE9A}", + ["num"] = 5, + }, + [5] = { + ["CLSID"] = "{3858707D-F5D5-4bbb-BDD8-ABB0530EBC7C}", + ["num"] = 6, + }, + }, + ["tasks"] = { + [1] = 32, + }, + }, + [3] = { + ["name"] = "ANTISHIP", + ["pylons"] = { + [1] = { + ["CLSID"] = "{3858707D-F5D5-4bbb-BDD8-ABB0530EBC7C}", + ["num"] = 2, + }, + [2] = { + ["CLSID"] = "{3858707D-F5D5-4bbb-BDD8-ABB0530EBC7C}", + ["num"] = 3, + }, + [3] = { + ["CLSID"] = "{A5BAEAB7-6FAF-4236-AF72-0FD900F493F9}", + ["num"] = 4, + }, + [4] = { + ["CLSID"] = "{3858707D-F5D5-4bbb-BDD8-ABB0530EBC7C}", + ["num"] = 5, + }, + [5] = { + ["CLSID"] = "{3858707D-F5D5-4bbb-BDD8-ABB0530EBC7C}", + ["num"] = 6, + }, + }, + ["tasks"] = { + [1] = 32, + }, + }, + [4] = { + ["name"] = "STRIKE", + ["pylons"] = { + [1] = { + ["CLSID"] = "{3C612111-C7AD-476E-8A8E-2485812F4E5C}", + ["num"] = 2, + }, + [2] = { + ["CLSID"] = "{3C612111-C7AD-476E-8A8E-2485812F4E5C}", + ["num"] = 3, + }, + [3] = { + ["CLSID"] = "{A5BAEAB7-6FAF-4236-AF72-0FD900F493F9}", + ["num"] = 4, + }, + [4] = { + ["CLSID"] = "{3C612111-C7AD-476E-8A8E-2485812F4E5C}", + ["num"] = 5, + }, + [5] = { + ["CLSID"] = "{3C612111-C7AD-476E-8A8E-2485812F4E5C}", + ["num"] = 6, + }, + }, + ["tasks"] = { + [1] = 32, + }, + }, + [5] = { + ["name"] = "SEAD", + ["pylons"] = { + [1] = { + ["CLSID"] = "{3858707D-F5D5-4bbb-BDD8-ABB0530EBC7C}", + ["num"] = 2, + }, + [2] = { + ["CLSID"] = "{3858707D-F5D5-4bbb-BDD8-ABB0530EBC7C}", + ["num"] = 3, + }, + [3] = { + ["CLSID"] = "{A5BAEAB7-6FAF-4236-AF72-0FD900F493F9}", + ["num"] = 4, + }, + [4] = { + ["CLSID"] = "{3858707D-F5D5-4bbb-BDD8-ABB0530EBC7C}", + ["num"] = 5, + }, + [5] = { + ["CLSID"] = "{3858707D-F5D5-4bbb-BDD8-ABB0530EBC7C}", + ["num"] = 6, + }, + }, + ["tasks"] = { + [1] = 32, + }, + }, + }, + ["unitType"] = "MiG-23MLD", +} +return unitPayloads diff --git a/resources/customized_payloads/MiG-27K.lua b/resources/customized_payloads/MiG-27K.lua new file mode 100644 index 00000000..bda195a8 --- /dev/null +++ b/resources/customized_payloads/MiG-27K.lua @@ -0,0 +1,158 @@ +local unitPayloads = { + ["name"] = "MiG-27K", + ["payloads"] = { + [1] = { + ["name"] = "STRIKE", + ["pylons"] = { + [1] = { + ["CLSID"] = "{37DCC01E-9E02-432F-B61D-10C166CA2798}", + ["num"] = 2, + }, + [2] = { + ["CLSID"] = "{682A481F-0CB5-4693-A382-D00DD4A156D7}", + ["num"] = 3, + }, + [3] = { + ["CLSID"] = "{A5BAEAB7-6FAF-4236-AF72-0FD900F493F9}", + ["num"] = 5, + }, + [4] = { + ["CLSID"] = "{682A481F-0CB5-4693-A382-D00DD4A156D7}", + ["num"] = 7, + }, + [5] = { + ["CLSID"] = "{37DCC01E-9E02-432F-B61D-10C166CA2798}", + ["num"] = 8, + }, + [6] = { + ["CLSID"] = "{3C612111-C7AD-476E-8A8E-2485812F4E5C}", + ["num"] = 6, + }, + [7] = { + ["CLSID"] = "{3C612111-C7AD-476E-8A8E-2485812F4E5C}", + ["num"] = 4, + }, + }, + ["tasks"] = { + [1] = 33, + }, + }, + [2] = { + ["name"] = "CAS", + ["pylons"] = { + [1] = { + ["CLSID"] = "{E659C4BE-2CD8-4472-8C08-3F28ACB61A8A}", + ["num"] = 2, + }, + [2] = { + ["CLSID"] = "{682A481F-0CB5-4693-A382-D00DD4A156D7}", + ["num"] = 3, + }, + [3] = { + ["CLSID"] = "{3C612111-C7AD-476E-8A8E-2485812F4E5C}", + ["num"] = 4, + }, + [4] = { + ["CLSID"] = "{A5BAEAB7-6FAF-4236-AF72-0FD900F493F9}", + ["num"] = 5, + }, + [5] = { + ["CLSID"] = "{3C612111-C7AD-476E-8A8E-2485812F4E5C}", + ["num"] = 6, + }, + [6] = { + ["CLSID"] = "{682A481F-0CB5-4693-A382-D00DD4A156D7}", + ["num"] = 7, + }, + [7] = { + ["CLSID"] = "{E659C4BE-2CD8-4472-8C08-3F28ACB61A8A}", + ["num"] = 8, + }, + }, + ["tasks"] = { + [1] = 32, + }, + }, + [3] = { + ["name"] = "SEAD", + ["pylons"] = { + [1] = { + ["CLSID"] = "{752AF1D2-EBCC-4bd7-A1E7-2357F5601C70}", + ["num"] = 2, + }, + [2] = { + ["CLSID"] = "{682A481F-0CB5-4693-A382-D00DD4A156D7}", + ["num"] = 3, + }, + [3] = { + ["CLSID"] = "{A5BAEAB7-6FAF-4236-AF72-0FD900F493F9}", + ["num"] = 5, + }, + [4] = { + ["CLSID"] = "{682A481F-0CB5-4693-A382-D00DD4A156D7}", + ["num"] = 7, + }, + [5] = { + ["CLSID"] = "{752AF1D2-EBCC-4bd7-A1E7-2357F5601C70}", + ["num"] = 8, + }, + }, + ["tasks"] = { + [1] = 29, + }, + }, + [4] = { + ["name"] = "ANTISHIP", + ["pylons"] = { + [1] = { + ["CLSID"] = "{D4A8D9B9-5C45-42e7-BBD2-0E54F8308432}", + ["num"] = 2, + }, + [2] = { + ["CLSID"] = "{682A481F-0CB5-4693-A382-D00DD4A156D7}", + ["num"] = 3, + }, + [3] = { + ["CLSID"] = "{A5BAEAB7-6FAF-4236-AF72-0FD900F493F9}", + ["num"] = 5, + }, + [4] = { + ["CLSID"] = "{682A481F-0CB5-4693-A382-D00DD4A156D7}", + ["num"] = 7, + }, + [5] = { + ["CLSID"] = "{D4A8D9B9-5C45-42e7-BBD2-0E54F8308432}", + ["num"] = 8, + }, + }, + ["tasks"] = { + [1] = 29, + }, + }, + [5] = { + ["name"] = "CAP", + ["pylons"] = { + [1] = { + ["CLSID"] = "{682A481F-0CB5-4693-A382-D00DD4A156D7}", + ["num"] = 7, + }, + [2] = { + ["CLSID"] = "{682A481F-0CB5-4693-A382-D00DD4A156D7}", + ["num"] = 3, + }, + [3] = { + ["CLSID"] = "{682A481F-0CB5-4693-A382-D00DD4A156D7}", + ["num"] = 2, + }, + [4] = { + ["CLSID"] = "{682A481F-0CB5-4693-A382-D00DD4A156D7}", + ["num"] = 8, + }, + }, + ["tasks"] = { + }, + }, + }, + ["unitType"] = "MiG-27K", +} +return unitPayloads diff --git a/resources/customized_payloads/MiG-29A.lua b/resources/customized_payloads/MiG-29A.lua new file mode 100644 index 00000000..39d22506 --- /dev/null +++ b/resources/customized_payloads/MiG-29A.lua @@ -0,0 +1,183 @@ +local unitPayloads = { + ["name"] = "MiG-29A", + ["payloads"] = { + [1] = { + ["name"] = "STRIKE", + ["pylons"] = { + [1] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 1, + }, + [2] = { + ["CLSID"] = "{37DCC01E-9E02-432F-B61D-10C166CA2798}", + ["num"] = 2, + }, + [3] = { + ["CLSID"] = "{37DCC01E-9E02-432F-B61D-10C166CA2798}", + ["num"] = 3, + }, + [4] = { + ["CLSID"] = "{2BEC576B-CDF5-4B7F-961F-B0FA4312B841}", + ["num"] = 4, + }, + [5] = { + ["CLSID"] = "{37DCC01E-9E02-432F-B61D-10C166CA2798}", + ["num"] = 5, + }, + [6] = { + ["CLSID"] = "{37DCC01E-9E02-432F-B61D-10C166CA2798}", + ["num"] = 6, + }, + [7] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 7, + }, + }, + ["tasks"] = { + [1] = 32, + }, + }, + [2] = { + ["name"] = "CAP", + ["pylons"] = { + [1] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 1, + }, + [2] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 2, + }, + [3] = { + ["CLSID"] = "{9B25D316-0434-4954-868F-D51DB1A38DF0}", + ["num"] = 3, + }, + [4] = { + ["CLSID"] = "{9B25D316-0434-4954-868F-D51DB1A38DF0}", + ["num"] = 5, + }, + [5] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 6, + }, + [6] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 7, + }, + }, + ["tasks"] = { + [1] = 10, + }, + }, + [3] = { + ["name"] = "CAS", + ["pylons"] = { + [1] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 7, + }, + [2] = { + ["CLSID"] = "{37DCC01E-9E02-432F-B61D-10C166CA2798}", + ["num"] = 5, + }, + [3] = { + ["CLSID"] = "{3858707D-F5D5-4bbb-BDD8-ABB0530EBC7C}", + ["num"] = 6, + }, + [4] = { + ["CLSID"] = "{37DCC01E-9E02-432F-B61D-10C166CA2798}", + ["num"] = 3, + }, + [5] = { + ["CLSID"] = "{3858707D-F5D5-4bbb-BDD8-ABB0530EBC7C}", + ["num"] = 2, + }, + [6] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 1, + }, + [7] = { + ["CLSID"] = "{2BEC576B-CDF5-4B7F-961F-B0FA4312B841}", + ["num"] = 4, + }, + }, + ["tasks"] = { + [1] = 30, + }, + }, + [4] = { + ["name"] = "ANTISHIP", + ["pylons"] = { + [1] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 7, + }, + [2] = { + ["CLSID"] = "{3858707D-F5D5-4bbb-BDD8-ABB0530EBC7C}", + ["num"] = 5, + }, + [3] = { + ["CLSID"] = "{3858707D-F5D5-4bbb-BDD8-ABB0530EBC7C}", + ["num"] = 6, + }, + [4] = { + ["CLSID"] = "{3858707D-F5D5-4bbb-BDD8-ABB0530EBC7C}", + ["num"] = 3, + }, + [5] = { + ["CLSID"] = "{3858707D-F5D5-4bbb-BDD8-ABB0530EBC7C}", + ["num"] = 2, + }, + [6] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 1, + }, + [7] = { + ["CLSID"] = "{2BEC576B-CDF5-4B7F-961F-B0FA4312B841}", + ["num"] = 4, + }, + }, + ["tasks"] = { + [1] = 30, + }, + }, + [5] = { + ["name"] = "SEAD", + ["pylons"] = { + [1] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 7, + }, + [2] = { + ["CLSID"] = "{3858707D-F5D5-4bbb-BDD8-ABB0530EBC7C}", + ["num"] = 5, + }, + [3] = { + ["CLSID"] = "{3858707D-F5D5-4bbb-BDD8-ABB0530EBC7C}", + ["num"] = 6, + }, + [4] = { + ["CLSID"] = "{3858707D-F5D5-4bbb-BDD8-ABB0530EBC7C}", + ["num"] = 3, + }, + [5] = { + ["CLSID"] = "{3858707D-F5D5-4bbb-BDD8-ABB0530EBC7C}", + ["num"] = 2, + }, + [6] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 1, + }, + [7] = { + ["CLSID"] = "{2BEC576B-CDF5-4B7F-961F-B0FA4312B841}", + ["num"] = 4, + }, + }, + ["tasks"] = { + [1] = 30, + }, + }, + }, + ["unitType"] = "MiG-29A", +} +return unitPayloads diff --git a/resources/customized_payloads/MiG-29G.lua b/resources/customized_payloads/MiG-29G.lua new file mode 100644 index 00000000..3167fc75 --- /dev/null +++ b/resources/customized_payloads/MiG-29G.lua @@ -0,0 +1,171 @@ +local unitPayloads = { + ["name"] = "MiG-29G", + ["payloads"] = { + [1] = { + ["name"] = "CAP", + ["pylons"] = { + [1] = { + ["CLSID"] = "{682A481F-0CB5-4693-A382-D00DD4A156D7}", + ["num"] = 1, + }, + [2] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 2, + }, + [3] = { + ["CLSID"] = "{9B25D316-0434-4954-868F-D51DB1A38DF0}", + ["num"] = 3, + }, + [4] = { + ["CLSID"] = "{9B25D316-0434-4954-868F-D51DB1A38DF0}", + ["num"] = 5, + }, + [5] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 6, + }, + [6] = { + ["CLSID"] = "{682A481F-0CB5-4693-A382-D00DD4A156D7}", + ["num"] = 7, + }, + }, + ["tasks"] = { + [1] = 10, + }, + }, + [2] = { + ["name"] = "CAS", + ["pylons"] = { + [1] = { + ["CLSID"] = "{682A481F-0CB5-4693-A382-D00DD4A156D7}", + ["num"] = 1, + }, + [2] = { + ["CLSID"] = "{3858707D-F5D5-4bbb-BDD8-ABB0530EBC7C}", + ["num"] = 2, + }, + [3] = { + ["CLSID"] = "{3858707D-F5D5-4bbb-BDD8-ABB0530EBC7C}", + ["num"] = 3, + }, + [4] = { + ["CLSID"] = "{3858707D-F5D5-4bbb-BDD8-ABB0530EBC7C}", + ["num"] = 5, + }, + [5] = { + ["CLSID"] = "{3858707D-F5D5-4bbb-BDD8-ABB0530EBC7C}", + ["num"] = 6, + }, + [6] = { + ["CLSID"] = "{682A481F-0CB5-4693-A382-D00DD4A156D7}", + ["num"] = 7, + }, + }, + ["tasks"] = { + [1] = 10, + }, + }, + [3] = { + ["name"] = "ANTISHIP", + ["pylons"] = { + [1] = { + ["CLSID"] = "{682A481F-0CB5-4693-A382-D00DD4A156D7}", + ["num"] = 1, + }, + [2] = { + ["CLSID"] = "{3858707D-F5D5-4bbb-BDD8-ABB0530EBC7C}", + ["num"] = 2, + }, + [3] = { + ["CLSID"] = "{3858707D-F5D5-4bbb-BDD8-ABB0530EBC7C}", + ["num"] = 3, + }, + [4] = { + ["CLSID"] = "{3858707D-F5D5-4bbb-BDD8-ABB0530EBC7C}", + ["num"] = 5, + }, + [5] = { + ["CLSID"] = "{3858707D-F5D5-4bbb-BDD8-ABB0530EBC7C}", + ["num"] = 6, + }, + [6] = { + ["CLSID"] = "{682A481F-0CB5-4693-A382-D00DD4A156D7}", + ["num"] = 7, + }, + }, + ["tasks"] = { + [1] = 10, + }, + }, + [4] = { + ["name"] = "SEAD", + ["pylons"] = { + [1] = { + ["CLSID"] = "{682A481F-0CB5-4693-A382-D00DD4A156D7}", + ["num"] = 1, + }, + [2] = { + ["CLSID"] = "{3858707D-F5D5-4bbb-BDD8-ABB0530EBC7C}", + ["num"] = 2, + }, + [3] = { + ["CLSID"] = "{3858707D-F5D5-4bbb-BDD8-ABB0530EBC7C}", + ["num"] = 3, + }, + [4] = { + ["CLSID"] = "{3858707D-F5D5-4bbb-BDD8-ABB0530EBC7C}", + ["num"] = 5, + }, + [5] = { + ["CLSID"] = "{3858707D-F5D5-4bbb-BDD8-ABB0530EBC7C}", + ["num"] = 6, + }, + [6] = { + ["CLSID"] = "{682A481F-0CB5-4693-A382-D00DD4A156D7}", + ["num"] = 7, + }, + }, + ["tasks"] = { + [1] = 10, + }, + }, + [5] = { + ["name"] = "STRIKE", + ["pylons"] = { + [1] = { + ["CLSID"] = "{682A481F-0CB5-4693-A382-D00DD4A156D7}", + ["num"] = 1, + }, + [2] = { + ["CLSID"] = "{37DCC01E-9E02-432F-B61D-10C166CA2798}", + ["num"] = 2, + }, + [3] = { + ["CLSID"] = "{37DCC01E-9E02-432F-B61D-10C166CA2798}", + ["num"] = 3, + }, + [4] = { + ["CLSID"] = "{37DCC01E-9E02-432F-B61D-10C166CA2798}", + ["num"] = 5, + }, + [5] = { + ["CLSID"] = "{37DCC01E-9E02-432F-B61D-10C166CA2798}", + ["num"] = 6, + }, + [6] = { + ["CLSID"] = "{682A481F-0CB5-4693-A382-D00DD4A156D7}", + ["num"] = 7, + }, + [7] = { + ["CLSID"] = "{2BEC576B-CDF5-4B7F-961F-B0FA4312B841}", + ["num"] = 4, + }, + }, + ["tasks"] = { + [1] = 10, + }, + }, + }, + ["unitType"] = "MiG-29G", +} +return unitPayloads diff --git a/resources/customized_payloads/MiG-29S.lua b/resources/customized_payloads/MiG-29S.lua new file mode 100644 index 00000000..1ea78e97 --- /dev/null +++ b/resources/customized_payloads/MiG-29S.lua @@ -0,0 +1,187 @@ +local unitPayloads = { + ["name"] = "MiG-29S", + ["payloads"] = { + [1] = { + ["name"] = "CAS", + ["pylons"] = { + [1] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 1, + }, + [2] = { + ["CLSID"] = "{3858707D-F5D5-4bbb-BDD8-ABB0530EBC7C}", + ["num"] = 2, + }, + [3] = { + ["CLSID"] = "{3858707D-F5D5-4bbb-BDD8-ABB0530EBC7C}", + ["num"] = 3, + }, + [4] = { + ["CLSID"] = "{2BEC576B-CDF5-4B7F-961F-B0FA4312B841}", + ["num"] = 4, + }, + [5] = { + ["CLSID"] = "{3858707D-F5D5-4bbb-BDD8-ABB0530EBC7C}", + ["num"] = 5, + }, + [6] = { + ["CLSID"] = "{3858707D-F5D5-4bbb-BDD8-ABB0530EBC7C}", + ["num"] = 6, + }, + [7] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 7, + }, + }, + ["tasks"] = { + [1] = 32, + }, + }, + [2] = { + ["name"] = "CAP", + ["pylons"] = { + [1] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 1, + }, + [2] = { + ["CLSID"] = "{B4C01D60-A8A3-4237-BD72-CA7655BC0FE9}", + ["num"] = 2, + }, + [3] = { + ["CLSID"] = "{B4C01D60-A8A3-4237-BD72-CA7655BC0FE9}", + ["num"] = 3, + }, + [4] = { + ["CLSID"] = "{B4C01D60-A8A3-4237-BD72-CA7655BC0FE9}", + ["num"] = 5, + }, + [5] = { + ["CLSID"] = "{B4C01D60-A8A3-4237-BD72-CA7655BC0FE9}", + ["num"] = 6, + }, + [6] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 7, + }, + [7] = { + ["CLSID"] = "{2BEC576B-CDF5-4B7F-961F-B0FA4312B841}", + ["num"] = 4, + }, + }, + ["tasks"] = { + [1] = 10, + }, + }, + [3] = { + ["name"] = "STRIKE", + ["pylons"] = { + [1] = { + ["CLSID"] = "{B4C01D60-A8A3-4237-BD72-CA7655BC0FE9}", + ["num"] = 1, + }, + [2] = { + ["CLSID"] = "{37DCC01E-9E02-432F-B61D-10C166CA2798}", + ["num"] = 2, + }, + [3] = { + ["CLSID"] = "{37DCC01E-9E02-432F-B61D-10C166CA2798}", + ["num"] = 3, + }, + [4] = { + ["CLSID"] = "{2BEC576B-CDF5-4B7F-961F-B0FA4312B841}", + ["num"] = 4, + }, + [5] = { + ["CLSID"] = "{37DCC01E-9E02-432F-B61D-10C166CA2798}", + ["num"] = 5, + }, + [6] = { + ["CLSID"] = "{37DCC01E-9E02-432F-B61D-10C166CA2798}", + ["num"] = 6, + }, + [7] = { + ["CLSID"] = "{B4C01D60-A8A3-4237-BD72-CA7655BC0FE9}", + ["num"] = 7, + }, + }, + ["tasks"] = { + [1] = 32, + }, + }, + [4] = { + ["name"] = "ANTISHIP", + ["pylons"] = { + [1] = { + ["CLSID"] = "{B4C01D60-A8A3-4237-BD72-CA7655BC0FE9}", + ["num"] = 1, + }, + [2] = { + ["CLSID"] = "{3858707D-F5D5-4bbb-BDD8-ABB0530EBC7C}", + ["num"] = 2, + }, + [3] = { + ["CLSID"] = "{3858707D-F5D5-4bbb-BDD8-ABB0530EBC7C}", + ["num"] = 3, + }, + [4] = { + ["CLSID"] = "{2BEC576B-CDF5-4B7F-961F-B0FA4312B841}", + ["num"] = 4, + }, + [5] = { + ["CLSID"] = "{3858707D-F5D5-4bbb-BDD8-ABB0530EBC7C}", + ["num"] = 5, + }, + [6] = { + ["CLSID"] = "{3858707D-F5D5-4bbb-BDD8-ABB0530EBC7C}", + ["num"] = 6, + }, + [7] = { + ["CLSID"] = "{B4C01D60-A8A3-4237-BD72-CA7655BC0FE9}", + ["num"] = 7, + }, + }, + ["tasks"] = { + [1] = 32, + }, + }, + [5] = { + ["name"] = "SEAD", + ["pylons"] = { + [1] = { + ["CLSID"] = "{B4C01D60-A8A3-4237-BD72-CA7655BC0FE9}", + ["num"] = 1, + }, + [2] = { + ["CLSID"] = "{3858707D-F5D5-4bbb-BDD8-ABB0530EBC7C}", + ["num"] = 2, + }, + [3] = { + ["CLSID"] = "{3858707D-F5D5-4bbb-BDD8-ABB0530EBC7C}", + ["num"] = 3, + }, + [4] = { + ["CLSID"] = "{2BEC576B-CDF5-4B7F-961F-B0FA4312B841}", + ["num"] = 4, + }, + [5] = { + ["CLSID"] = "{3858707D-F5D5-4bbb-BDD8-ABB0530EBC7C}", + ["num"] = 5, + }, + [6] = { + ["CLSID"] = "{3858707D-F5D5-4bbb-BDD8-ABB0530EBC7C}", + ["num"] = 6, + }, + [7] = { + ["CLSID"] = "{B4C01D60-A8A3-4237-BD72-CA7655BC0FE9}", + ["num"] = 7, + }, + }, + ["tasks"] = { + [1] = 32, + }, + }, + }, + ["unitType"] = "MiG-29S", +} +return unitPayloads diff --git a/resources/customized_payloads/MiG-31.lua b/resources/customized_payloads/MiG-31.lua new file mode 100644 index 00000000..a714f964 --- /dev/null +++ b/resources/customized_payloads/MiG-31.lua @@ -0,0 +1,182 @@ +local unitPayloads = { + ["name"] = "MiG-31", + ["payloads"] = { + [1] = { + ["name"] = "CAS", + ["pylons"] = { + [1] = { + ["CLSID"] = "{4EDBA993-2E34-444C-95FB-549300BF7CAF}", + ["num"] = 1, + }, + [2] = { + ["CLSID"] = "{F1243568-8EF0-49D4-9CB5-4DA90D92BC1D}", + ["num"] = 2, + }, + [3] = { + ["CLSID"] = "{F1243568-8EF0-49D4-9CB5-4DA90D92BC1D}", + ["num"] = 3, + }, + [4] = { + ["CLSID"] = "{F1243568-8EF0-49D4-9CB5-4DA90D92BC1D}", + ["num"] = 4, + }, + [5] = { + ["CLSID"] = "{F1243568-8EF0-49D4-9CB5-4DA90D92BC1D}", + ["num"] = 5, + }, + [6] = { + ["CLSID"] = "{4EDBA993-2E34-444C-95FB-549300BF7CAF}", + ["num"] = 6, + }, + }, + ["tasks"] = { + [1] = 11, + [2] = 10, + [3] = 18, + [4] = 19, + }, + }, + [2] = { + ["name"] = "CAP", + ["pylons"] = { + [1] = { + ["CLSID"] = "{4EDBA993-2E34-444C-95FB-549300BF7CAF}", + ["num"] = 1, + }, + [2] = { + ["CLSID"] = "{F1243568-8EF0-49D4-9CB5-4DA90D92BC1D}", + ["num"] = 2, + }, + [3] = { + ["CLSID"] = "{F1243568-8EF0-49D4-9CB5-4DA90D92BC1D}", + ["num"] = 3, + }, + [4] = { + ["CLSID"] = "{F1243568-8EF0-49D4-9CB5-4DA90D92BC1D}", + ["num"] = 4, + }, + [5] = { + ["CLSID"] = "{F1243568-8EF0-49D4-9CB5-4DA90D92BC1D}", + ["num"] = 5, + }, + [6] = { + ["CLSID"] = "{4EDBA993-2E34-444C-95FB-549300BF7CAF}", + ["num"] = 6, + }, + }, + ["tasks"] = { + [1] = 11, + [2] = 10, + [3] = 18, + [4] = 19, + }, + }, + [3] = { + ["name"] = "SEAD", + ["pylons"] = { + [1] = { + ["CLSID"] = "{4EDBA993-2E34-444C-95FB-549300BF7CAF}", + ["num"] = 1, + }, + [2] = { + ["CLSID"] = "{F1243568-8EF0-49D4-9CB5-4DA90D92BC1D}", + ["num"] = 2, + }, + [3] = { + ["CLSID"] = "{F1243568-8EF0-49D4-9CB5-4DA90D92BC1D}", + ["num"] = 3, + }, + [4] = { + ["CLSID"] = "{F1243568-8EF0-49D4-9CB5-4DA90D92BC1D}", + ["num"] = 4, + }, + [5] = { + ["CLSID"] = "{F1243568-8EF0-49D4-9CB5-4DA90D92BC1D}", + ["num"] = 5, + }, + [6] = { + ["CLSID"] = "{4EDBA993-2E34-444C-95FB-549300BF7CAF}", + ["num"] = 6, + }, + }, + ["tasks"] = { + [1] = 11, + [2] = 10, + [3] = 18, + [4] = 19, + }, + }, + [4] = { + ["name"] = "STRIKE", + ["pylons"] = { + [1] = { + ["CLSID"] = "{4EDBA993-2E34-444C-95FB-549300BF7CAF}", + ["num"] = 1, + }, + [2] = { + ["CLSID"] = "{F1243568-8EF0-49D4-9CB5-4DA90D92BC1D}", + ["num"] = 2, + }, + [3] = { + ["CLSID"] = "{F1243568-8EF0-49D4-9CB5-4DA90D92BC1D}", + ["num"] = 3, + }, + [4] = { + ["CLSID"] = "{F1243568-8EF0-49D4-9CB5-4DA90D92BC1D}", + ["num"] = 4, + }, + [5] = { + ["CLSID"] = "{F1243568-8EF0-49D4-9CB5-4DA90D92BC1D}", + ["num"] = 5, + }, + [6] = { + ["CLSID"] = "{4EDBA993-2E34-444C-95FB-549300BF7CAF}", + ["num"] = 6, + }, + }, + ["tasks"] = { + [1] = 11, + [2] = 10, + [3] = 18, + [4] = 19, + }, + }, + [5] = { + ["name"] = "ANTISHIP", + ["pylons"] = { + [1] = { + ["CLSID"] = "{4EDBA993-2E34-444C-95FB-549300BF7CAF}", + ["num"] = 1, + }, + [2] = { + ["CLSID"] = "{F1243568-8EF0-49D4-9CB5-4DA90D92BC1D}", + ["num"] = 2, + }, + [3] = { + ["CLSID"] = "{F1243568-8EF0-49D4-9CB5-4DA90D92BC1D}", + ["num"] = 3, + }, + [4] = { + ["CLSID"] = "{F1243568-8EF0-49D4-9CB5-4DA90D92BC1D}", + ["num"] = 4, + }, + [5] = { + ["CLSID"] = "{F1243568-8EF0-49D4-9CB5-4DA90D92BC1D}", + ["num"] = 5, + }, + [6] = { + ["CLSID"] = "{4EDBA993-2E34-444C-95FB-549300BF7CAF}", + ["num"] = 6, + }, + }, + ["tasks"] = { + [1] = 11, + [2] = 10, + [3] = 18, + [4] = 19, + }, + }, + }, + ["unitType"] = "MiG-31", +} +return unitPayloads diff --git a/resources/customized_payloads/Mirage 2000-5.lua b/resources/customized_payloads/Mirage 2000-5.lua new file mode 100644 index 00000000..ffb845eb --- /dev/null +++ b/resources/customized_payloads/Mirage 2000-5.lua @@ -0,0 +1,242 @@ +local unitPayloads = { + ["name"] = "Mirage 2000-5", + ["payloads"] = { + [1] = { + ["name"] = "CAP", + ["pylons"] = { + [1] = { + ["CLSID"] = "{FC23864E-3B80-48E3-9C03-4DA8B1D7497B}", + ["num"] = 1, + }, + [2] = { + ["CLSID"] = "{6D778860-7BB8-4ACB-9E95-BA772C6BBC2C}", + ["num"] = 2, + }, + [3] = { + ["CLSID"] = "{6D778860-7BB8-4ACB-9E95-BA772C6BBC2C}", + ["num"] = 3, + }, + [4] = { + ["CLSID"] = "{0DA03783-61E4-40B2-8FAE-6AEE0A5C5AAE}", + ["num"] = 4, + }, + [5] = { + ["CLSID"] = "{414DA830-B61A-4F9E-B71B-C2F6832E1D7A}", + ["num"] = 5, + }, + [6] = { + ["CLSID"] = "{0DA03783-61E4-40B2-8FAE-6AEE0A5C5AAE}", + ["num"] = 6, + }, + [7] = { + ["CLSID"] = "{6D778860-7BB8-4ACB-9E95-BA772C6BBC2C}", + ["num"] = 7, + }, + [8] = { + ["CLSID"] = "{6D778860-7BB8-4ACB-9E95-BA772C6BBC2C}", + ["num"] = 8, + }, + [9] = { + ["CLSID"] = "{FC23864E-3B80-48E3-9C03-4DA8B1D7497B}", + ["num"] = 9, + }, + }, + ["tasks"] = { + [1] = 11, + [2] = 10, + [3] = 18, + [4] = 19, + }, + }, + [2] = { + ["name"] = "CAS", + ["pylons"] = { + [1] = { + ["CLSID"] = "{FC23864E-3B80-48E3-9C03-4DA8B1D7497B}", + ["num"] = 1, + }, + [2] = { + ["CLSID"] = "{6D778860-7BB8-4ACB-9E95-BA772C6BBC2C}", + ["num"] = 2, + }, + [3] = { + ["CLSID"] = "{6D778860-7BB8-4ACB-9E95-BA772C6BBC2C}", + ["num"] = 3, + }, + [4] = { + ["CLSID"] = "{0DA03783-61E4-40B2-8FAE-6AEE0A5C5AAE}", + ["num"] = 4, + }, + [5] = { + ["CLSID"] = "{414DA830-B61A-4F9E-B71B-C2F6832E1D7A}", + ["num"] = 5, + }, + [6] = { + ["CLSID"] = "{0DA03783-61E4-40B2-8FAE-6AEE0A5C5AAE}", + ["num"] = 6, + }, + [7] = { + ["CLSID"] = "{6D778860-7BB8-4ACB-9E95-BA772C6BBC2C}", + ["num"] = 7, + }, + [8] = { + ["CLSID"] = "{6D778860-7BB8-4ACB-9E95-BA772C6BBC2C}", + ["num"] = 8, + }, + [9] = { + ["CLSID"] = "{FC23864E-3B80-48E3-9C03-4DA8B1D7497B}", + ["num"] = 9, + }, + }, + ["tasks"] = { + [1] = 11, + [2] = 10, + [3] = 18, + [4] = 19, + }, + }, + [3] = { + ["name"] = "STRIKE", + ["pylons"] = { + [1] = { + ["CLSID"] = "{FC23864E-3B80-48E3-9C03-4DA8B1D7497B}", + ["num"] = 1, + }, + [2] = { + ["CLSID"] = "{6D778860-7BB8-4ACB-9E95-BA772C6BBC2C}", + ["num"] = 2, + }, + [3] = { + ["CLSID"] = "{6D778860-7BB8-4ACB-9E95-BA772C6BBC2C}", + ["num"] = 3, + }, + [4] = { + ["CLSID"] = "{0DA03783-61E4-40B2-8FAE-6AEE0A5C5AAE}", + ["num"] = 4, + }, + [5] = { + ["CLSID"] = "{414DA830-B61A-4F9E-B71B-C2F6832E1D7A}", + ["num"] = 5, + }, + [6] = { + ["CLSID"] = "{0DA03783-61E4-40B2-8FAE-6AEE0A5C5AAE}", + ["num"] = 6, + }, + [7] = { + ["CLSID"] = "{6D778860-7BB8-4ACB-9E95-BA772C6BBC2C}", + ["num"] = 7, + }, + [8] = { + ["CLSID"] = "{6D778860-7BB8-4ACB-9E95-BA772C6BBC2C}", + ["num"] = 8, + }, + [9] = { + ["CLSID"] = "{FC23864E-3B80-48E3-9C03-4DA8B1D7497B}", + ["num"] = 9, + }, + }, + ["tasks"] = { + [1] = 11, + [2] = 10, + [3] = 18, + [4] = 19, + }, + }, + [4] = { + ["name"] = "SEAD", + ["pylons"] = { + [1] = { + ["CLSID"] = "{FC23864E-3B80-48E3-9C03-4DA8B1D7497B}", + ["num"] = 1, + }, + [2] = { + ["CLSID"] = "{6D778860-7BB8-4ACB-9E95-BA772C6BBC2C}", + ["num"] = 2, + }, + [3] = { + ["CLSID"] = "{6D778860-7BB8-4ACB-9E95-BA772C6BBC2C}", + ["num"] = 3, + }, + [4] = { + ["CLSID"] = "{0DA03783-61E4-40B2-8FAE-6AEE0A5C5AAE}", + ["num"] = 4, + }, + [5] = { + ["CLSID"] = "{414DA830-B61A-4F9E-B71B-C2F6832E1D7A}", + ["num"] = 5, + }, + [6] = { + ["CLSID"] = "{0DA03783-61E4-40B2-8FAE-6AEE0A5C5AAE}", + ["num"] = 6, + }, + [7] = { + ["CLSID"] = "{6D778860-7BB8-4ACB-9E95-BA772C6BBC2C}", + ["num"] = 7, + }, + [8] = { + ["CLSID"] = "{6D778860-7BB8-4ACB-9E95-BA772C6BBC2C}", + ["num"] = 8, + }, + [9] = { + ["CLSID"] = "{FC23864E-3B80-48E3-9C03-4DA8B1D7497B}", + ["num"] = 9, + }, + }, + ["tasks"] = { + [1] = 11, + [2] = 10, + [3] = 18, + [4] = 19, + }, + }, + [5] = { + ["name"] = "ANTISHIP", + ["pylons"] = { + [1] = { + ["CLSID"] = "{FC23864E-3B80-48E3-9C03-4DA8B1D7497B}", + ["num"] = 1, + }, + [2] = { + ["CLSID"] = "{6D778860-7BB8-4ACB-9E95-BA772C6BBC2C}", + ["num"] = 2, + }, + [3] = { + ["CLSID"] = "{6D778860-7BB8-4ACB-9E95-BA772C6BBC2C}", + ["num"] = 3, + }, + [4] = { + ["CLSID"] = "{0DA03783-61E4-40B2-8FAE-6AEE0A5C5AAE}", + ["num"] = 4, + }, + [5] = { + ["CLSID"] = "{414DA830-B61A-4F9E-B71B-C2F6832E1D7A}", + ["num"] = 5, + }, + [6] = { + ["CLSID"] = "{0DA03783-61E4-40B2-8FAE-6AEE0A5C5AAE}", + ["num"] = 6, + }, + [7] = { + ["CLSID"] = "{6D778860-7BB8-4ACB-9E95-BA772C6BBC2C}", + ["num"] = 7, + }, + [8] = { + ["CLSID"] = "{6D778860-7BB8-4ACB-9E95-BA772C6BBC2C}", + ["num"] = 8, + }, + [9] = { + ["CLSID"] = "{FC23864E-3B80-48E3-9C03-4DA8B1D7497B}", + ["num"] = 9, + }, + }, + ["tasks"] = { + [1] = 11, + [2] = 10, + [3] = 18, + [4] = 19, + }, + }, + }, + ["unitType"] = "Mirage 2000-5", +} +return unitPayloads diff --git a/resources/customized_payloads/SA342L.lua b/resources/customized_payloads/SA342L.lua new file mode 100644 index 00000000..88c626d7 --- /dev/null +++ b/resources/customized_payloads/SA342L.lua @@ -0,0 +1,109 @@ +local unitPayloads = { + ["name"] = "SA342L", + ["payloads"] = { + [1] = { + ["name"] = "CAS", + ["pylons"] = { + [1] = { + ["CLSID"] = "{LAU_SNEB68G}", + ["num"] = 2, + }, + [2] = { + ["CLSID"] = "{IR_Deflector}", + ["num"] = 6, + }, + [3] = { + ["CLSID"] = "{FAS}", + ["num"] = 5, + }, + }, + ["tasks"] = { + [1] = 31, + }, + }, + [2] = { + ["name"] = "CAP", + ["pylons"] = { + [1] = { + ["CLSID"] = "{LAU_SNEB68G}", + ["num"] = 2, + }, + [2] = { + ["CLSID"] = "{IR_Deflector}", + ["num"] = 6, + }, + [3] = { + ["CLSID"] = "{FAS}", + ["num"] = 5, + }, + }, + ["tasks"] = { + [1] = 31, + }, + }, + [3] = { + ["name"] = "SEAD", + ["pylons"] = { + [1] = { + ["CLSID"] = "{LAU_SNEB68G}", + ["num"] = 2, + }, + [2] = { + ["CLSID"] = "{IR_Deflector}", + ["num"] = 6, + }, + [3] = { + ["CLSID"] = "{FAS}", + ["num"] = 5, + }, + }, + ["tasks"] = { + [1] = 31, + }, + }, + [4] = { + ["name"] = "ANTISHIP", + ["pylons"] = { + [1] = { + ["CLSID"] = "{LAU_SNEB68G}", + ["num"] = 2, + }, + [2] = { + ["CLSID"] = "{IR_Deflector}", + ["num"] = 6, + }, + [3] = { + ["CLSID"] = "{FAS}", + ["num"] = 5, + }, + }, + ["tasks"] = { + [1] = 31, + }, + }, + [5] = { + ["name"] = "STRIKE", + ["pylons"] = { + [1] = { + ["CLSID"] = "{LAU_SNEB68G}", + ["num"] = 2, + }, + [2] = { + ["CLSID"] = "{IR_Deflector}", + ["num"] = 6, + }, + [3] = { + ["CLSID"] = "{FAS}", + ["num"] = 5, + }, + }, + ["tasks"] = { + [1] = 31, + }, + }, + }, + ["tasks"] = { + }, + ["unitType"] = "SA342L", +} +return unitPayloads diff --git a/resources/customized_payloads/SA342M.lua b/resources/customized_payloads/SA342M.lua new file mode 100644 index 00000000..c0d7be64 --- /dev/null +++ b/resources/customized_payloads/SA342M.lua @@ -0,0 +1,169 @@ +local unitPayloads = { + ["name"] = "SA342M", + ["payloads"] = { + [1] = { + ["name"] = "CAS", + ["pylons"] = { + [1] = { + ["CLSID"] = "{HOT3D}", + ["num"] = 1, + }, + [2] = { + ["CLSID"] = "{HOT3G}", + ["num"] = 2, + }, + [3] = { + ["CLSID"] = "{HOT3D}", + ["num"] = 3, + }, + [4] = { + ["CLSID"] = "{HOT3G}", + ["num"] = 4, + }, + [5] = { + ["CLSID"] = "{FAS}", + ["num"] = 5, + }, + [6] = { + ["CLSID"] = "{IR_Deflector}", + ["num"] = 6, + }, + }, + ["tasks"] = { + [1] = 31, + }, + }, + [2] = { + ["name"] = "CAP", + ["pylons"] = { + [1] = { + ["CLSID"] = "{HOT3D}", + ["num"] = 1, + }, + [2] = { + ["CLSID"] = "{HOT3G}", + ["num"] = 2, + }, + [3] = { + ["CLSID"] = "{HOT3D}", + ["num"] = 3, + }, + [4] = { + ["CLSID"] = "{HOT3G}", + ["num"] = 4, + }, + [5] = { + ["CLSID"] = "{FAS}", + ["num"] = 5, + }, + [6] = { + ["CLSID"] = "{IR_Deflector}", + ["num"] = 6, + }, + }, + ["tasks"] = { + [1] = 31, + }, + }, + [3] = { + ["name"] = "STRIKE", + ["pylons"] = { + [1] = { + ["CLSID"] = "{HOT3D}", + ["num"] = 1, + }, + [2] = { + ["CLSID"] = "{HOT3G}", + ["num"] = 2, + }, + [3] = { + ["CLSID"] = "{HOT3D}", + ["num"] = 3, + }, + [4] = { + ["CLSID"] = "{HOT3G}", + ["num"] = 4, + }, + [5] = { + ["CLSID"] = "{FAS}", + ["num"] = 5, + }, + [6] = { + ["CLSID"] = "{IR_Deflector}", + ["num"] = 6, + }, + }, + ["tasks"] = { + [1] = 31, + }, + }, + [4] = { + ["name"] = "SEAD", + ["pylons"] = { + [1] = { + ["CLSID"] = "{HOT3D}", + ["num"] = 1, + }, + [2] = { + ["CLSID"] = "{HOT3G}", + ["num"] = 2, + }, + [3] = { + ["CLSID"] = "{HOT3D}", + ["num"] = 3, + }, + [4] = { + ["CLSID"] = "{HOT3G}", + ["num"] = 4, + }, + [5] = { + ["CLSID"] = "{FAS}", + ["num"] = 5, + }, + [6] = { + ["CLSID"] = "{IR_Deflector}", + ["num"] = 6, + }, + }, + ["tasks"] = { + [1] = 31, + }, + }, + [5] = { + ["name"] = "ANTISHIP", + ["pylons"] = { + [1] = { + ["CLSID"] = "{HOT3D}", + ["num"] = 1, + }, + [2] = { + ["CLSID"] = "{HOT3G}", + ["num"] = 2, + }, + [3] = { + ["CLSID"] = "{HOT3D}", + ["num"] = 3, + }, + [4] = { + ["CLSID"] = "{HOT3G}", + ["num"] = 4, + }, + [5] = { + ["CLSID"] = "{FAS}", + ["num"] = 5, + }, + [6] = { + ["CLSID"] = "{IR_Deflector}", + ["num"] = 6, + }, + }, + ["tasks"] = { + [1] = 31, + }, + }, + }, + ["tasks"] = { + }, + ["unitType"] = "SA342M", +} +return unitPayloads diff --git a/resources/customized_payloads/SA342Mistral.lua b/resources/customized_payloads/SA342Mistral.lua new file mode 100644 index 00000000..0dea18b7 --- /dev/null +++ b/resources/customized_payloads/SA342Mistral.lua @@ -0,0 +1,169 @@ +local unitPayloads = { + ["name"] = "SA342Mistral", + ["payloads"] = { + [1] = { + ["name"] = "CAP", + ["pylons"] = { + [1] = { + ["CLSID"] = "{MBDA_MistralD}", + ["num"] = 1, + }, + [2] = { + ["CLSID"] = "{MBDA_MistralG}", + ["num"] = 2, + }, + [3] = { + ["CLSID"] = "{MBDA_MistralD}", + ["num"] = 3, + }, + [4] = { + ["CLSID"] = "{MBDA_MistralG}", + ["num"] = 4, + }, + [5] = { + ["CLSID"] = "{FAS}", + ["num"] = 5, + }, + [6] = { + ["CLSID"] = "{IR_Deflector}", + ["num"] = 6, + }, + }, + ["tasks"] = { + [1] = 18, + }, + }, + [2] = { + ["name"] = "CAS", + ["pylons"] = { + [1] = { + ["CLSID"] = "{MBDA_MistralD}", + ["num"] = 1, + }, + [2] = { + ["CLSID"] = "{MBDA_MistralG}", + ["num"] = 2, + }, + [3] = { + ["CLSID"] = "{MBDA_MistralD}", + ["num"] = 3, + }, + [4] = { + ["CLSID"] = "{MBDA_MistralG}", + ["num"] = 4, + }, + [5] = { + ["CLSID"] = "{FAS}", + ["num"] = 5, + }, + [6] = { + ["CLSID"] = "{IR_Deflector}", + ["num"] = 6, + }, + }, + ["tasks"] = { + [1] = 18, + }, + }, + [3] = { + ["name"] = "SEAD", + ["pylons"] = { + [1] = { + ["CLSID"] = "{MBDA_MistralD}", + ["num"] = 1, + }, + [2] = { + ["CLSID"] = "{MBDA_MistralG}", + ["num"] = 2, + }, + [3] = { + ["CLSID"] = "{MBDA_MistralD}", + ["num"] = 3, + }, + [4] = { + ["CLSID"] = "{MBDA_MistralG}", + ["num"] = 4, + }, + [5] = { + ["CLSID"] = "{FAS}", + ["num"] = 5, + }, + [6] = { + ["CLSID"] = "{IR_Deflector}", + ["num"] = 6, + }, + }, + ["tasks"] = { + [1] = 18, + }, + }, + [4] = { + ["name"] = "ANTISHIP", + ["pylons"] = { + [1] = { + ["CLSID"] = "{MBDA_MistralD}", + ["num"] = 1, + }, + [2] = { + ["CLSID"] = "{MBDA_MistralG}", + ["num"] = 2, + }, + [3] = { + ["CLSID"] = "{MBDA_MistralD}", + ["num"] = 3, + }, + [4] = { + ["CLSID"] = "{MBDA_MistralG}", + ["num"] = 4, + }, + [5] = { + ["CLSID"] = "{FAS}", + ["num"] = 5, + }, + [6] = { + ["CLSID"] = "{IR_Deflector}", + ["num"] = 6, + }, + }, + ["tasks"] = { + [1] = 18, + }, + }, + [5] = { + ["name"] = "STRIKE", + ["pylons"] = { + [1] = { + ["CLSID"] = "{MBDA_MistralD}", + ["num"] = 1, + }, + [2] = { + ["CLSID"] = "{MBDA_MistralG}", + ["num"] = 2, + }, + [3] = { + ["CLSID"] = "{MBDA_MistralD}", + ["num"] = 3, + }, + [4] = { + ["CLSID"] = "{MBDA_MistralG}", + ["num"] = 4, + }, + [5] = { + ["CLSID"] = "{FAS}", + ["num"] = 5, + }, + [6] = { + ["CLSID"] = "{IR_Deflector}", + ["num"] = 6, + }, + }, + ["tasks"] = { + [1] = 18, + }, + }, + }, + ["tasks"] = { + }, + ["unitType"] = "SA342Mistral", +} +return unitPayloads diff --git a/resources/customized_payloads/Su-17M4.lua b/resources/customized_payloads/Su-17M4.lua new file mode 100644 index 00000000..5e889f1c --- /dev/null +++ b/resources/customized_payloads/Su-17M4.lua @@ -0,0 +1,182 @@ +local unitPayloads = { + ["name"] = "Su-17M4", + ["payloads"] = { + [1] = { + ["name"] = "SEAD", + ["pylons"] = { + [1] = { + ["CLSID"] = "{E86C5AA5-6D49-4F00-AD2E-79A62D6DDE26}", + ["num"] = 8, + }, + [2] = { + ["CLSID"] = "{682A481F-0CB5-4693-A382-D00DD4A156D7}", + ["num"] = 7, + }, + [3] = { + ["CLSID"] = "{FE382A68-8620-4AC0-BDF5-709BFE3977D7}", + ["num"] = 6, + }, + [4] = { + ["CLSID"] = "{FE382A68-8620-4AC0-BDF5-709BFE3977D7}", + ["num"] = 3, + }, + [5] = { + ["CLSID"] = "{682A481F-0CB5-4693-A382-D00DD4A156D7}", + ["num"] = 2, + }, + [6] = { + ["CLSID"] = "{E86C5AA5-6D49-4F00-AD2E-79A62D6DDE26}", + ["num"] = 1, + }, + }, + ["tasks"] = { + [1] = 30, + }, + }, + [2] = { + ["name"] = "ANTISHIP", + ["pylons"] = { + [1] = { + ["CLSID"] = "{6DADF342-D4BA-4D8A-B081-BA928C4AF86D}", + ["num"] = 1, + }, + [2] = { + ["CLSID"] = "{682A481F-0CB5-4693-A382-D00DD4A156D7}", + ["num"] = 2, + }, + [3] = { + ["CLSID"] = "{FE382A68-8620-4AC0-BDF5-709BFE3977D7}", + ["num"] = 3, + }, + [4] = { + ["CLSID"] = "{A5BAEAB7-6FAF-4236-AF72-0FD900F493F9}", + ["num"] = 4, + }, + [5] = { + ["CLSID"] = "{A5BAEAB7-6FAF-4236-AF72-0FD900F493F9}", + ["num"] = 5, + }, + [6] = { + ["CLSID"] = "{FE382A68-8620-4AC0-BDF5-709BFE3977D7}", + ["num"] = 6, + }, + [7] = { + ["CLSID"] = "{682A481F-0CB5-4693-A382-D00DD4A156D7}", + ["num"] = 7, + }, + [8] = { + ["CLSID"] = "{6DADF342-D4BA-4D8A-B081-BA928C4AF86D}", + ["num"] = 8, + }, + }, + ["tasks"] = { + [1] = 29, + }, + }, + [3] = { + ["name"] = "STRIKE", + ["pylons"] = { + [1] = { + ["CLSID"] = "{37DCC01E-9E02-432F-B61D-10C166CA2798}", + ["num"] = 1, + }, + [2] = { + ["CLSID"] = "{682A481F-0CB5-4693-A382-D00DD4A156D7}", + ["num"] = 2, + }, + [3] = { + ["CLSID"] = "{37DCC01E-9E02-432F-B61D-10C166CA2798}", + ["num"] = 3, + }, + [4] = { + ["CLSID"] = "{37DCC01E-9E02-432F-B61D-10C166CA2798}", + ["num"] = 4, + }, + [5] = { + ["CLSID"] = "{37DCC01E-9E02-432F-B61D-10C166CA2798}", + ["num"] = 5, + }, + [6] = { + ["CLSID"] = "{37DCC01E-9E02-432F-B61D-10C166CA2798}", + ["num"] = 6, + }, + [7] = { + ["CLSID"] = "{682A481F-0CB5-4693-A382-D00DD4A156D7}", + ["num"] = 7, + }, + [8] = { + ["CLSID"] = "{37DCC01E-9E02-432F-B61D-10C166CA2798}", + ["num"] = 8, + }, + }, + ["tasks"] = { + [1] = 32, + }, + }, + [4] = { + ["name"] = "CAP", + ["pylons"] = { + [1] = { + ["CLSID"] = "{682A481F-0CB5-4693-A382-D00DD4A156D7}", + ["num"] = 7, + }, + [2] = { + ["CLSID"] = "{682A481F-0CB5-4693-A382-D00DD4A156D7}", + ["num"] = 2, + }, + [3] = { + ["CLSID"] = "{A5BAEAB7-6FAF-4236-AF72-0FD900F493F9}", + ["num"] = 5, + }, + [4] = { + ["CLSID"] = "{A5BAEAB7-6FAF-4236-AF72-0FD900F493F9}", + ["num"] = 4, + }, + }, + ["tasks"] = { + }, + }, + [5] = { + ["name"] = "CAS", + ["pylons"] = { + [1] = { + ["CLSID"] = "{292960BB-6518-41AC-BADA-210D65D5073C}", + ["num"] = 1, + }, + [2] = { + ["CLSID"] = "{682A481F-0CB5-4693-A382-D00DD4A156D7}", + ["num"] = 2, + }, + [3] = { + ["CLSID"] = "{292960BB-6518-41AC-BADA-210D65D5073C}", + ["num"] = 3, + }, + [4] = { + ["CLSID"] = "{A5BAEAB7-6FAF-4236-AF72-0FD900F493F9}", + ["num"] = 4, + }, + [5] = { + ["CLSID"] = "{A5BAEAB7-6FAF-4236-AF72-0FD900F493F9}", + ["num"] = 5, + }, + [6] = { + ["CLSID"] = "{292960BB-6518-41AC-BADA-210D65D5073C}", + ["num"] = 6, + }, + [7] = { + ["CLSID"] = "{682A481F-0CB5-4693-A382-D00DD4A156D7}", + ["num"] = 7, + }, + [8] = { + ["CLSID"] = "{292960BB-6518-41AC-BADA-210D65D5073C}", + ["num"] = 8, + }, + }, + ["tasks"] = { + [1] = 31, + }, + }, + }, + ["unitType"] = "Su-17M4", +} +return unitPayloads diff --git a/resources/customized_payloads/Su-24M.lua b/resources/customized_payloads/Su-24M.lua new file mode 100644 index 00000000..a3f81aa9 --- /dev/null +++ b/resources/customized_payloads/Su-24M.lua @@ -0,0 +1,160 @@ +local unitPayloads = { + ["name"] = "Su-24M", + ["payloads"] = { + [1] = { + ["name"] = "ANTISHIP", + ["pylons"] = { + [1] = { + ["CLSID"] = "{6DADF342-D4BA-4D8A-B081-BA928C4AF86D}", + ["num"] = 1, + }, + [2] = { + ["CLSID"] = "{D8F2C90B-887B-4B9E-9FE2-996BC9E9AF03}", + ["num"] = 2, + }, + [3] = { + ["CLSID"] = "{0519A264-0AB6-11d6-9193-00A0249B6F00}", + ["num"] = 5, + }, + [4] = { + ["CLSID"] = "{D8F2C90B-887B-4B9E-9FE2-996BC9E9AF03}", + ["num"] = 7, + }, + [5] = { + ["CLSID"] = "{6DADF342-D4BA-4D8A-B081-BA928C4AF86D}", + ["num"] = 8, + }, + }, + ["tasks"] = { + [1] = 29, + [2] = 30, + }, + }, + [2] = { + ["name"] = "CAS", + ["pylons"] = { + [1] = { + ["CLSID"] = "{292960BB-6518-41AC-BADA-210D65D5073C}", + ["num"] = 1, + }, + [2] = { + ["CLSID"] = "{292960BB-6518-41AC-BADA-210D65D5073C}", + ["num"] = 2, + }, + [3] = { + ["CLSID"] = "{292960BB-6518-41AC-BADA-210D65D5073C}", + ["num"] = 7, + }, + [4] = { + ["CLSID"] = "{292960BB-6518-41AC-BADA-210D65D5073C}", + ["num"] = 8, + }, + [5] = { + ["CLSID"] = "{3858707D-F5D5-4bbb-BDD8-ABB0530EBC7C}", + ["num"] = 6, + }, + [6] = { + ["CLSID"] = "{3858707D-F5D5-4bbb-BDD8-ABB0530EBC7C}", + ["num"] = 3, + }, + [7] = { + ["CLSID"] = "{3C612111-C7AD-476E-8A8E-2485812F4E5C}", + ["num"] = 4, + }, + [8] = { + ["CLSID"] = "{3C612111-C7AD-476E-8A8E-2485812F4E5C}", + ["num"] = 5, + }, + }, + ["tasks"] = { + [1] = 31, + }, + }, + [3] = { + ["name"] = "STRIKE", + ["pylons"] = { + [1] = { + ["CLSID"] = "{4203753F-8198-4E85-9924-6F8FF679F9FF}", + ["num"] = 1, + }, + [2] = { + ["CLSID"] = "{4203753F-8198-4E85-9924-6F8FF679F9FF}", + ["num"] = 2, + }, + [3] = { + ["CLSID"] = "{4203753F-8198-4E85-9924-6F8FF679F9FF}", + ["num"] = 3, + }, + [4] = { + ["CLSID"] = "{4203753F-8198-4E85-9924-6F8FF679F9FF}", + ["num"] = 4, + }, + [5] = { + ["CLSID"] = "{4203753F-8198-4E85-9924-6F8FF679F9FF}", + ["num"] = 5, + }, + [6] = { + ["CLSID"] = "{4203753F-8198-4E85-9924-6F8FF679F9FF}", + ["num"] = 6, + }, + [7] = { + ["CLSID"] = "{4203753F-8198-4E85-9924-6F8FF679F9FF}", + ["num"] = 7, + }, + [8] = { + ["CLSID"] = "{4203753F-8198-4E85-9924-6F8FF679F9FF}", + ["num"] = 8, + }, + }, + ["tasks"] = { + [1] = 31, + }, + }, + [4] = { + ["name"] = "SEAD", + ["pylons"] = { + [1] = { + ["CLSID"] = "{6DADF342-D4BA-4D8A-B081-BA928C4AF86D}", + ["num"] = 1, + }, + [2] = { + ["CLSID"] = "{FE382A68-8620-4AC0-BDF5-709BFE3977D7}", + ["num"] = 2, + }, + [3] = { + ["CLSID"] = "{0519A264-0AB6-11d6-9193-00A0249B6F00}", + ["num"] = 5, + }, + [4] = { + ["CLSID"] = "{FE382A68-8620-4AC0-BDF5-709BFE3977D7}", + ["num"] = 7, + }, + [5] = { + ["CLSID"] = "{6DADF342-D4BA-4D8A-B081-BA928C4AF86D}", + ["num"] = 8, + }, + }, + ["tasks"] = { + [1] = 29, + }, + }, + [5] = { + ["name"] = "CAP", + ["pylons"] = { + [1] = { + ["CLSID"] = "{B0DBC591-0F52-4F7D-AD7B-51E67725FB81}", + ["num"] = 1, + }, + [2] = { + ["CLSID"] = "{275A2855-4A79-4B2D-B082-91EA2ADF4691}", + ["num"] = 8, + }, + }, + ["tasks"] = { + [1] = 32, + }, + }, + }, + ["unitType"] = "Su-24M", +} +return unitPayloads diff --git a/resources/customized_payloads/Su-25.lua b/resources/customized_payloads/Su-25.lua new file mode 100644 index 00000000..c0dad428 --- /dev/null +++ b/resources/customized_payloads/Su-25.lua @@ -0,0 +1,222 @@ +local unitPayloads = { + ["name"] = "Su-25", + ["payloads"] = { + [1] = { + ["name"] = "CAP", + ["pylons"] = { + [1] = { + ["CLSID"] = "{682A481F-0CB5-4693-A382-D00DD4A156D7}", + ["num"] = 10, + }, + [2] = { + ["CLSID"] = "{682A481F-0CB5-4693-A382-D00DD4A156D7}", + ["num"] = 1, + }, + [3] = { + ["CLSID"] = "{E8D4652F-FD48-45B7-BA5B-2AE05BB5A9CF}", + ["num"] = 6, + }, + [4] = { + ["CLSID"] = "{E8D4652F-FD48-45B7-BA5B-2AE05BB5A9CF}", + ["num"] = 5, + }, + }, + ["tasks"] = { + }, + }, + [2] = { + ["name"] = "CAS", + ["pylons"] = { + [1] = { + ["CLSID"] = "{682A481F-0CB5-4693-A382-D00DD4A156D7}", + ["num"] = 1, + }, + [2] = { + ["CLSID"] = "{FC56DF80-9B09-44C5-8976-DCFAFF219062}", + ["num"] = 2, + }, + [3] = { + ["CLSID"] = "{3C612111-C7AD-476E-8A8E-2485812F4E5C}", + ["num"] = 3, + }, + [4] = { + ["CLSID"] = "{3858707D-F5D5-4bbb-BDD8-ABB0530EBC7C}", + ["num"] = 4, + }, + [5] = { + ["CLSID"] = "{E8D4652F-FD48-45B7-BA5B-2AE05BB5A9CF}", + ["num"] = 5, + }, + [6] = { + ["CLSID"] = "{E8D4652F-FD48-45B7-BA5B-2AE05BB5A9CF}", + ["num"] = 6, + }, + [7] = { + ["CLSID"] = "{3858707D-F5D5-4bbb-BDD8-ABB0530EBC7C}", + ["num"] = 7, + }, + [8] = { + ["CLSID"] = "{3C612111-C7AD-476E-8A8E-2485812F4E5C}", + ["num"] = 8, + }, + [9] = { + ["CLSID"] = "{FC56DF80-9B09-44C5-8976-DCFAFF219062}", + ["num"] = 9, + }, + [10] = { + ["CLSID"] = "{682A481F-0CB5-4693-A382-D00DD4A156D7}", + ["num"] = 10, + }, + }, + ["tasks"] = { + [1] = 32, + }, + }, + [3] = { + ["name"] = "STRIKE", + ["pylons"] = { + [1] = { + ["CLSID"] = "{682A481F-0CB5-4693-A382-D00DD4A156D7}", + ["num"] = 1, + }, + [2] = { + ["CLSID"] = "{0180F983-C14A-11d8-9897-000476191836}", + ["num"] = 2, + }, + [3] = { + ["CLSID"] = "{37DCC01E-9E02-432F-B61D-10C166CA2798}", + ["num"] = 3, + }, + [4] = { + ["CLSID"] = "{37DCC01E-9E02-432F-B61D-10C166CA2798}", + ["num"] = 4, + }, + [5] = { + ["CLSID"] = "{37DCC01E-9E02-432F-B61D-10C166CA2798}", + ["num"] = 5, + }, + [6] = { + ["CLSID"] = "{37DCC01E-9E02-432F-B61D-10C166CA2798}", + ["num"] = 6, + }, + [7] = { + ["CLSID"] = "{37DCC01E-9E02-432F-B61D-10C166CA2798}", + ["num"] = 7, + }, + [8] = { + ["CLSID"] = "{37DCC01E-9E02-432F-B61D-10C166CA2798}", + ["num"] = 8, + }, + [9] = { + ["CLSID"] = "{0180F983-C14A-11d8-9897-000476191836}", + ["num"] = 9, + }, + [10] = { + ["CLSID"] = "{682A481F-0CB5-4693-A382-D00DD4A156D7}", + ["num"] = 10, + }, + }, + ["tasks"] = { + [1] = 32, + }, + }, + [4] = { + ["name"] = "ANTISHIP", + ["pylons"] = { + [1] = { + ["CLSID"] = "{682A481F-0CB5-4693-A382-D00DD4A156D7}", + ["num"] = 1, + }, + [2] = { + ["CLSID"] = "{0180F983-C14A-11d8-9897-000476191836}", + ["num"] = 2, + }, + [3] = { + ["CLSID"] = "{79D73885-0801-45a9-917F-C90FE1CE3DFC}", + ["num"] = 3, + }, + [4] = { + ["CLSID"] = "{79D73885-0801-45a9-917F-C90FE1CE3DFC}", + ["num"] = 4, + }, + [5] = { + ["CLSID"] = "{D4A8D9B9-5C45-42e7-BBD2-0E54F8308432}", + ["num"] = 5, + }, + [6] = { + ["CLSID"] = "{D4A8D9B9-5C45-42e7-BBD2-0E54F8308432}", + ["num"] = 6, + }, + [7] = { + ["CLSID"] = "{79D73885-0801-45a9-917F-C90FE1CE3DFC}", + ["num"] = 7, + }, + [8] = { + ["CLSID"] = "{79D73885-0801-45a9-917F-C90FE1CE3DFC}", + ["num"] = 8, + }, + [9] = { + ["CLSID"] = "{0180F983-C14A-11d8-9897-000476191836}", + ["num"] = 9, + }, + [10] = { + ["CLSID"] = "{682A481F-0CB5-4693-A382-D00DD4A156D7}", + ["num"] = 10, + }, + }, + ["tasks"] = { + [1] = 32, + }, + }, + [5] = { + ["name"] = "SEAD", + ["pylons"] = { + [1] = { + ["CLSID"] = "{682A481F-0CB5-4693-A382-D00DD4A156D7}", + ["num"] = 1, + }, + [2] = { + ["CLSID"] = "{0180F983-C14A-11d8-9897-000476191836}", + ["num"] = 2, + }, + [3] = { + ["CLSID"] = "{79D73885-0801-45a9-917F-C90FE1CE3DFC}", + ["num"] = 3, + }, + [4] = { + ["CLSID"] = "{79D73885-0801-45a9-917F-C90FE1CE3DFC}", + ["num"] = 4, + }, + [5] = { + ["CLSID"] = "{D4A8D9B9-5C45-42e7-BBD2-0E54F8308432}", + ["num"] = 5, + }, + [6] = { + ["CLSID"] = "{D4A8D9B9-5C45-42e7-BBD2-0E54F8308432}", + ["num"] = 6, + }, + [7] = { + ["CLSID"] = "{79D73885-0801-45a9-917F-C90FE1CE3DFC}", + ["num"] = 7, + }, + [8] = { + ["CLSID"] = "{79D73885-0801-45a9-917F-C90FE1CE3DFC}", + ["num"] = 8, + }, + [9] = { + ["CLSID"] = "{0180F983-C14A-11d8-9897-000476191836}", + ["num"] = 9, + }, + [10] = { + ["CLSID"] = "{682A481F-0CB5-4693-A382-D00DD4A156D7}", + ["num"] = 10, + }, + }, + ["tasks"] = { + [1] = 32, + }, + }, + }, + ["unitType"] = "Su-25", +} +return unitPayloads diff --git a/resources/customized_payloads/Su-25T.lua b/resources/customized_payloads/Su-25T.lua new file mode 100644 index 00000000..f4427e0b --- /dev/null +++ b/resources/customized_payloads/Su-25T.lua @@ -0,0 +1,241 @@ +local unitPayloads = { + ["name"] = "Su-25T", + ["payloads"] = { + [1] = { + ["name"] = "CAP", + ["pylons"] = { + [1] = { + ["CLSID"] = "{682A481F-0CB5-4693-A382-D00DD4A156D7}", + ["num"] = 11, + }, + [2] = { + ["CLSID"] = "{682A481F-0CB5-4693-A382-D00DD4A156D7}", + ["num"] = 1, + }, + [3] = { + ["CLSID"] = "{CBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 2, + }, + [4] = { + ["CLSID"] = "{CBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 10, + }, + [5] = { + ["CLSID"] = "{E8D4652F-FD48-45B7-BA5B-2AE05BB5A9CF}", + ["num"] = 7, + }, + [6] = { + ["CLSID"] = "{E8D4652F-FD48-45B7-BA5B-2AE05BB5A9CF}", + ["num"] = 5, + }, + }, + ["tasks"] = { + }, + }, + [2] = { + ["name"] = "CAS", + ["pylons"] = { + [1] = { + ["CLSID"] = "{44EE8698-89F9-48EE-AF36-5FD31896A82C}", + ["num"] = 11, + }, + [2] = { + ["CLSID"] = "{44EE8698-89F9-48EE-AF36-5FD31896A82D}", + ["num"] = 1, + }, + [3] = { + ["CLSID"] = "{0180F983-C14A-11d8-9897-000476191836}", + ["num"] = 2, + }, + [4] = { + ["CLSID"] = "{0180F983-C14A-11d8-9897-000476191836}", + ["num"] = 10, + }, + [5] = { + ["CLSID"] = "{F72F47E5-C83A-4B85-96ED-D3E46671EE9A}", + ["num"] = 7, + }, + [6] = { + ["CLSID"] = "{F72F47E5-C83A-4B85-96ED-D3E46671EE9A}", + ["num"] = 5, + }, + [7] = { + ["CLSID"] = "{F789E86A-EE2E-4E6B-B81E-D5E5F903B6ED}", + ["num"] = 8, + }, + [8] = { + ["CLSID"] = "{F789E86A-EE2E-4E6B-B81E-D5E5F903B6ED}", + ["num"] = 4, + }, + [9] = { + ["CLSID"] = "{B1EF6B0E-3D91-4047-A7A5-A99E7D8B4A8B}", + ["num"] = 6, + }, + [10] = { + ["CLSID"] = "{3858707D-F5D5-4bbb-BDD8-ABB0530EBC7C}", + ["num"] = 9, + }, + [11] = { + ["CLSID"] = "{3858707D-F5D5-4bbb-BDD8-ABB0530EBC7C}", + ["num"] = 3, + }, + }, + ["tasks"] = { + }, + }, + [3] = { + ["name"] = "STRIKE", + ["pylons"] = { + [1] = { + ["CLSID"] = "{44EE8698-89F9-48EE-AF36-5FD31896A82D}", + ["num"] = 1, + }, + [2] = { + ["CLSID"] = "{4203753F-8198-4E85-9924-6F8FF679F9FF}", + ["num"] = 2, + }, + [3] = { + ["CLSID"] = "{4203753F-8198-4E85-9924-6F8FF679F9FF}", + ["num"] = 3, + }, + [4] = { + ["CLSID"] = "{4203753F-8198-4E85-9924-6F8FF679F9FF}", + ["num"] = 4, + }, + [5] = { + ["CLSID"] = "{4203753F-8198-4E85-9924-6F8FF679F9FF}", + ["num"] = 5, + }, + [6] = { + ["CLSID"] = "{4203753F-8198-4E85-9924-6F8FF679F9FF}", + ["num"] = 7, + }, + [7] = { + ["CLSID"] = "{4203753F-8198-4E85-9924-6F8FF679F9FF}", + ["num"] = 8, + }, + [8] = { + ["CLSID"] = "{4203753F-8198-4E85-9924-6F8FF679F9FF}", + ["num"] = 9, + }, + [9] = { + ["CLSID"] = "{4203753F-8198-4E85-9924-6F8FF679F9FF}", + ["num"] = 10, + }, + [10] = { + ["CLSID"] = "{44EE8698-89F9-48EE-AF36-5FD31896A82C}", + ["num"] = 11, + }, + }, + ["tasks"] = { + [1] = 31, + }, + }, + [4] = { + ["name"] = "SEAD", + ["pylons"] = { + [1] = { + ["CLSID"] = "{44EE8698-89F9-48EE-AF36-5FD31896A82D}", + ["num"] = 1, + }, + [2] = { + ["CLSID"] = "{CBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 2, + }, + [3] = { + ["CLSID"] = "{752AF1D2-EBCC-4bd7-A1E7-2357F5601C70}", + ["num"] = 3, + }, + [4] = { + ["CLSID"] = "{752AF1D2-EBCC-4bd7-A1E7-2357F5601C70}", + ["num"] = 4, + }, + [5] = { + ["CLSID"] = "{B5CA9846-776E-4230-B4FD-8BCC9BFB1676}", + ["num"] = 5, + }, + [6] = { + ["CLSID"] = "{0519A264-0AB6-11d6-9193-00A0249B6F00}", + ["num"] = 6, + }, + [7] = { + ["CLSID"] = "{B5CA9846-776E-4230-B4FD-8BCC9BFB1676}", + ["num"] = 7, + }, + [8] = { + ["CLSID"] = "{752AF1D2-EBCC-4bd7-A1E7-2357F5601C70}", + ["num"] = 8, + }, + [9] = { + ["CLSID"] = "{752AF1D2-EBCC-4bd7-A1E7-2357F5601C70}", + ["num"] = 9, + }, + [10] = { + ["CLSID"] = "{CBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 10, + }, + [11] = { + ["CLSID"] = "{44EE8698-89F9-48EE-AF36-5FD31896A82C}", + ["num"] = 11, + }, + }, + ["tasks"] = { + [1] = 29, + }, + }, + [5] = { + ["name"] = "ANTISHIP", + ["pylons"] = { + [1] = { + ["CLSID"] = "{44EE8698-89F9-48EE-AF36-5FD31896A82D}", + ["num"] = 1, + }, + [2] = { + ["CLSID"] = "{CBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 2, + }, + [3] = { + ["CLSID"] = "{752AF1D2-EBCC-4bd7-A1E7-2357F5601C70}", + ["num"] = 3, + }, + [4] = { + ["CLSID"] = "{752AF1D2-EBCC-4bd7-A1E7-2357F5601C70}", + ["num"] = 4, + }, + [5] = { + ["CLSID"] = "{601C99F7-9AF3-4ed7-A565-F8B8EC0D7AAC}", + ["num"] = 5, + }, + [6] = { + ["CLSID"] = "{0519A264-0AB6-11d6-9193-00A0249B6F00}", + ["num"] = 6, + }, + [7] = { + ["CLSID"] = "{601C99F7-9AF3-4ed7-A565-F8B8EC0D7AAC}", + ["num"] = 7, + }, + [8] = { + ["CLSID"] = "{752AF1D2-EBCC-4bd7-A1E7-2357F5601C70}", + ["num"] = 8, + }, + [9] = { + ["CLSID"] = "{752AF1D2-EBCC-4bd7-A1E7-2357F5601C70}", + ["num"] = 9, + }, + [10] = { + ["CLSID"] = "{CBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 10, + }, + [11] = { + ["CLSID"] = "{44EE8698-89F9-48EE-AF36-5FD31896A82C}", + ["num"] = 11, + }, + }, + ["tasks"] = { + [1] = 29, + }, + }, + }, + ["unitType"] = "Su-25T", +} +return unitPayloads diff --git a/resources/customized_payloads/Su-27.lua b/resources/customized_payloads/Su-27.lua new file mode 100644 index 00000000..15090ed5 --- /dev/null +++ b/resources/customized_payloads/Su-27.lua @@ -0,0 +1,250 @@ +local unitPayloads = { + ["name"] = "Su-27", + ["payloads"] = { + [1] = { + ["name"] = "CAP", + ["pylons"] = { + [1] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 1, + }, + [2] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 2, + }, + [3] = { + ["CLSID"] = "{B79C379A-9E87-4E50-A1EE-7F7E29C2E87A}", + ["num"] = 3, + }, + [4] = { + ["CLSID"] = "{E8069896-8435-4B90-95C0-01A03AE6E400}", + ["num"] = 4, + }, + [5] = { + ["CLSID"] = "{E8069896-8435-4B90-95C0-01A03AE6E400}", + ["num"] = 5, + }, + [6] = { + ["CLSID"] = "{E8069896-8435-4B90-95C0-01A03AE6E400}", + ["num"] = 6, + }, + [7] = { + ["CLSID"] = "{E8069896-8435-4B90-95C0-01A03AE6E400}", + ["num"] = 7, + }, + [8] = { + ["CLSID"] = "{B79C379A-9E87-4E50-A1EE-7F7E29C2E87A}", + ["num"] = 8, + }, + [9] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 9, + }, + [10] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 10, + }, + }, + ["tasks"] = { + [1] = 18, + [2] = 19, + [3] = 10, + [4] = 11, + }, + }, + [2] = { + ["name"] = "STRIKE", + ["pylons"] = { + [1] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 10, + }, + [2] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 9, + }, + [3] = { + ["CLSID"] = "{37DCC01E-9E02-432F-B61D-10C166CA2798}", + ["num"] = 8, + }, + [4] = { + ["CLSID"] = "{37DCC01E-9E02-432F-B61D-10C166CA2798}", + ["num"] = 7, + }, + [5] = { + ["CLSID"] = "{37DCC01E-9E02-432F-B61D-10C166CA2798}", + ["num"] = 6, + }, + [6] = { + ["CLSID"] = "{37DCC01E-9E02-432F-B61D-10C166CA2798}", + ["num"] = 5, + }, + [7] = { + ["CLSID"] = "{37DCC01E-9E02-432F-B61D-10C166CA2798}", + ["num"] = 4, + }, + [8] = { + ["CLSID"] = "{37DCC01E-9E02-432F-B61D-10C166CA2798}", + ["num"] = 3, + }, + [9] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 2, + }, + [10] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 1, + }, + }, + ["tasks"] = { + [1] = 30, + }, + }, + [3] = { + ["name"] = "ANTISHIP", + ["pylons"] = { + [1] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 10, + }, + [2] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 9, + }, + [3] = { + ["CLSID"] = "{TWIN_S25}", + ["num"] = 8, + }, + [4] = { + ["CLSID"] = "{37DCC01E-9E02-432F-B61D-10C166CA2798}", + ["num"] = 7, + }, + [5] = { + ["CLSID"] = "{37DCC01E-9E02-432F-B61D-10C166CA2798}", + ["num"] = 6, + }, + [6] = { + ["CLSID"] = "{37DCC01E-9E02-432F-B61D-10C166CA2798}", + ["num"] = 5, + }, + [7] = { + ["CLSID"] = "{37DCC01E-9E02-432F-B61D-10C166CA2798}", + ["num"] = 4, + }, + [8] = { + ["CLSID"] = "{TWIN_S25}", + ["num"] = 3, + }, + [9] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 2, + }, + [10] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 1, + }, + }, + ["tasks"] = { + [1] = 30, + }, + }, + [4] = { + ["name"] = "SEAD", + ["pylons"] = { + [1] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 10, + }, + [2] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 9, + }, + [3] = { + ["CLSID"] = "{A0648264-4BC0-4EE8-A543-D119F6BA4257}", + ["num"] = 8, + }, + [4] = { + ["CLSID"] = "{37DCC01E-9E02-432F-B61D-10C166CA2798}", + ["num"] = 7, + }, + [5] = { + ["CLSID"] = "{37DCC01E-9E02-432F-B61D-10C166CA2798}", + ["num"] = 6, + }, + [6] = { + ["CLSID"] = "{37DCC01E-9E02-432F-B61D-10C166CA2798}", + ["num"] = 5, + }, + [7] = { + ["CLSID"] = "{37DCC01E-9E02-432F-B61D-10C166CA2798}", + ["num"] = 4, + }, + [8] = { + ["CLSID"] = "{A0648264-4BC0-4EE8-A543-D119F6BA4257}", + ["num"] = 3, + }, + [9] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 2, + }, + [10] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 1, + }, + }, + ["tasks"] = { + [1] = 30, + }, + }, + [5] = { + ["name"] = "CAS", + ["pylons"] = { + [1] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 10, + }, + [2] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 9, + }, + [3] = { + ["CLSID"] = "{TWIN_B13L_5OF}", + ["num"] = 8, + }, + [4] = { + ["CLSID"] = "{F99BEC1A-869D-4AC7-9730-FBA0E3B1F5FC}", + ["num"] = 7, + }, + [5] = { + ["CLSID"] = "{37DCC01E-9E02-432F-B61D-10C166CA2798}", + ["num"] = 6, + }, + [6] = { + ["CLSID"] = "{37DCC01E-9E02-432F-B61D-10C166CA2798}", + ["num"] = 5, + }, + [7] = { + ["CLSID"] = "{F99BEC1A-869D-4AC7-9730-FBA0E3B1F5FC}", + ["num"] = 4, + }, + [8] = { + ["CLSID"] = "{TWIN_B13L_5OF}", + ["num"] = 3, + }, + [9] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 2, + }, + [10] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 1, + }, + }, + ["tasks"] = { + [1] = 30, + }, + }, + }, + ["unitType"] = "Su-27", +} +return unitPayloads diff --git a/resources/customized_payloads/Su-30.lua b/resources/customized_payloads/Su-30.lua new file mode 100644 index 00000000..4c3c91c0 --- /dev/null +++ b/resources/customized_payloads/Su-30.lua @@ -0,0 +1,250 @@ +local unitPayloads = { + ["name"] = "Su-30", + ["payloads"] = { + [1] = { + ["name"] = "CAP", + ["pylons"] = { + [1] = { + ["CLSID"] = "{44EE8698-89F9-48EE-AF36-5FD31896A82F}", + ["num"] = 1, + }, + [2] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 2, + }, + [3] = { + ["CLSID"] = "{B4C01D60-A8A3-4237-BD72-CA7655BC0FE9}", + ["num"] = 3, + }, + [4] = { + ["CLSID"] = "{B4C01D60-A8A3-4237-BD72-CA7655BC0FE9}", + ["num"] = 4, + }, + [5] = { + ["CLSID"] = "{B4C01D60-A8A3-4237-BD72-CA7655BC0FE9}", + ["num"] = 5, + }, + [6] = { + ["CLSID"] = "{B4C01D60-A8A3-4237-BD72-CA7655BC0FE9}", + ["num"] = 6, + }, + [7] = { + ["CLSID"] = "{B4C01D60-A8A3-4237-BD72-CA7655BC0FE9}", + ["num"] = 7, + }, + [8] = { + ["CLSID"] = "{B4C01D60-A8A3-4237-BD72-CA7655BC0FE9}", + ["num"] = 8, + }, + [9] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 9, + }, + [10] = { + ["CLSID"] = "{44EE8698-89F9-48EE-AF36-5FD31896A82A}", + ["num"] = 10, + }, + }, + ["tasks"] = { + [1] = 18, + [2] = 11, + [3] = 10, + [4] = 19, + }, + }, + [2] = { + ["name"] = "SEAD", + ["pylons"] = { + [1] = { + ["CLSID"] = "{44EE8698-89F9-48EE-AF36-5FD31896A82F}", + ["num"] = 1, + }, + [2] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 2, + }, + [3] = { + ["CLSID"] = "{D8F2C90B-887B-4B9E-9FE2-996BC9E9AF03}", + ["num"] = 3, + }, + [4] = { + ["CLSID"] = "{D8F2C90B-887B-4B9E-9FE2-996BC9E9AF03}", + ["num"] = 4, + }, + [5] = { + ["CLSID"] = "{B4C01D60-A8A3-4237-BD72-CA7655BC0FE9}", + ["num"] = 5, + }, + [6] = { + ["CLSID"] = "{B4C01D60-A8A3-4237-BD72-CA7655BC0FE9}", + ["num"] = 6, + }, + [7] = { + ["CLSID"] = "{D8F2C90B-887B-4B9E-9FE2-996BC9E9AF03}", + ["num"] = 7, + }, + [8] = { + ["CLSID"] = "{D8F2C90B-887B-4B9E-9FE2-996BC9E9AF03}", + ["num"] = 8, + }, + [9] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 9, + }, + [10] = { + ["CLSID"] = "{44EE8698-89F9-48EE-AF36-5FD31896A82A}", + ["num"] = 10, + }, + }, + ["tasks"] = { + [1] = 29, + }, + }, + [3] = { + ["name"] = "ANTISHIP", + ["pylons"] = { + [1] = { + ["CLSID"] = "{44EE8698-89F9-48EE-AF36-5FD31896A82F}", + ["num"] = 1, + }, + [2] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 2, + }, + [3] = { + ["CLSID"] = "{B4C01D60-A8A3-4237-BD72-CA7655BC0FE9}", + ["num"] = 3, + }, + [4] = { + ["CLSID"] = "{D8F2C90B-887B-4B9E-9FE2-996BC9E9AF03}", + ["num"] = 4, + }, + [5] = { + ["CLSID"] = "{2234F529-1D57-4496-8BB0-0150F9BDBBD2}", + ["num"] = 5, + }, + [6] = { + ["CLSID"] = "{2234F529-1D57-4496-8BB0-0150F9BDBBD2}", + ["num"] = 6, + }, + [7] = { + ["CLSID"] = "{D8F2C90B-887B-4B9E-9FE2-996BC9E9AF03}", + ["num"] = 7, + }, + [8] = { + ["CLSID"] = "{B4C01D60-A8A3-4237-BD72-CA7655BC0FE9}", + ["num"] = 8, + }, + [9] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 9, + }, + [10] = { + ["CLSID"] = "{44EE8698-89F9-48EE-AF36-5FD31896A82A}", + ["num"] = 10, + }, + }, + ["tasks"] = { + [1] = 30, + }, + }, + [4] = { + ["name"] = "CAS", + ["pylons"] = { + [1] = { + ["CLSID"] = "{44EE8698-89F9-48EE-AF36-5FD31896A82F}", + ["num"] = 1, + }, + [2] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 2, + }, + [3] = { + ["CLSID"] = "{A0648264-4BC0-4EE8-A543-D119F6BA4257}", + ["num"] = 3, + }, + [4] = { + ["CLSID"] = "{D5435F26-F120-4FA3-9867-34ACE562EF1B}", + ["num"] = 4, + }, + [5] = { + ["CLSID"] = "{D5435F26-F120-4FA3-9867-34ACE562EF1B}", + ["num"] = 5, + }, + [6] = { + ["CLSID"] = "{D5435F26-F120-4FA3-9867-34ACE562EF1B}", + ["num"] = 6, + }, + [7] = { + ["CLSID"] = "{D5435F26-F120-4FA3-9867-34ACE562EF1B}", + ["num"] = 7, + }, + [8] = { + ["CLSID"] = "{A0648264-4BC0-4EE8-A543-D119F6BA4257}", + ["num"] = 8, + }, + [9] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 9, + }, + [10] = { + ["CLSID"] = "{44EE8698-89F9-48EE-AF36-5FD31896A82A}", + ["num"] = 10, + }, + }, + ["tasks"] = { + [1] = 31, + }, + }, + [5] = { + ["name"] = "STRIKE", + ["pylons"] = { + [1] = { + ["CLSID"] = "{44EE8698-89F9-48EE-AF36-5FD31896A82F}", + ["num"] = 1, + }, + [2] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 2, + }, + [3] = { + ["CLSID"] = "{37DCC01E-9E02-432F-B61D-10C166CA2798}", + ["num"] = 3, + }, + [4] = { + ["CLSID"] = "{37DCC01E-9E02-432F-B61D-10C166CA2798}", + ["num"] = 4, + }, + [5] = { + ["CLSID"] = "{37DCC01E-9E02-432F-B61D-10C166CA2798}", + ["num"] = 5, + }, + [6] = { + ["CLSID"] = "{37DCC01E-9E02-432F-B61D-10C166CA2798}", + ["num"] = 6, + }, + [7] = { + ["CLSID"] = "{37DCC01E-9E02-432F-B61D-10C166CA2798}", + ["num"] = 7, + }, + [8] = { + ["CLSID"] = "{37DCC01E-9E02-432F-B61D-10C166CA2798}", + ["num"] = 8, + }, + [9] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 9, + }, + [10] = { + ["CLSID"] = "{44EE8698-89F9-48EE-AF36-5FD31896A82A}", + ["num"] = 10, + }, + }, + ["tasks"] = { + [1] = 32, + }, + }, + }, + ["unitType"] = "Su-30", +} +return unitPayloads diff --git a/resources/customized_payloads/Su-33.lua b/resources/customized_payloads/Su-33.lua new file mode 100644 index 00000000..fa1d885c --- /dev/null +++ b/resources/customized_payloads/Su-33.lua @@ -0,0 +1,274 @@ +local unitPayloads = { + ["name"] = "Su-33", + ["payloads"] = { + [1] = { + ["name"] = "CAS", + ["pylons"] = { + [1] = { + ["CLSID"] = "{44EE8698-89F9-48EE-AF36-5FD31896A82F}", + ["num"] = 1, + }, + [2] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 2, + }, + [3] = { + ["CLSID"] = "{FC56DF80-9B09-44C5-8976-DCFAFF219062}", + ["num"] = 3, + }, + [4] = { + ["CLSID"] = "{FC56DF80-9B09-44C5-8976-DCFAFF219062}", + ["num"] = 4, + }, + [5] = { + ["CLSID"] = "{3C612111-C7AD-476E-8A8E-2485812F4E5C}", + ["num"] = 5, + }, + [6] = { + ["CLSID"] = "{3C612111-C7AD-476E-8A8E-2485812F4E5C}", + ["num"] = 6, + }, + [7] = { + ["CLSID"] = "{3C612111-C7AD-476E-8A8E-2485812F4E5C}", + ["num"] = 7, + }, + [8] = { + ["CLSID"] = "{3C612111-C7AD-476E-8A8E-2485812F4E5C}", + ["num"] = 8, + }, + [9] = { + ["CLSID"] = "{FC56DF80-9B09-44C5-8976-DCFAFF219062}", + ["num"] = 9, + }, + [10] = { + ["CLSID"] = "{FC56DF80-9B09-44C5-8976-DCFAFF219062}", + ["num"] = 10, + }, + [11] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 11, + }, + [12] = { + ["CLSID"] = "{44EE8698-89F9-48EE-AF36-5FD31896A82A}", + ["num"] = 12, + }, + }, + ["tasks"] = { + [1] = 32, + }, + }, + [2] = { + ["name"] = "STRIKE", + ["pylons"] = { + [1] = { + ["CLSID"] = "{44EE8698-89F9-48EE-AF36-5FD31896A82F}", + ["num"] = 1, + }, + [2] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 2, + }, + [3] = { + ["CLSID"] = "{9B25D316-0434-4954-868F-D51DB1A38DF0}", + ["num"] = 3, + }, + [4] = { + ["CLSID"] = "{3C612111-C7AD-476E-8A8E-2485812F4E5C}", + ["num"] = 4, + }, + [5] = { + ["CLSID"] = "{37DCC01E-9E02-432F-B61D-10C166CA2798}", + ["num"] = 5, + }, + [6] = { + ["CLSID"] = "{37DCC01E-9E02-432F-B61D-10C166CA2798}", + ["num"] = 6, + }, + [7] = { + ["CLSID"] = "{37DCC01E-9E02-432F-B61D-10C166CA2798}", + ["num"] = 7, + }, + [8] = { + ["CLSID"] = "{37DCC01E-9E02-432F-B61D-10C166CA2798}", + ["num"] = 8, + }, + [9] = { + ["CLSID"] = "{3C612111-C7AD-476E-8A8E-2485812F4E5C}", + ["num"] = 9, + }, + [10] = { + ["CLSID"] = "{9B25D316-0434-4954-868F-D51DB1A38DF0}", + ["num"] = 10, + }, + [11] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 11, + }, + [12] = { + ["CLSID"] = "{44EE8698-89F9-48EE-AF36-5FD31896A82A}", + ["num"] = 12, + }, + }, + ["tasks"] = { + [1] = 32, + }, + }, + [3] = { + ["name"] = "SEAD", + ["pylons"] = { + [1] = { + ["CLSID"] = "{44EE8698-89F9-48EE-AF36-5FD31896A82F}", + ["num"] = 1, + }, + [2] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 2, + }, + [3] = { + ["CLSID"] = "{FC56DF80-9B09-44C5-8976-DCFAFF219062}", + ["num"] = 3, + }, + [4] = { + ["CLSID"] = "{FC56DF80-9B09-44C5-8976-DCFAFF219062}", + ["num"] = 4, + }, + [5] = { + ["CLSID"] = "{3C612111-C7AD-476E-8A8E-2485812F4E5C}", + ["num"] = 5, + }, + [6] = { + ["CLSID"] = "{3C612111-C7AD-476E-8A8E-2485812F4E5C}", + ["num"] = 6, + }, + [7] = { + ["CLSID"] = "{3C612111-C7AD-476E-8A8E-2485812F4E5C}", + ["num"] = 7, + }, + [8] = { + ["CLSID"] = "{3C612111-C7AD-476E-8A8E-2485812F4E5C}", + ["num"] = 8, + }, + [9] = { + ["CLSID"] = "{FC56DF80-9B09-44C5-8976-DCFAFF219062}", + ["num"] = 9, + }, + [10] = { + ["CLSID"] = "{FC56DF80-9B09-44C5-8976-DCFAFF219062}", + ["num"] = 10, + }, + [11] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 11, + }, + [12] = { + ["CLSID"] = "{44EE8698-89F9-48EE-AF36-5FD31896A82A}", + ["num"] = 12, + }, + }, + ["tasks"] = { + [1] = 32, + }, + }, + [4] = { + ["name"] = "ANTISHIP", + ["pylons"] = { + [1] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 12, + }, + [2] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 11, + }, + [3] = { + ["CLSID"] = "{TWIN_S25}", + ["num"] = 10, + }, + [4] = { + ["CLSID"] = "{A0648264-4BC0-4EE8-A543-D119F6BA4257}", + ["num"] = 9, + }, + [5] = { + ["CLSID"] = "{A0648264-4BC0-4EE8-A543-D119F6BA4257}", + ["num"] = 4, + }, + [6] = { + ["CLSID"] = "{TWIN_S25}", + ["num"] = 3, + }, + [7] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 2, + }, + [8] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 1, + }, + }, + ["tasks"] = { + [1] = 30, + }, + }, + [5] = { + ["name"] = "CAP", + ["pylons"] = { + [1] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 1, + }, + [2] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 2, + }, + [3] = { + ["CLSID"] = "{B79C379A-9E87-4E50-A1EE-7F7E29C2E87A}", + ["num"] = 3, + }, + [4] = { + ["CLSID"] = "{E8069896-8435-4B90-95C0-01A03AE6E400}", + ["num"] = 4, + }, + [5] = { + ["CLSID"] = "{E8069896-8435-4B90-95C0-01A03AE6E400}", + ["num"] = 5, + }, + [6] = { + ["CLSID"] = "{E8069896-8435-4B90-95C0-01A03AE6E400}", + ["num"] = 6, + }, + [7] = { + ["CLSID"] = "{E8069896-8435-4B90-95C0-01A03AE6E400}", + ["num"] = 7, + }, + [8] = { + ["CLSID"] = "{E8069896-8435-4B90-95C0-01A03AE6E400}", + ["num"] = 8, + }, + [9] = { + ["CLSID"] = "{E8069896-8435-4B90-95C0-01A03AE6E400}", + ["num"] = 9, + }, + [10] = { + ["CLSID"] = "{B79C379A-9E87-4E50-A1EE-7F7E29C2E87A}", + ["num"] = 10, + }, + [11] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 11, + }, + [12] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 12, + }, + }, + ["tasks"] = { + [1] = 19, + [2] = 18, + [3] = 11, + [4] = 10, + }, + }, + }, + ["unitType"] = "Su-33", +} +return unitPayloads diff --git a/resources/customized_payloads/Su-34.lua b/resources/customized_payloads/Su-34.lua new file mode 100644 index 00000000..6e6b5349 --- /dev/null +++ b/resources/customized_payloads/Su-34.lua @@ -0,0 +1,271 @@ +local unitPayloads = { + ["name"] = "Su-34", + ["payloads"] = { + [1] = { + ["name"] = "ANTISHIP", + ["pylons"] = { + [1] = { + ["CLSID"] = "{44EE8698-89F9-48EE-AF36-5FD31896A82F}", + ["num"] = 1, + }, + [2] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 2, + }, + [3] = { + ["CLSID"] = "{X-31A}", + ["num"] = 3, + }, + [4] = { + ["CLSID"] = "{X-31A}", + ["num"] = 4, + }, + [5] = { + ["CLSID"] = "{X-31A}", + ["num"] = 5, + }, + [6] = { + ["CLSID"] = "{9B25D316-0434-4954-868F-D51DB1A38DF0}", + ["num"] = 6, + }, + [7] = { + ["CLSID"] = "{9B25D316-0434-4954-868F-D51DB1A38DF0}", + ["num"] = 7, + }, + [8] = { + ["CLSID"] = "{X-31A}", + ["num"] = 8, + }, + [9] = { + ["CLSID"] = "{X-31A}", + ["num"] = 9, + }, + [10] = { + ["CLSID"] = "{X-31A}", + ["num"] = 10, + }, + [11] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 11, + }, + [12] = { + ["CLSID"] = "{44EE8698-89F9-48EE-AF36-5FD31896A82A}", + ["num"] = 12, + }, + }, + ["tasks"] = { + [1] = 30, + }, + }, + [2] = { + ["name"] = "SEAD", + ["pylons"] = { + [1] = { + ["CLSID"] = "{44EE8698-89F9-48EE-AF36-5FD31896A82F}", + ["num"] = 1, + }, + [2] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 2, + }, + [3] = { + ["CLSID"] = "{X-25MPU}", + ["num"] = 3, + }, + [4] = { + ["CLSID"] = "{X-25MPU}", + ["num"] = 4, + }, + [5] = { + ["CLSID"] = "{9B25D316-0434-4954-868F-D51DB1A38DF0}", + ["num"] = 6, + }, + [6] = { + ["CLSID"] = "{9B25D316-0434-4954-868F-D51DB1A38DF0}", + ["num"] = 7, + }, + [7] = { + ["CLSID"] = "{X-25MPU}", + ["num"] = 9, + }, + [8] = { + ["CLSID"] = "{X-25MPU}", + ["num"] = 10, + }, + [9] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 11, + }, + [10] = { + ["CLSID"] = "{44EE8698-89F9-48EE-AF36-5FD31896A82A}", + ["num"] = 12, + }, + }, + ["tasks"] = { + [1] = 29, + }, + }, + [3] = { + ["name"] = "CAS", + ["pylons"] = { + [1] = { + ["CLSID"] = "{44EE8698-89F9-48EE-AF36-5FD31896A82F}", + ["num"] = 1, + }, + [2] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 2, + }, + [3] = { + ["CLSID"] = "{X-25MR}", + ["num"] = 3, + }, + [4] = { + ["CLSID"] = "{X-25MR}", + ["num"] = 4, + }, + [5] = { + ["CLSID"] = "{9B25D316-0434-4954-868F-D51DB1A38DF0}", + ["num"] = 6, + }, + [6] = { + ["CLSID"] = "{9B25D316-0434-4954-868F-D51DB1A38DF0}", + ["num"] = 7, + }, + [7] = { + ["CLSID"] = "{X-25MR}", + ["num"] = 9, + }, + [8] = { + ["CLSID"] = "{X-25MR}", + ["num"] = 10, + }, + [9] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 11, + }, + [10] = { + ["CLSID"] = "{44EE8698-89F9-48EE-AF36-5FD31896A82A}", + ["num"] = 12, + }, + }, + ["tasks"] = { + [1] = 31, + }, + }, + [4] = { + ["name"] = "STRIKE", + ["pylons"] = { + [1] = { + ["CLSID"] = "{44EE8698-89F9-48EE-AF36-5FD31896A82F}", + ["num"] = 1, + }, + [2] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 2, + }, + [3] = { + ["CLSID"] = "{D5435F26-F120-4FA3-9867-34ACE562EF1B}", + ["num"] = 3, + }, + [4] = { + ["CLSID"] = "{D5435F26-F120-4FA3-9867-34ACE562EF1B}", + ["num"] = 4, + }, + [5] = { + ["CLSID"] = "{D5435F26-F120-4FA3-9867-34ACE562EF1B}", + ["num"] = 5, + }, + [6] = { + ["CLSID"] = "{D5435F26-F120-4FA3-9867-34ACE562EF1B}", + ["num"] = 6, + }, + [7] = { + ["CLSID"] = "{D5435F26-F120-4FA3-9867-34ACE562EF1B}", + ["num"] = 7, + }, + [8] = { + ["CLSID"] = "{D5435F26-F120-4FA3-9867-34ACE562EF1B}", + ["num"] = 8, + }, + [9] = { + ["CLSID"] = "{D5435F26-F120-4FA3-9867-34ACE562EF1B}", + ["num"] = 9, + }, + [10] = { + ["CLSID"] = "{D5435F26-F120-4FA3-9867-34ACE562EF1B}", + ["num"] = 10, + }, + [11] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 11, + }, + [12] = { + ["CLSID"] = "{44EE8698-89F9-48EE-AF36-5FD31896A82A}", + ["num"] = 12, + }, + }, + ["tasks"] = { + [1] = 31, + }, + }, + [5] = { + ["name"] = "CAP", + ["pylons"] = { + [1] = { + ["CLSID"] = "{44EE8698-89F9-48EE-AF36-5FD31896A82F}", + ["num"] = 1, + }, + [2] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 2, + }, + [3] = { + ["CLSID"] = "{B4C01D60-A8A3-4237-BD72-CA7655BC0FE9}", + ["num"] = 3, + }, + [4] = { + ["CLSID"] = "{B4C01D60-A8A3-4237-BD72-CA7655BC0FE9}", + ["num"] = 4, + }, + [5] = { + ["CLSID"] = "{B4C01D60-A8A3-4237-BD72-CA7655BC0FE9}", + ["num"] = 5, + }, + [6] = { + ["CLSID"] = "{B4C01D60-A8A3-4237-BD72-CA7655BC0FE9}", + ["num"] = 8, + }, + [7] = { + ["CLSID"] = "{B4C01D60-A8A3-4237-BD72-CA7655BC0FE9}", + ["num"] = 9, + }, + [8] = { + ["CLSID"] = "{B4C01D60-A8A3-4237-BD72-CA7655BC0FE9}", + ["num"] = 10, + }, + [9] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 11, + }, + [10] = { + ["CLSID"] = "{44EE8698-89F9-48EE-AF36-5FD31896A82A}", + ["num"] = 12, + }, + [11] = { + ["CLSID"] = "{9B25D316-0434-4954-868F-D51DB1A38DF0}", + ["num"] = 7, + }, + [12] = { + ["CLSID"] = "{9B25D316-0434-4954-868F-D51DB1A38DF0}", + ["num"] = 6, + }, + }, + ["tasks"] = { + [1] = 33, + }, + }, + }, + ["unitType"] = "Su-34", +} +return unitPayloads diff --git a/resources/customized_payloads/Tornado GR4.lua b/resources/customized_payloads/Tornado GR4.lua new file mode 100644 index 00000000..273ce63c --- /dev/null +++ b/resources/customized_payloads/Tornado GR4.lua @@ -0,0 +1,247 @@ +local unitPayloads = { + ["name"] = "Tornado GR4", + ["payloads"] = { + [1] = { + ["name"] = "ANTISHIP", + ["pylons"] = { + [1] = { + ["CLSID"] = "{8C3F26A1-FA0F-11d5-9190-00A0249B6F00}", + ["num"] = 12, + }, + [2] = { + ["CLSID"] = "{EF124821-F9BB-4314-A153-E0E2FE1162C4}", + ["num"] = 11, + }, + [3] = { + ["CLSID"] = "{6CEB49FC-DED8-4DED-B053-E1F033FF72D3}", + ["num"] = 10, + }, + [4] = { + ["CLSID"] = "{1461CD18-429A-42A9-A21F-4C621ECD4573}", + ["num"] = 9, + }, + [5] = { + ["CLSID"] = "{1461CD18-429A-42A9-A21F-4C621ECD4573}", + ["num"] = 4, + }, + [6] = { + ["CLSID"] = "{6CEB49FC-DED8-4DED-B053-E1F033FF72D3}", + ["num"] = 3, + }, + [7] = { + ["CLSID"] = "{EF124821-F9BB-4314-A153-E0E2FE1162C4}", + ["num"] = 2, + }, + [8] = { + ["CLSID"] = "{8C3F26A2-FA0F-11d5-9190-00A0249B6F00}", + ["num"] = 1, + }, + }, + ["tasks"] = { + [1] = 30, + }, + }, + [2] = { + ["name"] = "STRIKE", + ["pylons"] = { + [1] = { + ["CLSID"] = "{8C3F26A1-FA0F-11d5-9190-00A0249B6F00}", + ["num"] = 12, + }, + [2] = { + ["CLSID"] = "{EF124821-F9BB-4314-A153-E0E2FE1162C4}", + ["num"] = 11, + }, + [3] = { + ["CLSID"] = "{6CEB49FC-DED8-4DED-B053-E1F033FF72D3}", + ["num"] = 10, + }, + [4] = { + ["CLSID"] = "{DB769D48-67D7-42ED-A2BE-108D566C8B1E}", + ["num"] = 8, + }, + [5] = { + ["CLSID"] = "{DB769D48-67D7-42ED-A2BE-108D566C8B1E}", + ["num"] = 7, + }, + [6] = { + ["CLSID"] = "{DB769D48-67D7-42ED-A2BE-108D566C8B1E}", + ["num"] = 6, + }, + [7] = { + ["CLSID"] = "{DB769D48-67D7-42ED-A2BE-108D566C8B1E}", + ["num"] = 5, + }, + [8] = { + ["CLSID"] = "{6CEB49FC-DED8-4DED-B053-E1F033FF72D3}", + ["num"] = 3, + }, + [9] = { + ["CLSID"] = "{EF124821-F9BB-4314-A153-E0E2FE1162C4}", + ["num"] = 2, + }, + [10] = { + ["CLSID"] = "{8C3F26A2-FA0F-11d5-9190-00A0249B6F00}", + ["num"] = 1, + }, + [11] = { + ["CLSID"] = "{0D33DDAE-524F-4A4E-B5B8-621754FE3ADE}", + ["num"] = 4, + }, + [12] = { + ["CLSID"] = "{0D33DDAE-524F-4A4E-B5B8-621754FE3ADE}", + ["num"] = 9, + }, + }, + ["tasks"] = { + [1] = 32, + }, + }, + [3] = { + ["name"] = "CAS", + ["pylons"] = { + [1] = { + ["CLSID"] = "{8C3F26A1-FA0F-11d5-9190-00A0249B6F00}", + ["num"] = 12, + }, + [2] = { + ["CLSID"] = "{EF124821-F9BB-4314-A153-E0E2FE1162C4}", + ["num"] = 11, + }, + [3] = { + ["CLSID"] = "{6CEB49FC-DED8-4DED-B053-E1F033FF72D3}", + ["num"] = 10, + }, + [4] = { + ["CLSID"] = "{DB769D48-67D7-42ED-A2BE-108D566C8B1E}", + ["num"] = 8, + }, + [5] = { + ["CLSID"] = "{DB769D48-67D7-42ED-A2BE-108D566C8B1E}", + ["num"] = 7, + }, + [6] = { + ["CLSID"] = "{DB769D48-67D7-42ED-A2BE-108D566C8B1E}", + ["num"] = 6, + }, + [7] = { + ["CLSID"] = "{DB769D48-67D7-42ED-A2BE-108D566C8B1E}", + ["num"] = 5, + }, + [8] = { + ["CLSID"] = "{6CEB49FC-DED8-4DED-B053-E1F033FF72D3}", + ["num"] = 3, + }, + [9] = { + ["CLSID"] = "{EF124821-F9BB-4314-A153-E0E2FE1162C4}", + ["num"] = 2, + }, + [10] = { + ["CLSID"] = "{8C3F26A2-FA0F-11d5-9190-00A0249B6F00}", + ["num"] = 1, + }, + [11] = { + ["CLSID"] = "{0D33DDAE-524F-4A4E-B5B8-621754FE3ADE}", + ["num"] = 4, + }, + [12] = { + ["CLSID"] = "{0D33DDAE-524F-4A4E-B5B8-621754FE3ADE}", + ["num"] = 9, + }, + }, + ["tasks"] = { + [1] = 32, + }, + }, + [4] = { + ["name"] = "CAP", + ["pylons"] = { + [1] = { + ["CLSID"] = "{8C3F26A1-FA0F-11d5-9190-00A0249B6F00}", + ["num"] = 12, + }, + [2] = { + ["CLSID"] = "{EF124821-F9BB-4314-A153-E0E2FE1162C4}", + ["num"] = 11, + }, + [3] = { + ["CLSID"] = "{6CEB49FC-DED8-4DED-B053-E1F033FF72D3}", + ["num"] = 10, + }, + [4] = { + ["CLSID"] = "{6CEB49FC-DED8-4DED-B053-E1F033FF72D3}", + ["num"] = 3, + }, + [5] = { + ["CLSID"] = "{EF124821-F9BB-4314-A153-E0E2FE1162C4}", + ["num"] = 2, + }, + [6] = { + ["CLSID"] = "{8C3F26A2-FA0F-11d5-9190-00A0249B6F00}", + ["num"] = 1, + }, + }, + ["tasks"] = { + [1] = 17, + }, + }, + [5] = { + ["name"] = "SEAD", + ["pylons"] = { + [1] = { + ["CLSID"] = "{8C3F26A1-FA0F-11d5-9190-00A0249B6F00}", + ["num"] = 12, + }, + [2] = { + ["CLSID"] = "{EF124821-F9BB-4314-A153-E0E2FE1162C4}", + ["num"] = 11, + }, + [3] = { + ["CLSID"] = "{6CEB49FC-DED8-4DED-B053-E1F033FF72D3}", + ["num"] = 10, + }, + [4] = { + ["CLSID"] = "{DB769D48-67D7-42ED-A2BE-108D566C8B1E}", + ["num"] = 8, + }, + [5] = { + ["CLSID"] = "{DB769D48-67D7-42ED-A2BE-108D566C8B1E}", + ["num"] = 7, + }, + [6] = { + ["CLSID"] = "{DB769D48-67D7-42ED-A2BE-108D566C8B1E}", + ["num"] = 6, + }, + [7] = { + ["CLSID"] = "{DB769D48-67D7-42ED-A2BE-108D566C8B1E}", + ["num"] = 5, + }, + [8] = { + ["CLSID"] = "{6CEB49FC-DED8-4DED-B053-E1F033FF72D3}", + ["num"] = 3, + }, + [9] = { + ["CLSID"] = "{EF124821-F9BB-4314-A153-E0E2FE1162C4}", + ["num"] = 2, + }, + [10] = { + ["CLSID"] = "{8C3F26A2-FA0F-11d5-9190-00A0249B6F00}", + ["num"] = 1, + }, + [11] = { + ["CLSID"] = "{0D33DDAE-524F-4A4E-B5B8-621754FE3ADE}", + ["num"] = 4, + }, + [12] = { + ["CLSID"] = "{0D33DDAE-524F-4A4E-B5B8-621754FE3ADE}", + ["num"] = 9, + }, + }, + ["tasks"] = { + [1] = 32, + }, + }, + }, + ["unitType"] = "Tornado GR4", +} +return unitPayloads diff --git a/resources/customized_payloads/Tornado IDS.lua b/resources/customized_payloads/Tornado IDS.lua new file mode 100644 index 00000000..628fc227 --- /dev/null +++ b/resources/customized_payloads/Tornado IDS.lua @@ -0,0 +1,206 @@ +local unitPayloads = { + ["name"] = "Tornado IDS", + ["payloads"] = { + [1] = { + ["name"] = "SEAD", + ["pylons"] = { + [1] = { + ["CLSID"] = "{8C3F26A2-FA0F-11d5-9190-00A0249B6F00}", + ["num"] = 1, + }, + [2] = { + ["CLSID"] = "{B06DD79A-F21E-4EB9-BD9D-AB3844618C93}", + ["num"] = 2, + }, + [3] = { + ["CLSID"] = "{6CEB49FC-DED8-4DED-B053-E1F033FF72D3}", + ["num"] = 3, + }, + [4] = { + ["CLSID"] = "{B06DD79A-F21E-4EB9-BD9D-AB3844618C93}", + ["num"] = 4, + }, + [5] = { + ["CLSID"] = "{B06DD79A-F21E-4EB9-BD9D-AB3844618C93}", + ["num"] = 9, + }, + [6] = { + ["CLSID"] = "{6CEB49FC-DED8-4DED-B053-E1F033FF72D3}", + ["num"] = 10, + }, + [7] = { + ["CLSID"] = "{B06DD79A-F21E-4EB9-BD9D-AB3844618C93}", + ["num"] = 11, + }, + [8] = { + ["CLSID"] = "{8C3F26A2-FA0F-11d5-9190-00A0249B6F00}", + ["num"] = 12, + }, + }, + ["tasks"] = { + [1] = 29, + }, + }, + [2] = { + ["name"] = "ANTISHIP", + ["pylons"] = { + [1] = { + ["CLSID"] = "{8C3F26A2-FA0F-11d5-9190-00A0249B6F00}", + ["num"] = 1, + }, + [2] = { + ["CLSID"] = "{B06DD79A-F21E-4EB9-BD9D-AB3844618C93}", + ["num"] = 2, + }, + [3] = { + ["CLSID"] = "{6CEB49FC-DED8-4DED-B053-E1F033FF72D3}", + ["num"] = 3, + }, + [4] = { + ["CLSID"] = "{7210496B-7B81-4B52-80D6-8529ECF847CD}", + ["num"] = 4, + }, + [5] = { + ["CLSID"] = "{7210496B-7B81-4B52-80D6-8529ECF847CD}", + ["num"] = 9, + }, + [6] = { + ["CLSID"] = "{6CEB49FC-DED8-4DED-B053-E1F033FF72D3}", + ["num"] = 10, + }, + [7] = { + ["CLSID"] = "{B06DD79A-F21E-4EB9-BD9D-AB3844618C93}", + ["num"] = 11, + }, + [8] = { + ["CLSID"] = "{8C3F26A2-FA0F-11d5-9190-00A0249B6F00}", + ["num"] = 12, + }, + }, + ["tasks"] = { + [1] = 30, + }, + }, + [3] = { + ["name"] = "CAP", + ["pylons"] = { + [1] = { + ["CLSID"] = "{8C3F26A2-FA0F-11d5-9190-00A0249B6F00}", + ["num"] = 12, + }, + [2] = { + ["CLSID"] = "{8C3F26A2-FA0F-11d5-9190-00A0249B6F00}", + ["num"] = 1, + }, + [3] = { + ["CLSID"] = "{6CEB49FC-DED8-4DED-B053-E1F033FF72D3}", + ["num"] = 3, + }, + [4] = { + ["CLSID"] = "{6CEB49FC-DED8-4DED-B053-E1F033FF72D3}", + ["num"] = 10, + }, + }, + ["tasks"] = { + }, + }, + [4] = { + ["name"] = "STRIKE", + ["pylons"] = { + [1] = { + ["CLSID"] = "{8C3F26A1-FA0F-11d5-9190-00A0249B6F00}", + ["num"] = 1, + }, + [2] = { + ["CLSID"] = "{EF124821-F9BB-4314-A153-E0E2FE1162C4}", + ["num"] = 2, + }, + [3] = { + ["CLSID"] = "{6CEB49FC-DED8-4DED-B053-E1F033FF72D3}", + ["num"] = 3, + }, + [4] = { + ["CLSID"] = "{BCE4E030-38E9-423E-98ED-24BE3DA87C32}", + ["num"] = 5, + }, + [5] = { + ["CLSID"] = "{BCE4E030-38E9-423E-98ED-24BE3DA87C32}", + ["num"] = 6, + }, + [6] = { + ["CLSID"] = "{BCE4E030-38E9-423E-98ED-24BE3DA87C32}", + ["num"] = 7, + }, + [7] = { + ["CLSID"] = "{BCE4E030-38E9-423E-98ED-24BE3DA87C32}", + ["num"] = 8, + }, + [8] = { + ["CLSID"] = "{6CEB49FC-DED8-4DED-B053-E1F033FF72D3}", + ["num"] = 10, + }, + [9] = { + ["CLSID"] = "{EF124821-F9BB-4314-A153-E0E2FE1162C4}", + ["num"] = 11, + }, + [10] = { + ["CLSID"] = "{8C3F26A1-FA0F-11d5-9190-00A0249B6F00}", + ["num"] = 12, + }, + }, + ["tasks"] = { + [1] = 32, + }, + }, + [5] = { + ["name"] = "CAS", + ["pylons"] = { + [1] = { + ["CLSID"] = "{8C3F26A1-FA0F-11d5-9190-00A0249B6F00}", + ["num"] = 1, + }, + [2] = { + ["CLSID"] = "{EF124821-F9BB-4314-A153-E0E2FE1162C4}", + ["num"] = 2, + }, + [3] = { + ["CLSID"] = "{6CEB49FC-DED8-4DED-B053-E1F033FF72D3}", + ["num"] = 3, + }, + [4] = { + ["CLSID"] = "{BCE4E030-38E9-423E-98ED-24BE3DA87C32}", + ["num"] = 5, + }, + [5] = { + ["CLSID"] = "{BCE4E030-38E9-423E-98ED-24BE3DA87C32}", + ["num"] = 6, + }, + [6] = { + ["CLSID"] = "{BCE4E030-38E9-423E-98ED-24BE3DA87C32}", + ["num"] = 7, + }, + [7] = { + ["CLSID"] = "{BCE4E030-38E9-423E-98ED-24BE3DA87C32}", + ["num"] = 8, + }, + [8] = { + ["CLSID"] = "{6CEB49FC-DED8-4DED-B053-E1F033FF72D3}", + ["num"] = 10, + }, + [9] = { + ["CLSID"] = "{EF124821-F9BB-4314-A153-E0E2FE1162C4}", + ["num"] = 11, + }, + [10] = { + ["CLSID"] = "{8C3F26A1-FA0F-11d5-9190-00A0249B6F00}", + ["num"] = 12, + }, + }, + ["tasks"] = { + [1] = 32, + }, + }, + }, + ["unitType"] = "Tornado IDS", +} +return unitPayloads diff --git a/resources/customized_payloads/UH-1H.lua b/resources/customized_payloads/UH-1H.lua new file mode 100644 index 00000000..e0647245 --- /dev/null +++ b/resources/customized_payloads/UH-1H.lua @@ -0,0 +1,142 @@ +local unitPayloads = { + ["name"] = "UH-1H", + ["payloads"] = { + [1] = { + ["name"] = "CAS", + ["pylons"] = { + [1] = { + ["CLSID"] = "M134_L", + ["num"] = 1, + }, + [2] = { + ["CLSID"] = "XM158_MK5", + ["num"] = 2, + }, + [3] = { + ["CLSID"] = "XM158_MK5", + ["num"] = 5, + }, + [4] = { + ["CLSID"] = "M134_R", + ["num"] = 6, + }, + }, + ["tasks"] = { + [1] = 32, + [2] = 31, + [3] = 35, + [4] = 16, + }, + }, + [2] = { + ["name"] = "CAP", + ["pylons"] = { + [1] = { + ["CLSID"] = "M134_L", + ["num"] = 1, + }, + [2] = { + ["CLSID"] = "M134_R", + ["num"] = 6, + }, + [3] = { + ["CLSID"] = "M60_SIDE_R", + ["num"] = 4, + }, + [4] = { + ["CLSID"] = "M60_SIDE_L", + ["num"] = 3, + }, + }, + ["tasks"] = { + [1] = 32, + [2] = 31, + [3] = 35, + [4] = 16, + }, + }, + [3] = { + ["name"] = "SEAD", + ["pylons"] = { + [1] = { + ["CLSID"] = "M134_L", + ["num"] = 1, + }, + [2] = { + ["CLSID"] = "XM158_MK5", + ["num"] = 2, + }, + [3] = { + ["CLSID"] = "XM158_MK5", + ["num"] = 5, + }, + [4] = { + ["CLSID"] = "M134_R", + ["num"] = 6, + }, + }, + ["tasks"] = { + [1] = 32, + [2] = 31, + [3] = 35, + [4] = 16, + }, + }, + [4] = { + ["name"] = "ANTISHIP", + ["pylons"] = { + [1] = { + ["CLSID"] = "M134_L", + ["num"] = 1, + }, + [2] = { + ["CLSID"] = "XM158_MK5", + ["num"] = 2, + }, + [3] = { + ["CLSID"] = "XM158_MK5", + ["num"] = 5, + }, + [4] = { + ["CLSID"] = "M134_R", + ["num"] = 6, + }, + }, + ["tasks"] = { + [1] = 32, + [2] = 31, + [3] = 35, + [4] = 16, + }, + }, + [5] = { + ["name"] = "STRIKE", + ["pylons"] = { + [1] = { + ["CLSID"] = "M134_L", + ["num"] = 1, + }, + [2] = { + ["CLSID"] = "XM158_MK5", + ["num"] = 2, + }, + [3] = { + ["CLSID"] = "XM158_MK5", + ["num"] = 5, + }, + [4] = { + ["CLSID"] = "M134_R", + ["num"] = 6, + }, + }, + ["tasks"] = { + [1] = 32, + [2] = 31, + [3] = 35, + [4] = 16, + }, + }, + }, + ["unitType"] = "UH-1H", +} +return unitPayloads diff --git a/resources/stylesheets/style.css b/resources/stylesheets/style.css index e04dc6bb..9d8e4db6 100644 --- a/resources/stylesheets/style.css +++ b/resources/stylesheets/style.css @@ -92,6 +92,18 @@ QLabel[style="BARCAP"]{ color:white; } +QLabel[style="TARCAP"]{ + border: 1px solid black; + background-color: #445299; + color:white; +} + +QLabel[style="CAP"]{ + border: 1px solid black; + background-color: #445299; + color:white; +} + QLabel[style="INTERCEPTION"]{ border: 1px solid black; background-color: #7752bc; @@ -104,6 +116,24 @@ QLabel[style="CAS"]{ color:white; } +QLabel[style="BAI"]{ + border: 1px solid black; + background-color: #ab2244; + color:white; +} + +QLabel[style="ANTISHIP"]{ + border: 1px solid black; + background-color: #ab2244; + color:white; +} + +QLabel[style="STRIKE"]{ + border: 1px solid black; + background-color: #ab2244; + color:white; +} + QLabel[style="DEAD"]{ border: 1px solid black; background-color: #cc8844; diff --git a/resources/ui/misc/hourglass.png b/resources/ui/misc/hourglass.png new file mode 100644 index 0000000000000000000000000000000000000000..fff9a8f5988ce408ab952bb1832c98bb081fdb63 GIT binary patch literal 541 zcmV+&0^Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!2kdb!2!6DYwZ940kTO%K~zXf)t1Rl z0znXl3nYQZkR7)e4|;S(Ro&fZ=Urb+@iSNOpGxqI)dPH5SFo;E+;e4(_KU{ z;R_l5ZaV!}{XJm@`ksLN%5B(E{2_Y>V)LLJ^bTDInp^|0;3QusjPeV86h^ke%IV0^yy$-kMq?PClY#Xc>_$tw`6T1nYmTm!JIOJLl zu1-jI(rCi7BG5u7Ly#cdksjFmRf{D{3ZOgFx#)CA%)p z1Fw9#Fh~tUJR@{8B{UPRK|BrHyF#E7el~X?In?^W1lM3;jZ%`JW(LJF!15EVa3r{U zFeu_mjnIq+mI0Rk^WgB1#kNcvm5NRa_ zgJ@Eu@0SBMfeSKYG*n_Rm{~Fuh|DfSI83?|idOm1$MmNcN$YvMhvx^<4(7LtU-C~c fUOhMHcL2TtVE=S3gw50&00000NkvXXu0mjfgg4); literal 0 HcmV?d00001 diff --git a/resources/ui/misc/pass_turn.png b/resources/ui/misc/proceed.png similarity index 100% rename from resources/ui/misc/pass_turn.png rename to resources/ui/misc/proceed.png diff --git a/theater/caucasus.py b/theater/caucasus.py index c285c5fc..b3a0e1d1 100644 --- a/theater/caucasus.py +++ b/theater/caucasus.py @@ -22,31 +22,29 @@ class CaucasusTheater(ConflictTheater): "night": (0, 5), } - soganlug = ControlPoint.from_airport(caucasus.Soganlug, LAND, SIZE_SMALL, IMPORTANCE_LOW) - kutaisi = ControlPoint.from_airport(caucasus.Kutaisi, LAND, SIZE_SMALL, IMPORTANCE_LOW) - senaki = ControlPoint.from_airport(caucasus.Senaki_Kolkhi, LAND, SIZE_REGULAR, IMPORTANCE_LOW) - kobuleti = ControlPoint.from_airport(caucasus.Kobuleti, COAST_A_E, SIZE_SMALL, 1.1) - batumi = ControlPoint.from_airport(caucasus.Batumi, COAST_DL_E, SIZE_SMALL, 1.3) - sukhumi = ControlPoint.from_airport(caucasus.Sukhumi_Babushara, COAST_DR_E, SIZE_REGULAR, 1.2) - gudauta = ControlPoint.from_airport(caucasus.Gudauta, COAST_DR_E, SIZE_REGULAR, 1.2) - sochi = ControlPoint.from_airport(caucasus.Sochi_Adler, COAST_DR_E, SIZE_BIG, IMPORTANCE_HIGH) - - gelendzhik = ControlPoint.from_airport(caucasus.Gelendzhik, COAST_DR_E, SIZE_BIG, 1.1) - maykop = ControlPoint.from_airport(caucasus.Maykop_Khanskaya, LAND, SIZE_LARGE, IMPORTANCE_HIGH) - krasnodar = ControlPoint.from_airport(caucasus.Krasnodar_Center, LAND, SIZE_LARGE, IMPORTANCE_HIGH) - krymsk = ControlPoint.from_airport(caucasus.Krymsk, LAND, SIZE_LARGE, 1.2) - anapa = ControlPoint.from_airport(caucasus.Anapa_Vityazevo, LAND, SIZE_LARGE, IMPORTANCE_HIGH) - - beslan = ControlPoint.from_airport(caucasus.Beslan, LAND, SIZE_REGULAR, IMPORTANCE_LOW) - nalchik = ControlPoint.from_airport(caucasus.Nalchik, LAND, SIZE_REGULAR, 1.1) - mineralnye = ControlPoint.from_airport(caucasus.Mineralnye_Vody, LAND, SIZE_BIG, 1.3) - mozdok = ControlPoint.from_airport(caucasus.Mozdok, LAND, SIZE_BIG, 1.1) - carrier_1 = ControlPoint.carrier("Carrier", mapping.Point(-305810.6875, 406399.1875)) def __init__(self, load_ground_objects=True): super(CaucasusTheater, self).__init__() + self.soganlug = ControlPoint.from_airport(caucasus.Soganlug, LAND, SIZE_SMALL, IMPORTANCE_LOW) + self.kutaisi = ControlPoint.from_airport(caucasus.Kutaisi, LAND, SIZE_SMALL, IMPORTANCE_LOW) + self.senaki = ControlPoint.from_airport(caucasus.Senaki_Kolkhi, LAND, SIZE_REGULAR, IMPORTANCE_LOW) + self.kobuleti = ControlPoint.from_airport(caucasus.Kobuleti, COAST_A_E, SIZE_SMALL, 1.1) + self.batumi = ControlPoint.from_airport(caucasus.Batumi, COAST_DL_E, SIZE_SMALL, 1.3) + self.sukhumi = ControlPoint.from_airport(caucasus.Sukhumi_Babushara, COAST_DR_E, SIZE_REGULAR, 1.2) + self.gudauta = ControlPoint.from_airport(caucasus.Gudauta, COAST_DR_E, SIZE_REGULAR, 1.2) + self.sochi = ControlPoint.from_airport(caucasus.Sochi_Adler, COAST_DR_E, SIZE_BIG, IMPORTANCE_HIGH) + self.gelendzhik = ControlPoint.from_airport(caucasus.Gelendzhik, COAST_DR_E, SIZE_BIG, 1.1) + self.maykop = ControlPoint.from_airport(caucasus.Maykop_Khanskaya, LAND, SIZE_LARGE, IMPORTANCE_HIGH) + self.krasnodar = ControlPoint.from_airport(caucasus.Krasnodar_Center, LAND, SIZE_LARGE, IMPORTANCE_HIGH) + self.krymsk = ControlPoint.from_airport(caucasus.Krymsk, LAND, SIZE_LARGE, 1.2) + self.anapa = ControlPoint.from_airport(caucasus.Anapa_Vityazevo, LAND, SIZE_LARGE, IMPORTANCE_HIGH) + self.beslan = ControlPoint.from_airport(caucasus.Beslan, LAND, SIZE_REGULAR, IMPORTANCE_LOW) + self.nalchik = ControlPoint.from_airport(caucasus.Nalchik, LAND, SIZE_REGULAR, 1.1) + self.mineralnye = ControlPoint.from_airport(caucasus.Mineralnye_Vody, LAND, SIZE_BIG, 1.3) + self.mozdok = ControlPoint.from_airport(caucasus.Mozdok, LAND, SIZE_BIG, 1.1) + self.soganlug.frontline_offset = 0.5 self.soganlug.base.strength = 1 @@ -99,17 +97,18 @@ class WesternGeorgia(ConflictTheater): "night": (0, 5), } - kutaisi = ControlPoint.from_airport(caucasus.Kutaisi, LAND, SIZE_SMALL, IMPORTANCE_LOW) - senaki = ControlPoint.from_airport(caucasus.Senaki_Kolkhi, LAND, SIZE_REGULAR, IMPORTANCE_LOW) - kobuleti = ControlPoint.from_airport(caucasus.Kobuleti, COAST_A_E, SIZE_SMALL, 1.1) - sukhumi = ControlPoint.from_airport(caucasus.Sukhumi_Babushara, COAST_DR_E, SIZE_REGULAR, 1.2) - gudauta = ControlPoint.from_airport(caucasus.Gudauta, COAST_DR_E, SIZE_REGULAR, 1.2) - sochi = ControlPoint.from_airport(caucasus.Sochi_Adler, COAST_DR_E, SIZE_BIG, IMPORTANCE_HIGH) - carrier_1 = ControlPoint.carrier("Carrier", mapping.Point(-285810.6875, 496399.1875)) def __init__(self, load_ground_objects=True): super(WesternGeorgia, self).__init__() + self.kobuleti = ControlPoint.from_airport(caucasus.Kobuleti, COAST_A_E, SIZE_SMALL, 1.1) + self.senaki = ControlPoint.from_airport(caucasus.Senaki_Kolkhi, LAND, SIZE_REGULAR, IMPORTANCE_LOW) + self.kutaisi = ControlPoint.from_airport(caucasus.Kutaisi, LAND, SIZE_SMALL, IMPORTANCE_LOW) + self.sukhumi = ControlPoint.from_airport(caucasus.Sukhumi_Babushara, COAST_DR_E, SIZE_REGULAR, 1.2) + self.gudauta = ControlPoint.from_airport(caucasus.Gudauta, COAST_DR_E, SIZE_REGULAR, 1.2) + self.sochi = ControlPoint.from_airport(caucasus.Sochi_Adler, COAST_DR_E, SIZE_BIG, IMPORTANCE_HIGH) + self.carrier_1 = ControlPoint.carrier("Carrier", mapping.Point(-285810.6875, 496399.1875)) + self.add_controlpoint(self.kutaisi, connected_to=[self.senaki]) self.add_controlpoint(self.senaki, connected_to=[self.kobuleti, self.sukhumi, self.kutaisi]) self.add_controlpoint(self.kobuleti, connected_to=[self.senaki]) @@ -120,3 +119,45 @@ class WesternGeorgia(ConflictTheater): self.carrier_1.captured = True self.kobuleti.captured = True + + +""" +Georgian Theather [inverted starting position] +Ideal for smaller scale campaign +""" +class WesternGeorgiaInverted(ConflictTheater): + + terrain = caucasus.Caucasus() + overview_image = "caumap.gif" + reference_points = {(-317948.32727306, 635639.37385346): (278.5 * 4, 319 * 4), + (-355692.3067714, 617269.96285781): (263 * 4, 352 * 4), } + landmap = load_landmap("resources\\caulandmap.p") + daytime_map = { + "dawn": (6, 9), + "day": (9, 18), + "dusk": (18, 20), + "night": (0, 5), + } + + + def __init__(self, load_ground_objects=True): + super(WesternGeorgiaInverted, self).__init__() + + self.kutaisi = ControlPoint.from_airport(caucasus.Kutaisi, LAND, SIZE_SMALL, IMPORTANCE_LOW) + self.senaki = ControlPoint.from_airport(caucasus.Senaki_Kolkhi, LAND, SIZE_REGULAR, IMPORTANCE_LOW) + self.kobuleti = ControlPoint.from_airport(caucasus.Kobuleti, COAST_A_E, SIZE_SMALL, 1.1) + self.sukhumi = ControlPoint.from_airport(caucasus.Sukhumi_Babushara, COAST_DR_E, SIZE_REGULAR, 1.2) + self.gudauta = ControlPoint.from_airport(caucasus.Gudauta, COAST_DR_E, SIZE_REGULAR, 1.2) + self.sochi = ControlPoint.from_airport(caucasus.Sochi_Adler, COAST_DR_E, SIZE_BIG, IMPORTANCE_HIGH) + self.carrier_1 = ControlPoint.carrier("Carrier", mapping.Point(-285810.6875, 496399.1875)) + + self.add_controlpoint(self.kutaisi, connected_to=[self.senaki]) + self.add_controlpoint(self.senaki, connected_to=[self.kobuleti, self.sukhumi, self.kutaisi]) + self.add_controlpoint(self.kobuleti, connected_to=[self.senaki]) + self.add_controlpoint(self.sukhumi, connected_to=[self.gudauta, self.senaki]) + self.add_controlpoint(self.gudauta, connected_to=[self.sochi, self.sukhumi]) + self.add_controlpoint(self.sochi, connected_to=[self.gudauta]) + self.add_controlpoint(self.carrier_1) + + self.carrier_1.captured = True + self.sochi.captured = True \ No newline at end of file diff --git a/theater/controlpoint.py b/theater/controlpoint.py index 0ffb090e..da36e161 100644 --- a/theater/controlpoint.py +++ b/theater/controlpoint.py @@ -64,11 +64,17 @@ class ControlPoint: return cls(airport.id, airport.name, airport.position, airport, radials, size, importance, has_frontline, cptype=ControlPointType.AIRBASE) @classmethod - def carrier(cls, name: str, at: Point): + def carrier(cls, name: str, at: Point, id: int = 1001): import theater.conflicttheater - return cls(0, name, at, at, theater.conflicttheater.LAND, theater.conflicttheater.SIZE_SMALL, 1, + return cls(id, name, at, at, theater.conflicttheater.LAND, theater.conflicttheater.SIZE_SMALL, 1, has_frontline=False, cptype=ControlPointType.AIRCRAFT_CARRIER_GROUP) + @classmethod + def lha(cls, name: str, at: Point, id: int = 1002): + import theater.conflicttheater + return cls(id, name, at, at, theater.conflicttheater.LAND, theater.conflicttheater.SIZE_SMALL, 1, + has_frontline=False, cptype=ControlPointType.LHA_GROUP) + def __str__(self): return self.name @@ -80,6 +86,14 @@ class ControlPoint: def is_carrier(self): return self.cptype in [ControlPointType.AIRCRAFT_CARRIER_GROUP, ControlPointType.LHA_GROUP] + @property + def is_fleet(self): + return self.cptype in [ControlPointType.AIRCRAFT_CARRIER_GROUP, ControlPointType.LHA_GROUP] + + @property + def is_lha(self): + return self.cptype in [ControlPointType.LHA_GROUP] + @property def sea_radials(self) -> typing.Collection[int]: # TODO: fix imports @@ -101,7 +115,7 @@ class ControlPoint: """ if self.cptype in [ControlPointType.AIRCRAFT_CARRIER_GROUP, ControlPointType.LHA_GROUP] : for g in self.ground_objects: - if g.dcs_identifier == "CARRIER": + if g.dcs_identifier in ["CARRIER", "LHA"]: for group in g.groups: for u in group.units: if db.unit_type_from_name(u.type) in [CVN_74_John_C__Stennis, LHA_1_Tarawa, CV_1143_5_Admiral_Kuznetsov]: @@ -122,7 +136,12 @@ class ControlPoint: if g.dcs_identifier == "CARRIER": for group in g.groups: for u in group.units: - if db.unit_type_from_name(u.type) in [CVN_74_John_C__Stennis, LHA_1_Tarawa, CV_1143_5_Admiral_Kuznetsov]: + if db.unit_type_from_name(u.type) in [CVN_74_John_C__Stennis, CV_1143_5_Admiral_Kuznetsov]: + return group.name + elif g.dcs_identifier == "LHA": + for group in g.groups: + for u in group.units: + if db.unit_type_from_name(u.type) in [LHA_1_Tarawa]: return group.name return None diff --git a/theater/nevada.py b/theater/nevada.py index c59ee17a..ee48b4f6 100644 --- a/theater/nevada.py +++ b/theater/nevada.py @@ -19,23 +19,21 @@ class NevadaTheater(ConflictTheater): "night": (0, 5), } - tonopah = ControlPoint.from_airport(nevada.Tonopah_Airport, LAND, SIZE_SMALL, IMPORTANCE_LOW) - tonopah_test_range = ControlPoint.from_airport(nevada.Tonopah_Test_Range_Airfield, LAND, SIZE_SMALL, IMPORTANCE_LOW) - lincoln_conty = ControlPoint.from_airport(nevada.Lincoln_County, LAND, SIZE_SMALL, 1.2) - - pahute_mesa = ControlPoint.from_airport(nevada.Pahute_Mesa_Airstrip, LAND, SIZE_SMALL, 1.1) - groom_lake = ControlPoint.from_airport(nevada.Groom_Lake_AFB, LAND, SIZE_REGULAR, IMPORTANCE_HIGH) - mesquite = ControlPoint.from_airport(nevada.Mesquite, LAND, SIZE_REGULAR, 1.3) - beatty = ControlPoint.from_airport(nevada.Beatty_Airport, LAND, SIZE_REGULAR, 1.1) - - creech = ControlPoint.from_airport(nevada.Creech_AFB, LAND, SIZE_BIG, IMPORTANCE_HIGH) - las_vegas = ControlPoint.from_airport(nevada.North_Las_Vegas, LAND, SIZE_LARGE, IMPORTANCE_HIGH) - jean = ControlPoint.from_airport(nevada.Jean_Airport, LAND, SIZE_REGULAR, 1.2) - laughlin = ControlPoint.from_airport(nevada.Laughlin_Airport, LAND, SIZE_LARGE, IMPORTANCE_HIGH) - def __init__(self): super(NevadaTheater, self).__init__() + self.tonopah = ControlPoint.from_airport(nevada.Tonopah_Airport, LAND, SIZE_SMALL, IMPORTANCE_LOW) + self.tonopah_test_range = ControlPoint.from_airport(nevada.Tonopah_Test_Range_Airfield, LAND, SIZE_SMALL,IMPORTANCE_LOW) + self.lincoln_conty = ControlPoint.from_airport(nevada.Lincoln_County, LAND, SIZE_SMALL, 1.2) + self.pahute_mesa = ControlPoint.from_airport(nevada.Pahute_Mesa_Airstrip, LAND, SIZE_SMALL, 1.1) + self.groom_lake = ControlPoint.from_airport(nevada.Groom_Lake_AFB, LAND, SIZE_REGULAR, IMPORTANCE_HIGH) + self.mesquite = ControlPoint.from_airport(nevada.Mesquite, LAND, SIZE_REGULAR, 1.3) + self.beatty = ControlPoint.from_airport(nevada.Beatty_Airport, LAND, SIZE_REGULAR, 1.1) + self.creech = ControlPoint.from_airport(nevada.Creech_AFB, LAND, SIZE_BIG, IMPORTANCE_HIGH) + self.las_vegas = ControlPoint.from_airport(nevada.North_Las_Vegas, LAND, SIZE_LARGE, IMPORTANCE_HIGH) + self.jean = ControlPoint.from_airport(nevada.Jean_Airport, LAND, SIZE_REGULAR, 1.2) + self.laughlin = ControlPoint.from_airport(nevada.Laughlin_Airport, LAND, SIZE_LARGE, IMPORTANCE_HIGH) + self.add_controlpoint(self.tonopah, connected_to=[self.tonopah_test_range, self.lincoln_conty]) self.add_controlpoint(self.tonopah_test_range, connected_to=[self.tonopah, self.lincoln_conty, self.pahute_mesa]) self.add_controlpoint(self.lincoln_conty, connected_to=[self.tonopah_test_range, self.tonopah, self.mesquite]) diff --git a/theater/normandy.py b/theater/normandy.py index 7e6a5996..f6e09ed4 100644 --- a/theater/normandy.py +++ b/theater/normandy.py @@ -17,16 +17,16 @@ class NormandyTheater(ConflictTheater): "night": (0, 5), } - st_pierre = ControlPoint.from_airport(normandy.Saint_Pierre_du_Mont, LAND, SIZE_REGULAR, IMPORTANCE_MEDIUM) - maupertus = ControlPoint.from_airport(normandy.Maupertus, LAND, SIZE_SMALL, IMPORTANCE_LOW) - azeville = ControlPoint.from_airport(normandy.Azeville, LAND, SIZE_SMALL, IMPORTANCE_LOW) - lessay = ControlPoint.from_airport(normandy.Lessay, LAND, SIZE_SMALL, IMPORTANCE_LOW) - meautis = ControlPoint.from_airport(normandy.Meautis, LAND, SIZE_SMALL, IMPORTANCE_LOW) - chippelle = ControlPoint.from_airport(normandy.Chippelle, LAND, SIZE_SMALL, IMPORTANCE_LOW) - def __init__(self): super(NormandyTheater, self).__init__() + self.st_pierre = ControlPoint.from_airport(normandy.Saint_Pierre_du_Mont, LAND, SIZE_REGULAR, IMPORTANCE_MEDIUM) + self.maupertus = ControlPoint.from_airport(normandy.Maupertus, LAND, SIZE_SMALL, IMPORTANCE_LOW) + self.azeville = ControlPoint.from_airport(normandy.Azeville, LAND, SIZE_SMALL, IMPORTANCE_LOW) + self.lessay = ControlPoint.from_airport(normandy.Lessay, LAND, SIZE_SMALL, IMPORTANCE_LOW) + self.meautis = ControlPoint.from_airport(normandy.Meautis, LAND, SIZE_SMALL, IMPORTANCE_LOW) + self.chippelle = ControlPoint.from_airport(normandy.Chippelle, LAND, SIZE_SMALL, IMPORTANCE_LOW) + self.add_controlpoint(self.st_pierre, connected_to=[self.chippelle]) self.add_controlpoint(self.maupertus, connected_to=[self.azeville]) self.add_controlpoint(self.azeville, connected_to=[self.meautis, self.maupertus]) diff --git a/theater/persiangulf.py b/theater/persiangulf.py index 33f549e3..0efebf8e 100644 --- a/theater/persiangulf.py +++ b/theater/persiangulf.py @@ -20,43 +20,37 @@ class PersianGulfTheater(ConflictTheater): "night": (0, 5), } - al_dhafra = ControlPoint.from_airport(persiangulf.Al_Dhafra_AB, LAND, SIZE_BIG, IMPORTANCE_LOW) - al_maktoum = ControlPoint.from_airport(persiangulf.Al_Maktoum_Intl, LAND, SIZE_BIG, IMPORTANCE_LOW) - al_minhad = ControlPoint.from_airport(persiangulf.Al_Minhad_AB, LAND, SIZE_REGULAR, 1.1) - sir_abu_nuayr = ControlPoint.from_airport(persiangulf.Sir_Abu_Nuayr, [0, 330], SIZE_SMALL, 1.1, has_frontline=False) - - dubai = ControlPoint.from_airport(persiangulf.Dubai_Intl, COAST_DL_E, SIZE_LARGE, IMPORTANCE_MEDIUM) - sharjah = ControlPoint.from_airport(persiangulf.Sharjah_Intl, LAND, SIZE_BIG, 1.0) - fujairah = ControlPoint.from_airport(persiangulf.Fujairah_Intl, COAST_V_W, SIZE_REGULAR, 1.0) - khasab = ControlPoint.from_airport(persiangulf.Khasab, LAND, SIZE_SMALL, IMPORTANCE_MEDIUM) - - sirri = ControlPoint.from_airport(persiangulf.Sirri_Island, COAST_DL_W, SIZE_REGULAR, IMPORTANCE_LOW, has_frontline=False) - abu_musa = ControlPoint.from_airport(persiangulf.Abu_Musa_Island_Airport, LAND, SIZE_SMALL, IMPORTANCE_MEDIUM, has_frontline=False) - tunb_island = ControlPoint.from_airport(persiangulf.Tunb_Island_AFB, [0, 270, 330], SIZE_SMALL, IMPORTANCE_MEDIUM, has_frontline=False) - tunb_kochak = ControlPoint.from_airport(persiangulf.Tunb_Kochak, [135, 180], SIZE_SMALL, 1.1, has_frontline=False) - - bandar_lengeh = ControlPoint.from_airport(persiangulf.Bandar_Lengeh, [270, 315, 0, 45], SIZE_SMALL, IMPORTANCE_HIGH) - qeshm = ControlPoint.from_airport(persiangulf.Qeshm_Island, [270, 315, 0, 45, 90, 135, 180], SIZE_SMALL, 1.1, has_frontline=False) - - havadarya = ControlPoint.from_airport(persiangulf.Havadarya, COAST_DL_W, SIZE_REGULAR, IMPORTANCE_HIGH) - bandar_abbas = ControlPoint.from_airport(persiangulf.Bandar_Abbas_Intl, LAND, SIZE_BIG, IMPORTANCE_HIGH) - lar = ControlPoint.from_airport(persiangulf.Lar_Airbase, LAND, SIZE_REGULAR, IMPORTANCE_HIGH) - shiraz = ControlPoint.from_airport(persiangulf.Shiraz_International_Airport, LAND, SIZE_BIG, IMPORTANCE_HIGH) - kerman = ControlPoint.from_airport(persiangulf.Kerman_Airport, LAND, SIZE_BIG, IMPORTANCE_HIGH) - - ras_al_khaimah = ControlPoint.from_airport(persiangulf.Ras_Al_Khaimah, LAND, SIZE_REGULAR, IMPORTANCE_MEDIUM) - al_ain = ControlPoint.from_airport(persiangulf.Al_Ain_International_Airport, LAND, SIZE_BIG, IMPORTANCE_HIGH) - liwa = ControlPoint.from_airport(persiangulf.Liwa_Airbase, LAND, SIZE_BIG, IMPORTANCE_HIGH) - - jiroft = ControlPoint.from_airport(persiangulf.Jiroft_Airport, LAND, SIZE_BIG, IMPORTANCE_HIGH) - bandar_e_jask = ControlPoint.from_airport(persiangulf.Bandar_e_Jask_airfield, LAND, SIZE_TINY, IMPORTANCE_LOW) - - west_carrier = ControlPoint.carrier("West carrier", Point(-69043.813952358, -159916.65947136)) - east_carrier = ControlPoint.carrier("East carrier", Point(59514.324335475, 28165.517980635)) def __init__(self): super(PersianGulfTheater, self).__init__() + self.al_dhafra = ControlPoint.from_airport(persiangulf.Al_Dhafra_AB, LAND, SIZE_BIG, IMPORTANCE_LOW) + self.al_maktoum = ControlPoint.from_airport(persiangulf.Al_Maktoum_Intl, LAND, SIZE_BIG, IMPORTANCE_LOW) + self.al_minhad = ControlPoint.from_airport(persiangulf.Al_Minhad_AB, LAND, SIZE_REGULAR, 1.1) + self.sir_abu_nuayr = ControlPoint.from_airport(persiangulf.Sir_Abu_Nuayr, [0, 330], SIZE_SMALL, 1.1,has_frontline=False) + self.dubai = ControlPoint.from_airport(persiangulf.Dubai_Intl, COAST_DL_E, SIZE_LARGE, IMPORTANCE_MEDIUM) + self.sharjah = ControlPoint.from_airport(persiangulf.Sharjah_Intl, LAND, SIZE_BIG, 1.0) + self.fujairah = ControlPoint.from_airport(persiangulf.Fujairah_Intl, COAST_V_W, SIZE_REGULAR, 1.0) + self.khasab = ControlPoint.from_airport(persiangulf.Khasab, LAND, SIZE_SMALL, IMPORTANCE_MEDIUM) + self.sirri = ControlPoint.from_airport(persiangulf.Sirri_Island, COAST_DL_W, SIZE_REGULAR, IMPORTANCE_LOW,has_frontline=False) + self.abu_musa = ControlPoint.from_airport(persiangulf.Abu_Musa_Island_Airport, LAND, SIZE_SMALL,IMPORTANCE_MEDIUM, has_frontline=False) + self.tunb_island = ControlPoint.from_airport(persiangulf.Tunb_Island_AFB, [0, 270, 330], SIZE_SMALL,IMPORTANCE_MEDIUM, has_frontline=False) + self.tunb_kochak = ControlPoint.from_airport(persiangulf.Tunb_Kochak, [135, 180], SIZE_SMALL, 1.1,has_frontline=False) + self.bandar_lengeh = ControlPoint.from_airport(persiangulf.Bandar_Lengeh, [270, 315, 0, 45], SIZE_SMALL,IMPORTANCE_HIGH) + self.qeshm = ControlPoint.from_airport(persiangulf.Qeshm_Island, [270, 315, 0, 45, 90, 135, 180], SIZE_SMALL,1.1, has_frontline=False) + self.havadarya = ControlPoint.from_airport(persiangulf.Havadarya, COAST_DL_W, SIZE_REGULAR, IMPORTANCE_HIGH) + self.bandar_abbas = ControlPoint.from_airport(persiangulf.Bandar_Abbas_Intl, LAND, SIZE_BIG, IMPORTANCE_HIGH) + self.lar = ControlPoint.from_airport(persiangulf.Lar_Airbase, LAND, SIZE_REGULAR, IMPORTANCE_HIGH) + self.shiraz = ControlPoint.from_airport(persiangulf.Shiraz_International_Airport, LAND, SIZE_BIG,IMPORTANCE_HIGH) + self.kerman = ControlPoint.from_airport(persiangulf.Kerman_Airport, LAND, SIZE_BIG, IMPORTANCE_HIGH) + self.ras_al_khaimah = ControlPoint.from_airport(persiangulf.Ras_Al_Khaimah, LAND, SIZE_REGULAR,IMPORTANCE_MEDIUM) + self.al_ain = ControlPoint.from_airport(persiangulf.Al_Ain_International_Airport, LAND, SIZE_BIG,IMPORTANCE_HIGH) + self.liwa = ControlPoint.from_airport(persiangulf.Liwa_Airbase, LAND, SIZE_BIG, IMPORTANCE_HIGH) + self.jiroft = ControlPoint.from_airport(persiangulf.Jiroft_Airport, LAND, SIZE_BIG, IMPORTANCE_HIGH) + self.bandar_e_jask = ControlPoint.from_airport(persiangulf.Bandar_e_Jask_airfield, LAND, SIZE_TINY,IMPORTANCE_LOW) + self.west_carrier = ControlPoint.carrier("West carrier", Point(-69043.813952358, -159916.65947136)) + self.east_carrier = ControlPoint.carrier("East carrier", Point(59514.324335475, 28165.517980635)) + self.add_controlpoint(self.liwa, connected_to=[self.al_dhafra]) self.add_controlpoint(self.al_dhafra, connected_to=[self.liwa, self.sir_abu_nuayr, self.al_maktoum, self.al_ain]) self.add_controlpoint(self.al_ain, connected_to=[self.al_dhafra, self.al_maktoum]) @@ -105,38 +99,31 @@ class IranianCampaign(ConflictTheater): "night": (0, 5), } - al_dhafra = ControlPoint.from_airport(persiangulf.Al_Dhafra_AB, LAND, SIZE_BIG, IMPORTANCE_LOW) - al_maktoum = ControlPoint.from_airport(persiangulf.Al_Maktoum_Intl, LAND, SIZE_BIG, IMPORTANCE_LOW) - al_minhad = ControlPoint.from_airport(persiangulf.Al_Minhad_AB, LAND, SIZE_REGULAR, 1.1) - sir_abu_nuayr = ControlPoint.from_airport(persiangulf.Sir_Abu_Nuayr, [0, 330], SIZE_SMALL, 1.1, has_frontline=False) - - dubai = ControlPoint.from_airport(persiangulf.Dubai_Intl, COAST_DL_E, SIZE_LARGE, IMPORTANCE_MEDIUM) - sharjah = ControlPoint.from_airport(persiangulf.Sharjah_Intl, LAND, SIZE_BIG, 1.0) - fujairah = ControlPoint.from_airport(persiangulf.Fujairah_Intl, COAST_V_W, SIZE_REGULAR, 1.0) - khasab = ControlPoint.from_airport(persiangulf.Khasab, LAND, SIZE_SMALL, IMPORTANCE_MEDIUM) - - sirri = ControlPoint.from_airport(persiangulf.Sirri_Island, COAST_DL_W, SIZE_REGULAR, IMPORTANCE_LOW, has_frontline=False) - abu_musa = ControlPoint.from_airport(persiangulf.Abu_Musa_Island_Airport, LAND, SIZE_SMALL, IMPORTANCE_MEDIUM, has_frontline=False) - tunb_island = ControlPoint.from_airport(persiangulf.Tunb_Island_AFB, [0, 270, 330], SIZE_SMALL, IMPORTANCE_MEDIUM, has_frontline=False) - tunb_kochak = ControlPoint.from_airport(persiangulf.Tunb_Kochak, [135, 180], SIZE_SMALL, 1.1, has_frontline=False) - - bandar_lengeh = ControlPoint.from_airport(persiangulf.Bandar_Lengeh, [270, 315, 0, 45], SIZE_SMALL, IMPORTANCE_HIGH) - qeshm = ControlPoint.from_airport(persiangulf.Qeshm_Island, [270, 315, 0, 45, 90, 135, 180], SIZE_SMALL, 1.1, has_frontline=False) - - havadarya = ControlPoint.from_airport(persiangulf.Havadarya, COAST_DL_W, SIZE_REGULAR, IMPORTANCE_HIGH) - bandar_abbas = ControlPoint.from_airport(persiangulf.Bandar_Abbas_Intl, LAND, SIZE_BIG, IMPORTANCE_HIGH) - lar = ControlPoint.from_airport(persiangulf.Lar_Airbase, LAND, SIZE_REGULAR, IMPORTANCE_HIGH) - shiraz = ControlPoint.from_airport(persiangulf.Shiraz_International_Airport, LAND, SIZE_BIG, IMPORTANCE_HIGH) - kerman = ControlPoint.from_airport(persiangulf.Kerman_Airport, LAND, SIZE_BIG, IMPORTANCE_HIGH) - - jiroft = ControlPoint.from_airport(persiangulf.Jiroft_Airport, LAND, SIZE_BIG, IMPORTANCE_HIGH) - bandar_e_jask = ControlPoint.from_airport(persiangulf.Bandar_e_Jask_airfield, LAND, SIZE_TINY, IMPORTANCE_LOW) - ras_al_khaimah = ControlPoint.from_airport(persiangulf.Ras_Al_Khaimah, LAND, SIZE_REGULAR, IMPORTANCE_MEDIUM) - - east_carrier = ControlPoint.carrier("East carrier", Point(59514.324335475, 28165.517980635)) - def __init__(self): super(IranianCampaign, self).__init__() + self.al_dhafra = ControlPoint.from_airport(persiangulf.Al_Dhafra_AB, LAND, SIZE_BIG, IMPORTANCE_LOW) + self.al_maktoum = ControlPoint.from_airport(persiangulf.Al_Maktoum_Intl, LAND, SIZE_BIG, IMPORTANCE_LOW) + self.al_minhad = ControlPoint.from_airport(persiangulf.Al_Minhad_AB, LAND, SIZE_REGULAR, 1.1) + self.sir_abu_nuayr = ControlPoint.from_airport(persiangulf.Sir_Abu_Nuayr, [0, 330], SIZE_SMALL, 1.1,has_frontline=False) + self.dubai = ControlPoint.from_airport(persiangulf.Dubai_Intl, COAST_DL_E, SIZE_LARGE, IMPORTANCE_MEDIUM) + self.sharjah = ControlPoint.from_airport(persiangulf.Sharjah_Intl, LAND, SIZE_BIG, 1.0) + self.fujairah = ControlPoint.from_airport(persiangulf.Fujairah_Intl, COAST_V_W, SIZE_REGULAR, 1.0) + self.khasab = ControlPoint.from_airport(persiangulf.Khasab, LAND, SIZE_SMALL, IMPORTANCE_MEDIUM) + self.sirri = ControlPoint.from_airport(persiangulf.Sirri_Island, COAST_DL_W, SIZE_REGULAR, IMPORTANCE_LOW,has_frontline=False) + self.abu_musa = ControlPoint.from_airport(persiangulf.Abu_Musa_Island_Airport, LAND, SIZE_SMALL,IMPORTANCE_MEDIUM, has_frontline=False) + self.tunb_island = ControlPoint.from_airport(persiangulf.Tunb_Island_AFB, [0, 270, 330], SIZE_SMALL,IMPORTANCE_MEDIUM, has_frontline=False) + self.tunb_kochak = ControlPoint.from_airport(persiangulf.Tunb_Kochak, [135, 180], SIZE_SMALL, 1.1,has_frontline=False) + self.bandar_lengeh = ControlPoint.from_airport(persiangulf.Bandar_Lengeh, [270, 315, 0, 45], SIZE_SMALL,IMPORTANCE_HIGH) + self.qeshm = ControlPoint.from_airport(persiangulf.Qeshm_Island, [270, 315, 0, 45, 90, 135, 180], SIZE_SMALL,1.1, has_frontline=False) + self.havadarya = ControlPoint.from_airport(persiangulf.Havadarya, COAST_DL_W, SIZE_REGULAR, IMPORTANCE_HIGH) + self.bandar_abbas = ControlPoint.from_airport(persiangulf.Bandar_Abbas_Intl, LAND, SIZE_BIG, IMPORTANCE_HIGH) + self.lar = ControlPoint.from_airport(persiangulf.Lar_Airbase, LAND, SIZE_REGULAR, IMPORTANCE_HIGH) + self.shiraz = ControlPoint.from_airport(persiangulf.Shiraz_International_Airport, LAND, SIZE_BIG,IMPORTANCE_HIGH) + self.kerman = ControlPoint.from_airport(persiangulf.Kerman_Airport, LAND, SIZE_BIG, IMPORTANCE_HIGH) + self.jiroft = ControlPoint.from_airport(persiangulf.Jiroft_Airport, LAND, SIZE_BIG, IMPORTANCE_HIGH) + self.bandar_e_jask = ControlPoint.from_airport(persiangulf.Bandar_e_Jask_airfield, LAND, SIZE_TINY,IMPORTANCE_LOW) + self.ras_al_khaimah = ControlPoint.from_airport(persiangulf.Ras_Al_Khaimah, LAND, SIZE_REGULAR,IMPORTANCE_MEDIUM) + self.east_carrier = ControlPoint.carrier("East carrier", Point(59514.324335475, 28165.517980635)) self.add_controlpoint(self.ras_al_khaimah, connected_to=[self.khasab]) self.add_controlpoint(self.khasab, connected_to=[self.ras_al_khaimah]) @@ -159,3 +146,53 @@ class IranianCampaign(ConflictTheater): self.qeshm.captured = True self.havadarya.captured = True self.bandar_abbas.captured = True + + +class Emirates(ConflictTheater): + terrain = dcs.terrain.PersianGulf() + overview_image = "persiangulf.gif" + reference_points = { + (persiangulf.Sir_Abu_Nuayr.position.x, persiangulf.Sir_Abu_Nuayr.position.y): (423 * 4, 150 * 4), + (persiangulf.Sirri_Island.position.x, persiangulf.Sirri_Island.position.y): (447 * 4, 82 * 4), } + landmap = load_landmap("resources\\gulflandmap.p") + daytime_map = { + "dawn": (6, 8), + "day": (8, 16), + "dusk": (16, 18), + "night": (0, 5), + } + + + def __init__(self): + super(Emirates, self).__init__() + + self.al_dhafra = ControlPoint.from_airport(persiangulf.Al_Dhafra_AB, LAND, SIZE_BIG, IMPORTANCE_LOW) + self.al_maktoum = ControlPoint.from_airport(persiangulf.Al_Maktoum_Intl, LAND, SIZE_BIG, IMPORTANCE_LOW) + self.al_minhad = ControlPoint.from_airport(persiangulf.Al_Minhad_AB, LAND, SIZE_REGULAR, 1.1) + self.sir_abu_nuayr = ControlPoint.from_airport(persiangulf.Sir_Abu_Nuayr, [0, 330], SIZE_SMALL, 1.1, has_frontline=False) + self.dubai = ControlPoint.from_airport(persiangulf.Dubai_Intl, COAST_DL_E, SIZE_LARGE, IMPORTANCE_MEDIUM) + self.sharjah = ControlPoint.from_airport(persiangulf.Sharjah_Intl, LAND, SIZE_BIG, 1.0) + self.fujairah = ControlPoint.from_airport(persiangulf.Fujairah_Intl, COAST_V_W, SIZE_REGULAR, 1.0) + self.ras_al_khaimah = ControlPoint.from_airport(persiangulf.Ras_Al_Khaimah, LAND, SIZE_REGULAR,IMPORTANCE_MEDIUM) + self.al_ain = ControlPoint.from_airport(persiangulf.Al_Ain_International_Airport, LAND, SIZE_BIG, + IMPORTANCE_HIGH) + + self.east_carrier = ControlPoint.carrier("Carrier", Point(-61770, 69039), 1001) + self.tarawa_carrier = ControlPoint.lha("LHA Carrier", Point(-79770, 49430), 1002) + + self.add_controlpoint(self.al_dhafra, connected_to=[self.al_ain, self.al_maktoum]) + self.add_controlpoint(self.al_ain, connected_to=[self.fujairah, self.al_maktoum, self.al_dhafra]) + self.add_controlpoint(self.al_maktoum, connected_to=[self.al_dhafra, self.al_minhad, self.al_ain]) + self.add_controlpoint(self.al_minhad, connected_to=[self.al_maktoum, self.dubai]) + self.add_controlpoint(self.dubai, connected_to=[self.al_minhad, self.sharjah]) + self.add_controlpoint(self.sharjah, connected_to=[self.dubai, self.ras_al_khaimah, self.fujairah]) + self.add_controlpoint(self.ras_al_khaimah, connected_to=[self.sharjah]) + self.add_controlpoint(self.fujairah, connected_to=[self.sharjah, self.al_ain]) + self.add_controlpoint(self.sir_abu_nuayr, connected_to=[]) + + self.add_controlpoint(self.tarawa_carrier) + self.add_controlpoint(self.east_carrier) + + self.tarawa_carrier.captured = True + self.east_carrier.captured = True + self.fujairah.captured = True diff --git a/theater/start_generator.py b/theater/start_generator.py index 8bd6905f..ffbdbafe 100644 --- a/theater/start_generator.py +++ b/theater/start_generator.py @@ -5,7 +5,7 @@ import typing import logging from gen.defenses.armor_group_generator import generate_armor_group -from gen.fleet.ship_group_generator import generate_carrier_group +from gen.fleet.ship_group_generator import generate_carrier_group, generate_lha_group from gen.sam.sam_group_generator import generate_anti_air_group, generate_shorad_group from theater import ControlPointType from theater.base import * @@ -72,9 +72,7 @@ def generate_groundobjects(theater: ConflictTheater, game): if cp.cptype == ControlPointType.AIRCRAFT_CARRIER_GROUP: # Create ground object group - group_id = group_id + 1 - g = TheaterGroundObject() g.group_id = group_id g.object_id = 0 @@ -88,7 +86,28 @@ def generate_groundobjects(theater: ConflictTheater, game): if group is not None: g.groups.append(group) cp.ground_objects.append(g) - + # Set new name : + if "carrier_names" in db.FACTIONS[faction]: + cp.name = random.choice(db.FACTIONS[faction]["carrier_names"]) + elif cp.cptype == ControlPointType.LHA_GROUP: + # Create ground object group + group_id = group_id + 1 + g = TheaterGroundObject() + g.group_id = group_id + g.object_id = 0 + g.cp_id = cp.id + g.airbase_group = True + g.dcs_identifier = "LHA" + g.heading = 0 + g.position = Point(cp.position.x, cp.position.y) + group = generate_lha_group(faction, game, g) + g.groups = [] + if group is not None: + g.groups.append(group) + cp.ground_objects.append(g) + # Set new name : + if "lhanames" in db.FACTIONS[faction]: + cp.name = random.choice(db.FACTIONS[faction]["lhanames"]) else: for i in range(random.randint(2,6)): point = find_location(True, cp.position, theater, 1000, 2800, []) diff --git a/theater/theatergroundobject.py b/theater/theatergroundobject.py index 1dbd1fad..e3e8db98 100644 --- a/theater/theatergroundobject.py +++ b/theater/theatergroundobject.py @@ -31,6 +31,7 @@ ABBREV_NAME = { CATEGORY_MAP = { "CARRIER": ["CARRIER"], + "LHA": ["LHA"], "aa": ["AA"], "power": ["Workshop A", "Electric power box", "Garage small A"], "warehouse": ["Warehouse", "Hangar A"], diff --git a/userdata/persistency.py b/userdata/persistency.py index 7b061857..7899d096 100644 --- a/userdata/persistency.py +++ b/userdata/persistency.py @@ -6,23 +6,23 @@ import sys from dcs import installation -_user_folder = None # type: str +_dcs_saved_game_folder = None # type: str def setup(user_folder: str): - global _user_folder - _user_folder = user_folder + global _dcs_saved_game_folder + _dcs_saved_game_folder = user_folder def base_path() -> str: - global _user_folder - assert _user_folder + global _dcs_saved_game_folder + assert _dcs_saved_game_folder - openbeta_path = os.path.join(_user_folder, "DCS.openbeta") - if "--force-stable-DCS" not in sys.argv and os.path.exists(openbeta_path): - return openbeta_path + openbeta_path = _dcs_saved_game_folder + ".openbeta" + if os.path.exists(openbeta_path): + return openbeta_path # For standalone openbeta users else: - return os.path.join(_user_folder, "DCS") + return _dcs_saved_game_folder # For standalone stable users & steam users (any branch) def _save_file() -> str: