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 00000000..fff9a8f5
Binary files /dev/null and b/resources/ui/misc/hourglass.png differ
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: