Reworked payloads, factions, map display, carrier. Re-added Tarawa support, many minor bug fixes. UI changes.

This commit is contained in:
Khopa 2020-05-27 21:45:58 +02:00
parent 3f2aafcd28
commit 6dec5ea8f8
93 changed files with 8799 additions and 474 deletions

View File

@ -15,11 +15,13 @@ from dcs.unitgroup import *
from game.factions.china_2000 import China_2000 from game.factions.china_2000 import China_2000
from game.factions.france_1995 import France_1995 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.germany_1990 import Germany_1990
from game.factions.insurgent import Insurgent from game.factions.insurgent import Insurgent
from game.factions.iran_2015 import Iran_2015 from game.factions.iran_2015 import Iran_2015
from game.factions.israel_2000 import Israel_2000 from game.factions.israel_2000 import Israel_2000
from game.factions.italy_1990 import Italy_1990 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.netherlands_1990 import Netherlands_1990
from game.factions.north_korea_2000 import NorthKorea_2000 from game.factions.north_korea_2000 import NorthKorea_2000
from game.factions.pakistan_2015 import Pakistan_2015 from game.factions.pakistan_2015 import Pakistan_2015
@ -187,6 +189,7 @@ PRICES = {
Armor.MBT_Challenger_II: 30, Armor.MBT_Challenger_II: 30,
Armor.IFV_Marder: 10, Armor.IFV_Marder: 10,
Armor.IFV_MCV_80: 10, Armor.IFV_MCV_80: 10,
Armor.IFV_LAV_25: 7,
Artillery.MLRS_M270: 55, Artillery.MLRS_M270: 55,
Artillery.SPH_M109_Paladin: 25, 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_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, 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 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. Units separated by country. Currently only Russia and USA are supported.
country : DCS Country name country : DCS Country name
@ -576,6 +558,7 @@ FACTIONS = {
"Russia 1990": Russia_1990, "Russia 1990": Russia_1990,
"Russia 2010": Russia_2010, "Russia 2010": Russia_2010,
"Iran 2015": Iran_2015, "Iran 2015": Iran_2015,
"Lybia 2011": Lybia_2011,
"China 2000": China_2000, "China 2000": China_2000,
"North Korea 2000": NorthKorea_2000, "North Korea 2000": NorthKorea_2000,
"Insurgent": Insurgent, "Insurgent": Insurgent,
@ -587,6 +570,7 @@ FACTIONS = {
"USA 1955 (Require WW2 Pack)": USA_1955, "USA 1955 (Require WW2 Pack)": USA_1955,
"USA 1944 (Require WW2 Pack)": USA_1944, "USA 1944 (Require WW2 Pack)": USA_1944,
"France 1995": France_1995, "France 1995": France_1995,
"France 2005": France_2005,
"Germany 1990": Germany_1990, "Germany 1990": Germany_1990,
"Netherlands 1990": Netherlands_1990, "Netherlands 1990": Netherlands_1990,
"United Kingdown 1990": UnitedKingdom_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. 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 = { PLANE_PAYLOAD_OVERRIDES = {
FA_18C_hornet: { FA_18C_hornet: {
CAS: "AIM-9M*2,AGM-65D*2,Mk-82*4,FLIR Pod,Fuel", CAP: "CAP HEAVY",
CAP: "AIM-120*4,AIM-9*2,AIM-7*2,Fuel", Intercept: "CAP HEAVY",
Escort: "AIM-120*4,AIM-9*2,AIM-7*2,Fuel", CAS: "CAS MAVERICK F",
PinpointStrike: "MK-82*8,AIM-9*2,AIM-7,FLIR Pod,Fuel", PinpointStrike: "STRIKE",
AntishipStrike: "MK-82*8,AIM-9*2,AIM-7,FLIR Pod,Fuel", SEAD: "SEAD",
SEAD: "AGM-88*2,AIM-9*2,AIM-7,FLIR Pod,Fuel*3" AntishipStrike: "ANTISHIP",
GroundAttack: "STRIKE"
}, },
JF_17: { A_10A: COMMON_OVERRIDE,
CAS: "PL-5Ex2, 2*SD-10x2, 800L Tank", A_10C: COMMON_OVERRIDE,
CAP: "PL-5Ex2, 2*GBU-12x2, BRM1x2, WMD7", AV8BNA: COMMON_OVERRIDE,
SEAD: "PL-5Ex2, LD-10x2, 1100L Tankx2, WMD7" C_101CC: COMMON_OVERRIDE,
}, F_5E_3: COMMON_OVERRIDE,
F_14B: COMMON_OVERRIDE,
F_14B: { F_15C: COMMON_OVERRIDE,
CAP: "AIM-54A-MK47*4, AIM-7M*2, AIM-9M*2, XT*2", F_16C_50: COMMON_OVERRIDE,
Escort: "AIM-54A-MK47*4, AIM-7M*2, AIM-9M*2, XT*2", JF_17: COMMON_OVERRIDE,
CAS: "AIM-54A-MK60*1, AIM-7M*1, AIM-9M*2, XT*2, Mk-82*2, LANTIRN", M_2000C: COMMON_OVERRIDE,
GroundAttack: "AIM54, AIM-9M*2, XT*2, GBU-12*4, LANTIRN", MiG_15bis: COMMON_OVERRIDE,
}, MiG_19P: COMMON_OVERRIDE,
MiG_21Bis: COMMON_OVERRIDE,
Su_25T: { AJS37: COMMON_OVERRIDE,
CAS: "APU-8 Vikhr-M*2,Kh-25ML,R-73*2,SPPU-22*2,Mercury LLTV Pod,MPS-410", Su_25T:COMMON_OVERRIDE,
SEAD: "Kh58*2_Kh25MPU*2_Kh25ML*2_R73*2_L-081_MPS-410" Su_25:COMMON_OVERRIDE,
}, Su_27:COMMON_OVERRIDE,
Su_33:COMMON_OVERRIDE,
Su_33: { MiG_29A:COMMON_OVERRIDE,
CAP: "R-73*4,R-27R*2,R-27ER*6", MiG_29G:COMMON_OVERRIDE,
Escort: "R-73*4,R-27R*2,R-27ER*6", MiG_29S:COMMON_OVERRIDE,
}, Su_24M:COMMON_OVERRIDE,
Su_30: COMMON_OVERRIDE,
AJS37: { Su_34: COMMON_OVERRIDE,
CAS: "CAS (75 GUN): RB-75*2, AKAN", MiG_23MLD: COMMON_OVERRIDE,
}, MiG_27K: COMMON_OVERRIDE,
Tornado_GR4: COMMON_OVERRIDE,
AV8BNA: { Tornado_IDS: COMMON_OVERRIDE,
CAS: "AS 2", Mirage_2000_5: COMMON_OVERRIDE,
SEAD: "Stand Off 2" 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:{ AH_64D:{
CAS: "AGM-114K*16" 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: { Su_25TM: {
SEAD: "Kh-31P*2_Kh-25ML*4_R-73*2_L-081_MPS410", 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, FA_18C_hornet,
F_14B, F_14B,
AV8BNA, AV8BNA,
Su_33,
UH_1H, UH_1H,
Mi_8MT, Mi_8MT,
Ka_50, Ka_50,
AH_1W,
OH_58D,
SA342L,
SA342M,
SA342Minigun,
SA342Mistral,
]
LHA_CAPABLE = [
AV8BNA,
UH_1H,
Mi_8MT,
Ka_50,
AH_1W,
OH_58D,
SA342L, SA342L,
SA342M, SA342M,

View File

@ -190,7 +190,7 @@ class Event:
# -- AA Site groups # -- AA Site groups
for i, ground_object in enumerate(cp.ground_objects): 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 g in ground_object.groups:
for u in g.units: for u in g.units:
if u.name == destroyed_ground_unit_name: if u.name == destroyed_ground_unit_name:

View File

@ -46,7 +46,7 @@ China_2000 = {
Tanker_Elnya_160 Tanker_Elnya_160
], ],
"shorad":[ "shorad":[
AirDefence.AAA_ZU_23_Closed, AirDefence.SPAAA_ZSU_23_4_Shilka,
AirDefence.Rapier_FSA_Launcher, # Standing as PL-9C Shorad AirDefence.Rapier_FSA_Launcher, # Standing as PL-9C Shorad
AirDefence.HQ_7_Self_Propelled_LN AirDefence.HQ_7_Self_Propelled_LN
], "aircraft_carrier": [ ], "aircraft_carrier": [
@ -56,5 +56,8 @@ China_2000 = {
Type_052C_Destroyer Type_052C_Destroyer
], "cruiser": [ ], "cruiser": [
Type_054A_Frigate, Type_054A_Frigate,
], "carrier_names": [
"001 Liaoning",
"002 Shandong",
] ]
} }

View File

@ -6,7 +6,7 @@ from dcs.helicopters import *
France_1995 = { France_1995 = {
"country": "France", "country": "France",
"side": "blue", "side": "blue",
"units":[ "units": [
M_2000C, M_2000C,
Mirage_2000_5, Mirage_2000_5,
@ -19,21 +19,25 @@ France_1995 = {
SA342L, SA342L,
Armor.MBT_Leclerc, 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, Unarmed.Transport_M818,
Infantry.Infantry_M4, Infantry.Infantry_M4,
Infantry.Infantry_M4, Infantry.Soldier_M249,
AirDefence.SAM_Roland_ADS, AirDefence.SAM_Roland_ADS,
AirDefence.SAM_Hawk_PCP, 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, CVN_74_John_C__Stennis,
LHA_1_Tarawa, LHA_1_Tarawa,
Armed_speedboat, Armed_speedboat,
], "shorad":[ ], "shorad": [
AirDefence.HQ_7_Self_Propelled_LN, AirDefence.HQ_7_Self_Propelled_LN,
AirDefence.SAM_Roland_ADS AirDefence.SAM_Roland_ADS
] ]

View File

@ -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"
]
}

View File

@ -27,6 +27,7 @@ Germany_1990 = {
Unarmed.Transport_M818, Unarmed.Transport_M818,
Infantry.Infantry_M4, Infantry.Infantry_M4,
Infantry.Soldier_M249,
AirDefence.SAM_Roland_ADS, AirDefence.SAM_Roland_ADS,
AirDefence.SAM_Hawk_PCP, AirDefence.SAM_Hawk_PCP,

View File

@ -43,5 +43,11 @@ India_2010 = {
AirDefence.SAM_SA_13_Strela_10M3_9A35M3, AirDefence.SAM_SA_13_Strela_10M3_9A35M3,
AirDefence.SAM_SA_8_Osa_9A33, AirDefence.SAM_SA_8_Osa_9A33,
AirDefence.SAM_SA_19_Tunguska_2S6 AirDefence.SAM_SA_19_Tunguska_2S6
], "aircraft_carrier": [
CV_1143_5_Admiral_Kuznetsov,
], "destroyer": [
FSG_1241_1MP_Molniya,
], "carrier_names": [
"INS Vikramaditya"
] ]
} }

View File

@ -31,7 +31,16 @@ Italy_1990 = {
CVN_74_John_C__Stennis, CVN_74_John_C__Stennis,
LHA_1_Tarawa, LHA_1_Tarawa,
Armed_speedboat, Armed_speedboat,
], "shorad":[ ], "shorad":[
AirDefence.SAM_Avenger_M1097, AirDefence.SAM_Avenger_M1097,
], "helicopter_carrier": [
LHA_1_Tarawa,
], "destroyer": [
Oliver_Hazzard_Perry_class,
], "cruiser": [
Ticonderoga_class,
], "lha_names": [
"Giuseppe Garibaldi",
"Cavour",
] ]
} }

View File

@ -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,
]
}

View File

@ -17,10 +17,12 @@ Spain_1990 = {
E_3A, E_3A,
Armor.MBT_M60A3_Patton, Armor.MBT_M60A3_Patton,
Armor.MBT_Leopard_2,
Armor.APC_M113, Armor.APC_M113,
Unarmed.Transport_M818, Unarmed.Transport_M818,
Infantry.Infantry_M4, Infantry.Infantry_M4,
Infantry.Soldier_M249,
AirDefence.SAM_Hawk_PCP, AirDefence.SAM_Hawk_PCP,
AirDefence.SAM_Avenger_M1097, AirDefence.SAM_Avenger_M1097,
@ -30,5 +32,17 @@ Spain_1990 = {
Armed_speedboat, Armed_speedboat,
], "shorad":[ ], "shorad":[
AirDefence.SAM_Avenger_M1097, 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",
] ]
} }

View File

@ -21,9 +21,12 @@ UnitedKingdom_1990 = {
Armor.MBT_Challenger_II, Armor.MBT_Challenger_II,
Armor.IFV_MCV_80, Armor.IFV_MCV_80,
Armor.APC_M1043_HMMWV_Armament,
Armor.ATGM_M1045_HMMWV_TOW,
Unarmed.Transport_M818, Unarmed.Transport_M818,
Infantry.Infantry_M4, Infantry.Infantry_M4,
Infantry.Soldier_M249,
AirDefence.Rapier_FSA_Launcher, AirDefence.Rapier_FSA_Launcher,
AirDefence.SAM_Avenger_M1097, # Standing as Starstreak AirDefence.SAM_Avenger_M1097, # Standing as Starstreak
@ -31,5 +34,17 @@ UnitedKingdom_1990 = {
CVN_74_John_C__Stennis, CVN_74_John_C__Stennis,
LHA_1_Tarawa, LHA_1_Tarawa,
Armed_speedboat, 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",
] ]
} }

View File

@ -17,6 +17,8 @@ USA_1955 = {
Armor.MT_M4A4_Sherman_Firefly, Armor.MT_M4A4_Sherman_Firefly,
Armor.MT_M4_Sherman, Armor.MT_M4_Sherman,
Armor.MBT_M60A3_Patton,
Armor.APC_M2A1,
Armor.M30_Cargo_Carrier, Armor.M30_Cargo_Carrier,
Unarmed.Transport_M818, Unarmed.Transport_M818,

View File

@ -48,5 +48,15 @@ USA_1990 = {
Oliver_Hazzard_Perry_class, Oliver_Hazzard_Perry_class,
], "cruiser": [ ], "cruiser": [
Ticonderoga_class, 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"
] ]
} }

View File

@ -16,8 +16,6 @@ USA_2005 = {
A_10C, A_10C,
AV8BNA, AV8BNA,
B_1B,
KC_135, KC_135,
S_3B_Tanker, S_3B_Tanker,
C_130, C_130,
@ -28,6 +26,7 @@ USA_2005 = {
Armor.MBT_M1A2_Abrams, Armor.MBT_M1A2_Abrams,
Armor.ATGM_M1134_Stryker, Armor.ATGM_M1134_Stryker,
Armor.APC_M1126_Stryker_ICV,
Armor.IFV_M2A2_Bradley, Armor.IFV_M2A2_Bradley,
Armor.IFV_LAV_25, Armor.IFV_LAV_25,
Armor.APC_M1043_HMMWV_Armament, Armor.APC_M1043_HMMWV_Armament,
@ -56,5 +55,15 @@ USA_2005 = {
Oliver_Hazzard_Perry_class, Oliver_Hazzard_Perry_class,
], "cruiser": [ ], "cruiser": [
Ticonderoga_class, 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"
] ]
} }

View File

@ -7,6 +7,7 @@ from dcs.task import *
from dcs.vehicles import * from dcs.vehicles import *
from game.game_stats import GameStats from game.game_stats import GameStats
from game.infos.information import Information
from gen.conflictgen import Conflict from gen.conflictgen import Conflict
from gen.flights.ai_flight_planner import FlightPlanner from gen.flights.ai_flight_planner import FlightPlanner
from gen.ground_forces.ai_ground_planner import GroundPlanner from gen.ground_forces.ai_ground_planner import GroundPlanner
@ -52,7 +53,7 @@ AWACS_BUDGET_COST = 4
PLAYER_BUDGET_INITIAL = 450 PLAYER_BUDGET_INITIAL = 450
# Base post-turn bonus value # Base post-turn bonus value
PLAYER_BUDGET_BASE = 10 PLAYER_BUDGET_BASE = 20
# Bonus multiplier logarithm base # Bonus multiplier logarithm base
PLAYER_BUDGET_IMPORTANCE_LOG = 2 PLAYER_BUDGET_IMPORTANCE_LOG = 2
@ -84,6 +85,7 @@ class Game:
self.game_stats.update(self) self.game_stats.update(self)
self.planners = {} self.planners = {}
self.ground_planners = {} self.ground_planners = {}
self.informations = []
def _roll(self, prob, mult): def _roll(self, prob, mult):
if self.settings.version == "dev": if self.settings.version == "dev":
@ -208,13 +210,17 @@ class Game:
else: else:
event.skip() event.skip()
for cp in self.theater.enemy_points():
self._commision_units(cp) self._enemy_reinforcement()
self._budget_player() self._budget_player()
if not no_action: if not no_action:
for cp in self.theater.player_points(): for cp in self.theater.player_points():
cp.base.affect_strength(+PLAYER_BASE_STRENGTH_RECOVERY) 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 = [] self.ignored_cps = []
if 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 @property
def current_turn_daytime(self): def current_turn_daytime(self):
return ["dawn", "day", "dusk", "night"][self.turn % 4] return ["dawn", "day", "dusk", "night"][self.turn % 4]

11
game/infos/information.py Normal file
View File

@ -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

View File

@ -18,7 +18,6 @@ class Operation:
conflict = None # type: Conflict conflict = None # type: Conflict
armorgen = None # type: ArmorConflictGenerator armorgen = None # type: ArmorConflictGenerator
airgen = None # type: AircraftConflictGenerator airgen = None # type: AircraftConflictGenerator
extra_aagen = None # type: ExtraAAConflictGenerator
shipgen = None # type: ShipGenerator shipgen = None # type: ShipGenerator
triggersgen = None # type: TriggersGenerator triggersgen = None # type: TriggersGenerator
airsupportgen = None # type: AirSupportConflictGenerator airsupportgen = None # type: AirSupportConflictGenerator
@ -77,7 +76,6 @@ class Operation:
player_country = self.from_cp.captured and self.attacker_country or self.defender_country 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 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): def prepare(self, terrain: Terrain, is_quick: bool):
with open("resources/default_options.lua", "r") as f: with open("resources/default_options.lua", "r") as f:
@ -195,12 +193,12 @@ class Operation:
# Inject Lua Scripts # Inject Lua Scripts
load_mist = TriggerStart(comment="Load Mist Lua Framework") 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()))) load_mist.add_action(DoScript(String(f.read())))
self.current_mission.triggerrules.triggers.append(load_mist) self.current_mission.triggerrules.triggers.append(load_mist)
load_dcs_libe = TriggerStart(comment="Load DCS Liberation Script") 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() script = f.read()
json_location = "[["+os.path.abspath("resources\\scripts\\json.lua")+"]]" json_location = "[["+os.path.abspath("resources\\scripts\\json.lua")+"]]"
state_location = "[[" + os.path.abspath("state.json") + "]]" state_location = "[[" + os.path.abspath("state.json") + "]]"

View File

@ -7,7 +7,7 @@ class Settings:
labels = "Full" labels = "Full"
only_player_takeoff = True only_player_takeoff = True
night_disabled = False night_disabled = False
supercarrier = False
multiplier = 1 multiplier = 1
sams = True sams = True
cold_start = False cold_start = False

View File

@ -42,18 +42,14 @@ TRANSPORT_LANDING_ALT = 2000
DEFENCE_ENGAGEMENT_MAX_DISTANCE = 60000 DEFENCE_ENGAGEMENT_MAX_DISTANCE = 60000
INTERCEPT_MAX_DISTANCE = 200000 INTERCEPT_MAX_DISTANCE = 200000
GROUP_VERTICAL_OFFSET = 300
class AircraftConflictGenerator: class AircraftConflictGenerator:
escort_targets = [] # type: typing.List[typing.Tuple[FlyingGroup, int]] escort_targets = [] # type: typing.List[typing.Tuple[FlyingGroup, int]]
vertical_offset = None # type: int
def __init__(self, mission: Mission, conflict: Conflict, settings: Settings): def __init__(self, mission: Mission, conflict: Conflict, settings: Settings):
self.m = mission self.m = mission
self.settings = settings self.settings = settings
self.conflict = conflict self.conflict = conflict
self.vertical_offset = 0
self.escort_targets = [] self.escort_targets = []
def _start_type(self) -> StartType: def _start_type(self) -> StartType:
@ -91,6 +87,8 @@ class AircraftConflictGenerator:
did_load_loadout = False did_load_loadout = False
unit_type = group.units[0].unit_type unit_type = group.units[0].unit_type
print("SETUP GROUP : " + str(for_task) + " -- " + str(group.name))
if unit_type in db.PLANE_PAYLOAD_OVERRIDES: if unit_type in db.PLANE_PAYLOAD_OVERRIDES:
override_loadout = db.PLANE_PAYLOAD_OVERRIDES[unit_type] override_loadout = db.PLANE_PAYLOAD_OVERRIDES[unit_type]
if type(override_loadout) == dict: if type(override_loadout) == dict:
@ -163,12 +161,11 @@ class AircraftConflictGenerator:
assert count > 0 assert count > 0
assert unit is not None assert unit is not None
self.vertical_offset += GROUP_VERTICAL_OFFSET
if unit_type in helicopters.helicopter_map.values(): 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 speed = WARM_START_HELI_AIRSPEED
else: else:
alt = WARM_START_ALTITUDE + self.vertical_offset alt = WARM_START_ALTITUDE
speed = WARM_START_AIRSPEED speed = WARM_START_AIRSPEED
pos = Point(at.x + random.randint(100, 1000), at.y + random.randint(100, 1000)) 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) group = self.generate_planned_flight(cp, country, flight)
if flight.flight_type == FlightType.INTERCEPTION: if flight.flight_type == FlightType.INTERCEPTION:
self.setup_group_as_intercept_flight(group, flight) 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) 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) 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) self.setup_group_as_sead_flight(group, flight)
else:
self.setup_group_as_cap_flight(group, flight)
self._setup_custom_payload(flight, group) self._setup_custom_payload(flight, group)
def generate_planned_flight(self, cp, country, flight:Flight): 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(CASTaskAction())
group.points[0].tasks.append(OptReactOnThreat(OptReactOnThreat.Values.EvadeFire)) group.points[0].tasks.append(OptReactOnThreat(OptReactOnThreat.Values.EvadeFire))
group.points[0].tasks.append(OptROE(OptROE.Values.OpenFireWeaponFree)) group.points[0].tasks.append(OptROE(OptROE.Values.OpenFireWeaponFree))
group.points[0].tasks.append(OptRestrictJettison(True))
for point in flight.points: for point in flight.points:
group.add_waypoint(Point(point.x,point.y), point.alt) group.add_waypoint(Point(point.x,point.y), point.alt)
def setup_group_as_sead_flight(self, group, flight): def setup_group_as_sead_flight(self, group, flight):
group.task = SEAD.name
self._setup_group(group, SEAD, flight.client_count) self._setup_group(group, SEAD, flight.client_count)
group.points[0].tasks.clear() group.points[0].tasks.clear()
group.points[0].tasks.append(SEADTaskAction()) group.points[0].tasks.append(SEADTaskAction())
group.points[0].tasks.append(OptReactOnThreat(OptReactOnThreat.Values.EvadeFire)) 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: for point in flight.points:
group.add_waypoint(Point(point.x,point.y), point.alt) group.add_waypoint(Point(point.x,point.y), point.alt)

View File

@ -56,11 +56,20 @@ class EnviromentGenerator:
start_time = self.game.current_day start_time = self.game.current_day
daytime = self.game.current_turn_daytime 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)) 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)) start_time += timedelta(hours=random.randint(*time_range))
logging.info("time - {}, slot - {}, night skipped - {}".format( logging.info("time - {}, slot - {}, night skipped - {}".format(

View File

@ -13,7 +13,11 @@ class CarrierGroupGenerator(GroupGenerator):
# Add carrier # Add carrier
if "aircraft_carrier" in self.faction.keys(): 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) self.add_unit(carrier_type, "Carrier", self.position.x, self.position.y, self.heading)
else: else:
return 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, "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, "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) self.add_unit(dd_type, "DD4", self.position.x + 450, self.position.y - 850, self.heading)
self.get_generated_group().points[0].speed = 20

View File

@ -3,23 +3,22 @@ import random
from gen.sam.group_generator import GroupGenerator from gen.sam.group_generator import GroupGenerator
class HelicopterCarrierGroupGenerator(GroupGenerator): class LHAGroupGenerator(GroupGenerator):
def __init__(self, game, ground_object, faction): def __init__(self, game, ground_object, faction):
super(HelicopterCarrierGroupGenerator, self).__init__(game, ground_object) super(LHAGroupGenerator, self).__init__(game, ground_object)
self.faction = faction self.faction = faction
def generate(self): def generate(self):
# Add carrier # Add carrier
if self.faction["aircraft_carrier"]: if "helicopter_carrier" in self.faction.keys():
carrier_type = random.choice(self.faction["helicopter_carrier"]) 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 # Add destroyers escort
dd_type = random.choice(self.faction["destroyer"]) 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, "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, "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.get_generated_group().points[0].speed = 20
self.add_unit(dd_type, "DD4", self.position.x + 150, self.position.y - 250, self.heading)

View File

@ -1,15 +1,11 @@
import random
from dcs.vehicles import Armor
from game import db from game import db
from gen.defenses.armored_group_generator import ArmoredGroupGenerator
from gen.fleet.carrier_group import CarrierGroupGenerator from gen.fleet.carrier_group import CarrierGroupGenerator
from gen.fleet.lha_group import LHAGroupGenerator
def generate_carrier_group(faction:str, game, ground_object): 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 parentCp: The parent control point
:param ground_object: The ground object which will own the ship group :param ground_object: The ground object which will own the ship group
:param country: Owner country :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 = CarrierGroupGenerator(game, ground_object, db.FACTIONS[faction])
generator.generate() generator.generate()
return generator.get_generated_group() 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()

View File

@ -21,20 +21,6 @@ SEAD_EVERY_X_MINUTES = 40
class FlightPlanner: 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): def __init__(self, from_cp, game):
# TODO : have the flight planner depend on a 'stance' setting : [Defensive, Aggresive... etc] and faction doctrine # 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 # TODO : the flight planner should plan package and operations
@ -52,6 +38,7 @@ class FlightPlanner:
self.cas_flights = [] self.cas_flights = []
self.strike_flights = [] self.strike_flights = []
self.sead_flights = [] self.sead_flights = []
self.custom_flights = []
self.flights = [] self.flights = []
self.potential_sead_targets = [] self.potential_sead_targets = []
self.potential_strike_targets = [] self.potential_strike_targets = []

View File

@ -3,6 +3,7 @@ from enum import Enum
from dcs.vehicles import * from dcs.vehicles import *
from gen import Conflict
from gen.ground_forces.combat_stance import CombatStance from gen.ground_forces.combat_stance import CombatStance
from theater import ControlPoint from theater import ControlPoint
@ -156,6 +157,7 @@ class CombatGroup:
self.units = [] self.units = []
self.role = role self.role = role
self.assigned_enemy_cp = None self.assigned_enemy_cp = None
self.start_position = None
def __str__(self): def __str__(self):
s = "" s = ""

View File

@ -77,19 +77,16 @@ class GroundObjectsGenerator:
vehicle.position.y = u.position.y vehicle.position.y = u.position.y
vehicle.heading = u.heading vehicle.heading = u.heading
vg.add_unit(vehicle) vg.add_unit(vehicle)
elif ground_object.dcs_identifier == "CARRIER": elif ground_object.dcs_identifier in ["CARRIER", "LHA"]:
for g in ground_object.groups: for g in ground_object.groups:
if len(g.units) > 0: if len(g.units) > 0:
utype = unit_type_from_name(g.units[0].type) 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 = 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) sg.units[0].name = self.m.string(g.units[0].name)
for i, u in enumerate(g.units): for i, u in enumerate(g.units):
if i > 0: 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 = 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.x = u.position.x
ship.position.y = u.position.y ship.position.y = u.position.y

View File

@ -15,22 +15,13 @@ from userdata import persistency, logging as logging_module
if __name__ == "__main__": 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]) custom_payloads = os.path.join(os.path.dirname(os.path.realpath(__file__)), "..\\resources\\customized_payloads")
source_path = os.path.join(os.path.dirname(os.path.realpath(__file__)), "..\\resources\\payloads") if os.path.exists(custom_payloads):
compiled_path = os.path.join(os.path.dirname(os.path.realpath(__file__)), "..\\resources\\payloads") dcs.planes.FlyingType.payload_dirs.append(custom_payloads)
the_path = None
if os.path.exists(source_path):
the_path = source_path
else:
the_path = compiled_path
dcs.planes.FlyingType.payload_dirs = [ VERSION_STRING = "2.0"
the_path
]
VERSION_STRING = sys.argv[2]
logging_module.setup_version_string(VERSION_STRING) logging_module.setup_version_string(VERSION_STRING)
logging.info("Using {} as userdata folder".format(persistency.base_path())) logging.info("Using {} as userdata folder".format(persistency.base_path()))
@ -47,7 +38,6 @@ if __name__ == "__main__":
uiconstants.load_aircraft_icons() uiconstants.load_aircraft_icons()
uiconstants.load_vehicle_icons() uiconstants.load_vehicle_icons()
persistency.setup(sys.argv[1])
css = "" css = ""
with open("./resources/stylesheets/style.css") as stylesheet: with open("./resources/stylesheets/style.css") as stylesheet:

View File

@ -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))

View File

@ -20,8 +20,10 @@ LABELS_OPTIONS = ["Full", "Abbreviated", "Dot Only", "Off"]
SKILL_OPTIONS = ["Average", "Good", "High", "Excellent"] SKILL_OPTIONS = ["Average", "Good", "High", "Excellent"]
COLORS: Dict[str, QColor] = { COLORS: Dict[str, QColor] = {
"red": QColor(255, 125, 125), "dark_red": QColor(140, 20, 20),
"bright_red": QColor(200, 64, 64), "red": QColor(200, 80, 80),
"bright_red": QColor(150, 80, 80),
"super_red": QColor(200, 120, 120),
"blue": QColor(164, 164, 255), "blue": QColor(164, 164, 255),
"dark_blue": QColor(45, 62, 80), "dark_blue": QColor(45, 62, 80),
"white": QColor(255, 255, 255), "white": QColor(255, 255, 255),
@ -29,8 +31,8 @@ COLORS: Dict[str, QColor] = {
"bright_green": QColor(64, 200, 64), "bright_green": QColor(64, 200, 64),
"black": QColor(0, 0, 0), "black": QColor(0, 0, 0),
"black_transparent": QColor(0, 0, 0, 64), "black_transparent": QColor(0, 0, 0, 64),
"blue_transparent": QColor(164, 164, 255, 64), "blue_transparent": QColor(164, 164, 255, 32),
"red_transparent": QColor(255, 125, 125, 64) "red_transparent": QColor(255, 125, 125, 32)
} }
@ -59,7 +61,8 @@ def load_icons():
ICONS["Night"] = QPixmap("./resources/ui/daytime/night.png") ICONS["Night"] = QPixmap("./resources/ui/daytime/night.png")
ICONS["Money"] = QPixmap("./resources/ui/misc/money_icon.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["Settings"] = QPixmap("./resources/ui/misc/settings.png")
ICONS["Statistics"] = QPixmap("./resources/ui/misc/statistics.png") ICONS["Statistics"] = QPixmap("./resources/ui/misc/statistics.png")
ICONS["Ordnance"] = QPixmap("./resources/ui/misc/ordnance_icon.png") ICONS["Ordnance"] = QPixmap("./resources/ui/misc/ordnance_icon.png")

View File

@ -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("<b>Player : </b>"),0,0)
self.layout.addWidget(self.player_name,0,1)
self.layout.addWidget(QLabel("<b>Enemy : </b>"),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("")

View File

@ -2,6 +2,7 @@ from PySide2.QtWidgets import QFrame, QHBoxLayout, QPushButton, QVBoxLayout
from game import Game from game import Game
from qt_ui.widgets.QBudgetBox import QBudgetBox 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.windows.stats.QStatsWindow import QStatsWindow
from qt_ui.widgets.QTurnCounter import QTurnCounter from qt_ui.widgets.QTurnCounter import QTurnCounter
@ -30,12 +31,17 @@ class QTopPanel(QFrame):
self.passTurnButton.clicked.connect(self.passTurn) self.passTurnButton.clicked.connect(self.passTurn)
self.proceedButton = QPushButton("Proceed") self.proceedButton = QPushButton("Proceed")
self.proceedButton.setIcon(CONST.ICONS["PassTurn"]) self.proceedButton.setIcon(CONST.ICONS["Proceed"])
self.proceedButton.setProperty("style", "btn-primary") self.proceedButton.setProperty("style", "btn-primary")
self.proceedButton.clicked.connect(self.proceed) self.proceedButton.clicked.connect(self.proceed)
if self.game and self.game.turn == 0: if self.game and self.game.turn == 0:
self.proceedButton.setEnabled(False) 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.submenus = QVBoxLayout()
self.settings = QPushButton("Settings") self.settings = QPushButton("Settings")
@ -52,10 +58,11 @@ class QTopPanel(QFrame):
self.submenus.addWidget(self.statistics) self.submenus.addWidget(self.statistics)
self.layout = QHBoxLayout() self.layout = QHBoxLayout()
self.layout.addStretch(1) self.layout.addWidget(self.factionsInfos)
self.layout.addLayout(self.submenus)
self.layout.addWidget(self.turnCounter) self.layout.addWidget(self.turnCounter)
self.layout.addWidget(self.budgetBox) self.layout.addWidget(self.budgetBox)
self.layout.addLayout(self.submenus)
self.layout.addStretch(1)
self.layout.addWidget(self.passTurnButton) self.layout.addWidget(self.passTurnButton)
self.layout.addWidget(self.proceedButton) self.layout.addWidget(self.proceedButton)
self.setLayout(self.layout) self.setLayout(self.layout)
@ -65,6 +72,10 @@ class QTopPanel(QFrame):
if game is not None: if game is not None:
self.turnCounter.setCurrentTurn(self.game.turn, self.game.current_day) self.turnCounter.setCurrentTurn(self.game.turn, self.game.current_day)
self.budgetBox.setBudget(self.game.budget, self.game.budget_reward_amount) 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): def openSettings(self):
self.subwindow = QSettingsWindow(self.game) self.subwindow = QSettingsWindow(self.game)
@ -75,7 +86,7 @@ class QTopPanel(QFrame):
self.subwindow.show() self.subwindow.show()
def passTurn(self): def passTurn(self):
self.game.pass_turn() self.game.pass_turn(no_action=True)
GameUpdateSignal.get_instance().updateGame(self.game) GameUpdateSignal.get_instance().updateGame(self.game)
self.proceedButton.setEnabled(True) self.proceedButton.setEnabled(True)

View File

@ -5,6 +5,7 @@ from PySide2.QtCore import Qt, QRect, QPointF
from PySide2.QtGui import QPixmap, QBrush, QColor, QWheelEvent, QPen, QFont from PySide2.QtGui import QPixmap, QBrush, QColor, QWheelEvent, QPen, QFont
from PySide2.QtWidgets import QGraphicsView, QFrame, QGraphicsOpacityEffect from PySide2.QtWidgets import QGraphicsView, QFrame, QGraphicsOpacityEffect
from dcs import Point from dcs import Point
from dcs.mapping import point_from_heading
import qt_ui.uiconstants as CONST import qt_ui.uiconstants as CONST
from game import Game, db from game import Game, db
@ -114,12 +115,17 @@ class QLiberationMap(QGraphicsView):
unit = db.unit_type_from_name(u.type) unit = db.unit_type_from_name(u.type)
if unit.threat_range > max_range: if unit.threat_range > max_range:
max_range = unit.threat_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"): if self.get_display_rule("lines"):
self.scene_create_lines_for_cp(cp) self.scene_create_lines_for_cp(cp)
for cp in self.game.theater.controlpoints:
if self.get_display_rule("flight_paths"): if self.get_display_rule("flight_paths"):
if cp.id in self.game.planners.keys(): if cp.id in self.game.planners.keys():
planner = self.game.planners[cp.id] planner = self.game.planners[cp.id]
@ -138,38 +144,33 @@ class QLiberationMap(QGraphicsView):
pos = self._transform_point(cp.position) pos = self._transform_point(cp.position)
for connected_cp in cp.connected_points: for connected_cp in cp.connected_points:
pos2 = self._transform_point(connected_cp.position) pos2 = self._transform_point(connected_cp.position)
if connected_cp.captured != cp.captured: if not cp.captured:
color = CONST.COLORS["red"] color = CONST.COLORS["red"]
elif connected_cp.captured and cp.captured: elif cp.captured:
color = CONST.COLORS["blue"] color = CONST.COLORS["blue"]
else: else:
color = CONST.COLORS["black_transparent"] color = CONST.COLORS["red"]
pen = QPen(brush=color) pen = QPen(brush=color)
pen.setColor(color) pen.setColor(color)
pen.setWidth(4) pen.setWidth(16)
scene.addLine(pos[0], pos[1], pos2[0], pos2[1], pen=pen)
if cp.captured and not connected_cp.captured and Conflict.has_frontline_between(cp, connected_cp): 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 cp.captured:
if not frontline: scene.addLine(pos[0], pos[1], pos2[0], pos2[1], pen=pen)
continue 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: else:
frontline_pos = frontline_pos.point_from_heading(heading + 180, 5000) scene.addLine(pos[0], pos[1], pos2[0], pos2[1], pen=pen)
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)
def _frontline_vector(self, from_cp: ControlPoint, to_cp: ControlPoint): def _frontline_vector(self, from_cp: ControlPoint, to_cp: ControlPoint):
# Cache mechanism to avoid performing frontline vector computation on every frame # Cache mechanism to avoid performing frontline vector computation on every frame

View File

@ -37,24 +37,24 @@ class QMapControlPoint(QGraphicsRectItem):
painter.setPen(self.pen_color) painter.setPen(self.pen_color)
r = option.rect r = option.rect
painter.drawChord(r, -180*16, -180*16) painter.drawEllipse(r.x(), r.y(), r.width(), r.height())
gauge = QRect(r.x(), #gauge = QRect(r.x(),
r.y()+CONST.CP_SIZE/2 + 2, # r.y()+CONST.CP_SIZE/2 + 2,
r.width(), # r.width(),
CONST.CP_SIZE / 4) # CONST.CP_SIZE / 4)
painter.setBrush(CONST.COLORS["bright_red"]) #painter.setBrush(CONST.COLORS["bright_red"])
painter.setPen(CONST.COLORS["black"]) #painter.setPen(CONST.COLORS["black"])
painter.drawRect(gauge) #painter.drawRect(gauge)
gauge2 = QRect(r.x(), #gauge2 = QRect(r.x(),
r.y() + CONST.CP_SIZE / 2 + 2, # r.y() + CONST.CP_SIZE / 2 + 2,
r.width()*self.model.base.strength, # r.width()*self.model.base.strength,
CONST.CP_SIZE / 4) # CONST.CP_SIZE / 4)
painter.setBrush(CONST.COLORS["green"]) #painter.setBrush(CONST.COLORS["green"])
painter.drawRect(gauge2) #painter.drawRect(gauge2)
else: else:
# TODO : not drawing sunk carriers. Can be improved to display sunk carrier. # TODO : not drawing sunk carriers. Can be improved to display sunk carrier.
pass pass
@ -64,6 +64,9 @@ class QMapControlPoint(QGraphicsRectItem):
self.update() self.update()
self.setCursor(Qt.PointingHandCursor) self.setCursor(Qt.PointingHandCursor)
def mouseMoveEvent(self, event:QGraphicsSceneMouseEvent):
self.update()
def hoverLeaveEvent(self, event: QGraphicsSceneHoverEvent): def hoverLeaveEvent(self, event: QGraphicsSceneHoverEvent):
self.update() self.update()
@ -87,9 +90,9 @@ class QMapControlPoint(QGraphicsRectItem):
@property @property
def brush_color(self)->QColor: def brush_color(self)->QColor:
if self.parent.game.player_country in db.BLUEFOR_FACTIONS: 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: 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 @property
def pen_color(self) -> QColor: def pen_color(self) -> QColor:

View File

@ -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.QtGui import QPainter
from PySide2.QtWidgets import QGraphicsRectItem, QGraphicsItem from PySide2.QtWidgets import QGraphicsRectItem, QGraphicsItem, QGraphicsSceneHoverEvent, QGraphicsSceneMouseEvent
import qt_ui.uiconstants as CONST import qt_ui.uiconstants as CONST
from game import db from game import db
@ -41,8 +41,20 @@ class QMapGroundObject(QGraphicsRectItem):
painter.save() painter.save()
if not self.model.is_dead and not self.cp.captured: if not self.model.is_dead and not self.cp.captured:
painter.drawPixmap(option.rect, CONST.ICONS[self.model.category]) 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"]) painter.drawPixmap(option.rect, CONST.ICONS[self.model.category + "_blue"])
else: else:
painter.drawPixmap(option.rect, CONST.ICONS["destroyed"]) painter.drawPixmap(option.rect, CONST.ICONS["destroyed"])
painter.restore() 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()

View File

@ -1,3 +1,4 @@
import sys
import webbrowser import webbrowser
from PySide2 import QtGui from PySide2 import QtGui
@ -73,7 +74,7 @@ class QLiberationWindow(QMainWindow):
def initToolbar(self): def initToolbar(self):
self.tool_bar = self.addToolBar("File") self.tool_bar = self.addToolBar("File")
self.tool_bar.addAction(self.newGameAction) 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) self.tool_bar.addAction(self.saveGameAction)
def initMenuBar(self): def initMenuBar(self):
@ -81,15 +82,18 @@ class QLiberationWindow(QMainWindow):
file_menu = self.menu.addMenu("File") file_menu = self.menu.addMenu("File")
file_menu.addAction(self.newGameAction) 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(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 = self.menu.addMenu("Help")
help_menu.addAction("Online Manual", lambda: webbrowser.open_new_tab(URLS["Manual"])) #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("Troubleshooting Guide", lambda: webbrowser.open_new_tab(URLS["Troubleshooting"]))
help_menu.addAction("Modding Guide", lambda: webbrowser.open_new_tab(URLS["Modding"])) #help_menu.addAction("Modding Guide", lambda: webbrowser.open_new_tab(URLS["Modding"]))
help_menu.addSeparator() #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("Contribute", lambda: webbrowser.open_new_tab(URLS["Repository"]))
help_menu.addAction("Forum Thread", lambda: webbrowser.open_new_tab(URLS["ForumThread"])) 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"])) help_menu.addAction("Report an issue", lambda: webbrowser.open_new_tab(URLS["Issues"]))
@ -151,6 +155,13 @@ class QLiberationWindow(QMainWindow):
self.game = game self.game = game
GameUpdateSignal.get_instance().updateGame(self.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): def setGame(self, game: Game):
self.game = game self.game = game
@ -158,10 +169,11 @@ class QLiberationWindow(QMainWindow):
text = "<h3>DCS Liberation</h3>" + \ text = "<h3>DCS Liberation</h3>" + \
"<h4>Repository</h4>" + \ "<h4>Repository</h4>" + \
"<b>Source code :</b> https://github.com/shdwp/dcs_liberation<br/>" + \ "<b>Source code :</b> https://github.com/shdwp/dcs_liberation<br/>" + \
"<h4>Contributors</h4>" + \ "<h4>Authors/Contributors</h4><br/>" + \
"<b>Author :</b> sdwp<br/><br/>" + \ "<b>shdwp</b>, <b>Khopa</b>, <b>Wrycu</b>, <b>calvinmorrow</b>, <b>JohanAberg</b><br/>" + \
"<b>Contributors :</b> Khopa, Wrycu, calvinmorrow, JohanAberg<br/><br/>" + \ "<h4>Special Thanks :</h4>" \
"<b>Special Thanks :</b> rp- (pydcs framework) " "<b>rp-</b> <i>for the pydcs framework</i><br/>"\
"<b>Grimes (mrSkortch)</b> & <b>Speed</b> <i>for the MIST framework</i><br/>"
about = QMessageBox() about = QMessageBox()
about.setWindowTitle("About DCS Liberation") about.setWindowTitle("About DCS Liberation")

View File

@ -35,8 +35,10 @@ class NewGameWizard(QtWidgets.QWizard):
isTerrainPg = self.field("isTerrainPg") isTerrainPg = self.field("isTerrainPg")
isTerrainNttr = self.field("isTerrainNttr") isTerrainNttr = self.field("isTerrainNttr")
isTerrainCaucasusSmall = self.field("isTerrainCaucasusSmall") isTerrainCaucasusSmall = self.field("isTerrainCaucasusSmall")
isTerrainCaucasusSmallInverted = self.field("isTerrainCaucasusSmallInverted")
isIranianCampaignTheater = self.field("isIranianCampaignTheater") isIranianCampaignTheater = self.field("isIranianCampaignTheater")
isTerrainNormandy = self.field("isTerrainNormandy") isTerrainNormandy = self.field("isTerrainNormandy")
isTerrainEmirates = self.field("isTerrainEmirates")
timePeriod = db.TIME_PERIODS[list(db.TIME_PERIODS.keys())[self.field("timePeriod")]] timePeriod = db.TIME_PERIODS[list(db.TIME_PERIODS.keys())[self.field("timePeriod")]]
sams = self.field("sams") sams = self.field("sams")
midGame = self.field("midGame") midGame = self.field("midGame")
@ -51,17 +53,17 @@ class NewGameWizard(QtWidgets.QWizard):
conflicttheater = nevada.NevadaTheater() conflicttheater = nevada.NevadaTheater()
elif isTerrainCaucasusSmall: elif isTerrainCaucasusSmall:
conflicttheater = caucasus.WesternGeorgia() conflicttheater = caucasus.WesternGeorgia()
elif isTerrainCaucasusSmallInverted:
conflicttheater = caucasus.WesternGeorgiaInverted()
elif isIranianCampaignTheater: elif isIranianCampaignTheater:
conflicttheater = persiangulf.IranianCampaign() conflicttheater = persiangulf.IranianCampaign()
elif isTerrainEmirates:
conflicttheater = persiangulf.Emirates()
elif isTerrainNormandy: elif isTerrainNormandy:
conflicttheater = normandy.NormandyTheater() conflicttheater = normandy.NormandyTheater()
else: else:
conflicttheater = caucasus.CaucasusTheater() 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, self.generatedGame = self.start_new_game(player_name, enemy_name, conflicttheater, sams, midGame, multiplier,
timePeriod) timePeriod)
@ -204,18 +206,22 @@ class TheaterConfiguration(QtWidgets.QWizardPage):
# Terrain selection # Terrain selection
terrainGroup = QtWidgets.QGroupBox("Terrain") 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 = QtWidgets.QRadioButton("Caucasus - Western Georgia [RECOMMENDED]")
terrainCaucasusSmall.setIcon(QtGui.QIcon(CONST.ICONS["Terrain_Caucasus"])) 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 = QtWidgets.QRadioButton("Persian Gulf - Full Map")
terrainPg.setIcon(QtGui.QIcon(CONST.ICONS["Terrain_Persian_Gulf"])) 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"])) 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 = QtWidgets.QRadioButton("Nevada - Full")
terrainNttr.setIcon(QtGui.QIcon(CONST.ICONS["Terrain_Nevada"])) 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"])) terrainNormandy.setIcon(QtGui.QIcon(CONST.ICONS["Terrain_Normandy"]))
terrainCaucasusSmall.setChecked(True) terrainCaucasusSmall.setChecked(True)
@ -231,8 +237,10 @@ class TheaterConfiguration(QtWidgets.QWizardPage):
# Register fields # Register fields
self.registerField('isTerrainCaucasus', terrainCaucasus) self.registerField('isTerrainCaucasus', terrainCaucasus)
self.registerField('isTerrainCaucasusSmall', terrainCaucasusSmall) self.registerField('isTerrainCaucasusSmall', terrainCaucasusSmall)
self.registerField('isTerrainCaucasusSmallInverted', terrainCaucasusSmallInverted)
self.registerField('isTerrainPg', terrainPg) self.registerField('isTerrainPg', terrainPg)
self.registerField('isIranianCampaignTheater', terrainIran) self.registerField('isIranianCampaignTheater', terrainIran)
self.registerField('isTerrainEmirates', terrainEmirates)
self.registerField('isTerrainNttr', terrainNttr) self.registerField('isTerrainNttr', terrainNttr)
self.registerField('isTerrainNormandy', terrainNormandy) self.registerField('isTerrainNormandy', terrainNormandy)
self.registerField('timePeriod', timePeriodSelect) self.registerField('timePeriod', timePeriodSelect)
@ -240,8 +248,10 @@ class TheaterConfiguration(QtWidgets.QWizardPage):
# Build layout # Build layout
terrainGroupLayout = QtWidgets.QVBoxLayout() terrainGroupLayout = QtWidgets.QVBoxLayout()
terrainGroupLayout.addWidget(terrainCaucasusSmall) terrainGroupLayout.addWidget(terrainCaucasusSmall)
terrainGroupLayout.addWidget(terrainCaucasusSmallInverted)
terrainGroupLayout.addWidget(terrainCaucasus) terrainGroupLayout.addWidget(terrainCaucasus)
terrainGroupLayout.addWidget(terrainIran) terrainGroupLayout.addWidget(terrainIran)
terrainGroupLayout.addWidget(terrainEmirates)
terrainGroupLayout.addWidget(terrainPg) terrainGroupLayout.addWidget(terrainPg)
terrainGroupLayout.addWidget(terrainNttr) terrainGroupLayout.addWidget(terrainNttr)
terrainGroupLayout.addWidget(terrainNormandy) terrainGroupLayout.addWidget(terrainNormandy)

View File

@ -53,6 +53,8 @@ class QAircraftRecruitmentMenu(QGroupBox, QRecruitBehaviour):
for unit_type in units_column: for unit_type in units_column:
if self.cp.is_carrier and not unit_type in db.CARRIER_CAPABLE: if self.cp.is_carrier and not unit_type in db.CARRIER_CAPABLE:
continue 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) row = self.add_purchase_row(unit_type, task_box_layout, row)
stretch = QVBoxLayout() stretch = QVBoxLayout()
stretch.addStretch() stretch.addStretch()

View File

@ -73,6 +73,9 @@ class QMissionPlanning(QDialog):
@Slot(str) @Slot(str)
def on_departure_cp_changed(self, cp_name): def on_departure_cp_changed(self, cp_name):
cps = [cp for cp in self.game.theater.controlpoints if cp.name == cp_name] cps = [cp for cp in self.game.theater.controlpoints if cp.name == cp_name]
print(cps)
if len(cps) == 1: if len(cps) == 1:
self.selected_cp = cps[0] self.selected_cp = cps[0]
self.planner = self.game.planners[cps[0].id] self.planner = self.game.planners[cps[0].id]
@ -80,6 +83,8 @@ class QMissionPlanning(QDialog):
else: else:
self.planned_flight_view.set_flight_planner(None) self.planned_flight_view.set_flight_planner(None)
print(self.selected_cp.id)
def on_flight_selection_change(self): def on_flight_selection_change(self):
index = self.planned_flight_view.selectionModel().currentIndex().row() index = self.planned_flight_view.selectionModel().currentIndex().row()
flight = self.planner.flights[index] flight = self.planner.flights[index]

View File

@ -42,14 +42,16 @@ class QFlightCreator(QDialog):
self.select_type_aircraft.setCurrentIndex(0) self.select_type_aircraft.setCurrentIndex(0)
self.select_flight_type = QComboBox() self.select_flight_type = QComboBox()
self.select_flight_type.addItem("CAP", userData=FlightType.CAP) self.select_flight_type.addItem("CAP [Combat Air Patrol]", userData=FlightType.CAP)
self.select_flight_type.addItem("BARCAP", userData=FlightType.BARCAP) self.select_flight_type.addItem("BARCAP [Barrier Combat Air Patrol]", userData=FlightType.BARCAP)
self.select_flight_type.addItem("TARCAP", userData=FlightType.TARCAP) self.select_flight_type.addItem("TARCAP [Target Combat Air Patrol]", userData=FlightType.TARCAP)
self.select_flight_type.addItem("INTERCEPT", userData=FlightType.INTERCEPTION) self.select_flight_type.addItem("INTERCEPT [Interception]", userData=FlightType.INTERCEPTION)
self.select_flight_type.addItem("CAS", userData=FlightType.CAS) self.select_flight_type.addItem("CAS [Close Air Support]", userData=FlightType.CAS)
self.select_flight_type.addItem("SEAD", userData=FlightType.SEAD) self.select_flight_type.addItem("BAI [Battlefield Interdiction]", userData=FlightType.CAS)
self.select_flight_type.addItem("DEAD", userData=FlightType.DEAD) self.select_flight_type.addItem("SEAD [Suppression of Enemy Air Defenses]", userData=FlightType.SEAD)
self.select_flight_type.addItem("STRIKE", userData=FlightType.STRIKE) 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_flight_type.setCurrentIndex(0)
self.select_count_of_aircraft = QSpinBox() self.select_count_of_aircraft = QSpinBox()
@ -71,13 +73,11 @@ class QFlightCreator(QDialog):
type_layout.addStretch() type_layout.addStretch()
type_layout.addWidget(self.select_type_aircraft, alignment=Qt.AlignRight) type_layout.addWidget(self.select_type_aircraft, alignment=Qt.AlignRight)
count_layout = QHBoxLayout() count_layout = QHBoxLayout()
count_layout.addWidget(QLabel("Count : ")) count_layout.addWidget(QLabel("Count : "))
count_layout.addStretch() count_layout.addStretch()
count_layout.addWidget(self.select_count_of_aircraft, alignment=Qt.AlignRight) count_layout.addWidget(self.select_count_of_aircraft, alignment=Qt.AlignRight)
flight_type_layout = QHBoxLayout() flight_type_layout = QHBoxLayout()
flight_type_layout.addWidget(QLabel("Task : ")) flight_type_layout.addWidget(QLabel("Task : "))
flight_type_layout.addStretch() flight_type_layout.addStretch()

View File

@ -108,7 +108,7 @@ class QPredefinedWaypointSelectionWindow(QDialog):
for ecp in enemy_cp: 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 = 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.name = "Frontline with " + ecp.name + " [CAS]"
wpt.description = "Provide CAS" wpt.description = "Frontline"
self.wpt_selection_box.addItem(wpt.name, userData=wpt) self.wpt_selection_box.addItem(wpt.name, userData=wpt)
if len(enemy_cp) == 0: if len(enemy_cp) == 0:
self.wpt_selection_box.addItem("None", userData=None) 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": 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 = 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.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) self.wpt_selection_box.addItem(wpt.name, userData=wpt)
elif selected_wpt_type == PREDEFINED_WAYPOINT_CATEGORIES[2]: # Known units position elif selected_wpt_type == PREDEFINED_WAYPOINT_CATEGORIES[2]: # Known units position
for ground_object in select_cp.ground_objects: for ground_object in select_cp.ground_objects:
@ -126,12 +129,18 @@ class QPredefinedWaypointSelectionWindow(QDialog):
for u in g.units: for u in g.units:
wpt = FlightWaypoint(ground_object.position.x, ground_object.position.y, 0) wpt = FlightWaypoint(ground_object.position.x, ground_object.position.y, 0)
wpt.name = u.type + " @ site #" + str(ground_object.group_id) 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) self.wpt_selection_box.addItem(wpt.name, userData=wpt)
elif selected_wpt_type == PREDEFINED_WAYPOINT_CATEGORIES[3]: # CAS elif selected_wpt_type == PREDEFINED_WAYPOINT_CATEGORIES[3]: # CAS
wpt = FlightWaypoint(select_cp.position.x, select_cp.position.y, 0) wpt = FlightWaypoint(select_cp.position.x, select_cp.position.y, 0)
wpt.name = select_cp.name 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) self.wpt_selection_box.addItem("Airbase", userData=wpt)
else: else:
self.wpt_selection_box.addItem("None", userData=None) self.wpt_selection_box.addItem("None", userData=None)

View File

@ -131,10 +131,21 @@ class QSettingsWindow(QDialog):
self.takeOffOnlyForPlayerGroup.setChecked(self.game.settings.only_player_takeoff) self.takeOffOnlyForPlayerGroup.setChecked(self.game.settings.only_player_takeoff)
self.takeOffOnlyForPlayerGroup.toggled.connect(self.applySettings) self.takeOffOnlyForPlayerGroup.toggled.connect(self.applySettings)
self.generatorLayout.addWidget(QLabel("Aircraft cold start"), 0, 0) self.coldStart = QCheckBox()
self.generatorLayout.addWidget(self.coldStart, 0, 1) self.coldStart.setChecked(self.game.settings.cold_start)
self.generatorLayout.addWidget(QLabel("Takeoff only for player group"), 1, 0) self.coldStart.toggled.connect(self.applySettings)
self.generatorLayout.addWidget(self.takeOffOnlyForPlayerGroup, 1, 1)
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): def initCheatLayout(self):
@ -177,6 +188,7 @@ class QSettingsWindow(QDialog):
self.game.settings.night_disabled = self.noNightMission.isChecked() self.game.settings.night_disabled = self.noNightMission.isChecked()
self.game.settings.only_player_takeoff = self.takeOffOnlyForPlayerGroup.isChecked() self.game.settings.only_player_takeoff = self.takeOffOnlyForPlayerGroup.isChecked()
self.game.settings.cold_start = self.coldStart.isChecked() self.game.settings.cold_start = self.coldStart.isChecked()
self.game.settings.supercarrier = self.supercarrier.isChecked()
GameUpdateSignal.get_instance().updateGame(self.game) GameUpdateSignal.get_instance().updateGame(self.game)

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -92,6 +92,18 @@ QLabel[style="BARCAP"]{
color:white; 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"]{ QLabel[style="INTERCEPTION"]{
border: 1px solid black; border: 1px solid black;
background-color: #7752bc; background-color: #7752bc;
@ -104,6 +116,24 @@ QLabel[style="CAS"]{
color:white; 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"]{ QLabel[style="DEAD"]{
border: 1px solid black; border: 1px solid black;
background-color: #cc8844; background-color: #cc8844;

Binary file not shown.

After

Width:  |  Height:  |  Size: 541 B

View File

Before

Width:  |  Height:  |  Size: 334 B

After

Width:  |  Height:  |  Size: 334 B

View File

@ -22,31 +22,29 @@ class CaucasusTheater(ConflictTheater):
"night": (0, 5), "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)) carrier_1 = ControlPoint.carrier("Carrier", mapping.Point(-305810.6875, 406399.1875))
def __init__(self, load_ground_objects=True): def __init__(self, load_ground_objects=True):
super(CaucasusTheater, self).__init__() 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.frontline_offset = 0.5
self.soganlug.base.strength = 1 self.soganlug.base.strength = 1
@ -99,17 +97,18 @@ class WesternGeorgia(ConflictTheater):
"night": (0, 5), "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): def __init__(self, load_ground_objects=True):
super(WesternGeorgia, self).__init__() 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.kutaisi, connected_to=[self.senaki])
self.add_controlpoint(self.senaki, connected_to=[self.kobuleti, self.sukhumi, self.kutaisi]) 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.kobuleti, connected_to=[self.senaki])
@ -120,3 +119,45 @@ class WesternGeorgia(ConflictTheater):
self.carrier_1.captured = True self.carrier_1.captured = True
self.kobuleti.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

View File

@ -64,11 +64,17 @@ class ControlPoint:
return cls(airport.id, airport.name, airport.position, airport, radials, size, importance, has_frontline, cptype=ControlPointType.AIRBASE) return cls(airport.id, airport.name, airport.position, airport, radials, size, importance, has_frontline, cptype=ControlPointType.AIRBASE)
@classmethod @classmethod
def carrier(cls, name: str, at: Point): def carrier(cls, name: str, at: Point, id: int = 1001):
import theater.conflicttheater 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) 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): def __str__(self):
return self.name return self.name
@ -80,6 +86,14 @@ class ControlPoint:
def is_carrier(self): def is_carrier(self):
return self.cptype in [ControlPointType.AIRCRAFT_CARRIER_GROUP, ControlPointType.LHA_GROUP] 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 @property
def sea_radials(self) -> typing.Collection[int]: def sea_radials(self) -> typing.Collection[int]:
# TODO: fix imports # TODO: fix imports
@ -101,7 +115,7 @@ class ControlPoint:
""" """
if self.cptype in [ControlPointType.AIRCRAFT_CARRIER_GROUP, ControlPointType.LHA_GROUP] : if self.cptype in [ControlPointType.AIRCRAFT_CARRIER_GROUP, ControlPointType.LHA_GROUP] :
for g in self.ground_objects: for g in self.ground_objects:
if g.dcs_identifier == "CARRIER": if g.dcs_identifier in ["CARRIER", "LHA"]:
for group in g.groups: for group in g.groups:
for u in group.units: 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, LHA_1_Tarawa, CV_1143_5_Admiral_Kuznetsov]:
@ -122,7 +136,12 @@ class ControlPoint:
if g.dcs_identifier == "CARRIER": if g.dcs_identifier == "CARRIER":
for group in g.groups: for group in g.groups:
for u in group.units: 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 group.name
return None return None

View File

@ -19,23 +19,21 @@ class NevadaTheater(ConflictTheater):
"night": (0, 5), "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): def __init__(self):
super(NevadaTheater, self).__init__() 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, 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.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]) self.add_controlpoint(self.lincoln_conty, connected_to=[self.tonopah_test_range, self.tonopah, self.mesquite])

View File

@ -17,16 +17,16 @@ class NormandyTheater(ConflictTheater):
"night": (0, 5), "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): def __init__(self):
super(NormandyTheater, self).__init__() 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.st_pierre, connected_to=[self.chippelle])
self.add_controlpoint(self.maupertus, connected_to=[self.azeville]) self.add_controlpoint(self.maupertus, connected_to=[self.azeville])
self.add_controlpoint(self.azeville, connected_to=[self.meautis, self.maupertus]) self.add_controlpoint(self.azeville, connected_to=[self.meautis, self.maupertus])

View File

@ -20,43 +20,37 @@ class PersianGulfTheater(ConflictTheater):
"night": (0, 5), "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): def __init__(self):
super(PersianGulfTheater, self).__init__() 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.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_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]) self.add_controlpoint(self.al_ain, connected_to=[self.al_dhafra, self.al_maktoum])
@ -105,38 +99,31 @@ class IranianCampaign(ConflictTheater):
"night": (0, 5), "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): def __init__(self):
super(IranianCampaign, self).__init__() 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.ras_al_khaimah, connected_to=[self.khasab])
self.add_controlpoint(self.khasab, connected_to=[self.ras_al_khaimah]) self.add_controlpoint(self.khasab, connected_to=[self.ras_al_khaimah])
@ -159,3 +146,53 @@ class IranianCampaign(ConflictTheater):
self.qeshm.captured = True self.qeshm.captured = True
self.havadarya.captured = True self.havadarya.captured = True
self.bandar_abbas.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

View File

@ -5,7 +5,7 @@ import typing
import logging import logging
from gen.defenses.armor_group_generator import generate_armor_group 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 gen.sam.sam_group_generator import generate_anti_air_group, generate_shorad_group
from theater import ControlPointType from theater import ControlPointType
from theater.base import * from theater.base import *
@ -72,9 +72,7 @@ def generate_groundobjects(theater: ConflictTheater, game):
if cp.cptype == ControlPointType.AIRCRAFT_CARRIER_GROUP: if cp.cptype == ControlPointType.AIRCRAFT_CARRIER_GROUP:
# Create ground object group # Create ground object group
group_id = group_id + 1 group_id = group_id + 1
g = TheaterGroundObject() g = TheaterGroundObject()
g.group_id = group_id g.group_id = group_id
g.object_id = 0 g.object_id = 0
@ -88,7 +86,28 @@ def generate_groundobjects(theater: ConflictTheater, game):
if group is not None: if group is not None:
g.groups.append(group) g.groups.append(group)
cp.ground_objects.append(g) 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: else:
for i in range(random.randint(2,6)): for i in range(random.randint(2,6)):
point = find_location(True, cp.position, theater, 1000, 2800, []) point = find_location(True, cp.position, theater, 1000, 2800, [])

View File

@ -31,6 +31,7 @@ ABBREV_NAME = {
CATEGORY_MAP = { CATEGORY_MAP = {
"CARRIER": ["CARRIER"], "CARRIER": ["CARRIER"],
"LHA": ["LHA"],
"aa": ["AA"], "aa": ["AA"],
"power": ["Workshop A", "Electric power box", "Garage small A"], "power": ["Workshop A", "Electric power box", "Garage small A"],
"warehouse": ["Warehouse", "Hangar A"], "warehouse": ["Warehouse", "Hangar A"],

View File

@ -6,23 +6,23 @@ import sys
from dcs import installation from dcs import installation
_user_folder = None # type: str _dcs_saved_game_folder = None # type: str
def setup(user_folder: str): def setup(user_folder: str):
global _user_folder global _dcs_saved_game_folder
_user_folder = user_folder _dcs_saved_game_folder = user_folder
def base_path() -> str: def base_path() -> str:
global _user_folder global _dcs_saved_game_folder
assert _user_folder assert _dcs_saved_game_folder
openbeta_path = os.path.join(_user_folder, "DCS.openbeta") openbeta_path = _dcs_saved_game_folder + ".openbeta"
if "--force-stable-DCS" not in sys.argv and os.path.exists(openbeta_path): if os.path.exists(openbeta_path):
return openbeta_path return openbeta_path # For standalone openbeta users
else: 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: def _save_file() -> str: