diff --git a/game/ato/ai_flight_planner_db.py b/game/ato/ai_flight_planner_db.py index b40e7fd2..eaae8b5a 100644 --- a/game/ato/ai_flight_planner_db.py +++ b/game/ato/ai_flight_planner_db.py @@ -126,6 +126,7 @@ from pydcs_extensions.f15d.f15d import F_15D from pydcs_extensions.f22a.f22a import F_22A from pydcs_extensions.hercules.hercules import Hercules from pydcs_extensions.jas39.jas39 import JAS39Gripen, JAS39Gripen_AG +from pydcs_extensions.su30.su30 import Su_30MKA, Su_30MKI, Su_30MKM, Su_30SM from pydcs_extensions.su57.su57 import Su_57 from pydcs_extensions.uh60l.uh60l import KC130J, UH_60L from .flighttype import FlightType @@ -148,6 +149,10 @@ CAP_CAPABLE = [ Su_33, J_11A, Su_30, + Su_30MKA, + Su_30MKI, + Su_30MKM, + Su_30SM, Su_27, MiG_29S, F_16C_50, @@ -228,6 +233,10 @@ CAS_CAPABLE = [ F_4E, S_3B, Su_30, + Su_30MKA, + Su_30MKI, + Su_30MKM, + Su_30SM, MiG_29S, MiG_27K, MiG_29A, @@ -301,6 +310,10 @@ SEAD_CAPABLE = [ Su_17M4, Su_34, Su_30, + Su_30MKA, + Su_30MKI, + Su_30MKM, + Su_30SM, MiG_27K, Tornado_GR4, ] @@ -365,6 +378,10 @@ STRIKE_CAPABLE = [ Su_34, Su_33, Su_30, + Su_30MKA, + Su_30MKI, + Su_30MKM, + Su_30SM, Su_27, MiG_29S, MiG_29G, @@ -421,6 +438,10 @@ ANTISHIP_CAPABLE = [ JF_17, Su_34, Su_30, + Su_30MKA, + Su_30MKI, + Su_30MKM, + Su_30SM, Tornado_IDS, Tornado_GR4, AV8BNA, @@ -438,8 +459,6 @@ ANTISHIP_CAPABLE = [ # https://github.com/dcs-liberation/dcs_liberation/issues/1703 RUNWAY_ATTACK_CAPABLE = [ JF_17, - Su_34, - Su_30, Tornado_IDS, M_2000C, H_6J, @@ -466,6 +485,10 @@ RUNWAY_ATTACK_CAPABLE = [ Su_34, Su_33, Su_30, + Su_30MKA, + Su_30MKI, + Su_30MKM, + Su_30SM, Su_27, MiG_29S, MiG_29G, diff --git a/game/factions/faction.py b/game/factions/faction.py index c1037de2..2de77a28 100644 --- a/game/factions/faction.py +++ b/game/factions/faction.py @@ -302,6 +302,11 @@ class Faction: if not mod_settings.jas39_gripen: self.remove_aircraft("JAS39Gripen") self.remove_aircraft("JAS39Gripen_AG") + if not mod_settings.su30_flanker_h: + self.remove_aircraft("Su-30MKA") + self.remove_aircraft("Su-30MKI") + self.remove_aircraft("Su-30MKM") + self.remove_aircraft("Su-30SM") if not mod_settings.su57_felon: self.remove_aircraft("Su-57") # frenchpack diff --git a/game/radio/radios.py b/game/radio/radios.py index 3523398f..2d74ad05 100644 --- a/game/radio/radios.py +++ b/game/radio/radios.py @@ -246,6 +246,15 @@ RADIOS: List[Radio] = [ ), ), Radio("UHF TRAP 137B", (RadioRange(MHz(225), MHz(400), kHz(25), Modulation.AM),)), + # Su-30 (MKA/MKI/MKM/SM) + Radio( + "R-800", + ( + RadioRange(MHz(30), MHz(88), kHz(25), Modulation.AM), + RadioRange(MHz(108), MHz(174), kHz(25), Modulation.AM), + RadioRange(MHz(225), MHz(400), kHz(25), Modulation.AM), + ), + ), ] diff --git a/game/theater/start_generator.py b/game/theater/start_generator.py index 4d16abc6..cf973fa1 100644 --- a/game/theater/start_generator.py +++ b/game/theater/start_generator.py @@ -61,6 +61,7 @@ class ModSettings: hercules: bool = False uh_60l: bool = False jas39_gripen: bool = False + su30_flanker_h: bool = False su57_felon: bool = False frenchpack: bool = False high_digit_sams: bool = False diff --git a/pydcs_extensions/__init__.py b/pydcs_extensions/__init__.py index 3bf436e2..9d3186c7 100644 --- a/pydcs_extensions/__init__.py +++ b/pydcs_extensions/__init__.py @@ -5,6 +5,7 @@ from .frenchpack import * from .hercules import * from .highdigitsams import * from .jas39 import * +from .su30 import * from .su57 import * from .uh60l import * diff --git a/pydcs_extensions/su30/__init__.py b/pydcs_extensions/su30/__init__.py new file mode 100644 index 00000000..b26fc88b --- /dev/null +++ b/pydcs_extensions/su30/__init__.py @@ -0,0 +1 @@ +from .su30 import * diff --git a/pydcs_extensions/su30/su30.py b/pydcs_extensions/su30/su30.py new file mode 100644 index 00000000..65b45cee --- /dev/null +++ b/pydcs_extensions/su30/su30.py @@ -0,0 +1,2658 @@ +from typing import Dict, Any, Set + +from dcs import task +from dcs.liveries_scanner import Liveries +from dcs.planes import PlaneType +from dcs.weapons_data import Weapons + +from game.modsupport import planemod +from pydcs_extensions.weapon_injector import inject_weapons + + +class WeaponsSu30: + APK_9_POD = {"clsid": "{SU30_APK-9}", "name": "APK-9 POD", "weight": 295} + ASTRA_Mk_1___Active_Rdr_AAM = { + "clsid": "{Su30_ASTRA}", + "name": "ASTRA Mk.1 - Active Rdr AAM", + "weight": 154, + } + BRAHMOS_A_Ship = {"clsid": "{BRAHMOS_S}", "name": "BRAHMOS A-Ship", "weight": 2500} + DAMOCLES___Targeting_Pod = { + "clsid": "{DAMOCLES}", + "name": "DAMOCLES - Targeting Pod", + "weight": 208, + } + + I_Derby_ER___Active_Rdr_AAM = { + "clsid": "{Su30_DERBY_ER}", + "name": "I-Derby ER - Active Rdr AAM", + "weight": 118, + } + KAB_1500LG_Pr = { + "clsid": "{SU30_KAB_1500LG_LOADOUT}", + "name": "KAB-1500LG-Pr", + "weight": 1525, + } + KAB_1500t = { + "clsid": "{SU30_KAB_1500Kr_LOADOUT}", + "name": "KAB-1500t", + "weight": 1525, + } + KAB_500S = {"clsid": "{SU30_KAB_500S_LOADOUT}", "name": "KAB-500S", "weight": 500} + KH_29L__AS_14_Kedge___Semi_Act_Laser = { + "clsid": "{SU30_KH29L}", + "name": "KH-29L (AS-14 Kedge), Semi-Act Laser", + "weight": 657, + } + KH_29TE__AS_14_Kedge___TV_Guided = { + "clsid": "{SU30_KH29TE}", + "name": "KH-29TE (AS-14 Kedge), TV Guided", + "weight": 780, + } + KH_29T__AS_14_Kedge___TV_Guided = { + "clsid": "{SU30_KH29T}", + "name": "KH-29T (AS-14 Kedge), TV Guided", + "weight": 670, + } + KH_31AD = {"clsid": "{SU30_KH31AD}", "name": "KH-31AD", "weight": 690} + KH_31PD = {"clsid": "{SU30_KH31PD}", "name": "KH-31PD", "weight": 690} + KH_35A = {"clsid": "{SU30_KH_35}", "name": "KH-35A", "weight": 540} + KH_35UE = {"clsid": "{SU30_KH_35UE}", "name": "KH-35UE", "weight": 540} + KH_38MAE = {"clsid": "{SU30_KH38MAE}", "name": "KH-38MAE", "weight": 520} + KH_38MLE = {"clsid": "{SU30_KH38MLE}", "name": "KH-38MLE", "weight": 520} + KH_38MTE = {"clsid": "{SU30_KH38MTE}", "name": "KH-38MTE", "weight": 1240} + Kh_31A = {"clsid": "{SU30_KH_31A}", "name": "Kh-31A", "weight": 690} + Kh_31P = {"clsid": "{SU30_KH31P}", "name": "Kh-31P", "weight": 690} + Kh_36_Grom_1 = {"clsid": "{SU30_KH36}", "name": "Kh-36 Grom-1", "weight": 690} + Kh_59M = {"clsid": "{SU30_KH59M}", "name": "Kh-59M", "weight": 930} + Kh_59MK = {"clsid": "{SU30_KH59MK}", "name": "Kh-59MK", "weight": 770} + Kh_59MK2 = {"clsid": "{KH_59MK2}", "name": "Kh-59MK2", "weight": None} + Kh_59MK2_ = {"clsid": "{SU30_KH59MK2}", "name": "Kh-59MK2", "weight": 770} + LITENING___Targeting_Pod = { + "clsid": "{LITENING_POD}", + "name": "LITENING - Targeting Pod", + "weight": 1.4789, + } + Rudra_M1 = {"clsid": "{SU30_RudraM1}", "name": "Rudra-M1", "weight": 690} + R_27EA__Active_Rdr_AAM = { + "clsid": "{SU30_R27EA}", + "name": "R-27EA, Active Rdr AAM", + "weight": 350, + } + R_27EP__Passive_Rdr_AAM = { + "clsid": "{SU30_R27EP}", + "name": "R-27EP, Passive Rdr AAM", + "weight": 346, + } + R_27ER__Semi_Active_Rdr_AAM = { + "clsid": "{SU30_R27ER}", + "name": "R-27ER, Semi-Active Rdr AAM", + "weight": 350, + } + R_27ET__IR_AAM = {"clsid": "{SU30_R27ET}", "name": "R-27ET, IR AAM", "weight": 343} + R_27R__Semi_Active_Rdr_AAM = { + "clsid": "{SU30_R27R}", + "name": "R-27R, Semi-Active Rdr AAM", + "weight": 253, + } + R_27T__IR_AAM = {"clsid": "{SU30_R27T}", "name": "R-27T, IR AAM", "weight": 245} + R_77M__Active_Rdr_AAM = { + "clsid": "{SU30_R77M}", + "name": "R-77M, Active Rdr AAM", + "weight": 210, + } + R_77_1__Active_Rdr_AAM = { + "clsid": "{SU30_R771}", + "name": "R-77-1, Active Rdr AAM", + "weight": 190, + } + R_77__Active_Rdr_AAM = { + "clsid": "{SU30_R77}", + "name": "R-77, Active Rdr AAM", + "weight": 175, + } + SAAW_POD = {"clsid": "{SU30_SAAW}", "name": "SAAW POD", "weight": 570} + + +inject_weapons(WeaponsSu30) + + +@planemod +class Su_30MKI(PlaneType): + id = "Su-30MKI" + flyable = True + height = 5.932 + width = 14.7 + length = 21.935 + fuel_max = 9400 + max_speed = 2499.984 + chaff = 96 + flare = 96 + charge_total = 192 + chaff_charge_size = 1 + flare_charge_size = 1 + category = "Interceptor" # {78EFB7A2-FD52-4b57-A6A6-3BF0E1D6555F} + radio_frequency = 124 + + panel_radio = { + 1: { + "channels": { + 1: 305, + 2: 264, + 4: 256, + 8: 257, + 16: 261, + 17: 267, + 9: 255, + 18: 251, + 5: 254, + 10: 262, + 20: 266, + 11: 259, + 3: 265, + 6: 250, + 12: 268, + 13: 269, + 7: 270, + 14: 260, + 19: 253, + 15: 263, + }, + }, + 2: { + "channels": { + 1: 305, + 2: 264, + 4: 256, + 8: 257, + 16: 261, + 17: 267, + 9: 255, + 18: 251, + 5: 254, + 10: 262, + 20: 266, + 11: 259, + 3: 265, + 6: 250, + 12: 268, + 13: 269, + 7: 270, + 14: 260, + 19: 253, + 15: 263, + }, + }, + } + + property_defaults: Dict[str, Any] = { + "SoloFlight": False, + "NetCrewControlPriority": 1, + "MOUNTSURA": False, + } + + class Properties: + class SoloFlight: + id = "SoloFlight" + + class NetCrewControlPriority: + id = "NetCrewControlPriority" + + class Values: + Pilot = 0 + Co_Pilot = 1 + Ask_Always = -1 + Equally_Responsible = -2 + + class MOUNTSURA: + id = "MOUNTSURA" + + livery_name = "SU-30MKI" # from type + Liveries = Liveries()[livery_name] + + class Pylon1: + R_73__AA_11_Archer____Infra_Red = (1, Weapons.R_73__AA_11_Archer____Infra_Red) + L005_Sorbtsiya_ECM_pod__left_ = (1, Weapons.L005_Sorbtsiya_ECM_pod__left_) + Smoke_Generator___red = (1, Weapons.Smoke_Generator___red) + Smoke_Generator___green = (1, Weapons.Smoke_Generator___green) + Smoke_Generator___blue = (1, Weapons.Smoke_Generator___blue) + Smoke_Generator___white = (1, Weapons.Smoke_Generator___white) + Smoke_Generator___yellow = (1, Weapons.Smoke_Generator___yellow) + Smoke_Generator___orange = (1, Weapons.Smoke_Generator___orange) + + class Pylon2: + R_73__AA_11_Archer____Infra_Red = (2, Weapons.R_73__AA_11_Archer____Infra_Red) + ASTRA_Mk_1___Active_Rdr_AAM = (2, WeaponsSu30.ASTRA_Mk_1___Active_Rdr_AAM) + I_Derby_ER___Active_Rdr_AAM = (2, WeaponsSu30.I_Derby_ER___Active_Rdr_AAM) + Smoke_Generator___red = (2, Weapons.Smoke_Generator___red) + Smoke_Generator___green = (2, Weapons.Smoke_Generator___green) + Smoke_Generator___blue = (2, Weapons.Smoke_Generator___blue) + Smoke_Generator___white = (2, Weapons.Smoke_Generator___white) + Smoke_Generator___yellow = (2, Weapons.Smoke_Generator___yellow) + Smoke_Generator___orange = (2, Weapons.Smoke_Generator___orange) + + class Pylon3: + R_73__AA_11_Archer____Infra_Red = (3, Weapons.R_73__AA_11_Archer____Infra_Red) + R_27R__Semi_Active_Rdr_AAM = (3, WeaponsSu30.R_27R__Semi_Active_Rdr_AAM) + R_27T__IR_AAM = (3, WeaponsSu30.R_27T__IR_AAM) + R_27ER__Semi_Active_Rdr_AAM = (3, WeaponsSu30.R_27ER__Semi_Active_Rdr_AAM) + R_27ET__IR_AAM = (3, WeaponsSu30.R_27ET__IR_AAM) + ASTRA_Mk_1___Active_Rdr_AAM = (3, WeaponsSu30.ASTRA_Mk_1___Active_Rdr_AAM) + I_Derby_ER___Active_Rdr_AAM = (3, WeaponsSu30.I_Derby_ER___Active_Rdr_AAM) + R_77__Active_Rdr_AAM = (3, WeaponsSu30.R_77__Active_Rdr_AAM) + R_77_1__Active_Rdr_AAM = (3, WeaponsSu30.R_77_1__Active_Rdr_AAM) + R_27EA__Active_Rdr_AAM = (3, WeaponsSu30.R_27EA__Active_Rdr_AAM) + R_27EP__Passive_Rdr_AAM = (3, WeaponsSu30.R_27EP__Passive_Rdr_AAM) + Kh_31P__AS_17_Krypton____600kg__ARM__IN__Pas_Rdr = ( + 3, + Weapons.Kh_31P__AS_17_Krypton____600kg__ARM__IN__Pas_Rdr, + ) + KH_29L__AS_14_Kedge___Semi_Act_Laser = ( + 3, + WeaponsSu30.KH_29L__AS_14_Kedge___Semi_Act_Laser, + ) + Kh_29T__AS_14_Kedge____670kg__ASM__TV_Guided_ = ( + 3, + Weapons.Kh_29T__AS_14_Kedge____670kg__ASM__TV_Guided_, + ) + Kh_59M = (3, WeaponsSu30.Kh_59M) + Kh_59MK = (3, WeaponsSu30.Kh_59MK) + Kh_31A = (3, WeaponsSu30.Kh_31A) + Kh_31P = (3, WeaponsSu30.Kh_31P) + KH_35A = (3, WeaponsSu30.KH_35A) + Rudra_M1 = (3, WeaponsSu30.Rudra_M1) + SAAW_POD = (3, WeaponsSu30.SAAW_POD) + KAB_500Kr___500kg_TV_Guided_Bomb = (3, Weapons.KAB_500Kr___500kg_TV_Guided_Bomb) + KAB_500S = (3, WeaponsSu30.KAB_500S) + KMGU_2___96_x_PTAB_2_5KO_Dispenser__CBU__HEAT_AP = ( + 3, + Weapons.KMGU_2___96_x_PTAB_2_5KO_Dispenser__CBU__HEAT_AP, + ) + KMGU_2___96_x_AO_2_5RT_Dispenser__CBU__HE_Frag = ( + 3, + Weapons.KMGU_2___96_x_AO_2_5RT_Dispenser__CBU__HE_Frag, + ) + P_50T___50kg_Practice_Bomb_LD = (3, Weapons.P_50T___50kg_Practice_Bomb_LD) + BetAB_500___500kg_Concrete_Piercing_Bomb_LD = ( + 3, + Weapons.BetAB_500___500kg_Concrete_Piercing_Bomb_LD, + ) + BetAB_500ShP___500kg_Concrete_Piercing_HD_w_booster_Bomb = ( + 3, + Weapons.BetAB_500ShP___500kg_Concrete_Piercing_HD_w_booster_Bomb, + ) + FAB_250___250kg_GP_Bomb_LD = (3, Weapons.FAB_250___250kg_GP_Bomb_LD) + RBK_250___42_x_PTAB_2_5M__250kg_CBU_Medium_HEAT_AP = ( + 3, + Weapons.RBK_250___42_x_PTAB_2_5M__250kg_CBU_Medium_HEAT_AP, + ) + FAB_500_M_62___500kg_GP_Bomb_LD = (3, Weapons.FAB_500_M_62___500kg_GP_Bomb_LD) + RBK_500_255___30_x_PTAB_10_5__500kg_CBU_Heavy_HEAT_AP = ( + 3, + Weapons.RBK_500_255___30_x_PTAB_10_5__500kg_CBU_Heavy_HEAT_AP, + ) + MBD3_U6_68_with_6_x_FAB_250___250kg_GP_Bombs_LD = ( + 3, + Weapons.MBD3_U6_68_with_6_x_FAB_250___250kg_GP_Bombs_LD, + ) + MBD3_U6_68_with_6_x_FAB_100___100kg_GP_Bombs_LD = ( + 3, + Weapons.MBD3_U6_68_with_6_x_FAB_100___100kg_GP_Bombs_LD, + ) + _2_x_B_13L___5_S_13_OF = (3, Weapons._2_x_B_13L___5_S_13_OF) + _2_x_B_8M1___20_S_8KOM = (3, Weapons._2_x_B_8M1___20_S_8KOM) + _2_x_S_25 = (3, Weapons._2_x_S_25) + + class Pylon4: + R_73__AA_11_Archer____Infra_Red = (4, Weapons.R_73__AA_11_Archer____Infra_Red) + R_27ER__Semi_Active_Rdr_AAM = (4, WeaponsSu30.R_27ER__Semi_Active_Rdr_AAM) + R_27ET__IR_AAM = (4, WeaponsSu30.R_27ET__IR_AAM) + I_Derby_ER___Active_Rdr_AAM = (4, WeaponsSu30.I_Derby_ER___Active_Rdr_AAM) + R_77__Active_Rdr_AAM = (4, WeaponsSu30.R_77__Active_Rdr_AAM) + R_77_1__Active_Rdr_AAM = (4, WeaponsSu30.R_77_1__Active_Rdr_AAM) + R_27EA__Active_Rdr_AAM = (4, WeaponsSu30.R_27EA__Active_Rdr_AAM) + R_27EP__Passive_Rdr_AAM = (4, WeaponsSu30.R_27EP__Passive_Rdr_AAM) + Kh_31P__AS_17_Krypton____600kg__ARM__IN__Pas_Rdr = ( + 4, + Weapons.Kh_31P__AS_17_Krypton____600kg__ARM__IN__Pas_Rdr, + ) + KH_29L__AS_14_Kedge___Semi_Act_Laser = ( + 4, + WeaponsSu30.KH_29L__AS_14_Kedge___Semi_Act_Laser, + ) + Kh_29T__AS_14_Kedge____670kg__ASM__TV_Guided_ = ( + 4, + Weapons.Kh_29T__AS_14_Kedge____670kg__ASM__TV_Guided_, + ) + Kh_59M = (4, WeaponsSu30.Kh_59M) + Kh_59MK = (4, WeaponsSu30.Kh_59MK) + Kh_31A = (4, WeaponsSu30.Kh_31A) + Kh_31P = (4, WeaponsSu30.Kh_31P) + KH_35A = (4, WeaponsSu30.KH_35A) + Rudra_M1 = (4, WeaponsSu30.Rudra_M1) + SAAW_POD = (4, WeaponsSu30.SAAW_POD) + KAB_500Kr___500kg_TV_Guided_Bomb = (4, Weapons.KAB_500Kr___500kg_TV_Guided_Bomb) + KAB_500S = (4, WeaponsSu30.KAB_500S) + KAB_1500t = (4, WeaponsSu30.KAB_1500t) + KAB_1500LG_Pr = (4, WeaponsSu30.KAB_1500LG_Pr) + KAB_1500L___1500kg_Laser_Guided_Bomb = ( + 4, + Weapons.KAB_1500L___1500kg_Laser_Guided_Bomb, + ) + KMGU_2___96_x_PTAB_2_5KO_Dispenser__CBU__HEAT_AP = ( + 4, + Weapons.KMGU_2___96_x_PTAB_2_5KO_Dispenser__CBU__HEAT_AP, + ) + KMGU_2___96_x_AO_2_5RT_Dispenser__CBU__HE_Frag = ( + 4, + Weapons.KMGU_2___96_x_AO_2_5RT_Dispenser__CBU__HE_Frag, + ) + P_50T___50kg_Practice_Bomb_LD = (4, Weapons.P_50T___50kg_Practice_Bomb_LD) + BetAB_500___500kg_Concrete_Piercing_Bomb_LD = ( + 4, + Weapons.BetAB_500___500kg_Concrete_Piercing_Bomb_LD, + ) + BetAB_500ShP___500kg_Concrete_Piercing_HD_w_booster_Bomb = ( + 4, + Weapons.BetAB_500ShP___500kg_Concrete_Piercing_HD_w_booster_Bomb, + ) + FAB_250___250kg_GP_Bomb_LD = (4, Weapons.FAB_250___250kg_GP_Bomb_LD) + RBK_250___42_x_PTAB_2_5M__250kg_CBU_Medium_HEAT_AP = ( + 4, + Weapons.RBK_250___42_x_PTAB_2_5M__250kg_CBU_Medium_HEAT_AP, + ) + FAB_500_M_62___500kg_GP_Bomb_LD = (4, Weapons.FAB_500_M_62___500kg_GP_Bomb_LD) + RBK_500_255___30_x_PTAB_10_5__500kg_CBU_Heavy_HEAT_AP = ( + 4, + Weapons.RBK_500_255___30_x_PTAB_10_5__500kg_CBU_Heavy_HEAT_AP, + ) + MBD3_U6_68_with_6_x_FAB_250___250kg_GP_Bombs_LD = ( + 4, + Weapons.MBD3_U6_68_with_6_x_FAB_250___250kg_GP_Bombs_LD, + ) + MBD3_U6_68_with_6_x_FAB_100___100kg_GP_Bombs_LD = ( + 4, + Weapons.MBD3_U6_68_with_6_x_FAB_100___100kg_GP_Bombs_LD, + ) + + class Pylon5: + R_27ER__Semi_Active_Rdr_AAM = (5, WeaponsSu30.R_27ER__Semi_Active_Rdr_AAM) + I_Derby_ER___Active_Rdr_AAM = (5, WeaponsSu30.I_Derby_ER___Active_Rdr_AAM) + R_77__Active_Rdr_AAM = (5, WeaponsSu30.R_77__Active_Rdr_AAM) + R_77_1__Active_Rdr_AAM = (5, WeaponsSu30.R_77_1__Active_Rdr_AAM) + R_27EA__Active_Rdr_AAM = (5, WeaponsSu30.R_27EA__Active_Rdr_AAM) + R_27EP__Passive_Rdr_AAM = (5, WeaponsSu30.R_27EP__Passive_Rdr_AAM) + Kh_31P__AS_17_Krypton____600kg__ARM__IN__Pas_Rdr = ( + 5, + Weapons.Kh_31P__AS_17_Krypton____600kg__ARM__IN__Pas_Rdr, + ) + KH_29L__AS_14_Kedge___Semi_Act_Laser = ( + 5, + WeaponsSu30.KH_29L__AS_14_Kedge___Semi_Act_Laser, + ) + Kh_29T__AS_14_Kedge____670kg__ASM__TV_Guided_ = ( + 5, + Weapons.Kh_29T__AS_14_Kedge____670kg__ASM__TV_Guided_, + ) + Kh_31A = (5, WeaponsSu30.Kh_31A) + Kh_31P = (5, WeaponsSu30.Kh_31P) + Rudra_M1 = (5, WeaponsSu30.Rudra_M1) + APK_9_POD = (5, WeaponsSu30.APK_9_POD) + KAB_500Kr___500kg_TV_Guided_Bomb = (5, Weapons.KAB_500Kr___500kg_TV_Guided_Bomb) + KAB_500S = (5, WeaponsSu30.KAB_500S) + P_50T___50kg_Practice_Bomb_LD = (5, Weapons.P_50T___50kg_Practice_Bomb_LD) + BetAB_500___500kg_Concrete_Piercing_Bomb_LD = ( + 5, + Weapons.BetAB_500___500kg_Concrete_Piercing_Bomb_LD, + ) + BetAB_500ShP___500kg_Concrete_Piercing_HD_w_booster_Bomb = ( + 5, + Weapons.BetAB_500ShP___500kg_Concrete_Piercing_HD_w_booster_Bomb, + ) + FAB_250___250kg_GP_Bomb_LD = (5, Weapons.FAB_250___250kg_GP_Bomb_LD) + RBK_250___42_x_PTAB_2_5M__250kg_CBU_Medium_HEAT_AP = ( + 5, + Weapons.RBK_250___42_x_PTAB_2_5M__250kg_CBU_Medium_HEAT_AP, + ) + FAB_500_M_62___500kg_GP_Bomb_LD = (5, Weapons.FAB_500_M_62___500kg_GP_Bomb_LD) + RBK_500_255___30_x_PTAB_10_5__500kg_CBU_Heavy_HEAT_AP = ( + 5, + Weapons.RBK_500_255___30_x_PTAB_10_5__500kg_CBU_Heavy_HEAT_AP, + ) + MBD3_U6_68_with_6_x_FAB_250___250kg_GP_Bombs_LD = ( + 5, + Weapons.MBD3_U6_68_with_6_x_FAB_250___250kg_GP_Bombs_LD, + ) + L_081_Fantasmagoria_ELINT_pod = (5, Weapons.L_081_Fantasmagoria_ELINT_pod) + + class Pylon6: + R_77__Active_Rdr_AAM = (6, WeaponsSu30.R_77__Active_Rdr_AAM) + R_77_1__Active_Rdr_AAM = (6, WeaponsSu30.R_77_1__Active_Rdr_AAM) + R_27EA__Active_Rdr_AAM = (6, WeaponsSu30.R_27EA__Active_Rdr_AAM) + R_27EP__Passive_Rdr_AAM = (6, WeaponsSu30.R_27EP__Passive_Rdr_AAM) + I_Derby_ER___Active_Rdr_AAM = (6, WeaponsSu30.I_Derby_ER___Active_Rdr_AAM) + # ERRR {BRAHMOS} + BRAHMOS_A_Ship = (6, WeaponsSu30.BRAHMOS_A_Ship) + KAB_500Kr___500kg_TV_Guided_Bomb = (6, Weapons.KAB_500Kr___500kg_TV_Guided_Bomb) + KAB_500S = (6, WeaponsSu30.KAB_500S) + KAB_1500t = (6, WeaponsSu30.KAB_1500t) + KAB_1500LG_Pr = (6, WeaponsSu30.KAB_1500LG_Pr) + KAB_1500L___1500kg_Laser_Guided_Bomb = ( + 6, + Weapons.KAB_1500L___1500kg_Laser_Guided_Bomb, + ) + KMGU_2___96_x_PTAB_2_5KO_Dispenser__CBU__HEAT_AP = ( + 6, + Weapons.KMGU_2___96_x_PTAB_2_5KO_Dispenser__CBU__HEAT_AP, + ) + KMGU_2___96_x_AO_2_5RT_Dispenser__CBU__HE_Frag = ( + 6, + Weapons.KMGU_2___96_x_AO_2_5RT_Dispenser__CBU__HE_Frag, + ) + P_50T___50kg_Practice_Bomb_LD = (6, Weapons.P_50T___50kg_Practice_Bomb_LD) + BetAB_500___500kg_Concrete_Piercing_Bomb_LD = ( + 6, + Weapons.BetAB_500___500kg_Concrete_Piercing_Bomb_LD, + ) + BetAB_500ShP___500kg_Concrete_Piercing_HD_w_booster_Bomb = ( + 6, + Weapons.BetAB_500ShP___500kg_Concrete_Piercing_HD_w_booster_Bomb, + ) + FAB_250___250kg_GP_Bomb_LD = (6, Weapons.FAB_250___250kg_GP_Bomb_LD) + RBK_250___42_x_PTAB_2_5M__250kg_CBU_Medium_HEAT_AP = ( + 6, + Weapons.RBK_250___42_x_PTAB_2_5M__250kg_CBU_Medium_HEAT_AP, + ) + FAB_500_M_62___500kg_GP_Bomb_LD = (6, Weapons.FAB_500_M_62___500kg_GP_Bomb_LD) + RBK_500_255___30_x_PTAB_10_5__500kg_CBU_Heavy_HEAT_AP = ( + 6, + Weapons.RBK_500_255___30_x_PTAB_10_5__500kg_CBU_Heavy_HEAT_AP, + ) + MBD3_U6_68_with_6_x_FAB_250___250kg_GP_Bombs_LD = ( + 6, + Weapons.MBD3_U6_68_with_6_x_FAB_250___250kg_GP_Bombs_LD, + ) + RBK_500U___126_x_OAB_2_5RT__500kg_CBU_HE_Frag = ( + 6, + Weapons.RBK_500U___126_x_OAB_2_5RT__500kg_CBU_HE_Frag, + ) + RBK_500___268_x_PTAB_1M__500kg_CBU_Light_HEAT_AP = ( + 6, + Weapons.RBK_500___268_x_PTAB_1M__500kg_CBU_Light_HEAT_AP, + ) + + class Pylon7: + R_77__Active_Rdr_AAM = (7, WeaponsSu30.R_77__Active_Rdr_AAM) + I_Derby_ER___Active_Rdr_AAM = (7, WeaponsSu30.I_Derby_ER___Active_Rdr_AAM) + R_77_1__Active_Rdr_AAM = (7, WeaponsSu30.R_77_1__Active_Rdr_AAM) + R_27EA__Active_Rdr_AAM = (7, WeaponsSu30.R_27EA__Active_Rdr_AAM) + R_27EP__Passive_Rdr_AAM = (7, WeaponsSu30.R_27EP__Passive_Rdr_AAM) + KAB_500Kr___500kg_TV_Guided_Bomb = (7, Weapons.KAB_500Kr___500kg_TV_Guided_Bomb) + KAB_500S = (7, WeaponsSu30.KAB_500S) + KMGU_2___96_x_PTAB_2_5KO_Dispenser__CBU__HEAT_AP = ( + 7, + Weapons.KMGU_2___96_x_PTAB_2_5KO_Dispenser__CBU__HEAT_AP, + ) + KMGU_2___96_x_AO_2_5RT_Dispenser__CBU__HE_Frag = ( + 7, + Weapons.KMGU_2___96_x_AO_2_5RT_Dispenser__CBU__HE_Frag, + ) + P_50T___50kg_Practice_Bomb_LD = (7, Weapons.P_50T___50kg_Practice_Bomb_LD) + BetAB_500___500kg_Concrete_Piercing_Bomb_LD = ( + 7, + Weapons.BetAB_500___500kg_Concrete_Piercing_Bomb_LD, + ) + BetAB_500ShP___500kg_Concrete_Piercing_HD_w_booster_Bomb = ( + 7, + Weapons.BetAB_500ShP___500kg_Concrete_Piercing_HD_w_booster_Bomb, + ) + FAB_250___250kg_GP_Bomb_LD = (7, Weapons.FAB_250___250kg_GP_Bomb_LD) + RBK_250___42_x_PTAB_2_5M__250kg_CBU_Medium_HEAT_AP = ( + 7, + Weapons.RBK_250___42_x_PTAB_2_5M__250kg_CBU_Medium_HEAT_AP, + ) + FAB_500_M_62___500kg_GP_Bomb_LD = (7, Weapons.FAB_500_M_62___500kg_GP_Bomb_LD) + RBK_500_255___30_x_PTAB_10_5__500kg_CBU_Heavy_HEAT_AP = ( + 7, + Weapons.RBK_500_255___30_x_PTAB_10_5__500kg_CBU_Heavy_HEAT_AP, + ) + MBD3_U6_68_with_6_x_FAB_250___250kg_GP_Bombs_LD = ( + 7, + Weapons.MBD3_U6_68_with_6_x_FAB_250___250kg_GP_Bombs_LD, + ) + # ERRR + RBK_500U___126_x_OAB_2_5RT__500kg_CBU_HE_Frag = ( + 7, + Weapons.RBK_500U___126_x_OAB_2_5RT__500kg_CBU_HE_Frag, + ) + RBK_500___268_x_PTAB_1M__500kg_CBU_Light_HEAT_AP = ( + 7, + Weapons.RBK_500___268_x_PTAB_1M__500kg_CBU_Light_HEAT_AP, + ) + + class Pylon8: + R_27ET__IR_AAM = (8, WeaponsSu30.R_27ET__IR_AAM) + R_27ER__Semi_Active_Rdr_AAM = (8, WeaponsSu30.R_27ER__Semi_Active_Rdr_AAM) + R_77_1__Active_Rdr_AAM = (8, WeaponsSu30.R_77_1__Active_Rdr_AAM) + R_27EA__Active_Rdr_AAM = (8, WeaponsSu30.R_27EA__Active_Rdr_AAM) + R_27EP__Passive_Rdr_AAM = (8, WeaponsSu30.R_27EP__Passive_Rdr_AAM) + I_Derby_ER___Active_Rdr_AAM = (8, WeaponsSu30.I_Derby_ER___Active_Rdr_AAM) + R_77__Active_Rdr_AAM = (8, WeaponsSu30.R_77__Active_Rdr_AAM) + Kh_31P__AS_17_Krypton____600kg__ARM__IN__Pas_Rdr = ( + 8, + Weapons.Kh_31P__AS_17_Krypton____600kg__ARM__IN__Pas_Rdr, + ) + KH_29L__AS_14_Kedge___Semi_Act_Laser = ( + 8, + WeaponsSu30.KH_29L__AS_14_Kedge___Semi_Act_Laser, + ) + Kh_29T__AS_14_Kedge____670kg__ASM__TV_Guided_ = ( + 8, + Weapons.Kh_29T__AS_14_Kedge____670kg__ASM__TV_Guided_, + ) + Kh_59M = (8, WeaponsSu30.Kh_59M) + Kh_59MK = (8, WeaponsSu30.Kh_59MK) + Kh_31A = (8, WeaponsSu30.Kh_31A) + Kh_31P = (8, WeaponsSu30.Kh_31P) + Rudra_M1 = (8, WeaponsSu30.Rudra_M1) + KAB_500Kr___500kg_TV_Guided_Bomb = (8, Weapons.KAB_500Kr___500kg_TV_Guided_Bomb) + KAB_500S = (8, WeaponsSu30.KAB_500S) + P_50T___50kg_Practice_Bomb_LD = (8, Weapons.P_50T___50kg_Practice_Bomb_LD) + BetAB_500___500kg_Concrete_Piercing_Bomb_LD = ( + 8, + Weapons.BetAB_500___500kg_Concrete_Piercing_Bomb_LD, + ) + BetAB_500ShP___500kg_Concrete_Piercing_HD_w_booster_Bomb = ( + 8, + Weapons.BetAB_500ShP___500kg_Concrete_Piercing_HD_w_booster_Bomb, + ) + FAB_250___250kg_GP_Bomb_LD = (8, Weapons.FAB_250___250kg_GP_Bomb_LD) + RBK_250___42_x_PTAB_2_5M__250kg_CBU_Medium_HEAT_AP = ( + 8, + Weapons.RBK_250___42_x_PTAB_2_5M__250kg_CBU_Medium_HEAT_AP, + ) + FAB_500_M_62___500kg_GP_Bomb_LD = (8, Weapons.FAB_500_M_62___500kg_GP_Bomb_LD) + RBK_500_255___30_x_PTAB_10_5__500kg_CBU_Heavy_HEAT_AP = ( + 8, + Weapons.RBK_500_255___30_x_PTAB_10_5__500kg_CBU_Heavy_HEAT_AP, + ) + MBD3_U6_68_with_6_x_FAB_250___250kg_GP_Bombs_LD = ( + 8, + Weapons.MBD3_U6_68_with_6_x_FAB_250___250kg_GP_Bombs_LD, + ) + LITENING___Targeting_Pod = (8, WeaponsSu30.LITENING___Targeting_Pod) + + class Pylon9: + R_73__AA_11_Archer____Infra_Red = (9, Weapons.R_73__AA_11_Archer____Infra_Red) + R_27ER__Semi_Active_Rdr_AAM = (9, WeaponsSu30.R_27ER__Semi_Active_Rdr_AAM) + R_27ET__IR_AAM = (9, WeaponsSu30.R_27ET__IR_AAM) + R_77_1__Active_Rdr_AAM = (9, WeaponsSu30.R_77_1__Active_Rdr_AAM) + R_27EA__Active_Rdr_AAM = (9, WeaponsSu30.R_27EA__Active_Rdr_AAM) + R_27EP__Passive_Rdr_AAM = (9, WeaponsSu30.R_27EP__Passive_Rdr_AAM) + I_Derby_ER___Active_Rdr_AAM = (9, WeaponsSu30.I_Derby_ER___Active_Rdr_AAM) + R_77__Active_Rdr_AAM = (9, WeaponsSu30.R_77__Active_Rdr_AAM) + Kh_31P__AS_17_Krypton____600kg__ARM__IN__Pas_Rdr = ( + 9, + Weapons.Kh_31P__AS_17_Krypton____600kg__ARM__IN__Pas_Rdr, + ) + KH_29L__AS_14_Kedge___Semi_Act_Laser = ( + 9, + WeaponsSu30.KH_29L__AS_14_Kedge___Semi_Act_Laser, + ) + Kh_29T__AS_14_Kedge____670kg__ASM__TV_Guided_ = ( + 9, + Weapons.Kh_29T__AS_14_Kedge____670kg__ASM__TV_Guided_, + ) + Kh_59M = (9, WeaponsSu30.Kh_59M) + Kh_59MK = (9, WeaponsSu30.Kh_59MK) + Kh_31A = (9, WeaponsSu30.Kh_31A) + Kh_31P = (9, WeaponsSu30.Kh_31P) + KH_35A = (9, WeaponsSu30.KH_35A) + Rudra_M1 = (9, WeaponsSu30.Rudra_M1) + SAAW_POD = (9, WeaponsSu30.SAAW_POD) + KAB_500Kr___500kg_TV_Guided_Bomb = (9, Weapons.KAB_500Kr___500kg_TV_Guided_Bomb) + KAB_500S = (9, WeaponsSu30.KAB_500S) + KAB_1500t = (9, WeaponsSu30.KAB_1500t) + KAB_1500LG_Pr = (9, WeaponsSu30.KAB_1500LG_Pr) + KAB_1500L___1500kg_Laser_Guided_Bomb = ( + 9, + Weapons.KAB_1500L___1500kg_Laser_Guided_Bomb, + ) + KMGU_2___96_x_PTAB_2_5KO_Dispenser__CBU__HEAT_AP = ( + 9, + Weapons.KMGU_2___96_x_PTAB_2_5KO_Dispenser__CBU__HEAT_AP, + ) + KMGU_2___96_x_AO_2_5RT_Dispenser__CBU__HE_Frag = ( + 9, + Weapons.KMGU_2___96_x_AO_2_5RT_Dispenser__CBU__HE_Frag, + ) + P_50T___50kg_Practice_Bomb_LD = (9, Weapons.P_50T___50kg_Practice_Bomb_LD) + BetAB_500___500kg_Concrete_Piercing_Bomb_LD = ( + 9, + Weapons.BetAB_500___500kg_Concrete_Piercing_Bomb_LD, + ) + BetAB_500ShP___500kg_Concrete_Piercing_HD_w_booster_Bomb = ( + 9, + Weapons.BetAB_500ShP___500kg_Concrete_Piercing_HD_w_booster_Bomb, + ) + FAB_250___250kg_GP_Bomb_LD = (9, Weapons.FAB_250___250kg_GP_Bomb_LD) + RBK_250___42_x_PTAB_2_5M__250kg_CBU_Medium_HEAT_AP = ( + 9, + Weapons.RBK_250___42_x_PTAB_2_5M__250kg_CBU_Medium_HEAT_AP, + ) + FAB_500_M_62___500kg_GP_Bomb_LD = (9, Weapons.FAB_500_M_62___500kg_GP_Bomb_LD) + RBK_500_255___30_x_PTAB_10_5__500kg_CBU_Heavy_HEAT_AP = ( + 9, + Weapons.RBK_500_255___30_x_PTAB_10_5__500kg_CBU_Heavy_HEAT_AP, + ) + MBD3_U6_68_with_6_x_FAB_250___250kg_GP_Bombs_LD = ( + 9, + Weapons.MBD3_U6_68_with_6_x_FAB_250___250kg_GP_Bombs_LD, + ) + MBD3_U6_68_with_6_x_FAB_100___100kg_GP_Bombs_LD = ( + 9, + Weapons.MBD3_U6_68_with_6_x_FAB_100___100kg_GP_Bombs_LD, + ) + + class Pylon10: + R_73__AA_11_Archer____Infra_Red = (10, Weapons.R_73__AA_11_Archer____Infra_Red) + R_27R__Semi_Active_Rdr_AAM = (10, WeaponsSu30.R_27R__Semi_Active_Rdr_AAM) + R_27T__IR_AAM = (10, WeaponsSu30.R_27T__IR_AAM) + R_27ER__Semi_Active_Rdr_AAM = (10, WeaponsSu30.R_27ER__Semi_Active_Rdr_AAM) + R_27ET__IR_AAM = (10, WeaponsSu30.R_27ET__IR_AAM) + ASTRA_Mk_1___Active_Rdr_AAM = (10, WeaponsSu30.ASTRA_Mk_1___Active_Rdr_AAM) + I_Derby_ER___Active_Rdr_AAM = (10, WeaponsSu30.I_Derby_ER___Active_Rdr_AAM) + R_77_1__Active_Rdr_AAM = (10, WeaponsSu30.R_77_1__Active_Rdr_AAM) + R_27EA__Active_Rdr_AAM = (10, WeaponsSu30.R_27EA__Active_Rdr_AAM) + R_27EP__Passive_Rdr_AAM = (10, WeaponsSu30.R_27EP__Passive_Rdr_AAM) + R_77__Active_Rdr_AAM = (10, WeaponsSu30.R_77__Active_Rdr_AAM) + Kh_31P__AS_17_Krypton____600kg__ARM__IN__Pas_Rdr = ( + 10, + Weapons.Kh_31P__AS_17_Krypton____600kg__ARM__IN__Pas_Rdr, + ) + KH_29L__AS_14_Kedge___Semi_Act_Laser = ( + 10, + WeaponsSu30.KH_29L__AS_14_Kedge___Semi_Act_Laser, + ) + Kh_29T__AS_14_Kedge____670kg__ASM__TV_Guided_ = ( + 10, + Weapons.Kh_29T__AS_14_Kedge____670kg__ASM__TV_Guided_, + ) + Kh_59M = (10, WeaponsSu30.Kh_59M) + Kh_59MK = (10, WeaponsSu30.Kh_59MK) + Kh_31A = (10, WeaponsSu30.Kh_31A) + Kh_31P = (10, WeaponsSu30.Kh_31P) + KH_35A = (10, WeaponsSu30.KH_35A) + Rudra_M1 = (10, WeaponsSu30.Rudra_M1) + SAAW_POD = (10, WeaponsSu30.SAAW_POD) + KAB_500Kr___500kg_TV_Guided_Bomb = ( + 10, + Weapons.KAB_500Kr___500kg_TV_Guided_Bomb, + ) + KAB_500S = (10, WeaponsSu30.KAB_500S) + KMGU_2___96_x_PTAB_2_5KO_Dispenser__CBU__HEAT_AP = ( + 10, + Weapons.KMGU_2___96_x_PTAB_2_5KO_Dispenser__CBU__HEAT_AP, + ) + KMGU_2___96_x_AO_2_5RT_Dispenser__CBU__HE_Frag = ( + 10, + Weapons.KMGU_2___96_x_AO_2_5RT_Dispenser__CBU__HE_Frag, + ) + P_50T___50kg_Practice_Bomb_LD = (10, Weapons.P_50T___50kg_Practice_Bomb_LD) + BetAB_500___500kg_Concrete_Piercing_Bomb_LD = ( + 10, + Weapons.BetAB_500___500kg_Concrete_Piercing_Bomb_LD, + ) + BetAB_500ShP___500kg_Concrete_Piercing_HD_w_booster_Bomb = ( + 10, + Weapons.BetAB_500ShP___500kg_Concrete_Piercing_HD_w_booster_Bomb, + ) + FAB_250___250kg_GP_Bomb_LD = (10, Weapons.FAB_250___250kg_GP_Bomb_LD) + RBK_250___42_x_PTAB_2_5M__250kg_CBU_Medium_HEAT_AP = ( + 10, + Weapons.RBK_250___42_x_PTAB_2_5M__250kg_CBU_Medium_HEAT_AP, + ) + FAB_500_M_62___500kg_GP_Bomb_LD = (10, Weapons.FAB_500_M_62___500kg_GP_Bomb_LD) + RBK_500_255___30_x_PTAB_10_5__500kg_CBU_Heavy_HEAT_AP = ( + 10, + Weapons.RBK_500_255___30_x_PTAB_10_5__500kg_CBU_Heavy_HEAT_AP, + ) + MBD3_U6_68_with_6_x_FAB_250___250kg_GP_Bombs_LD = ( + 10, + Weapons.MBD3_U6_68_with_6_x_FAB_250___250kg_GP_Bombs_LD, + ) + MBD3_U6_68_with_6_x_FAB_100___100kg_GP_Bombs_LD = ( + 10, + Weapons.MBD3_U6_68_with_6_x_FAB_100___100kg_GP_Bombs_LD, + ) + _2_x_B_13L___5_S_13_OF = (10, Weapons._2_x_B_13L___5_S_13_OF) + _2_x_B_8M1___20_S_8KOM = (10, Weapons._2_x_B_8M1___20_S_8KOM) + _2_x_S_25 = (10, Weapons._2_x_S_25) + + class Pylon11: + R_73__AA_11_Archer____Infra_Red = (11, Weapons.R_73__AA_11_Archer____Infra_Red) + ASTRA_Mk_1___Active_Rdr_AAM = (11, WeaponsSu30.ASTRA_Mk_1___Active_Rdr_AAM) + I_Derby_ER___Active_Rdr_AAM = (11, WeaponsSu30.I_Derby_ER___Active_Rdr_AAM) + Smoke_Generator___red = (11, Weapons.Smoke_Generator___red) + Smoke_Generator___green = (11, Weapons.Smoke_Generator___green) + Smoke_Generator___blue = (11, Weapons.Smoke_Generator___blue) + Smoke_Generator___white = (11, Weapons.Smoke_Generator___white) + Smoke_Generator___yellow = (11, Weapons.Smoke_Generator___yellow) + Smoke_Generator___orange = (11, Weapons.Smoke_Generator___orange) + + class Pylon12: + R_73__AA_11_Archer____Infra_Red = (12, Weapons.R_73__AA_11_Archer____Infra_Red) + L005_Sorbtsiya_ECM_pod__right_ = (12, Weapons.L005_Sorbtsiya_ECM_pod__right_) + Smoke_Generator___red = (12, Weapons.Smoke_Generator___red) + Smoke_Generator___green = (12, Weapons.Smoke_Generator___green) + Smoke_Generator___blue = (12, Weapons.Smoke_Generator___blue) + Smoke_Generator___white = (12, Weapons.Smoke_Generator___white) + Smoke_Generator___yellow = (12, Weapons.Smoke_Generator___yellow) + Smoke_Generator___orange = (12, Weapons.Smoke_Generator___orange) + + pylons: Set[int] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12} + + tasks = [ + task.CAP, + task.Escort, + task.FighterSweep, + task.Intercept, + task.AFAC, + task.SEAD, + task.AntishipStrike, + task.CAS, + task.PinpointStrike, + task.GroundAttack, + task.RunwayAttack, + ] + task_default = task.CAP + + +@planemod +class Su_30MKA(PlaneType): + id = "Su-30MKA" + flyable = True + height = 5.932 + width = 14.7 + length = 21.935 + fuel_max = 9500 + max_speed = 2499.984 + chaff = 96 + flare = 96 + charge_total = 192 + chaff_charge_size = 1 + flare_charge_size = 1 + eplrs = True + category = "Interceptor" # {78EFB7A2-FD52-4b57-A6A6-3BF0E1D6555F} + radio_frequency = 124 + + panel_radio = { + 1: { + "channels": { + 1: 305, + 2: 264, + 4: 256, + 8: 257, + 16: 261, + 17: 267, + 9: 255, + 18: 251, + 5: 254, + 10: 262, + 20: 266, + 11: 259, + 3: 265, + 6: 250, + 12: 268, + 13: 269, + 7: 270, + 14: 260, + 19: 253, + 15: 263, + }, + }, + 2: { + "channels": { + 1: 305, + 2: 264, + 4: 256, + 8: 257, + 16: 261, + 17: 267, + 9: 255, + 18: 251, + 5: 254, + 10: 262, + 20: 266, + 11: 259, + 3: 265, + 6: 250, + 12: 268, + 13: 269, + 7: 270, + 14: 260, + 19: 253, + 15: 263, + }, + }, + } + + property_defaults: Dict[str, Any] = { + "SoloFlight": False, + "NetCrewControlPriority": 1, + "MOUNTSURA": False, + } + + class Properties: + class SoloFlight: + id = "SoloFlight" + + class NetCrewControlPriority: + id = "NetCrewControlPriority" + + class Values: + Pilot = 0 + Co_Pilot = 1 + Ask_Always = -1 + Equally_Responsible = -2 + + class MOUNTSURA: + id = "MOUNTSURA" + + livery_name = "SU-30MKA" # from type + Liveries = Liveries()[livery_name] + + class Pylon1: + R_73__AA_11_Archer____Infra_Red = (1, Weapons.R_73__AA_11_Archer____Infra_Red) + L005_Sorbtsiya_ECM_pod__left_ = (1, Weapons.L005_Sorbtsiya_ECM_pod__left_) + Smoke_Generator___red = (1, Weapons.Smoke_Generator___red) + Smoke_Generator___green = (1, Weapons.Smoke_Generator___green) + Smoke_Generator___blue = (1, Weapons.Smoke_Generator___blue) + Smoke_Generator___white = (1, Weapons.Smoke_Generator___white) + Smoke_Generator___yellow = (1, Weapons.Smoke_Generator___yellow) + Smoke_Generator___orange = (1, Weapons.Smoke_Generator___orange) + + class Pylon2: + R_73__AA_11_Archer____Infra_Red = (2, Weapons.R_73__AA_11_Archer____Infra_Red) + Smoke_Generator___red = (2, Weapons.Smoke_Generator___red) + Smoke_Generator___green = (2, Weapons.Smoke_Generator___green) + Smoke_Generator___blue = (2, Weapons.Smoke_Generator___blue) + Smoke_Generator___white = (2, Weapons.Smoke_Generator___white) + Smoke_Generator___yellow = (2, Weapons.Smoke_Generator___yellow) + Smoke_Generator___orange = (2, Weapons.Smoke_Generator___orange) + + class Pylon3: + R_73__AA_11_Archer____Infra_Red = (3, Weapons.R_73__AA_11_Archer____Infra_Red) + R_27R__Semi_Active_Rdr_AAM = (3, WeaponsSu30.R_27R__Semi_Active_Rdr_AAM) + R_27T__IR_AAM = (3, WeaponsSu30.R_27T__IR_AAM) + R_27ER__Semi_Active_Rdr_AAM = (3, WeaponsSu30.R_27ER__Semi_Active_Rdr_AAM) + R_27ET__IR_AAM = (3, WeaponsSu30.R_27ET__IR_AAM) + R_77__Active_Rdr_AAM = (3, WeaponsSu30.R_77__Active_Rdr_AAM) + Kh_31P = (3, WeaponsSu30.Kh_31P) + Kh_29T__AS_14_Kedge____670kg__ASM__TV_Guided_ = ( + 3, + Weapons.Kh_29T__AS_14_Kedge____670kg__ASM__TV_Guided_, + ) + KH_29L__AS_14_Kedge___Semi_Act_Laser = ( + 3, + WeaponsSu30.KH_29L__AS_14_Kedge___Semi_Act_Laser, + ) + KH_29TE__AS_14_Kedge___TV_Guided = ( + 3, + WeaponsSu30.KH_29TE__AS_14_Kedge___TV_Guided, + ) + Kh_59M = (3, WeaponsSu30.Kh_59M) + Kh_59MK = (3, WeaponsSu30.Kh_59MK) + Kh_31A = (3, WeaponsSu30.Kh_31A) + KH_35A = (3, WeaponsSu30.KH_35A) + KAB_500Kr___500kg_TV_Guided_Bomb = (3, Weapons.KAB_500Kr___500kg_TV_Guided_Bomb) + KAB_500S = (3, WeaponsSu30.KAB_500S) + KMGU_2___96_x_PTAB_2_5KO_Dispenser__CBU__HEAT_AP = ( + 3, + Weapons.KMGU_2___96_x_PTAB_2_5KO_Dispenser__CBU__HEAT_AP, + ) + KMGU_2___96_x_AO_2_5RT_Dispenser__CBU__HE_Frag = ( + 3, + Weapons.KMGU_2___96_x_AO_2_5RT_Dispenser__CBU__HE_Frag, + ) + P_50T___50kg_Practice_Bomb_LD = (3, Weapons.P_50T___50kg_Practice_Bomb_LD) + BetAB_500___500kg_Concrete_Piercing_Bomb_LD = ( + 3, + Weapons.BetAB_500___500kg_Concrete_Piercing_Bomb_LD, + ) + BetAB_500ShP___500kg_Concrete_Piercing_HD_w_booster_Bomb = ( + 3, + Weapons.BetAB_500ShP___500kg_Concrete_Piercing_HD_w_booster_Bomb, + ) + FAB_250___250kg_GP_Bomb_LD = (3, Weapons.FAB_250___250kg_GP_Bomb_LD) + RBK_250___42_x_PTAB_2_5M__250kg_CBU_Medium_HEAT_AP = ( + 3, + Weapons.RBK_250___42_x_PTAB_2_5M__250kg_CBU_Medium_HEAT_AP, + ) + FAB_500_M_62___500kg_GP_Bomb_LD = (3, Weapons.FAB_500_M_62___500kg_GP_Bomb_LD) + RBK_500_255___30_x_PTAB_10_5__500kg_CBU_Heavy_HEAT_AP = ( + 3, + Weapons.RBK_500_255___30_x_PTAB_10_5__500kg_CBU_Heavy_HEAT_AP, + ) + MBD3_U6_68_with_6_x_FAB_250___250kg_GP_Bombs_LD = ( + 3, + Weapons.MBD3_U6_68_with_6_x_FAB_250___250kg_GP_Bombs_LD, + ) + MBD3_U6_68_with_6_x_FAB_100___100kg_GP_Bombs_LD = ( + 3, + Weapons.MBD3_U6_68_with_6_x_FAB_100___100kg_GP_Bombs_LD, + ) + _2_x_B_13L___5_S_13_OF = (3, Weapons._2_x_B_13L___5_S_13_OF) + _2_x_B_8M1___20_S_8KOM = (3, Weapons._2_x_B_8M1___20_S_8KOM) + _2_x_S_25 = (3, Weapons._2_x_S_25) + + class Pylon4: + R_73__AA_11_Archer____Infra_Red = (4, Weapons.R_73__AA_11_Archer____Infra_Red) + R_27R__Semi_Active_Rdr_AAM = (4, WeaponsSu30.R_27R__Semi_Active_Rdr_AAM) + R_27T__IR_AAM = (4, WeaponsSu30.R_27T__IR_AAM) + R_27ER__Semi_Active_Rdr_AAM = (4, WeaponsSu30.R_27ER__Semi_Active_Rdr_AAM) + R_27ET__IR_AAM = (4, WeaponsSu30.R_27ET__IR_AAM) + R_77__Active_Rdr_AAM = (4, WeaponsSu30.R_77__Active_Rdr_AAM) + Kh_31P = (4, WeaponsSu30.Kh_31P) + Kh_29T__AS_14_Kedge____670kg__ASM__TV_Guided_ = ( + 4, + Weapons.Kh_29T__AS_14_Kedge____670kg__ASM__TV_Guided_, + ) + KH_29L__AS_14_Kedge___Semi_Act_Laser = ( + 4, + WeaponsSu30.KH_29L__AS_14_Kedge___Semi_Act_Laser, + ) + KH_29TE__AS_14_Kedge___TV_Guided = ( + 4, + WeaponsSu30.KH_29TE__AS_14_Kedge___TV_Guided, + ) + Kh_59M = (4, WeaponsSu30.Kh_59M) + Kh_59MK = (4, WeaponsSu30.Kh_59MK) + Kh_31A = (4, WeaponsSu30.Kh_31A) + KH_35A = (4, WeaponsSu30.KH_35A) + KAB_500Kr___500kg_TV_Guided_Bomb = (4, Weapons.KAB_500Kr___500kg_TV_Guided_Bomb) + KAB_500S = (4, WeaponsSu30.KAB_500S) + KAB_1500t = (4, WeaponsSu30.KAB_1500t) + KAB_1500LG_Pr = (4, WeaponsSu30.KAB_1500LG_Pr) + KAB_1500L___1500kg_Laser_Guided_Bomb = ( + 4, + Weapons.KAB_1500L___1500kg_Laser_Guided_Bomb, + ) + KMGU_2___96_x_PTAB_2_5KO_Dispenser__CBU__HEAT_AP = ( + 4, + Weapons.KMGU_2___96_x_PTAB_2_5KO_Dispenser__CBU__HEAT_AP, + ) + KMGU_2___96_x_AO_2_5RT_Dispenser__CBU__HE_Frag = ( + 4, + Weapons.KMGU_2___96_x_AO_2_5RT_Dispenser__CBU__HE_Frag, + ) + P_50T___50kg_Practice_Bomb_LD = (4, Weapons.P_50T___50kg_Practice_Bomb_LD) + BetAB_500___500kg_Concrete_Piercing_Bomb_LD = ( + 4, + Weapons.BetAB_500___500kg_Concrete_Piercing_Bomb_LD, + ) + BetAB_500ShP___500kg_Concrete_Piercing_HD_w_booster_Bomb = ( + 4, + Weapons.BetAB_500ShP___500kg_Concrete_Piercing_HD_w_booster_Bomb, + ) + FAB_250___250kg_GP_Bomb_LD = (4, Weapons.FAB_250___250kg_GP_Bomb_LD) + RBK_250___42_x_PTAB_2_5M__250kg_CBU_Medium_HEAT_AP = ( + 4, + Weapons.RBK_250___42_x_PTAB_2_5M__250kg_CBU_Medium_HEAT_AP, + ) + FAB_500_M_62___500kg_GP_Bomb_LD = (4, Weapons.FAB_500_M_62___500kg_GP_Bomb_LD) + RBK_500_255___30_x_PTAB_10_5__500kg_CBU_Heavy_HEAT_AP = ( + 4, + Weapons.RBK_500_255___30_x_PTAB_10_5__500kg_CBU_Heavy_HEAT_AP, + ) + MBD3_U6_68_with_6_x_FAB_250___250kg_GP_Bombs_LD = ( + 4, + Weapons.MBD3_U6_68_with_6_x_FAB_250___250kg_GP_Bombs_LD, + ) + MBD3_U6_68_with_6_x_FAB_100___100kg_GP_Bombs_LD = ( + 4, + Weapons.MBD3_U6_68_with_6_x_FAB_100___100kg_GP_Bombs_LD, + ) + + class Pylon5: + R_27R__Semi_Active_Rdr_AAM = (5, WeaponsSu30.R_27R__Semi_Active_Rdr_AAM) + R_27ER__Semi_Active_Rdr_AAM = (5, WeaponsSu30.R_27ER__Semi_Active_Rdr_AAM) + R_77__Active_Rdr_AAM = (5, WeaponsSu30.R_77__Active_Rdr_AAM) + Kh_31P = (5, WeaponsSu30.Kh_31P) + KH_29L__AS_14_Kedge___Semi_Act_Laser = ( + 5, + WeaponsSu30.KH_29L__AS_14_Kedge___Semi_Act_Laser, + ) + Kh_29T__AS_14_Kedge____670kg__ASM__TV_Guided_ = ( + 5, + Weapons.Kh_29T__AS_14_Kedge____670kg__ASM__TV_Guided_, + ) + KH_29TE__AS_14_Kedge___TV_Guided = ( + 5, + WeaponsSu30.KH_29TE__AS_14_Kedge___TV_Guided, + ) + Kh_31A = (5, WeaponsSu30.Kh_31A) + KAB_500Kr___500kg_TV_Guided_Bomb = (5, Weapons.KAB_500Kr___500kg_TV_Guided_Bomb) + KAB_500S = (5, WeaponsSu30.KAB_500S) + P_50T___50kg_Practice_Bomb_LD = (5, Weapons.P_50T___50kg_Practice_Bomb_LD) + BetAB_500___500kg_Concrete_Piercing_Bomb_LD = ( + 5, + Weapons.BetAB_500___500kg_Concrete_Piercing_Bomb_LD, + ) + BetAB_500ShP___500kg_Concrete_Piercing_HD_w_booster_Bomb = ( + 5, + Weapons.BetAB_500ShP___500kg_Concrete_Piercing_HD_w_booster_Bomb, + ) + FAB_250___250kg_GP_Bomb_LD = (5, Weapons.FAB_250___250kg_GP_Bomb_LD) + RBK_250___42_x_PTAB_2_5M__250kg_CBU_Medium_HEAT_AP = ( + 5, + Weapons.RBK_250___42_x_PTAB_2_5M__250kg_CBU_Medium_HEAT_AP, + ) + FAB_500_M_62___500kg_GP_Bomb_LD = (5, Weapons.FAB_500_M_62___500kg_GP_Bomb_LD) + RBK_500_255___30_x_PTAB_10_5__500kg_CBU_Heavy_HEAT_AP = ( + 5, + Weapons.RBK_500_255___30_x_PTAB_10_5__500kg_CBU_Heavy_HEAT_AP, + ) + MBD3_U6_68_with_6_x_FAB_250___250kg_GP_Bombs_LD = ( + 5, + Weapons.MBD3_U6_68_with_6_x_FAB_250___250kg_GP_Bombs_LD, + ) + APK_9_POD = (5, WeaponsSu30.APK_9_POD) + + class Pylon6: + R_27R__Semi_Active_Rdr_AAM = (6, WeaponsSu30.R_27R__Semi_Active_Rdr_AAM) + R_27ER__Semi_Active_Rdr_AAM = (6, WeaponsSu30.R_27ER__Semi_Active_Rdr_AAM) + R_77__Active_Rdr_AAM = (6, WeaponsSu30.R_77__Active_Rdr_AAM) + KAB_500Kr___500kg_TV_Guided_Bomb = (6, Weapons.KAB_500Kr___500kg_TV_Guided_Bomb) + KAB_500S = (6, WeaponsSu30.KAB_500S) + KAB_1500t = (6, WeaponsSu30.KAB_1500t) + KAB_1500LG_Pr = (6, WeaponsSu30.KAB_1500LG_Pr) + KAB_1500L___1500kg_Laser_Guided_Bomb = ( + 6, + Weapons.KAB_1500L___1500kg_Laser_Guided_Bomb, + ) + KMGU_2___96_x_PTAB_2_5KO_Dispenser__CBU__HEAT_AP = ( + 6, + Weapons.KMGU_2___96_x_PTAB_2_5KO_Dispenser__CBU__HEAT_AP, + ) + KMGU_2___96_x_AO_2_5RT_Dispenser__CBU__HE_Frag = ( + 6, + Weapons.KMGU_2___96_x_AO_2_5RT_Dispenser__CBU__HE_Frag, + ) + P_50T___50kg_Practice_Bomb_LD = (6, Weapons.P_50T___50kg_Practice_Bomb_LD) + BetAB_500___500kg_Concrete_Piercing_Bomb_LD = ( + 6, + Weapons.BetAB_500___500kg_Concrete_Piercing_Bomb_LD, + ) + BetAB_500ShP___500kg_Concrete_Piercing_HD_w_booster_Bomb = ( + 6, + Weapons.BetAB_500ShP___500kg_Concrete_Piercing_HD_w_booster_Bomb, + ) + FAB_250___250kg_GP_Bomb_LD = (6, Weapons.FAB_250___250kg_GP_Bomb_LD) + RBK_250___42_x_PTAB_2_5M__250kg_CBU_Medium_HEAT_AP = ( + 6, + Weapons.RBK_250___42_x_PTAB_2_5M__250kg_CBU_Medium_HEAT_AP, + ) + FAB_500_M_62___500kg_GP_Bomb_LD = (6, Weapons.FAB_500_M_62___500kg_GP_Bomb_LD) + RBK_500_255___30_x_PTAB_10_5__500kg_CBU_Heavy_HEAT_AP = ( + 6, + Weapons.RBK_500_255___30_x_PTAB_10_5__500kg_CBU_Heavy_HEAT_AP, + ) + MBD3_U6_68_with_6_x_FAB_250___250kg_GP_Bombs_LD = ( + 6, + Weapons.MBD3_U6_68_with_6_x_FAB_250___250kg_GP_Bombs_LD, + ) + RBK_500U___126_x_OAB_2_5RT__500kg_CBU_HE_Frag = ( + 6, + Weapons.RBK_500U___126_x_OAB_2_5RT__500kg_CBU_HE_Frag, + ) + RBK_500___268_x_PTAB_1M__500kg_CBU_Light_HEAT_AP = ( + 6, + Weapons.RBK_500___268_x_PTAB_1M__500kg_CBU_Light_HEAT_AP, + ) + + class Pylon7: + R_27R__Semi_Active_Rdr_AAM = (7, WeaponsSu30.R_27R__Semi_Active_Rdr_AAM) + R_27ER__Semi_Active_Rdr_AAM = (7, WeaponsSu30.R_27ER__Semi_Active_Rdr_AAM) + R_77__Active_Rdr_AAM = (7, WeaponsSu30.R_77__Active_Rdr_AAM) + KAB_500Kr___500kg_TV_Guided_Bomb = (7, Weapons.KAB_500Kr___500kg_TV_Guided_Bomb) + KAB_500S = (7, WeaponsSu30.KAB_500S) + KMGU_2___96_x_PTAB_2_5KO_Dispenser__CBU__HEAT_AP = ( + 7, + Weapons.KMGU_2___96_x_PTAB_2_5KO_Dispenser__CBU__HEAT_AP, + ) + KMGU_2___96_x_AO_2_5RT_Dispenser__CBU__HE_Frag = ( + 7, + Weapons.KMGU_2___96_x_AO_2_5RT_Dispenser__CBU__HE_Frag, + ) + P_50T___50kg_Practice_Bomb_LD = (7, Weapons.P_50T___50kg_Practice_Bomb_LD) + BetAB_500___500kg_Concrete_Piercing_Bomb_LD = ( + 7, + Weapons.BetAB_500___500kg_Concrete_Piercing_Bomb_LD, + ) + BetAB_500ShP___500kg_Concrete_Piercing_HD_w_booster_Bomb = ( + 7, + Weapons.BetAB_500ShP___500kg_Concrete_Piercing_HD_w_booster_Bomb, + ) + FAB_250___250kg_GP_Bomb_LD = (7, Weapons.FAB_250___250kg_GP_Bomb_LD) + RBK_250___42_x_PTAB_2_5M__250kg_CBU_Medium_HEAT_AP = ( + 7, + Weapons.RBK_250___42_x_PTAB_2_5M__250kg_CBU_Medium_HEAT_AP, + ) + FAB_500_M_62___500kg_GP_Bomb_LD = (7, Weapons.FAB_500_M_62___500kg_GP_Bomb_LD) + RBK_500_255___30_x_PTAB_10_5__500kg_CBU_Heavy_HEAT_AP = ( + 7, + Weapons.RBK_500_255___30_x_PTAB_10_5__500kg_CBU_Heavy_HEAT_AP, + ) + MBD3_U6_68_with_6_x_FAB_250___250kg_GP_Bombs_LD = ( + 7, + Weapons.MBD3_U6_68_with_6_x_FAB_250___250kg_GP_Bombs_LD, + ) + RBK_500U___126_x_OAB_2_5RT__500kg_CBU_HE_Frag = ( + 7, + Weapons.RBK_500U___126_x_OAB_2_5RT__500kg_CBU_HE_Frag, + ) + RBK_500___268_x_PTAB_1M__500kg_CBU_Light_HEAT_AP = ( + 7, + Weapons.RBK_500___268_x_PTAB_1M__500kg_CBU_Light_HEAT_AP, + ) + + class Pylon8: + R_27R__Semi_Active_Rdr_AAM = (8, WeaponsSu30.R_27R__Semi_Active_Rdr_AAM) + R_27ER__Semi_Active_Rdr_AAM = (8, WeaponsSu30.R_27ER__Semi_Active_Rdr_AAM) + R_77__Active_Rdr_AAM = (8, WeaponsSu30.R_77__Active_Rdr_AAM) + Kh_31P = (8, WeaponsSu30.Kh_31P) + Kh_29T__AS_14_Kedge____670kg__ASM__TV_Guided_ = ( + 8, + Weapons.Kh_29T__AS_14_Kedge____670kg__ASM__TV_Guided_, + ) + KH_29L__AS_14_Kedge___Semi_Act_Laser = ( + 8, + WeaponsSu30.KH_29L__AS_14_Kedge___Semi_Act_Laser, + ) + KH_29TE__AS_14_Kedge___TV_Guided = ( + 8, + WeaponsSu30.KH_29TE__AS_14_Kedge___TV_Guided, + ) + Kh_31A = (8, WeaponsSu30.Kh_31A) + KAB_500Kr___500kg_TV_Guided_Bomb = (8, Weapons.KAB_500Kr___500kg_TV_Guided_Bomb) + KAB_500S = (8, WeaponsSu30.KAB_500S) + P_50T___50kg_Practice_Bomb_LD = (8, Weapons.P_50T___50kg_Practice_Bomb_LD) + BetAB_500___500kg_Concrete_Piercing_Bomb_LD = ( + 8, + Weapons.BetAB_500___500kg_Concrete_Piercing_Bomb_LD, + ) + BetAB_500ShP___500kg_Concrete_Piercing_HD_w_booster_Bomb = ( + 8, + Weapons.BetAB_500ShP___500kg_Concrete_Piercing_HD_w_booster_Bomb, + ) + FAB_250___250kg_GP_Bomb_LD = (8, Weapons.FAB_250___250kg_GP_Bomb_LD) + RBK_250___42_x_PTAB_2_5M__250kg_CBU_Medium_HEAT_AP = ( + 8, + Weapons.RBK_250___42_x_PTAB_2_5M__250kg_CBU_Medium_HEAT_AP, + ) + FAB_500_M_62___500kg_GP_Bomb_LD = (8, Weapons.FAB_500_M_62___500kg_GP_Bomb_LD) + RBK_500_255___30_x_PTAB_10_5__500kg_CBU_Heavy_HEAT_AP = ( + 8, + Weapons.RBK_500_255___30_x_PTAB_10_5__500kg_CBU_Heavy_HEAT_AP, + ) + MBD3_U6_68_with_6_x_FAB_250___250kg_GP_Bombs_LD = ( + 8, + Weapons.MBD3_U6_68_with_6_x_FAB_250___250kg_GP_Bombs_LD, + ) + DAMOCLES___Targeting_Pod = (8, WeaponsSu30.DAMOCLES___Targeting_Pod) + + class Pylon9: + R_73__AA_11_Archer____Infra_Red = (9, Weapons.R_73__AA_11_Archer____Infra_Red) + R_27R__Semi_Active_Rdr_AAM = (9, WeaponsSu30.R_27R__Semi_Active_Rdr_AAM) + R_27T__IR_AAM = (9, WeaponsSu30.R_27T__IR_AAM) + R_27ER__Semi_Active_Rdr_AAM = (9, WeaponsSu30.R_27ER__Semi_Active_Rdr_AAM) + R_27ET__IR_AAM = (9, WeaponsSu30.R_27ET__IR_AAM) + R_77__Active_Rdr_AAM = (9, WeaponsSu30.R_77__Active_Rdr_AAM) + Kh_31P = (9, WeaponsSu30.Kh_31P) + Kh_29T__AS_14_Kedge____670kg__ASM__TV_Guided_ = ( + 9, + Weapons.Kh_29T__AS_14_Kedge____670kg__ASM__TV_Guided_, + ) + KH_29L__AS_14_Kedge___Semi_Act_Laser = ( + 9, + WeaponsSu30.KH_29L__AS_14_Kedge___Semi_Act_Laser, + ) + KH_29TE__AS_14_Kedge___TV_Guided = ( + 9, + WeaponsSu30.KH_29TE__AS_14_Kedge___TV_Guided, + ) + Kh_59M = (9, WeaponsSu30.Kh_59M) + Kh_59MK = (9, WeaponsSu30.Kh_59MK) + Kh_31A = (9, WeaponsSu30.Kh_31A) + KH_35A = (9, WeaponsSu30.KH_35A) + KAB_500Kr___500kg_TV_Guided_Bomb = (9, Weapons.KAB_500Kr___500kg_TV_Guided_Bomb) + KAB_500S = (9, WeaponsSu30.KAB_500S) + KAB_1500t = (9, WeaponsSu30.KAB_1500t) + KAB_1500LG_Pr = (9, WeaponsSu30.KAB_1500LG_Pr) + KAB_1500L___1500kg_Laser_Guided_Bomb = ( + 9, + Weapons.KAB_1500L___1500kg_Laser_Guided_Bomb, + ) + KMGU_2___96_x_PTAB_2_5KO_Dispenser__CBU__HEAT_AP = ( + 9, + Weapons.KMGU_2___96_x_PTAB_2_5KO_Dispenser__CBU__HEAT_AP, + ) + KMGU_2___96_x_AO_2_5RT_Dispenser__CBU__HE_Frag = ( + 9, + Weapons.KMGU_2___96_x_AO_2_5RT_Dispenser__CBU__HE_Frag, + ) + P_50T___50kg_Practice_Bomb_LD = (9, Weapons.P_50T___50kg_Practice_Bomb_LD) + BetAB_500___500kg_Concrete_Piercing_Bomb_LD = ( + 9, + Weapons.BetAB_500___500kg_Concrete_Piercing_Bomb_LD, + ) + BetAB_500ShP___500kg_Concrete_Piercing_HD_w_booster_Bomb = ( + 9, + Weapons.BetAB_500ShP___500kg_Concrete_Piercing_HD_w_booster_Bomb, + ) + FAB_250___250kg_GP_Bomb_LD = (9, Weapons.FAB_250___250kg_GP_Bomb_LD) + RBK_250___42_x_PTAB_2_5M__250kg_CBU_Medium_HEAT_AP = ( + 9, + Weapons.RBK_250___42_x_PTAB_2_5M__250kg_CBU_Medium_HEAT_AP, + ) + FAB_500_M_62___500kg_GP_Bomb_LD = (9, Weapons.FAB_500_M_62___500kg_GP_Bomb_LD) + RBK_500_255___30_x_PTAB_10_5__500kg_CBU_Heavy_HEAT_AP = ( + 9, + Weapons.RBK_500_255___30_x_PTAB_10_5__500kg_CBU_Heavy_HEAT_AP, + ) + MBD3_U6_68_with_6_x_FAB_250___250kg_GP_Bombs_LD = ( + 9, + Weapons.MBD3_U6_68_with_6_x_FAB_250___250kg_GP_Bombs_LD, + ) + MBD3_U6_68_with_6_x_FAB_100___100kg_GP_Bombs_LD = ( + 9, + Weapons.MBD3_U6_68_with_6_x_FAB_100___100kg_GP_Bombs_LD, + ) + + class Pylon10: + R_73__AA_11_Archer____Infra_Red = (10, Weapons.R_73__AA_11_Archer____Infra_Red) + R_27R__Semi_Active_Rdr_AAM = (10, WeaponsSu30.R_27R__Semi_Active_Rdr_AAM) + R_27T__IR_AAM = (10, WeaponsSu30.R_27T__IR_AAM) + R_27ER__Semi_Active_Rdr_AAM = (10, WeaponsSu30.R_27ER__Semi_Active_Rdr_AAM) + R_27ET__IR_AAM = (10, WeaponsSu30.R_27ET__IR_AAM) + R_77__Active_Rdr_AAM = (10, WeaponsSu30.R_77__Active_Rdr_AAM) + Kh_31P = (10, WeaponsSu30.Kh_31P) + Kh_29T__AS_14_Kedge____670kg__ASM__TV_Guided_ = ( + 10, + Weapons.Kh_29T__AS_14_Kedge____670kg__ASM__TV_Guided_, + ) + KH_29L__AS_14_Kedge___Semi_Act_Laser = ( + 10, + WeaponsSu30.KH_29L__AS_14_Kedge___Semi_Act_Laser, + ) + KH_29TE__AS_14_Kedge___TV_Guided = ( + 10, + WeaponsSu30.KH_29TE__AS_14_Kedge___TV_Guided, + ) + Kh_59M = (10, WeaponsSu30.Kh_59M) + Kh_59MK = (10, WeaponsSu30.Kh_59MK) + Kh_31A = (10, WeaponsSu30.Kh_31A) + KH_35A = (10, WeaponsSu30.KH_35A) + KAB_500Kr___500kg_TV_Guided_Bomb = ( + 10, + Weapons.KAB_500Kr___500kg_TV_Guided_Bomb, + ) + KAB_500S = (10, WeaponsSu30.KAB_500S) + KMGU_2___96_x_PTAB_2_5KO_Dispenser__CBU__HEAT_AP = ( + 10, + Weapons.KMGU_2___96_x_PTAB_2_5KO_Dispenser__CBU__HEAT_AP, + ) + KMGU_2___96_x_AO_2_5RT_Dispenser__CBU__HE_Frag = ( + 10, + Weapons.KMGU_2___96_x_AO_2_5RT_Dispenser__CBU__HE_Frag, + ) + P_50T___50kg_Practice_Bomb_LD = (10, Weapons.P_50T___50kg_Practice_Bomb_LD) + BetAB_500___500kg_Concrete_Piercing_Bomb_LD = ( + 10, + Weapons.BetAB_500___500kg_Concrete_Piercing_Bomb_LD, + ) + BetAB_500ShP___500kg_Concrete_Piercing_HD_w_booster_Bomb = ( + 10, + Weapons.BetAB_500ShP___500kg_Concrete_Piercing_HD_w_booster_Bomb, + ) + FAB_250___250kg_GP_Bomb_LD = (10, Weapons.FAB_250___250kg_GP_Bomb_LD) + RBK_250___42_x_PTAB_2_5M__250kg_CBU_Medium_HEAT_AP = ( + 10, + Weapons.RBK_250___42_x_PTAB_2_5M__250kg_CBU_Medium_HEAT_AP, + ) + FAB_500_M_62___500kg_GP_Bomb_LD = (10, Weapons.FAB_500_M_62___500kg_GP_Bomb_LD) + RBK_500_255___30_x_PTAB_10_5__500kg_CBU_Heavy_HEAT_AP = ( + 10, + Weapons.RBK_500_255___30_x_PTAB_10_5__500kg_CBU_Heavy_HEAT_AP, + ) + MBD3_U6_68_with_6_x_FAB_250___250kg_GP_Bombs_LD = ( + 10, + Weapons.MBD3_U6_68_with_6_x_FAB_250___250kg_GP_Bombs_LD, + ) + MBD3_U6_68_with_6_x_FAB_100___100kg_GP_Bombs_LD = ( + 10, + Weapons.MBD3_U6_68_with_6_x_FAB_100___100kg_GP_Bombs_LD, + ) + _2_x_B_13L___5_S_13_OF = (10, Weapons._2_x_B_13L___5_S_13_OF) + _2_x_B_8M1___20_S_8KOM = (10, Weapons._2_x_B_8M1___20_S_8KOM) + _2_x_S_25 = (10, Weapons._2_x_S_25) + + class Pylon11: + R_73__AA_11_Archer____Infra_Red = (11, Weapons.R_73__AA_11_Archer____Infra_Red) + Smoke_Generator___red = (11, Weapons.Smoke_Generator___red) + Smoke_Generator___green = (11, Weapons.Smoke_Generator___green) + Smoke_Generator___blue = (11, Weapons.Smoke_Generator___blue) + Smoke_Generator___white = (11, Weapons.Smoke_Generator___white) + Smoke_Generator___yellow = (11, Weapons.Smoke_Generator___yellow) + Smoke_Generator___orange = (11, Weapons.Smoke_Generator___orange) + + class Pylon12: + R_73__AA_11_Archer____Infra_Red = (12, Weapons.R_73__AA_11_Archer____Infra_Red) + L005_Sorbtsiya_ECM_pod__right_ = (12, Weapons.L005_Sorbtsiya_ECM_pod__right_) + Smoke_Generator___red = (12, Weapons.Smoke_Generator___red) + Smoke_Generator___green = (12, Weapons.Smoke_Generator___green) + Smoke_Generator___blue = (12, Weapons.Smoke_Generator___blue) + Smoke_Generator___white = (12, Weapons.Smoke_Generator___white) + Smoke_Generator___yellow = (12, Weapons.Smoke_Generator___yellow) + Smoke_Generator___orange = (12, Weapons.Smoke_Generator___orange) + + pylons: Set[int] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12} + + tasks = [ + task.CAP, + task.Escort, + task.FighterSweep, + task.Intercept, + task.AFAC, + task.SEAD, + task.AntishipStrike, + task.CAS, + task.PinpointStrike, + task.GroundAttack, + task.RunwayAttack, + ] + task_default = task.CAP + + +@planemod +class Su_30MKM(PlaneType): + id = "Su-30MKM" + flyable = True + height = 5.932 + width = 14.7 + length = 21.935 + fuel_max = 9400 + max_speed = 2499.984 + chaff = 96 + flare = 96 + charge_total = 192 + chaff_charge_size = 1 + flare_charge_size = 1 + category = "Interceptor" # {78EFB7A2-FD52-4b57-A6A6-3BF0E1D6555F} + radio_frequency = 124 + + panel_radio = { + 1: { + "channels": { + 1: 305, + 2: 264, + 4: 256, + 8: 257, + 16: 261, + 17: 267, + 9: 255, + 18: 251, + 5: 254, + 10: 262, + 20: 266, + 11: 259, + 3: 265, + 6: 250, + 12: 268, + 13: 269, + 7: 270, + 14: 260, + 19: 253, + 15: 263, + }, + }, + 2: { + "channels": { + 1: 305, + 2: 264, + 4: 256, + 8: 257, + 16: 261, + 17: 267, + 9: 255, + 18: 251, + 5: 254, + 10: 262, + 20: 266, + 11: 259, + 3: 265, + 6: 250, + 12: 268, + 13: 269, + 7: 270, + 14: 260, + 19: 253, + 15: 263, + }, + }, + } + + property_defaults: Dict[str, Any] = { + "SoloFlight": False, + "NetCrewControlPriority": 1, + } + + class Properties: + class SoloFlight: + id = "SoloFlight" + + class NetCrewControlPriority: + id = "NetCrewControlPriority" + + class Values: + Pilot = 0 + Co_Pilot = 1 + Ask_Always = -1 + Equally_Responsible = -2 + + livery_name = "SU-30MKM" # from type + Liveries = Liveries()[livery_name] + + class Pylon1: + R_73__AA_11_Archer____Infra_Red = (1, Weapons.R_73__AA_11_Archer____Infra_Red) + L005_Sorbtsiya_ECM_pod__left_ = (1, Weapons.L005_Sorbtsiya_ECM_pod__left_) + Smoke_Generator___red = (1, Weapons.Smoke_Generator___red) + Smoke_Generator___green = (1, Weapons.Smoke_Generator___green) + Smoke_Generator___blue = (1, Weapons.Smoke_Generator___blue) + Smoke_Generator___white = (1, Weapons.Smoke_Generator___white) + Smoke_Generator___yellow = (1, Weapons.Smoke_Generator___yellow) + Smoke_Generator___orange = (1, Weapons.Smoke_Generator___orange) + + class Pylon2: + R_73__AA_11_Archer____Infra_Red = (2, Weapons.R_73__AA_11_Archer____Infra_Red) + Smoke_Generator___red = (2, Weapons.Smoke_Generator___red) + Smoke_Generator___green = (2, Weapons.Smoke_Generator___green) + Smoke_Generator___blue = (2, Weapons.Smoke_Generator___blue) + Smoke_Generator___white = (2, Weapons.Smoke_Generator___white) + Smoke_Generator___yellow = (2, Weapons.Smoke_Generator___yellow) + Smoke_Generator___orange = (2, Weapons.Smoke_Generator___orange) + + class Pylon3: + R_73__AA_11_Archer____Infra_Red = (3, Weapons.R_73__AA_11_Archer____Infra_Red) + R_27R__Semi_Active_Rdr_AAM = (3, WeaponsSu30.R_27R__Semi_Active_Rdr_AAM) + R_27T__IR_AAM = (3, WeaponsSu30.R_27T__IR_AAM) + R_27ER__Semi_Active_Rdr_AAM = (3, WeaponsSu30.R_27ER__Semi_Active_Rdr_AAM) + R_27ET__IR_AAM = (3, WeaponsSu30.R_27ET__IR_AAM) + R_77__Active_Rdr_AAM = (3, WeaponsSu30.R_77__Active_Rdr_AAM) + Kh_31P = (3, WeaponsSu30.Kh_31P) + Kh_29T__AS_14_Kedge____670kg__ASM__TV_Guided_ = ( + 3, + Weapons.Kh_29T__AS_14_Kedge____670kg__ASM__TV_Guided_, + ) + KH_29L__AS_14_Kedge___Semi_Act_Laser = ( + 3, + WeaponsSu30.KH_29L__AS_14_Kedge___Semi_Act_Laser, + ) + KH_29TE__AS_14_Kedge___TV_Guided = ( + 3, + WeaponsSu30.KH_29TE__AS_14_Kedge___TV_Guided, + ) + Kh_59M = (3, WeaponsSu30.Kh_59M) + Kh_59MK = (3, WeaponsSu30.Kh_59MK) + Kh_31A = (3, WeaponsSu30.Kh_31A) + KH_35A = (3, WeaponsSu30.KH_35A) + KAB_500Kr___500kg_TV_Guided_Bomb = (3, Weapons.KAB_500Kr___500kg_TV_Guided_Bomb) + KAB_500S = (3, WeaponsSu30.KAB_500S) + KMGU_2___96_x_PTAB_2_5KO_Dispenser__CBU__HEAT_AP = ( + 3, + Weapons.KMGU_2___96_x_PTAB_2_5KO_Dispenser__CBU__HEAT_AP, + ) + KMGU_2___96_x_AO_2_5RT_Dispenser__CBU__HE_Frag = ( + 3, + Weapons.KMGU_2___96_x_AO_2_5RT_Dispenser__CBU__HE_Frag, + ) + P_50T___50kg_Practice_Bomb_LD = (3, Weapons.P_50T___50kg_Practice_Bomb_LD) + BetAB_500___500kg_Concrete_Piercing_Bomb_LD = ( + 3, + Weapons.BetAB_500___500kg_Concrete_Piercing_Bomb_LD, + ) + BetAB_500ShP___500kg_Concrete_Piercing_HD_w_booster_Bomb = ( + 3, + Weapons.BetAB_500ShP___500kg_Concrete_Piercing_HD_w_booster_Bomb, + ) + FAB_250___250kg_GP_Bomb_LD = (3, Weapons.FAB_250___250kg_GP_Bomb_LD) + RBK_250___42_x_PTAB_2_5M__250kg_CBU_Medium_HEAT_AP = ( + 3, + Weapons.RBK_250___42_x_PTAB_2_5M__250kg_CBU_Medium_HEAT_AP, + ) + FAB_500_M_62___500kg_GP_Bomb_LD = (3, Weapons.FAB_500_M_62___500kg_GP_Bomb_LD) + RBK_500_255___30_x_PTAB_10_5__500kg_CBU_Heavy_HEAT_AP = ( + 3, + Weapons.RBK_500_255___30_x_PTAB_10_5__500kg_CBU_Heavy_HEAT_AP, + ) + MBD3_U6_68_with_6_x_FAB_250___250kg_GP_Bombs_LD = ( + 3, + Weapons.MBD3_U6_68_with_6_x_FAB_250___250kg_GP_Bombs_LD, + ) + MBD3_U6_68_with_6_x_FAB_100___100kg_GP_Bombs_LD = ( + 3, + Weapons.MBD3_U6_68_with_6_x_FAB_100___100kg_GP_Bombs_LD, + ) + _2_x_B_13L___5_S_13_OF = (3, Weapons._2_x_B_13L___5_S_13_OF) + _2_x_B_8M1___20_S_8KOM = (3, Weapons._2_x_B_8M1___20_S_8KOM) + _2_x_S_25 = (3, Weapons._2_x_S_25) + + class Pylon4: + R_73__AA_11_Archer____Infra_Red = (4, Weapons.R_73__AA_11_Archer____Infra_Red) + R_27R__Semi_Active_Rdr_AAM = (4, WeaponsSu30.R_27R__Semi_Active_Rdr_AAM) + R_27T__IR_AAM = (4, WeaponsSu30.R_27T__IR_AAM) + R_27ER__Semi_Active_Rdr_AAM = (4, WeaponsSu30.R_27ER__Semi_Active_Rdr_AAM) + R_27ET__IR_AAM = (4, WeaponsSu30.R_27ET__IR_AAM) + R_77__Active_Rdr_AAM = (4, WeaponsSu30.R_77__Active_Rdr_AAM) + Kh_31P = (4, WeaponsSu30.Kh_31P) + Kh_29T__AS_14_Kedge____670kg__ASM__TV_Guided_ = ( + 4, + Weapons.Kh_29T__AS_14_Kedge____670kg__ASM__TV_Guided_, + ) + KH_29L__AS_14_Kedge___Semi_Act_Laser = ( + 4, + WeaponsSu30.KH_29L__AS_14_Kedge___Semi_Act_Laser, + ) + KH_29TE__AS_14_Kedge___TV_Guided = ( + 4, + WeaponsSu30.KH_29TE__AS_14_Kedge___TV_Guided, + ) + Kh_59M = (4, WeaponsSu30.Kh_59M) + Kh_59MK = (4, WeaponsSu30.Kh_59MK) + Kh_31A = (4, WeaponsSu30.Kh_31A) + KH_35A = (4, WeaponsSu30.KH_35A) + KAB_500Kr___500kg_TV_Guided_Bomb = (4, Weapons.KAB_500Kr___500kg_TV_Guided_Bomb) + KAB_500S = (4, WeaponsSu30.KAB_500S) + KAB_1500t = (4, WeaponsSu30.KAB_1500t) + KAB_1500LG_Pr = (4, WeaponsSu30.KAB_1500LG_Pr) + KAB_1500L___1500kg_Laser_Guided_Bomb = ( + 4, + Weapons.KAB_1500L___1500kg_Laser_Guided_Bomb, + ) + KMGU_2___96_x_PTAB_2_5KO_Dispenser__CBU__HEAT_AP = ( + 4, + Weapons.KMGU_2___96_x_PTAB_2_5KO_Dispenser__CBU__HEAT_AP, + ) + KMGU_2___96_x_AO_2_5RT_Dispenser__CBU__HE_Frag = ( + 4, + Weapons.KMGU_2___96_x_AO_2_5RT_Dispenser__CBU__HE_Frag, + ) + P_50T___50kg_Practice_Bomb_LD = (4, Weapons.P_50T___50kg_Practice_Bomb_LD) + BetAB_500___500kg_Concrete_Piercing_Bomb_LD = ( + 4, + Weapons.BetAB_500___500kg_Concrete_Piercing_Bomb_LD, + ) + BetAB_500ShP___500kg_Concrete_Piercing_HD_w_booster_Bomb = ( + 4, + Weapons.BetAB_500ShP___500kg_Concrete_Piercing_HD_w_booster_Bomb, + ) + FAB_250___250kg_GP_Bomb_LD = (4, Weapons.FAB_250___250kg_GP_Bomb_LD) + RBK_250___42_x_PTAB_2_5M__250kg_CBU_Medium_HEAT_AP = ( + 4, + Weapons.RBK_250___42_x_PTAB_2_5M__250kg_CBU_Medium_HEAT_AP, + ) + FAB_500_M_62___500kg_GP_Bomb_LD = (4, Weapons.FAB_500_M_62___500kg_GP_Bomb_LD) + RBK_500_255___30_x_PTAB_10_5__500kg_CBU_Heavy_HEAT_AP = ( + 4, + Weapons.RBK_500_255___30_x_PTAB_10_5__500kg_CBU_Heavy_HEAT_AP, + ) + MBD3_U6_68_with_6_x_FAB_250___250kg_GP_Bombs_LD = ( + 4, + Weapons.MBD3_U6_68_with_6_x_FAB_250___250kg_GP_Bombs_LD, + ) + MBD3_U6_68_with_6_x_FAB_100___100kg_GP_Bombs_LD = ( + 4, + Weapons.MBD3_U6_68_with_6_x_FAB_100___100kg_GP_Bombs_LD, + ) + + class Pylon5: + R_27R__Semi_Active_Rdr_AAM = (5, WeaponsSu30.R_27R__Semi_Active_Rdr_AAM) + R_27ER__Semi_Active_Rdr_AAM = (5, WeaponsSu30.R_27ER__Semi_Active_Rdr_AAM) + R_77__Active_Rdr_AAM = (5, WeaponsSu30.R_77__Active_Rdr_AAM) + Kh_31P = (5, WeaponsSu30.Kh_31P) + KH_29L__AS_14_Kedge___Semi_Act_Laser = ( + 5, + WeaponsSu30.KH_29L__AS_14_Kedge___Semi_Act_Laser, + ) + Kh_29T__AS_14_Kedge____670kg__ASM__TV_Guided_ = ( + 5, + Weapons.Kh_29T__AS_14_Kedge____670kg__ASM__TV_Guided_, + ) + KH_29TE__AS_14_Kedge___TV_Guided = ( + 5, + WeaponsSu30.KH_29TE__AS_14_Kedge___TV_Guided, + ) + Kh_31A = (5, WeaponsSu30.Kh_31A) + KAB_500Kr___500kg_TV_Guided_Bomb = (5, Weapons.KAB_500Kr___500kg_TV_Guided_Bomb) + KAB_500S = (5, WeaponsSu30.KAB_500S) + P_50T___50kg_Practice_Bomb_LD = (5, Weapons.P_50T___50kg_Practice_Bomb_LD) + BetAB_500___500kg_Concrete_Piercing_Bomb_LD = ( + 5, + Weapons.BetAB_500___500kg_Concrete_Piercing_Bomb_LD, + ) + BetAB_500ShP___500kg_Concrete_Piercing_HD_w_booster_Bomb = ( + 5, + Weapons.BetAB_500ShP___500kg_Concrete_Piercing_HD_w_booster_Bomb, + ) + FAB_250___250kg_GP_Bomb_LD = (5, Weapons.FAB_250___250kg_GP_Bomb_LD) + RBK_250___42_x_PTAB_2_5M__250kg_CBU_Medium_HEAT_AP = ( + 5, + Weapons.RBK_250___42_x_PTAB_2_5M__250kg_CBU_Medium_HEAT_AP, + ) + FAB_500_M_62___500kg_GP_Bomb_LD = (5, Weapons.FAB_500_M_62___500kg_GP_Bomb_LD) + RBK_500_255___30_x_PTAB_10_5__500kg_CBU_Heavy_HEAT_AP = ( + 5, + Weapons.RBK_500_255___30_x_PTAB_10_5__500kg_CBU_Heavy_HEAT_AP, + ) + MBD3_U6_68_with_6_x_FAB_250___250kg_GP_Bombs_LD = ( + 5, + Weapons.MBD3_U6_68_with_6_x_FAB_250___250kg_GP_Bombs_LD, + ) + APK_9_POD = (5, WeaponsSu30.APK_9_POD) + + class Pylon6: + R_27R__Semi_Active_Rdr_AAM = (6, WeaponsSu30.R_27R__Semi_Active_Rdr_AAM) + R_27ER__Semi_Active_Rdr_AAM = (6, WeaponsSu30.R_27ER__Semi_Active_Rdr_AAM) + R_77__Active_Rdr_AAM = (6, WeaponsSu30.R_77__Active_Rdr_AAM) + KAB_500Kr___500kg_TV_Guided_Bomb = (6, Weapons.KAB_500Kr___500kg_TV_Guided_Bomb) + KAB_500S = (6, WeaponsSu30.KAB_500S) + KAB_1500t = (6, WeaponsSu30.KAB_1500t) + KAB_1500LG_Pr = (6, WeaponsSu30.KAB_1500LG_Pr) + KAB_1500L___1500kg_Laser_Guided_Bomb = ( + 6, + Weapons.KAB_1500L___1500kg_Laser_Guided_Bomb, + ) + KMGU_2___96_x_PTAB_2_5KO_Dispenser__CBU__HEAT_AP = ( + 6, + Weapons.KMGU_2___96_x_PTAB_2_5KO_Dispenser__CBU__HEAT_AP, + ) + KMGU_2___96_x_AO_2_5RT_Dispenser__CBU__HE_Frag = ( + 6, + Weapons.KMGU_2___96_x_AO_2_5RT_Dispenser__CBU__HE_Frag, + ) + P_50T___50kg_Practice_Bomb_LD = (6, Weapons.P_50T___50kg_Practice_Bomb_LD) + BetAB_500___500kg_Concrete_Piercing_Bomb_LD = ( + 6, + Weapons.BetAB_500___500kg_Concrete_Piercing_Bomb_LD, + ) + BetAB_500ShP___500kg_Concrete_Piercing_HD_w_booster_Bomb = ( + 6, + Weapons.BetAB_500ShP___500kg_Concrete_Piercing_HD_w_booster_Bomb, + ) + FAB_250___250kg_GP_Bomb_LD = (6, Weapons.FAB_250___250kg_GP_Bomb_LD) + RBK_250___42_x_PTAB_2_5M__250kg_CBU_Medium_HEAT_AP = ( + 6, + Weapons.RBK_250___42_x_PTAB_2_5M__250kg_CBU_Medium_HEAT_AP, + ) + FAB_500_M_62___500kg_GP_Bomb_LD = (6, Weapons.FAB_500_M_62___500kg_GP_Bomb_LD) + RBK_500_255___30_x_PTAB_10_5__500kg_CBU_Heavy_HEAT_AP = ( + 6, + Weapons.RBK_500_255___30_x_PTAB_10_5__500kg_CBU_Heavy_HEAT_AP, + ) + MBD3_U6_68_with_6_x_FAB_250___250kg_GP_Bombs_LD = ( + 6, + Weapons.MBD3_U6_68_with_6_x_FAB_250___250kg_GP_Bombs_LD, + ) + RBK_500U___126_x_OAB_2_5RT__500kg_CBU_HE_Frag = ( + 6, + Weapons.RBK_500U___126_x_OAB_2_5RT__500kg_CBU_HE_Frag, + ) + RBK_500___268_x_PTAB_1M__500kg_CBU_Light_HEAT_AP = ( + 6, + Weapons.RBK_500___268_x_PTAB_1M__500kg_CBU_Light_HEAT_AP, + ) + + class Pylon7: + R_27R__Semi_Active_Rdr_AAM = (7, WeaponsSu30.R_27R__Semi_Active_Rdr_AAM) + R_27ER__Semi_Active_Rdr_AAM = (7, WeaponsSu30.R_27ER__Semi_Active_Rdr_AAM) + R_77__Active_Rdr_AAM = (7, WeaponsSu30.R_77__Active_Rdr_AAM) + KAB_500Kr___500kg_TV_Guided_Bomb = (7, Weapons.KAB_500Kr___500kg_TV_Guided_Bomb) + KAB_500S = (7, WeaponsSu30.KAB_500S) + KMGU_2___96_x_PTAB_2_5KO_Dispenser__CBU__HEAT_AP = ( + 7, + Weapons.KMGU_2___96_x_PTAB_2_5KO_Dispenser__CBU__HEAT_AP, + ) + KMGU_2___96_x_AO_2_5RT_Dispenser__CBU__HE_Frag = ( + 7, + Weapons.KMGU_2___96_x_AO_2_5RT_Dispenser__CBU__HE_Frag, + ) + P_50T___50kg_Practice_Bomb_LD = (7, Weapons.P_50T___50kg_Practice_Bomb_LD) + BetAB_500___500kg_Concrete_Piercing_Bomb_LD = ( + 7, + Weapons.BetAB_500___500kg_Concrete_Piercing_Bomb_LD, + ) + BetAB_500ShP___500kg_Concrete_Piercing_HD_w_booster_Bomb = ( + 7, + Weapons.BetAB_500ShP___500kg_Concrete_Piercing_HD_w_booster_Bomb, + ) + FAB_250___250kg_GP_Bomb_LD = (7, Weapons.FAB_250___250kg_GP_Bomb_LD) + RBK_250___42_x_PTAB_2_5M__250kg_CBU_Medium_HEAT_AP = ( + 7, + Weapons.RBK_250___42_x_PTAB_2_5M__250kg_CBU_Medium_HEAT_AP, + ) + FAB_500_M_62___500kg_GP_Bomb_LD = (7, Weapons.FAB_500_M_62___500kg_GP_Bomb_LD) + RBK_500_255___30_x_PTAB_10_5__500kg_CBU_Heavy_HEAT_AP = ( + 7, + Weapons.RBK_500_255___30_x_PTAB_10_5__500kg_CBU_Heavy_HEAT_AP, + ) + MBD3_U6_68_with_6_x_FAB_250___250kg_GP_Bombs_LD = ( + 7, + Weapons.MBD3_U6_68_with_6_x_FAB_250___250kg_GP_Bombs_LD, + ) + RBK_500U___126_x_OAB_2_5RT__500kg_CBU_HE_Frag = ( + 7, + Weapons.RBK_500U___126_x_OAB_2_5RT__500kg_CBU_HE_Frag, + ) + RBK_500___268_x_PTAB_1M__500kg_CBU_Light_HEAT_AP = ( + 7, + Weapons.RBK_500___268_x_PTAB_1M__500kg_CBU_Light_HEAT_AP, + ) + + class Pylon8: + R_27R__Semi_Active_Rdr_AAM = (8, WeaponsSu30.R_27R__Semi_Active_Rdr_AAM) + R_27ER__Semi_Active_Rdr_AAM = (8, WeaponsSu30.R_27ER__Semi_Active_Rdr_AAM) + R_77__Active_Rdr_AAM = (8, WeaponsSu30.R_77__Active_Rdr_AAM) + Kh_31P = (8, WeaponsSu30.Kh_31P) + Kh_29T__AS_14_Kedge____670kg__ASM__TV_Guided_ = ( + 8, + Weapons.Kh_29T__AS_14_Kedge____670kg__ASM__TV_Guided_, + ) + KH_29L__AS_14_Kedge___Semi_Act_Laser = ( + 8, + WeaponsSu30.KH_29L__AS_14_Kedge___Semi_Act_Laser, + ) + KH_29TE__AS_14_Kedge___TV_Guided = ( + 8, + WeaponsSu30.KH_29TE__AS_14_Kedge___TV_Guided, + ) + Kh_31A = (8, WeaponsSu30.Kh_31A) + KAB_500Kr___500kg_TV_Guided_Bomb = (8, Weapons.KAB_500Kr___500kg_TV_Guided_Bomb) + KAB_500S = (8, WeaponsSu30.KAB_500S) + P_50T___50kg_Practice_Bomb_LD = (8, Weapons.P_50T___50kg_Practice_Bomb_LD) + BetAB_500___500kg_Concrete_Piercing_Bomb_LD = ( + 8, + Weapons.BetAB_500___500kg_Concrete_Piercing_Bomb_LD, + ) + BetAB_500ShP___500kg_Concrete_Piercing_HD_w_booster_Bomb = ( + 8, + Weapons.BetAB_500ShP___500kg_Concrete_Piercing_HD_w_booster_Bomb, + ) + FAB_250___250kg_GP_Bomb_LD = (8, Weapons.FAB_250___250kg_GP_Bomb_LD) + RBK_250___42_x_PTAB_2_5M__250kg_CBU_Medium_HEAT_AP = ( + 8, + Weapons.RBK_250___42_x_PTAB_2_5M__250kg_CBU_Medium_HEAT_AP, + ) + FAB_500_M_62___500kg_GP_Bomb_LD = (8, Weapons.FAB_500_M_62___500kg_GP_Bomb_LD) + RBK_500_255___30_x_PTAB_10_5__500kg_CBU_Heavy_HEAT_AP = ( + 8, + Weapons.RBK_500_255___30_x_PTAB_10_5__500kg_CBU_Heavy_HEAT_AP, + ) + MBD3_U6_68_with_6_x_FAB_250___250kg_GP_Bombs_LD = ( + 8, + Weapons.MBD3_U6_68_with_6_x_FAB_250___250kg_GP_Bombs_LD, + ) + DAMOCLES___Targeting_Pod = (8, WeaponsSu30.DAMOCLES___Targeting_Pod) + + class Pylon9: + R_73__AA_11_Archer____Infra_Red = (9, Weapons.R_73__AA_11_Archer____Infra_Red) + R_27R__Semi_Active_Rdr_AAM = (9, WeaponsSu30.R_27R__Semi_Active_Rdr_AAM) + R_27T__IR_AAM = (9, WeaponsSu30.R_27T__IR_AAM) + R_27ER__Semi_Active_Rdr_AAM = (9, WeaponsSu30.R_27ER__Semi_Active_Rdr_AAM) + R_27ET__IR_AAM = (9, WeaponsSu30.R_27ET__IR_AAM) + R_77__Active_Rdr_AAM = (9, WeaponsSu30.R_77__Active_Rdr_AAM) + Kh_31P = (9, WeaponsSu30.Kh_31P) + Kh_29T__AS_14_Kedge____670kg__ASM__TV_Guided_ = ( + 9, + Weapons.Kh_29T__AS_14_Kedge____670kg__ASM__TV_Guided_, + ) + KH_29L__AS_14_Kedge___Semi_Act_Laser = ( + 9, + WeaponsSu30.KH_29L__AS_14_Kedge___Semi_Act_Laser, + ) + KH_29TE__AS_14_Kedge___TV_Guided = ( + 9, + WeaponsSu30.KH_29TE__AS_14_Kedge___TV_Guided, + ) + Kh_59M = (9, WeaponsSu30.Kh_59M) + Kh_59MK = (9, WeaponsSu30.Kh_59MK) + Kh_31A = (9, WeaponsSu30.Kh_31A) + KH_35A = (9, WeaponsSu30.KH_35A) + KAB_500Kr___500kg_TV_Guided_Bomb = (9, Weapons.KAB_500Kr___500kg_TV_Guided_Bomb) + KAB_500S = (9, WeaponsSu30.KAB_500S) + KAB_1500t = (9, WeaponsSu30.KAB_1500t) + KAB_1500LG_Pr = (9, WeaponsSu30.KAB_1500LG_Pr) + KAB_1500L___1500kg_Laser_Guided_Bomb = ( + 9, + Weapons.KAB_1500L___1500kg_Laser_Guided_Bomb, + ) + KMGU_2___96_x_PTAB_2_5KO_Dispenser__CBU__HEAT_AP = ( + 9, + Weapons.KMGU_2___96_x_PTAB_2_5KO_Dispenser__CBU__HEAT_AP, + ) + KMGU_2___96_x_AO_2_5RT_Dispenser__CBU__HE_Frag = ( + 9, + Weapons.KMGU_2___96_x_AO_2_5RT_Dispenser__CBU__HE_Frag, + ) + P_50T___50kg_Practice_Bomb_LD = (9, Weapons.P_50T___50kg_Practice_Bomb_LD) + BetAB_500___500kg_Concrete_Piercing_Bomb_LD = ( + 9, + Weapons.BetAB_500___500kg_Concrete_Piercing_Bomb_LD, + ) + BetAB_500ShP___500kg_Concrete_Piercing_HD_w_booster_Bomb = ( + 9, + Weapons.BetAB_500ShP___500kg_Concrete_Piercing_HD_w_booster_Bomb, + ) + FAB_250___250kg_GP_Bomb_LD = (9, Weapons.FAB_250___250kg_GP_Bomb_LD) + RBK_250___42_x_PTAB_2_5M__250kg_CBU_Medium_HEAT_AP = ( + 9, + Weapons.RBK_250___42_x_PTAB_2_5M__250kg_CBU_Medium_HEAT_AP, + ) + FAB_500_M_62___500kg_GP_Bomb_LD = (9, Weapons.FAB_500_M_62___500kg_GP_Bomb_LD) + RBK_500_255___30_x_PTAB_10_5__500kg_CBU_Heavy_HEAT_AP = ( + 9, + Weapons.RBK_500_255___30_x_PTAB_10_5__500kg_CBU_Heavy_HEAT_AP, + ) + MBD3_U6_68_with_6_x_FAB_250___250kg_GP_Bombs_LD = ( + 9, + Weapons.MBD3_U6_68_with_6_x_FAB_250___250kg_GP_Bombs_LD, + ) + MBD3_U6_68_with_6_x_FAB_100___100kg_GP_Bombs_LD = ( + 9, + Weapons.MBD3_U6_68_with_6_x_FAB_100___100kg_GP_Bombs_LD, + ) + + class Pylon10: + R_73__AA_11_Archer____Infra_Red = (10, Weapons.R_73__AA_11_Archer____Infra_Red) + R_27R__Semi_Active_Rdr_AAM = (10, WeaponsSu30.R_27R__Semi_Active_Rdr_AAM) + R_27T__IR_AAM = (10, WeaponsSu30.R_27T__IR_AAM) + R_27ER__Semi_Active_Rdr_AAM = (10, WeaponsSu30.R_27ER__Semi_Active_Rdr_AAM) + R_27ET__IR_AAM = (10, WeaponsSu30.R_27ET__IR_AAM) + R_77__Active_Rdr_AAM = (10, WeaponsSu30.R_77__Active_Rdr_AAM) + Kh_31P = (10, WeaponsSu30.Kh_31P) + Kh_29T__AS_14_Kedge____670kg__ASM__TV_Guided_ = ( + 10, + Weapons.Kh_29T__AS_14_Kedge____670kg__ASM__TV_Guided_, + ) + KH_29L__AS_14_Kedge___Semi_Act_Laser = ( + 10, + WeaponsSu30.KH_29L__AS_14_Kedge___Semi_Act_Laser, + ) + KH_29TE__AS_14_Kedge___TV_Guided = ( + 10, + WeaponsSu30.KH_29TE__AS_14_Kedge___TV_Guided, + ) + Kh_59M = (10, WeaponsSu30.Kh_59M) + Kh_59MK = (10, WeaponsSu30.Kh_59MK) + Kh_31A = (10, WeaponsSu30.Kh_31A) + KH_35A = (10, WeaponsSu30.KH_35A) + KAB_500Kr___500kg_TV_Guided_Bomb = ( + 10, + Weapons.KAB_500Kr___500kg_TV_Guided_Bomb, + ) + KAB_500S = (10, WeaponsSu30.KAB_500S) + KMGU_2___96_x_PTAB_2_5KO_Dispenser__CBU__HEAT_AP = ( + 10, + Weapons.KMGU_2___96_x_PTAB_2_5KO_Dispenser__CBU__HEAT_AP, + ) + KMGU_2___96_x_AO_2_5RT_Dispenser__CBU__HE_Frag = ( + 10, + Weapons.KMGU_2___96_x_AO_2_5RT_Dispenser__CBU__HE_Frag, + ) + P_50T___50kg_Practice_Bomb_LD = (10, Weapons.P_50T___50kg_Practice_Bomb_LD) + BetAB_500___500kg_Concrete_Piercing_Bomb_LD = ( + 10, + Weapons.BetAB_500___500kg_Concrete_Piercing_Bomb_LD, + ) + BetAB_500ShP___500kg_Concrete_Piercing_HD_w_booster_Bomb = ( + 10, + Weapons.BetAB_500ShP___500kg_Concrete_Piercing_HD_w_booster_Bomb, + ) + FAB_250___250kg_GP_Bomb_LD = (10, Weapons.FAB_250___250kg_GP_Bomb_LD) + RBK_250___42_x_PTAB_2_5M__250kg_CBU_Medium_HEAT_AP = ( + 10, + Weapons.RBK_250___42_x_PTAB_2_5M__250kg_CBU_Medium_HEAT_AP, + ) + FAB_500_M_62___500kg_GP_Bomb_LD = (10, Weapons.FAB_500_M_62___500kg_GP_Bomb_LD) + RBK_500_255___30_x_PTAB_10_5__500kg_CBU_Heavy_HEAT_AP = ( + 10, + Weapons.RBK_500_255___30_x_PTAB_10_5__500kg_CBU_Heavy_HEAT_AP, + ) + MBD3_U6_68_with_6_x_FAB_250___250kg_GP_Bombs_LD = ( + 10, + Weapons.MBD3_U6_68_with_6_x_FAB_250___250kg_GP_Bombs_LD, + ) + MBD3_U6_68_with_6_x_FAB_100___100kg_GP_Bombs_LD = ( + 10, + Weapons.MBD3_U6_68_with_6_x_FAB_100___100kg_GP_Bombs_LD, + ) + _2_x_B_13L___5_S_13_OF = (10, Weapons._2_x_B_13L___5_S_13_OF) + _2_x_B_8M1___20_S_8KOM = (10, Weapons._2_x_B_8M1___20_S_8KOM) + _2_x_S_25 = (10, Weapons._2_x_S_25) + + class Pylon11: + R_73__AA_11_Archer____Infra_Red = (11, Weapons.R_73__AA_11_Archer____Infra_Red) + Smoke_Generator___red = (11, Weapons.Smoke_Generator___red) + Smoke_Generator___green = (11, Weapons.Smoke_Generator___green) + Smoke_Generator___blue = (11, Weapons.Smoke_Generator___blue) + Smoke_Generator___white = (11, Weapons.Smoke_Generator___white) + Smoke_Generator___yellow = (11, Weapons.Smoke_Generator___yellow) + Smoke_Generator___orange = (11, Weapons.Smoke_Generator___orange) + + class Pylon12: + R_73__AA_11_Archer____Infra_Red = (12, Weapons.R_73__AA_11_Archer____Infra_Red) + L005_Sorbtsiya_ECM_pod__right_ = (12, Weapons.L005_Sorbtsiya_ECM_pod__right_) + Smoke_Generator___red = (12, Weapons.Smoke_Generator___red) + Smoke_Generator___green = (12, Weapons.Smoke_Generator___green) + Smoke_Generator___blue = (12, Weapons.Smoke_Generator___blue) + Smoke_Generator___white = (12, Weapons.Smoke_Generator___white) + Smoke_Generator___yellow = (12, Weapons.Smoke_Generator___yellow) + Smoke_Generator___orange = (12, Weapons.Smoke_Generator___orange) + + pylons: Set[int] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12} + + tasks = [ + task.CAP, + task.Escort, + task.FighterSweep, + task.Intercept, + task.AFAC, + task.SEAD, + task.AntishipStrike, + task.CAS, + task.PinpointStrike, + task.GroundAttack, + task.RunwayAttack, + ] + task_default = task.CAP + + +@planemod +class Su_30SM(PlaneType): + id = "Su-30SM" + flyable = True + height = 5.932 + width = 14.7 + length = 21.935 + fuel_max = 9500 + max_speed = 2499.984 + chaff = 96 + flare = 96 + charge_total = 192 + chaff_charge_size = 1 + flare_charge_size = 1 + eplrs = True + category = "Interceptor" # {78EFB7A2-FD52-4b57-A6A6-3BF0E1D6555F} + radio_frequency = 124 + + panel_radio = { + 1: { + "channels": { + 1: 305, + 2: 264, + 4: 256, + 8: 257, + 16: 261, + 17: 267, + 9: 255, + 18: 251, + 5: 254, + 10: 262, + 20: 266, + 11: 259, + 3: 265, + 6: 250, + 12: 268, + 13: 269, + 7: 270, + 14: 260, + 19: 253, + 15: 263, + }, + }, + 2: { + "channels": { + 1: 305, + 2: 264, + 4: 256, + 8: 257, + 16: 261, + 17: 267, + 9: 255, + 18: 251, + 5: 254, + 10: 262, + 20: 266, + 11: 259, + 3: 265, + 6: 250, + 12: 268, + 13: 269, + 7: 270, + 14: 260, + 19: 253, + 15: 263, + }, + }, + } + + property_defaults: Dict[str, Any] = { + "SoloFlight": False, + "NetCrewControlPriority": 1, + "MOUNTSURA": False, + } + + class Properties: + class SoloFlight: + id = "SoloFlight" + + class NetCrewControlPriority: + id = "NetCrewControlPriority" + + class Values: + Pilot = 0 + Flight_officer = 1 + Ask_Always = -1 + Equally_Responsible = -2 + + class MOUNTSURA: + id = "MOUNTSURA" + + livery_name = "SU-30SM" # from type + Liveries = Liveries()[livery_name] + + class Pylon1: + R_73__AA_11_Archer____Infra_Red = (1, Weapons.R_73__AA_11_Archer____Infra_Red) + L005_Sorbtsiya_ECM_pod__left_ = (1, Weapons.L005_Sorbtsiya_ECM_pod__left_) + Smoke_Generator___red = (1, Weapons.Smoke_Generator___red) + Smoke_Generator___green = (1, Weapons.Smoke_Generator___green) + Smoke_Generator___blue = (1, Weapons.Smoke_Generator___blue) + Smoke_Generator___white = (1, Weapons.Smoke_Generator___white) + Smoke_Generator___yellow = (1, Weapons.Smoke_Generator___yellow) + Smoke_Generator___orange = (1, Weapons.Smoke_Generator___orange) + + class Pylon2: + R_73__AA_11_Archer____Infra_Red = (2, Weapons.R_73__AA_11_Archer____Infra_Red) + Smoke_Generator___red = (2, Weapons.Smoke_Generator___red) + Smoke_Generator___green = (2, Weapons.Smoke_Generator___green) + Smoke_Generator___blue = (2, Weapons.Smoke_Generator___blue) + Smoke_Generator___white = (2, Weapons.Smoke_Generator___white) + Smoke_Generator___yellow = (2, Weapons.Smoke_Generator___yellow) + Smoke_Generator___orange = (2, Weapons.Smoke_Generator___orange) + + class Pylon3: + R_73__AA_11_Archer____Infra_Red = (3, Weapons.R_73__AA_11_Archer____Infra_Red) + R_27R__Semi_Active_Rdr_AAM = (3, WeaponsSu30.R_27R__Semi_Active_Rdr_AAM) + R_27T__IR_AAM = (3, WeaponsSu30.R_27T__IR_AAM) + R_27EA__Active_Rdr_AAM = (3, WeaponsSu30.R_27EA__Active_Rdr_AAM) + R_27ER__Semi_Active_Rdr_AAM = (3, WeaponsSu30.R_27ER__Semi_Active_Rdr_AAM) + R_27ET__IR_AAM = (3, WeaponsSu30.R_27ET__IR_AAM) + R_27EP__Passive_Rdr_AAM = (3, WeaponsSu30.R_27EP__Passive_Rdr_AAM) + R_77__Active_Rdr_AAM = (3, WeaponsSu30.R_77__Active_Rdr_AAM) + R_77_1__Active_Rdr_AAM = (3, WeaponsSu30.R_77_1__Active_Rdr_AAM) + R_77M__Active_Rdr_AAM = (3, WeaponsSu30.R_77M__Active_Rdr_AAM) + Kh_31P = (3, WeaponsSu30.Kh_31P) + Kh_36_Grom_1 = (3, WeaponsSu30.Kh_36_Grom_1) + KH_38MTE = (3, WeaponsSu30.KH_38MTE) + KH_38MLE = (3, WeaponsSu30.KH_38MLE) + KH_38MAE = (3, WeaponsSu30.KH_38MAE) + Kh_29T__AS_14_Kedge____670kg__ASM__TV_Guided_ = ( + 3, + Weapons.Kh_29T__AS_14_Kedge____670kg__ASM__TV_Guided_, + ) + KH_29L__AS_14_Kedge___Semi_Act_Laser = ( + 3, + WeaponsSu30.KH_29L__AS_14_Kedge___Semi_Act_Laser, + ) + KH_29TE__AS_14_Kedge___TV_Guided = ( + 3, + WeaponsSu30.KH_29TE__AS_14_Kedge___TV_Guided, + ) + Kh_59M = (3, WeaponsSu30.Kh_59M) + Kh_59MK = (3, WeaponsSu30.Kh_59MK) + Kh_31A = (3, WeaponsSu30.Kh_31A) + KH_35A = (3, WeaponsSu30.KH_35A) + KH_35UE = (3, WeaponsSu30.KH_35UE) + KH_31AD = (3, WeaponsSu30.KH_31AD) + KH_31PD = (3, WeaponsSu30.KH_31PD) + Kh_59MK2_ = (3, WeaponsSu30.Kh_59MK2_) + KAB_500Kr___500kg_TV_Guided_Bomb = (3, Weapons.KAB_500Kr___500kg_TV_Guided_Bomb) + KAB_500S = (3, WeaponsSu30.KAB_500S) + KMGU_2___96_x_PTAB_2_5KO_Dispenser__CBU__HEAT_AP = ( + 3, + Weapons.KMGU_2___96_x_PTAB_2_5KO_Dispenser__CBU__HEAT_AP, + ) + KMGU_2___96_x_AO_2_5RT_Dispenser__CBU__HE_Frag = ( + 3, + Weapons.KMGU_2___96_x_AO_2_5RT_Dispenser__CBU__HE_Frag, + ) + P_50T___50kg_Practice_Bomb_LD = (3, Weapons.P_50T___50kg_Practice_Bomb_LD) + BetAB_500___500kg_Concrete_Piercing_Bomb_LD = ( + 3, + Weapons.BetAB_500___500kg_Concrete_Piercing_Bomb_LD, + ) + BetAB_500ShP___500kg_Concrete_Piercing_HD_w_booster_Bomb = ( + 3, + Weapons.BetAB_500ShP___500kg_Concrete_Piercing_HD_w_booster_Bomb, + ) + FAB_250___250kg_GP_Bomb_LD = (3, Weapons.FAB_250___250kg_GP_Bomb_LD) + RBK_250___42_x_PTAB_2_5M__250kg_CBU_Medium_HEAT_AP = ( + 3, + Weapons.RBK_250___42_x_PTAB_2_5M__250kg_CBU_Medium_HEAT_AP, + ) + FAB_500_M_62___500kg_GP_Bomb_LD = (3, Weapons.FAB_500_M_62___500kg_GP_Bomb_LD) + RBK_500_255___30_x_PTAB_10_5__500kg_CBU_Heavy_HEAT_AP = ( + 3, + Weapons.RBK_500_255___30_x_PTAB_10_5__500kg_CBU_Heavy_HEAT_AP, + ) + MBD3_U6_68_with_6_x_FAB_250___250kg_GP_Bombs_LD = ( + 3, + Weapons.MBD3_U6_68_with_6_x_FAB_250___250kg_GP_Bombs_LD, + ) + MBD3_U6_68_with_6_x_FAB_100___100kg_GP_Bombs_LD = ( + 3, + Weapons.MBD3_U6_68_with_6_x_FAB_100___100kg_GP_Bombs_LD, + ) + _2_x_B_13L___5_S_13_OF = (3, Weapons._2_x_B_13L___5_S_13_OF) + _2_x_B_8M1___20_S_8KOM = (3, Weapons._2_x_B_8M1___20_S_8KOM) + _2_x_S_25 = (3, Weapons._2_x_S_25) + + class Pylon4: + R_73__AA_11_Archer____Infra_Red = (4, Weapons.R_73__AA_11_Archer____Infra_Red) + R_27R__Semi_Active_Rdr_AAM = (4, WeaponsSu30.R_27R__Semi_Active_Rdr_AAM) + R_27T__IR_AAM = (4, WeaponsSu30.R_27T__IR_AAM) + R_27EA__Active_Rdr_AAM = (4, WeaponsSu30.R_27EA__Active_Rdr_AAM) + R_27ER__Semi_Active_Rdr_AAM = (4, WeaponsSu30.R_27ER__Semi_Active_Rdr_AAM) + R_27ET__IR_AAM = (4, WeaponsSu30.R_27ET__IR_AAM) + R_27EP__Passive_Rdr_AAM = (4, WeaponsSu30.R_27EP__Passive_Rdr_AAM) + R_77__Active_Rdr_AAM = (4, WeaponsSu30.R_77__Active_Rdr_AAM) + R_77_1__Active_Rdr_AAM = (4, WeaponsSu30.R_77_1__Active_Rdr_AAM) + R_77M__Active_Rdr_AAM = (4, WeaponsSu30.R_77M__Active_Rdr_AAM) + Kh_31P = (4, WeaponsSu30.Kh_31P) + Kh_36_Grom_1 = (4, WeaponsSu30.Kh_36_Grom_1) + KH_38MTE = (4, WeaponsSu30.KH_38MTE) + KH_38MLE = (4, WeaponsSu30.KH_38MLE) + KH_38MAE = (4, WeaponsSu30.KH_38MAE) + Kh_29T__AS_14_Kedge____670kg__ASM__TV_Guided_ = ( + 4, + Weapons.Kh_29T__AS_14_Kedge____670kg__ASM__TV_Guided_, + ) + KH_29L__AS_14_Kedge___Semi_Act_Laser = ( + 4, + WeaponsSu30.KH_29L__AS_14_Kedge___Semi_Act_Laser, + ) + KH_29TE__AS_14_Kedge___TV_Guided = ( + 4, + WeaponsSu30.KH_29TE__AS_14_Kedge___TV_Guided, + ) + Kh_59M = (4, WeaponsSu30.Kh_59M) + Kh_59MK = (4, WeaponsSu30.Kh_59MK) + Kh_31A = (4, WeaponsSu30.Kh_31A) + KH_35A = (4, WeaponsSu30.KH_35A) + KH_35UE = (4, WeaponsSu30.KH_35UE) + KH_31AD = (4, WeaponsSu30.KH_31AD) + KH_31PD = (4, WeaponsSu30.KH_31PD) + Kh_59MK2_ = (4, WeaponsSu30.Kh_59MK2_) + KAB_500Kr___500kg_TV_Guided_Bomb = (4, Weapons.KAB_500Kr___500kg_TV_Guided_Bomb) + KAB_500S = (4, WeaponsSu30.KAB_500S) + KAB_1500t = (4, WeaponsSu30.KAB_1500t) + KAB_1500LG_Pr = (4, WeaponsSu30.KAB_1500LG_Pr) + KAB_1500L___1500kg_Laser_Guided_Bomb = ( + 4, + Weapons.KAB_1500L___1500kg_Laser_Guided_Bomb, + ) + KMGU_2___96_x_PTAB_2_5KO_Dispenser__CBU__HEAT_AP = ( + 4, + Weapons.KMGU_2___96_x_PTAB_2_5KO_Dispenser__CBU__HEAT_AP, + ) + KMGU_2___96_x_AO_2_5RT_Dispenser__CBU__HE_Frag = ( + 4, + Weapons.KMGU_2___96_x_AO_2_5RT_Dispenser__CBU__HE_Frag, + ) + P_50T___50kg_Practice_Bomb_LD = (4, Weapons.P_50T___50kg_Practice_Bomb_LD) + BetAB_500___500kg_Concrete_Piercing_Bomb_LD = ( + 4, + Weapons.BetAB_500___500kg_Concrete_Piercing_Bomb_LD, + ) + BetAB_500ShP___500kg_Concrete_Piercing_HD_w_booster_Bomb = ( + 4, + Weapons.BetAB_500ShP___500kg_Concrete_Piercing_HD_w_booster_Bomb, + ) + FAB_250___250kg_GP_Bomb_LD = (4, Weapons.FAB_250___250kg_GP_Bomb_LD) + RBK_250___42_x_PTAB_2_5M__250kg_CBU_Medium_HEAT_AP = ( + 4, + Weapons.RBK_250___42_x_PTAB_2_5M__250kg_CBU_Medium_HEAT_AP, + ) + FAB_500_M_62___500kg_GP_Bomb_LD = (4, Weapons.FAB_500_M_62___500kg_GP_Bomb_LD) + RBK_500_255___30_x_PTAB_10_5__500kg_CBU_Heavy_HEAT_AP = ( + 4, + Weapons.RBK_500_255___30_x_PTAB_10_5__500kg_CBU_Heavy_HEAT_AP, + ) + MBD3_U6_68_with_6_x_FAB_250___250kg_GP_Bombs_LD = ( + 4, + Weapons.MBD3_U6_68_with_6_x_FAB_250___250kg_GP_Bombs_LD, + ) + MBD3_U6_68_with_6_x_FAB_100___100kg_GP_Bombs_LD = ( + 4, + Weapons.MBD3_U6_68_with_6_x_FAB_100___100kg_GP_Bombs_LD, + ) + + class Pylon5: + R_27R__Semi_Active_Rdr_AAM = (5, WeaponsSu30.R_27R__Semi_Active_Rdr_AAM) + R_27EA__Active_Rdr_AAM = (5, WeaponsSu30.R_27EA__Active_Rdr_AAM) + R_27ER__Semi_Active_Rdr_AAM = (5, WeaponsSu30.R_27ER__Semi_Active_Rdr_AAM) + R_27EP__Passive_Rdr_AAM = (5, WeaponsSu30.R_27EP__Passive_Rdr_AAM) + R_77__Active_Rdr_AAM = (5, WeaponsSu30.R_77__Active_Rdr_AAM) + R_77_1__Active_Rdr_AAM = (5, WeaponsSu30.R_77_1__Active_Rdr_AAM) + R_77M__Active_Rdr_AAM = (5, WeaponsSu30.R_77M__Active_Rdr_AAM) + Kh_31P = (5, WeaponsSu30.Kh_31P) + Kh_36_Grom_1 = (5, WeaponsSu30.Kh_36_Grom_1) + KH_38MTE = (5, WeaponsSu30.KH_38MTE) + KH_38MLE = (5, WeaponsSu30.KH_38MLE) + KH_38MAE = (5, WeaponsSu30.KH_38MAE) + Kh_29T__AS_14_Kedge____670kg__ASM__TV_Guided_ = ( + 5, + Weapons.Kh_29T__AS_14_Kedge____670kg__ASM__TV_Guided_, + ) + KH_29L__AS_14_Kedge___Semi_Act_Laser = ( + 5, + WeaponsSu30.KH_29L__AS_14_Kedge___Semi_Act_Laser, + ) + KH_29TE__AS_14_Kedge___TV_Guided = ( + 5, + WeaponsSu30.KH_29TE__AS_14_Kedge___TV_Guided, + ) + Kh_31A = (5, WeaponsSu30.Kh_31A) + KH_31AD = (5, WeaponsSu30.KH_31AD) + KH_31PD = (5, WeaponsSu30.KH_31PD) + KAB_500Kr___500kg_TV_Guided_Bomb = (5, Weapons.KAB_500Kr___500kg_TV_Guided_Bomb) + KAB_500S = (5, WeaponsSu30.KAB_500S) + P_50T___50kg_Practice_Bomb_LD = (5, Weapons.P_50T___50kg_Practice_Bomb_LD) + BetAB_500___500kg_Concrete_Piercing_Bomb_LD = ( + 5, + Weapons.BetAB_500___500kg_Concrete_Piercing_Bomb_LD, + ) + BetAB_500ShP___500kg_Concrete_Piercing_HD_w_booster_Bomb = ( + 5, + Weapons.BetAB_500ShP___500kg_Concrete_Piercing_HD_w_booster_Bomb, + ) + FAB_250___250kg_GP_Bomb_LD = (5, Weapons.FAB_250___250kg_GP_Bomb_LD) + RBK_250___42_x_PTAB_2_5M__250kg_CBU_Medium_HEAT_AP = ( + 5, + Weapons.RBK_250___42_x_PTAB_2_5M__250kg_CBU_Medium_HEAT_AP, + ) + FAB_500_M_62___500kg_GP_Bomb_LD = (5, Weapons.FAB_500_M_62___500kg_GP_Bomb_LD) + RBK_500_255___30_x_PTAB_10_5__500kg_CBU_Heavy_HEAT_AP = ( + 5, + Weapons.RBK_500_255___30_x_PTAB_10_5__500kg_CBU_Heavy_HEAT_AP, + ) + MBD3_U6_68_with_6_x_FAB_250___250kg_GP_Bombs_LD = ( + 5, + Weapons.MBD3_U6_68_with_6_x_FAB_250___250kg_GP_Bombs_LD, + ) + APK_9_POD = (5, WeaponsSu30.APK_9_POD) + + class Pylon6: + R_27R__Semi_Active_Rdr_AAM = (6, WeaponsSu30.R_27R__Semi_Active_Rdr_AAM) + R_27EA__Active_Rdr_AAM = (6, WeaponsSu30.R_27EA__Active_Rdr_AAM) + R_27ER__Semi_Active_Rdr_AAM = (6, WeaponsSu30.R_27ER__Semi_Active_Rdr_AAM) + R_77__Active_Rdr_AAM = (6, WeaponsSu30.R_77__Active_Rdr_AAM) + R_77_1__Active_Rdr_AAM = (6, WeaponsSu30.R_77_1__Active_Rdr_AAM) + R_77M__Active_Rdr_AAM = (6, WeaponsSu30.R_77M__Active_Rdr_AAM) + KAB_500Kr___500kg_TV_Guided_Bomb = (6, Weapons.KAB_500Kr___500kg_TV_Guided_Bomb) + KAB_500S = (6, WeaponsSu30.KAB_500S) + KAB_1500t = (6, WeaponsSu30.KAB_1500t) + KAB_1500LG_Pr = (6, WeaponsSu30.KAB_1500LG_Pr) + KAB_1500L___1500kg_Laser_Guided_Bomb = ( + 6, + Weapons.KAB_1500L___1500kg_Laser_Guided_Bomb, + ) + KMGU_2___96_x_PTAB_2_5KO_Dispenser__CBU__HEAT_AP = ( + 6, + Weapons.KMGU_2___96_x_PTAB_2_5KO_Dispenser__CBU__HEAT_AP, + ) + KMGU_2___96_x_AO_2_5RT_Dispenser__CBU__HE_Frag = ( + 6, + Weapons.KMGU_2___96_x_AO_2_5RT_Dispenser__CBU__HE_Frag, + ) + P_50T___50kg_Practice_Bomb_LD = (6, Weapons.P_50T___50kg_Practice_Bomb_LD) + BetAB_500___500kg_Concrete_Piercing_Bomb_LD = ( + 6, + Weapons.BetAB_500___500kg_Concrete_Piercing_Bomb_LD, + ) + BetAB_500ShP___500kg_Concrete_Piercing_HD_w_booster_Bomb = ( + 6, + Weapons.BetAB_500ShP___500kg_Concrete_Piercing_HD_w_booster_Bomb, + ) + FAB_250___250kg_GP_Bomb_LD = (6, Weapons.FAB_250___250kg_GP_Bomb_LD) + RBK_250___42_x_PTAB_2_5M__250kg_CBU_Medium_HEAT_AP = ( + 6, + Weapons.RBK_250___42_x_PTAB_2_5M__250kg_CBU_Medium_HEAT_AP, + ) + FAB_500_M_62___500kg_GP_Bomb_LD = (6, Weapons.FAB_500_M_62___500kg_GP_Bomb_LD) + RBK_500_255___30_x_PTAB_10_5__500kg_CBU_Heavy_HEAT_AP = ( + 6, + Weapons.RBK_500_255___30_x_PTAB_10_5__500kg_CBU_Heavy_HEAT_AP, + ) + MBD3_U6_68_with_6_x_FAB_250___250kg_GP_Bombs_LD = ( + 6, + Weapons.MBD3_U6_68_with_6_x_FAB_250___250kg_GP_Bombs_LD, + ) + RBK_500U___126_x_OAB_2_5RT__500kg_CBU_HE_Frag = ( + 6, + Weapons.RBK_500U___126_x_OAB_2_5RT__500kg_CBU_HE_Frag, + ) + RBK_500___268_x_PTAB_1M__500kg_CBU_Light_HEAT_AP = ( + 6, + Weapons.RBK_500___268_x_PTAB_1M__500kg_CBU_Light_HEAT_AP, + ) + + class Pylon7: + R_27R__Semi_Active_Rdr_AAM = (7, WeaponsSu30.R_27R__Semi_Active_Rdr_AAM) + R_27EA__Active_Rdr_AAM = (7, WeaponsSu30.R_27EA__Active_Rdr_AAM) + R_27ER__Semi_Active_Rdr_AAM = (7, WeaponsSu30.R_27ER__Semi_Active_Rdr_AAM) + R_77__Active_Rdr_AAM = (7, WeaponsSu30.R_77__Active_Rdr_AAM) + R_77_1__Active_Rdr_AAM = (7, WeaponsSu30.R_77_1__Active_Rdr_AAM) + R_77M__Active_Rdr_AAM = (7, WeaponsSu30.R_77M__Active_Rdr_AAM) + KAB_500Kr___500kg_TV_Guided_Bomb = (7, Weapons.KAB_500Kr___500kg_TV_Guided_Bomb) + KAB_500S = (7, WeaponsSu30.KAB_500S) + KMGU_2___96_x_PTAB_2_5KO_Dispenser__CBU__HEAT_AP = ( + 7, + Weapons.KMGU_2___96_x_PTAB_2_5KO_Dispenser__CBU__HEAT_AP, + ) + KMGU_2___96_x_AO_2_5RT_Dispenser__CBU__HE_Frag = ( + 7, + Weapons.KMGU_2___96_x_AO_2_5RT_Dispenser__CBU__HE_Frag, + ) + P_50T___50kg_Practice_Bomb_LD = (7, Weapons.P_50T___50kg_Practice_Bomb_LD) + BetAB_500___500kg_Concrete_Piercing_Bomb_LD = ( + 7, + Weapons.BetAB_500___500kg_Concrete_Piercing_Bomb_LD, + ) + BetAB_500ShP___500kg_Concrete_Piercing_HD_w_booster_Bomb = ( + 7, + Weapons.BetAB_500ShP___500kg_Concrete_Piercing_HD_w_booster_Bomb, + ) + FAB_250___250kg_GP_Bomb_LD = (7, Weapons.FAB_250___250kg_GP_Bomb_LD) + RBK_250___42_x_PTAB_2_5M__250kg_CBU_Medium_HEAT_AP = ( + 7, + Weapons.RBK_250___42_x_PTAB_2_5M__250kg_CBU_Medium_HEAT_AP, + ) + FAB_500_M_62___500kg_GP_Bomb_LD = (7, Weapons.FAB_500_M_62___500kg_GP_Bomb_LD) + RBK_500_255___30_x_PTAB_10_5__500kg_CBU_Heavy_HEAT_AP = ( + 7, + Weapons.RBK_500_255___30_x_PTAB_10_5__500kg_CBU_Heavy_HEAT_AP, + ) + MBD3_U6_68_with_6_x_FAB_250___250kg_GP_Bombs_LD = ( + 7, + Weapons.MBD3_U6_68_with_6_x_FAB_250___250kg_GP_Bombs_LD, + ) + RBK_500U___126_x_OAB_2_5RT__500kg_CBU_HE_Frag = ( + 7, + Weapons.RBK_500U___126_x_OAB_2_5RT__500kg_CBU_HE_Frag, + ) + RBK_500___268_x_PTAB_1M__500kg_CBU_Light_HEAT_AP = ( + 7, + Weapons.RBK_500___268_x_PTAB_1M__500kg_CBU_Light_HEAT_AP, + ) + + class Pylon8: + R_27R__Semi_Active_Rdr_AAM = (8, WeaponsSu30.R_27R__Semi_Active_Rdr_AAM) + R_27EA__Active_Rdr_AAM = (8, WeaponsSu30.R_27EA__Active_Rdr_AAM) + R_27ER__Semi_Active_Rdr_AAM = (8, WeaponsSu30.R_27ER__Semi_Active_Rdr_AAM) + R_27EP__Passive_Rdr_AAM = (8, WeaponsSu30.R_27EP__Passive_Rdr_AAM) + R_77__Active_Rdr_AAM = (8, WeaponsSu30.R_77__Active_Rdr_AAM) + R_77_1__Active_Rdr_AAM = (8, WeaponsSu30.R_77_1__Active_Rdr_AAM) + R_77M__Active_Rdr_AAM = (8, WeaponsSu30.R_77M__Active_Rdr_AAM) + Kh_31P = (8, WeaponsSu30.Kh_31P) + Kh_36_Grom_1 = (8, WeaponsSu30.Kh_36_Grom_1) + KH_38MTE = (8, WeaponsSu30.KH_38MTE) + KH_38MLE = (8, WeaponsSu30.KH_38MLE) + KH_38MAE = (8, WeaponsSu30.KH_38MAE) + Kh_29T__AS_14_Kedge____670kg__ASM__TV_Guided_ = ( + 8, + Weapons.Kh_29T__AS_14_Kedge____670kg__ASM__TV_Guided_, + ) + KH_29L__AS_14_Kedge___Semi_Act_Laser = ( + 8, + WeaponsSu30.KH_29L__AS_14_Kedge___Semi_Act_Laser, + ) + KH_29TE__AS_14_Kedge___TV_Guided = ( + 8, + WeaponsSu30.KH_29TE__AS_14_Kedge___TV_Guided, + ) + Kh_31A = (8, WeaponsSu30.Kh_31A) + KH_31AD = (8, WeaponsSu30.KH_31AD) + KH_31PD = (8, WeaponsSu30.KH_31PD) + KAB_500Kr___500kg_TV_Guided_Bomb = (8, Weapons.KAB_500Kr___500kg_TV_Guided_Bomb) + KAB_500S = (8, WeaponsSu30.KAB_500S) + P_50T___50kg_Practice_Bomb_LD = (8, Weapons.P_50T___50kg_Practice_Bomb_LD) + BetAB_500___500kg_Concrete_Piercing_Bomb_LD = ( + 8, + Weapons.BetAB_500___500kg_Concrete_Piercing_Bomb_LD, + ) + BetAB_500ShP___500kg_Concrete_Piercing_HD_w_booster_Bomb = ( + 8, + Weapons.BetAB_500ShP___500kg_Concrete_Piercing_HD_w_booster_Bomb, + ) + FAB_250___250kg_GP_Bomb_LD = (8, Weapons.FAB_250___250kg_GP_Bomb_LD) + RBK_250___42_x_PTAB_2_5M__250kg_CBU_Medium_HEAT_AP = ( + 8, + Weapons.RBK_250___42_x_PTAB_2_5M__250kg_CBU_Medium_HEAT_AP, + ) + FAB_500_M_62___500kg_GP_Bomb_LD = (8, Weapons.FAB_500_M_62___500kg_GP_Bomb_LD) + RBK_500_255___30_x_PTAB_10_5__500kg_CBU_Heavy_HEAT_AP = ( + 8, + Weapons.RBK_500_255___30_x_PTAB_10_5__500kg_CBU_Heavy_HEAT_AP, + ) + MBD3_U6_68_with_6_x_FAB_250___250kg_GP_Bombs_LD = ( + 8, + Weapons.MBD3_U6_68_with_6_x_FAB_250___250kg_GP_Bombs_LD, + ) + DAMOCLES___Targeting_Pod = (8, WeaponsSu30.DAMOCLES___Targeting_Pod) + + class Pylon9: + R_73__AA_11_Archer____Infra_Red = (9, Weapons.R_73__AA_11_Archer____Infra_Red) + R_27R__Semi_Active_Rdr_AAM = (9, WeaponsSu30.R_27R__Semi_Active_Rdr_AAM) + R_27T__IR_AAM = (9, WeaponsSu30.R_27T__IR_AAM) + R_27EA__Active_Rdr_AAM = (9, WeaponsSu30.R_27EA__Active_Rdr_AAM) + R_27ER__Semi_Active_Rdr_AAM = (9, WeaponsSu30.R_27ER__Semi_Active_Rdr_AAM) + R_27ET__IR_AAM = (9, WeaponsSu30.R_27ET__IR_AAM) + R_27EP__Passive_Rdr_AAM = (9, WeaponsSu30.R_27EP__Passive_Rdr_AAM) + R_77__Active_Rdr_AAM = (9, WeaponsSu30.R_77__Active_Rdr_AAM) + R_77_1__Active_Rdr_AAM = (9, WeaponsSu30.R_77_1__Active_Rdr_AAM) + R_77M__Active_Rdr_AAM = (9, WeaponsSu30.R_77M__Active_Rdr_AAM) + Kh_31P = (9, WeaponsSu30.Kh_31P) + Kh_36_Grom_1 = (9, WeaponsSu30.Kh_36_Grom_1) + KH_38MTE = (9, WeaponsSu30.KH_38MTE) + KH_38MLE = (9, WeaponsSu30.KH_38MLE) + KH_38MAE = (9, WeaponsSu30.KH_38MAE) + Kh_29T__AS_14_Kedge____670kg__ASM__TV_Guided_ = ( + 9, + Weapons.Kh_29T__AS_14_Kedge____670kg__ASM__TV_Guided_, + ) + KH_29L__AS_14_Kedge___Semi_Act_Laser = ( + 9, + WeaponsSu30.KH_29L__AS_14_Kedge___Semi_Act_Laser, + ) + KH_29TE__AS_14_Kedge___TV_Guided = ( + 9, + WeaponsSu30.KH_29TE__AS_14_Kedge___TV_Guided, + ) + Kh_59M = (9, WeaponsSu30.Kh_59M) + Kh_59MK = (9, WeaponsSu30.Kh_59MK) + Kh_31A = (9, WeaponsSu30.Kh_31A) + KH_35A = (9, WeaponsSu30.KH_35A) + KH_35UE = (9, WeaponsSu30.KH_35UE) + KH_31AD = (9, WeaponsSu30.KH_31AD) + KH_31PD = (9, WeaponsSu30.KH_31PD) + Kh_59MK2_ = (9, WeaponsSu30.Kh_59MK2_) + KAB_500Kr___500kg_TV_Guided_Bomb = (9, Weapons.KAB_500Kr___500kg_TV_Guided_Bomb) + KAB_500S = (9, WeaponsSu30.KAB_500S) + KAB_1500t = (9, WeaponsSu30.KAB_1500t) + KAB_1500LG_Pr = (9, WeaponsSu30.KAB_1500LG_Pr) + KAB_1500L___1500kg_Laser_Guided_Bomb = ( + 9, + Weapons.KAB_1500L___1500kg_Laser_Guided_Bomb, + ) + KMGU_2___96_x_PTAB_2_5KO_Dispenser__CBU__HEAT_AP = ( + 9, + Weapons.KMGU_2___96_x_PTAB_2_5KO_Dispenser__CBU__HEAT_AP, + ) + KMGU_2___96_x_AO_2_5RT_Dispenser__CBU__HE_Frag = ( + 9, + Weapons.KMGU_2___96_x_AO_2_5RT_Dispenser__CBU__HE_Frag, + ) + P_50T___50kg_Practice_Bomb_LD = (9, Weapons.P_50T___50kg_Practice_Bomb_LD) + BetAB_500___500kg_Concrete_Piercing_Bomb_LD = ( + 9, + Weapons.BetAB_500___500kg_Concrete_Piercing_Bomb_LD, + ) + BetAB_500ShP___500kg_Concrete_Piercing_HD_w_booster_Bomb = ( + 9, + Weapons.BetAB_500ShP___500kg_Concrete_Piercing_HD_w_booster_Bomb, + ) + FAB_250___250kg_GP_Bomb_LD = (9, Weapons.FAB_250___250kg_GP_Bomb_LD) + RBK_250___42_x_PTAB_2_5M__250kg_CBU_Medium_HEAT_AP = ( + 9, + Weapons.RBK_250___42_x_PTAB_2_5M__250kg_CBU_Medium_HEAT_AP, + ) + FAB_500_M_62___500kg_GP_Bomb_LD = (9, Weapons.FAB_500_M_62___500kg_GP_Bomb_LD) + RBK_500_255___30_x_PTAB_10_5__500kg_CBU_Heavy_HEAT_AP = ( + 9, + Weapons.RBK_500_255___30_x_PTAB_10_5__500kg_CBU_Heavy_HEAT_AP, + ) + MBD3_U6_68_with_6_x_FAB_250___250kg_GP_Bombs_LD = ( + 9, + Weapons.MBD3_U6_68_with_6_x_FAB_250___250kg_GP_Bombs_LD, + ) + MBD3_U6_68_with_6_x_FAB_100___100kg_GP_Bombs_LD = ( + 9, + Weapons.MBD3_U6_68_with_6_x_FAB_100___100kg_GP_Bombs_LD, + ) + + class Pylon10: + R_73__AA_11_Archer____Infra_Red = (10, Weapons.R_73__AA_11_Archer____Infra_Red) + R_27R__Semi_Active_Rdr_AAM = (10, WeaponsSu30.R_27R__Semi_Active_Rdr_AAM) + R_27T__IR_AAM = (10, WeaponsSu30.R_27T__IR_AAM) + R_27EA__Active_Rdr_AAM = (10, WeaponsSu30.R_27EA__Active_Rdr_AAM) + R_27ER__Semi_Active_Rdr_AAM = (10, WeaponsSu30.R_27ER__Semi_Active_Rdr_AAM) + R_27ET__IR_AAM = (10, WeaponsSu30.R_27ET__IR_AAM) + R_27EP__Passive_Rdr_AAM = (10, WeaponsSu30.R_27EP__Passive_Rdr_AAM) + R_77__Active_Rdr_AAM = (10, WeaponsSu30.R_77__Active_Rdr_AAM) + R_77_1__Active_Rdr_AAM = (10, WeaponsSu30.R_77_1__Active_Rdr_AAM) + R_77M__Active_Rdr_AAM = (10, WeaponsSu30.R_77M__Active_Rdr_AAM) + Kh_31P = (10, WeaponsSu30.Kh_31P) + Kh_36_Grom_1 = (10, WeaponsSu30.Kh_36_Grom_1) + KH_38MTE = (10, WeaponsSu30.KH_38MTE) + KH_38MLE = (10, WeaponsSu30.KH_38MLE) + KH_38MAE = (10, WeaponsSu30.KH_38MAE) + Kh_29T__AS_14_Kedge____670kg__ASM__TV_Guided_ = ( + 10, + Weapons.Kh_29T__AS_14_Kedge____670kg__ASM__TV_Guided_, + ) + KH_29L__AS_14_Kedge___Semi_Act_Laser = ( + 10, + WeaponsSu30.KH_29L__AS_14_Kedge___Semi_Act_Laser, + ) + KH_29TE__AS_14_Kedge___TV_Guided = ( + 10, + WeaponsSu30.KH_29TE__AS_14_Kedge___TV_Guided, + ) + Kh_59M = (10, WeaponsSu30.Kh_59M) + Kh_59MK = (10, WeaponsSu30.Kh_59MK) + Kh_31A = (10, WeaponsSu30.Kh_31A) + KH_35A = (10, WeaponsSu30.KH_35A) + KH_35UE = (10, WeaponsSu30.KH_35UE) + KH_31AD = (10, WeaponsSu30.KH_31AD) + KH_31PD = (10, WeaponsSu30.KH_31PD) + Kh_59MK2_ = (10, WeaponsSu30.Kh_59MK2_) + KAB_500Kr___500kg_TV_Guided_Bomb = ( + 10, + Weapons.KAB_500Kr___500kg_TV_Guided_Bomb, + ) + KAB_500S = (10, WeaponsSu30.KAB_500S) + KMGU_2___96_x_PTAB_2_5KO_Dispenser__CBU__HEAT_AP = ( + 10, + Weapons.KMGU_2___96_x_PTAB_2_5KO_Dispenser__CBU__HEAT_AP, + ) + KMGU_2___96_x_AO_2_5RT_Dispenser__CBU__HE_Frag = ( + 10, + Weapons.KMGU_2___96_x_AO_2_5RT_Dispenser__CBU__HE_Frag, + ) + P_50T___50kg_Practice_Bomb_LD = (10, Weapons.P_50T___50kg_Practice_Bomb_LD) + BetAB_500___500kg_Concrete_Piercing_Bomb_LD = ( + 10, + Weapons.BetAB_500___500kg_Concrete_Piercing_Bomb_LD, + ) + BetAB_500ShP___500kg_Concrete_Piercing_HD_w_booster_Bomb = ( + 10, + Weapons.BetAB_500ShP___500kg_Concrete_Piercing_HD_w_booster_Bomb, + ) + FAB_250___250kg_GP_Bomb_LD = (10, Weapons.FAB_250___250kg_GP_Bomb_LD) + RBK_250___42_x_PTAB_2_5M__250kg_CBU_Medium_HEAT_AP = ( + 10, + Weapons.RBK_250___42_x_PTAB_2_5M__250kg_CBU_Medium_HEAT_AP, + ) + FAB_500_M_62___500kg_GP_Bomb_LD = (10, Weapons.FAB_500_M_62___500kg_GP_Bomb_LD) + RBK_500_255___30_x_PTAB_10_5__500kg_CBU_Heavy_HEAT_AP = ( + 10, + Weapons.RBK_500_255___30_x_PTAB_10_5__500kg_CBU_Heavy_HEAT_AP, + ) + MBD3_U6_68_with_6_x_FAB_250___250kg_GP_Bombs_LD = ( + 10, + Weapons.MBD3_U6_68_with_6_x_FAB_250___250kg_GP_Bombs_LD, + ) + MBD3_U6_68_with_6_x_FAB_100___100kg_GP_Bombs_LD = ( + 10, + Weapons.MBD3_U6_68_with_6_x_FAB_100___100kg_GP_Bombs_LD, + ) + _2_x_B_13L___5_S_13_OF = (10, Weapons._2_x_B_13L___5_S_13_OF) + _2_x_B_8M1___20_S_8KOM = (10, Weapons._2_x_B_8M1___20_S_8KOM) + _2_x_S_25 = (10, Weapons._2_x_S_25) + + class Pylon11: + R_73__AA_11_Archer____Infra_Red = (11, Weapons.R_73__AA_11_Archer____Infra_Red) + Smoke_Generator___red = (11, Weapons.Smoke_Generator___red) + Smoke_Generator___green = (11, Weapons.Smoke_Generator___green) + Smoke_Generator___blue = (11, Weapons.Smoke_Generator___blue) + Smoke_Generator___white = (11, Weapons.Smoke_Generator___white) + Smoke_Generator___yellow = (11, Weapons.Smoke_Generator___yellow) + Smoke_Generator___orange = (11, Weapons.Smoke_Generator___orange) + + class Pylon12: + R_73__AA_11_Archer____Infra_Red = (12, Weapons.R_73__AA_11_Archer____Infra_Red) + L005_Sorbtsiya_ECM_pod__right_ = (12, Weapons.L005_Sorbtsiya_ECM_pod__right_) + Smoke_Generator___red = (12, Weapons.Smoke_Generator___red) + Smoke_Generator___green = (12, Weapons.Smoke_Generator___green) + Smoke_Generator___blue = (12, Weapons.Smoke_Generator___blue) + Smoke_Generator___white = (12, Weapons.Smoke_Generator___white) + Smoke_Generator___yellow = (12, Weapons.Smoke_Generator___yellow) + Smoke_Generator___orange = (12, Weapons.Smoke_Generator___orange) + + pylons: Set[int] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12} + + tasks = [ + task.CAP, + task.Escort, + task.FighterSweep, + task.Intercept, + task.AFAC, + task.SEAD, + task.AntishipStrike, + task.CAS, + task.PinpointStrike, + task.GroundAttack, + task.RunwayAttack, + ] + task_default = task.CAP diff --git a/qt_ui/main.py b/qt_ui/main.py index 200d4800..e61c24df 100644 --- a/qt_ui/main.py +++ b/qt_ui/main.py @@ -301,6 +301,7 @@ def create_game( f104_starfighter=False, hercules=False, jas39_gripen=False, + su30_flanker_h=False, su57_felon=False, frenchpack=False, high_digit_sams=False, diff --git a/qt_ui/uiconstants.py b/qt_ui/uiconstants.py index 213bd6e5..89796164 100644 --- a/qt_ui/uiconstants.py +++ b/qt_ui/uiconstants.py @@ -209,6 +209,11 @@ def load_aircraft_banners(): AIRCRAFT_BANNERS[aircraft[:-7]] = QPixmap( os.path.join("./resources/ui/units/aircrafts/banners/", aircraft) ) + _load_mirage_banners() + _load_su30mod_banners() + + +def _load_mirage_banners(): variants = ["Mirage-F1CT", "Mirage-F1EE", "Mirage-F1M-EE", "Mirage-F1EQ"] for f1 in variants: AIRCRAFT_BANNERS[f1] = AIRCRAFT_BANNERS["Mirage-F1C-200"] @@ -217,6 +222,12 @@ def load_aircraft_banners(): AIRCRAFT_BANNERS[f1] = AIRCRAFT_BANNERS["Mirage-F1C"] +def _load_su30mod_banners(): + variants = ["Su-30MKA", "Su-30MKI", "Su-30MKM"] + for su30 in variants: + AIRCRAFT_BANNERS[su30] = AIRCRAFT_BANNERS["Su-30SM"] + + def load_vehicle_banners(): for aircraft in os.listdir("./resources/ui/units/vehicles/banners/"): if aircraft.endswith(".jpg"): diff --git a/qt_ui/windows/newgame/QNewGameWizard.py b/qt_ui/windows/newgame/QNewGameWizard.py index b05478be..6ad41543 100644 --- a/qt_ui/windows/newgame/QNewGameWizard.py +++ b/qt_ui/windows/newgame/QNewGameWizard.py @@ -164,6 +164,7 @@ class NewGameWizard(QtWidgets.QWizard): hercules=self.field("hercules"), uh_60l=self.field("uh_60l"), jas39_gripen=self.field("jas39_gripen"), + su30_flanker_h=self.field("su30_flanker_h"), su57_felon=self.field("su57_felon"), frenchpack=self.field("frenchpack"), high_digit_sams=self.field("high_digit_sams"), @@ -666,6 +667,8 @@ class GeneratorOptions(QtWidgets.QWizardPage): self.registerField("f104_starfighter", f104_starfighter) jas39_gripen = QtWidgets.QCheckBox() self.registerField("jas39_gripen", jas39_gripen) + su30_flanker_h = QtWidgets.QCheckBox() + self.registerField("su30_flanker_h", su30_flanker_h) su57_felon = QtWidgets.QCheckBox() self.registerField("su57_felon", su57_felon) frenchpack = QtWidgets.QCheckBox() @@ -712,6 +715,11 @@ class GeneratorOptions(QtWidgets.QWizardPage): ) modLayout.addWidget(jas39_gripen, modLayout_row, 1) modLayout_row += 1 + modLayout.addWidget( + QtWidgets.QLabel("Su-30 Flanker-H (V2.01B)"), modLayout_row, 0 + ) + modLayout.addWidget(su30_flanker_h, modLayout_row, 1) + modLayout_row += 1 modLayout.addWidget(QtWidgets.QLabel("Su-57 Felon"), modLayout_row, 0) modLayout.addWidget(su57_felon, modLayout_row, 1) modLayout_row += 1 diff --git a/resources/customized_payloads/Su-30MKA.lua b/resources/customized_payloads/Su-30MKA.lua new file mode 100644 index 00000000..32be1825 --- /dev/null +++ b/resources/customized_payloads/Su-30MKA.lua @@ -0,0 +1,530 @@ +local unitPayloads = { + ["name"] = "Su-30MKA", + ["payloads"] = { + [1] = { + ["displayName"] = "ANTISHIP", + ["name"] = "ANTISHIP", + ["pylons"] = { + [1] = { + ["CLSID"] = "{44EE8698-89F9-48EE-AF36-5FD31896A82A}", + ["num"] = 12, + }, + [2] = { + ["CLSID"] = "{44EE8698-89F9-48EE-AF36-5FD31896A82F}", + ["num"] = 1, + }, + [3] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 11, + }, + [4] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 2, + }, + [5] = { + ["CLSID"] = "{SU30_KH_31A}", + ["num"] = 8, + }, + [6] = { + ["CLSID"] = "{SU30_KH_31A}", + ["num"] = 5, + }, + [7] = { + ["CLSID"] = "{SU30_KH_35}", + ["num"] = 10, + }, + [8] = { + ["CLSID"] = "{SU30_KH_35}", + ["num"] = 9, + }, + [9] = { + ["CLSID"] = "{SU30_KH_35}", + ["num"] = 4, + }, + [10] = { + ["CLSID"] = "{SU30_KH_35}", + ["num"] = 3, + }, + [11] = { + ["CLSID"] = "{SU30_R77}", + ["num"] = 6, + }, + [12] = { + ["CLSID"] = "{SU30_R77}", + ["num"] = 7, + }, + }, + ["tasks"] = { + [1] = 30, + }, + }, + [2] = { + ["displayName"] = "Liberation SEAD", + ["name"] = "Liberation SEAD", + ["pylons"] = { + [1] = { + ["CLSID"] = "{44EE8698-89F9-48EE-AF36-5FD31896A82A}", + ["num"] = 12, + }, + [2] = { + ["CLSID"] = "{44EE8698-89F9-48EE-AF36-5FD31896A82F}", + ["num"] = 1, + }, + [3] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 11, + }, + [4] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 2, + }, + [5] = { + ["CLSID"] = "{SU30_KH31P}", + ["num"] = 8, + }, + [6] = { + ["CLSID"] = "{SU30_KH31P}", + ["num"] = 5, + }, + [7] = { + ["CLSID"] = "{SU30_KH31P}", + ["num"] = 10, + }, + [8] = { + ["CLSID"] = "{SU30_KH31P}", + ["num"] = 9, + }, + [9] = { + ["CLSID"] = "{SU30_KH31P}", + ["num"] = 4, + }, + [10] = { + ["CLSID"] = "{SU30_KH31P}", + ["num"] = 3, + }, + [11] = { + ["CLSID"] = "{SU30_R77}", + ["num"] = 7, + }, + [12] = { + ["CLSID"] = "{SU30_R77}", + ["num"] = 6, + }, + }, + ["tasks"] = { + [1] = 29, + }, + }, + [3] = { + ["name"] = "Liberation CAS", + ["pylons"] = { + [1] = { + ["CLSID"] = "{44EE8698-89F9-48EE-AF36-5FD31896A82A}", + ["num"] = 12, + }, + [2] = { + ["CLSID"] = "{44EE8698-89F9-48EE-AF36-5FD31896A82F}", + ["num"] = 1, + }, + [3] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 11, + }, + [4] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 2, + }, + [5] = { + ["CLSID"] = "{601C99F7-9AF3-4ed7-A565-F8B8EC0D7AAC}", + ["num"] = 10, + }, + [6] = { + ["CLSID"] = "{601C99F7-9AF3-4ed7-A565-F8B8EC0D7AAC}", + ["num"] = 3, + }, + [7] = { + ["CLSID"] = "{601C99F7-9AF3-4ed7-A565-F8B8EC0D7AAC}", + ["num"] = 4, + }, + [8] = { + ["CLSID"] = "{601C99F7-9AF3-4ed7-A565-F8B8EC0D7AAC}", + ["num"] = 9, + }, + [9] = { + ["CLSID"] = "{601C99F7-9AF3-4ed7-A565-F8B8EC0D7AAC}", + ["num"] = 8, + }, + [10] = { + ["CLSID"] = "{601C99F7-9AF3-4ed7-A565-F8B8EC0D7AAC}", + ["num"] = 5, + }, + [11] = { + ["CLSID"] = "{SU30_R77}", + ["num"] = 7, + }, + [12] = { + ["CLSID"] = "{SU30_R77}", + ["num"] = 6, + }, + }, + ["tasks"] = { + [1] = 31, + [2] = 32, + }, + }, + [4] = { + ["displayName"] = "CAP", + ["name"] = "CAP", + ["pylons"] = { + [1] = { + ["CLSID"] = "{44EE8698-89F9-48EE-AF36-5FD31896A82A}", + ["num"] = 12, + }, + [2] = { + ["CLSID"] = "{44EE8698-89F9-48EE-AF36-5FD31896A82F}", + ["num"] = 1, + }, + [3] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 11, + }, + [4] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 2, + }, + [5] = { + ["CLSID"] = "{SU30_R77}", + ["num"] = 10, + }, + [6] = { + ["CLSID"] = "{SU30_R27ET}", + ["num"] = 9, + }, + [7] = { + ["CLSID"] = "{SU30_R27ER}", + ["num"] = 8, + }, + [8] = { + ["CLSID"] = "{SU30_R77}", + ["num"] = 7, + }, + [9] = { + ["CLSID"] = "{SU30_R77}", + ["num"] = 6, + }, + [10] = { + ["CLSID"] = "{SU30_R27ER}", + ["num"] = 5, + }, + [11] = { + ["CLSID"] = "{SU30_R27ET}", + ["num"] = 4, + }, + [12] = { + ["CLSID"] = "{SU30_R77}", + ["num"] = 3, + }, + }, + ["tasks"] = { + [1] = 18, + [2] = 19, + [3] = 10, + [4] = 11, + }, + }, + [5] = { + ["displayName"] = "Liberation Strike", + ["name"] = "Liberation Strike", + ["pylons"] = { + [1] = { + ["CLSID"] = "{44EE8698-89F9-48EE-AF36-5FD31896A82A}", + ["num"] = 12, + }, + [2] = { + ["CLSID"] = "{44EE8698-89F9-48EE-AF36-5FD31896A82F}", + ["num"] = 1, + }, + [3] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 11, + }, + [4] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 2, + }, + [5] = { + ["CLSID"] = "{SU30_R77}", + ["num"] = 8, + }, + [6] = { + ["CLSID"] = "{SU30_R77}", + ["num"] = 5, + }, + [7] = { + ["CLSID"] = "{E2C426E3-8B10-4E09-B733-9CDC26520F48}", + ["num"] = 10, + }, + [8] = { + ["CLSID"] = "{E2C426E3-8B10-4E09-B733-9CDC26520F48}", + ["num"] = 3, + }, + [9] = { + ["CLSID"] = "{E2C426E3-8B10-4E09-B733-9CDC26520F48}", + ["num"] = 9, + }, + [10] = { + ["CLSID"] = "{E2C426E3-8B10-4E09-B733-9CDC26520F48}", + ["num"] = 4, + }, + [11] = { + ["CLSID"] = "{E2C426E3-8B10-4E09-B733-9CDC26520F48}", + ["num"] = 7, + }, + [12] = { + ["CLSID"] = "{E2C426E3-8B10-4E09-B733-9CDC26520F48}", + ["num"] = 6, + }, + }, + ["tasks"] = { + [1] = 33, + [2] = 32, + [3] = 31, + }, + }, + [6] = { + ["displayName"] = "Liberation OCA/Aircraft", + ["name"] = "Liberation OCA/Aircraft", + ["pylons"] = { + [1] = { + ["CLSID"] = "{44EE8698-89F9-48EE-AF36-5FD31896A82A}", + ["num"] = 12, + }, + [2] = { + ["CLSID"] = "{44EE8698-89F9-48EE-AF36-5FD31896A82F}", + ["num"] = 1, + }, + [3] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 11, + }, + [4] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 2, + }, + [5] = { + ["CLSID"] = "{SU30_R27ER}", + ["num"] = 8, + }, + [6] = { + ["CLSID"] = "{SU30_R27ER}", + ["num"] = 5, + }, + [7] = { + ["CLSID"] = "{96A7F676-F956-404A-AD04-F33FB2C74884}", + ["num"] = 10, + }, + [8] = { + ["CLSID"] = "{96A7F676-F956-404A-AD04-F33FB2C74881}", + ["num"] = 9, + }, + [9] = { + ["CLSID"] = "{96A7F676-F956-404A-AD04-F33FB2C74881}", + ["num"] = 4, + }, + [10] = { + ["CLSID"] = "{96A7F676-F956-404A-AD04-F33FB2C74884}", + ["num"] = 3, + }, + [11] = { + ["CLSID"] = "{53BE25A4-C86C-4571-9BC0-47D668349595}", + ["num"] = 7, + }, + [12] = { + ["CLSID"] = "{53BE25A4-C86C-4571-9BC0-47D668349595}", + ["num"] = 6, + }, + }, + ["tasks"] = { + [1] = 32, + [2] = 31, + }, + }, + [7] = { + ["displayName"] = "Liberation BAI", + ["name"] = "Liberation BAI", + ["pylons"] = { + [1] = { + ["CLSID"] = "{44EE8698-89F9-48EE-AF36-5FD31896A82A}", + ["num"] = 12, + }, + [2] = { + ["CLSID"] = "{44EE8698-89F9-48EE-AF36-5FD31896A82F}", + ["num"] = 1, + }, + [3] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 11, + }, + [4] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 2, + }, + [5] = { + ["CLSID"] = "{601C99F7-9AF3-4ed7-A565-F8B8EC0D7AAC}", + ["num"] = 10, + }, + [6] = { + ["CLSID"] = "{601C99F7-9AF3-4ed7-A565-F8B8EC0D7AAC}", + ["num"] = 3, + }, + [7] = { + ["CLSID"] = "{601C99F7-9AF3-4ed7-A565-F8B8EC0D7AAC}", + ["num"] = 4, + }, + [8] = { + ["CLSID"] = "{601C99F7-9AF3-4ed7-A565-F8B8EC0D7AAC}", + ["num"] = 9, + }, + [9] = { + ["CLSID"] = "{601C99F7-9AF3-4ed7-A565-F8B8EC0D7AAC}", + ["num"] = 8, + }, + [10] = { + ["CLSID"] = "{601C99F7-9AF3-4ed7-A565-F8B8EC0D7AAC}", + ["num"] = 5, + }, + [11] = { + ["CLSID"] = "{SU30_R77}", + ["num"] = 7, + }, + [12] = { + ["CLSID"] = "{SU30_R77}", + ["num"] = 6, + }, + }, + ["tasks"] = { + [1] = 31, + [2] = 32, + }, + }, + [8] = { + ["displayName"] = "Liberation OCA/Runway", + ["name"] = "Liberation OCA/Runway", + ["pylons"] = { + [1] = { + ["CLSID"] = "{44EE8698-89F9-48EE-AF36-5FD31896A82A}", + ["num"] = 12, + }, + [2] = { + ["CLSID"] = "{44EE8698-89F9-48EE-AF36-5FD31896A82F}", + ["num"] = 1, + }, + [3] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 11, + }, + [4] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 2, + }, + [5] = { + ["CLSID"] = "{SU30_R27ER}", + ["num"] = 8, + }, + [6] = { + ["CLSID"] = "{SU30_R27ER}", + ["num"] = 5, + }, + [7] = { + ["CLSID"] = "{BD289E34-DF84-4C5E-9220-4B14C346E79D}", + ["num"] = 10, + }, + [8] = { + ["CLSID"] = "{BD289E34-DF84-4C5E-9220-4B14C346E79D}", + ["num"] = 9, + }, + [9] = { + ["CLSID"] = "{BD289E34-DF84-4C5E-9220-4B14C346E79D}", + ["num"] = 4, + }, + [10] = { + ["CLSID"] = "{BD289E34-DF84-4C5E-9220-4B14C346E79D}", + ["num"] = 3, + }, + [11] = { + ["CLSID"] = "{BD289E34-DF84-4C5E-9220-4B14C346E79D}", + ["num"] = 7, + }, + [12] = { + ["CLSID"] = "{BD289E34-DF84-4C5E-9220-4B14C346E79D}", + ["num"] = 6, + }, + }, + ["tasks"] = { + [1] = 34, + }, + }, + [9] = { + ["displayName"] = "Liberation DEAD", + ["name"] = "Liberation DEAD", + ["pylons"] = { + [1] = { + ["CLSID"] = "{44EE8698-89F9-48EE-AF36-5FD31896A82A}", + ["num"] = 12, + }, + [2] = { + ["CLSID"] = "{44EE8698-89F9-48EE-AF36-5FD31896A82F}", + ["num"] = 1, + }, + [3] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 11, + }, + [4] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 2, + }, + [5] = { + ["CLSID"] = "{SU30_KH31P}", + ["num"] = 8, + }, + [6] = { + ["CLSID"] = "{SU30_KH31P}", + ["num"] = 5, + }, + [7] = { + ["CLSID"] = "{SU30_KH31P}", + ["num"] = 10, + }, + [8] = { + ["CLSID"] = "{SU30_KH31P}", + ["num"] = 9, + }, + [9] = { + ["CLSID"] = "{SU30_KH31P}", + ["num"] = 4, + }, + [10] = { + ["CLSID"] = "{SU30_KH31P}", + ["num"] = 3, + }, + [11] = { + ["CLSID"] = "{SU30_R77}", + ["num"] = 7, + }, + [12] = { + ["CLSID"] = "{SU30_R77}", + ["num"] = 6, + }, + }, + ["tasks"] = { + [1] = 29, + [2] = 32, + }, + }, + }, + ["tasks"] = { + }, + ["unitType"] = "Su-30MKA", +} +return unitPayloads diff --git a/resources/customized_payloads/Su-30MKI.lua b/resources/customized_payloads/Su-30MKI.lua new file mode 100644 index 00000000..1569d8a0 --- /dev/null +++ b/resources/customized_payloads/Su-30MKI.lua @@ -0,0 +1,529 @@ +local unitPayloads = { + ["name"] = "Su-30MKI", + ["payloads"] = { + [1] = { + ["displayName"] = "CAP", + ["name"] = "CAP", + ["pylons"] = { + [1] = { + ["CLSID"] = "{44EE8698-89F9-48EE-AF36-5FD31896A82A}", + ["num"] = 12, + }, + [2] = { + ["CLSID"] = "{44EE8698-89F9-48EE-AF36-5FD31896A82F}", + ["num"] = 1, + }, + [3] = { + ["CLSID"] = "{Su30_ASTRA}", + ["num"] = 11, + }, + [4] = { + ["CLSID"] = "{Su30_ASTRA}", + ["num"] = 2, + }, + [5] = { + ["CLSID"] = "{Su30_ASTRA}", + ["num"] = 10, + }, + [6] = { + ["CLSID"] = "{SU30_R27ET}", + ["num"] = 9, + }, + [7] = { + ["CLSID"] = "{SU30_R27EA}", + ["num"] = 8, + }, + [8] = { + ["CLSID"] = "{Su30_DERBY_ER}", + ["num"] = 7, + }, + [9] = { + ["CLSID"] = "{Su30_DERBY_ER}", + ["num"] = 6, + }, + [10] = { + ["CLSID"] = "{SU30_R27EA}", + ["num"] = 5, + }, + [11] = { + ["CLSID"] = "{SU30_R27ET}", + ["num"] = 4, + }, + [12] = { + ["CLSID"] = "{Su30_ASTRA}", + ["num"] = 3, + }, + }, + ["tasks"] = { + [1] = 18, + [2] = 19, + [3] = 10, + [4] = 11, + }, + }, + [2] = { + ["displayName"] = "Liberation BAI", + ["name"] = "Liberation BAI", + ["pylons"] = { + [1] = { + ["CLSID"] = "{44EE8698-89F9-48EE-AF36-5FD31896A82A}", + ["num"] = 12, + }, + [2] = { + ["CLSID"] = "{44EE8698-89F9-48EE-AF36-5FD31896A82F}", + ["num"] = 1, + }, + [3] = { + ["CLSID"] = "{Su30_ASTRA}", + ["num"] = 11, + }, + [4] = { + ["CLSID"] = "{Su30_ASTRA}", + ["num"] = 2, + }, + [5] = { + ["CLSID"] = "{601C99F7-9AF3-4ed7-A565-F8B8EC0D7AAC}", + ["num"] = 10, + }, + [6] = { + ["CLSID"] = "{601C99F7-9AF3-4ed7-A565-F8B8EC0D7AAC}", + ["num"] = 3, + }, + [7] = { + ["CLSID"] = "{601C99F7-9AF3-4ed7-A565-F8B8EC0D7AAC}", + ["num"] = 4, + }, + [8] = { + ["CLSID"] = "{601C99F7-9AF3-4ed7-A565-F8B8EC0D7AAC}", + ["num"] = 9, + }, + [9] = { + ["CLSID"] = "{601C99F7-9AF3-4ed7-A565-F8B8EC0D7AAC}", + ["num"] = 8, + }, + [10] = { + ["CLSID"] = "{601C99F7-9AF3-4ed7-A565-F8B8EC0D7AAC}", + ["num"] = 5, + }, + [11] = { + ["CLSID"] = "{Su30_DERBY_ER}", + ["num"] = 7, + }, + [12] = { + ["CLSID"] = "{Su30_DERBY_ER}", + ["num"] = 6, + }, + }, + ["tasks"] = { + [1] = 31, + [2] = 32, + }, + }, + [3] = { + ["displayName"] = "Liberation OCA/Runway", + ["name"] = "Liberation OCA/Runway", + ["pylons"] = { + [1] = { + ["CLSID"] = "{44EE8698-89F9-48EE-AF36-5FD31896A82A}", + ["num"] = 12, + }, + [2] = { + ["CLSID"] = "{44EE8698-89F9-48EE-AF36-5FD31896A82F}", + ["num"] = 1, + }, + [3] = { + ["CLSID"] = "{Su30_ASTRA}", + ["num"] = 11, + }, + [4] = { + ["CLSID"] = "{Su30_ASTRA}", + ["num"] = 2, + }, + [5] = { + ["CLSID"] = "{SU30_R27ER}", + ["num"] = 8, + }, + [6] = { + ["CLSID"] = "{SU30_R27ER}", + ["num"] = 5, + }, + [7] = { + ["CLSID"] = "{BD289E34-DF84-4C5E-9220-4B14C346E79D}", + ["num"] = 10, + }, + [8] = { + ["CLSID"] = "{BD289E34-DF84-4C5E-9220-4B14C346E79D}", + ["num"] = 9, + }, + [9] = { + ["CLSID"] = "{BD289E34-DF84-4C5E-9220-4B14C346E79D}", + ["num"] = 4, + }, + [10] = { + ["CLSID"] = "{BD289E34-DF84-4C5E-9220-4B14C346E79D}", + ["num"] = 3, + }, + [11] = { + ["CLSID"] = "{BD289E34-DF84-4C5E-9220-4B14C346E79D}", + ["num"] = 7, + }, + [12] = { + ["CLSID"] = "{BD289E34-DF84-4C5E-9220-4B14C346E79D}", + ["num"] = 6, + }, + }, + ["tasks"] = { + [1] = 34, + }, + }, + [4] = { + ["displayName"] = "ANTISHIP", + ["name"] = "ANTISHIP", + ["pylons"] = { + [1] = { + ["CLSID"] = "{44EE8698-89F9-48EE-AF36-5FD31896A82A}", + ["num"] = 12, + }, + [2] = { + ["CLSID"] = "{44EE8698-89F9-48EE-AF36-5FD31896A82F}", + ["num"] = 1, + }, + [3] = { + ["CLSID"] = "{Su30_ASTRA}", + ["num"] = 11, + }, + [4] = { + ["CLSID"] = "{Su30_ASTRA}", + ["num"] = 2, + }, + [5] = { + ["CLSID"] = "{Su30_DERBY_ER}", + ["num"] = 5, + }, + [6] = { + ["CLSID"] = "{Su30_DERBY_ER}", + ["num"] = 10, + }, + [7] = { + ["CLSID"] = "{SU30_KH_35}", + ["num"] = 9, + }, + [8] = { + ["CLSID"] = "{SU30_KH_35}", + ["num"] = 4, + }, + [9] = { + ["CLSID"] = "{Su30_DERBY_ER}", + ["num"] = 3, + }, + [10] = { + ["CLSID"] = "{BRAHMOS_S}", + ["num"] = 6, + }, + [11] = { + ["CLSID"] = "", + ["num"] = 7, + }, + [12] = { + ["CLSID"] = "{Su30_DERBY_ER}", + ["num"] = 8, + }, + }, + ["tasks"] = { + [1] = 30, + }, + }, + [5] = { + ["displayName"] = "Liberation OCA/Aircraft", + ["name"] = "Liberation OCA/Aircraft", + ["pylons"] = { + [1] = { + ["CLSID"] = "{44EE8698-89F9-48EE-AF36-5FD31896A82A}", + ["num"] = 12, + }, + [2] = { + ["CLSID"] = "{44EE8698-89F9-48EE-AF36-5FD31896A82F}", + ["num"] = 1, + }, + [3] = { + ["CLSID"] = "{Su30_ASTRA}", + ["num"] = 11, + }, + [4] = { + ["CLSID"] = "{Su30_ASTRA}", + ["num"] = 2, + }, + [5] = { + ["CLSID"] = "{SU30_R27ER}", + ["num"] = 8, + }, + [6] = { + ["CLSID"] = "{SU30_R27ER}", + ["num"] = 5, + }, + [7] = { + ["CLSID"] = "{96A7F676-F956-404A-AD04-F33FB2C74884}", + ["num"] = 10, + }, + [8] = { + ["CLSID"] = "{96A7F676-F956-404A-AD04-F33FB2C74881}", + ["num"] = 9, + }, + [9] = { + ["CLSID"] = "{96A7F676-F956-404A-AD04-F33FB2C74881}", + ["num"] = 4, + }, + [10] = { + ["CLSID"] = "{96A7F676-F956-404A-AD04-F33FB2C74884}", + ["num"] = 3, + }, + [11] = { + ["CLSID"] = "{53BE25A4-C86C-4571-9BC0-47D668349595}", + ["num"] = 7, + }, + [12] = { + ["CLSID"] = "{53BE25A4-C86C-4571-9BC0-47D668349595}", + ["num"] = 6, + }, + }, + ["tasks"] = { + [1] = 32, + [2] = 31, + }, + }, + [6] = { + ["displayName"] = "Liberation DEAD", + ["name"] = "Liberation DEAD", + ["pylons"] = { + [1] = { + ["CLSID"] = "{44EE8698-89F9-48EE-AF36-5FD31896A82A}", + ["num"] = 12, + }, + [2] = { + ["CLSID"] = "{44EE8698-89F9-48EE-AF36-5FD31896A82F}", + ["num"] = 1, + }, + [3] = { + ["CLSID"] = "{Su30_ASTRA}", + ["num"] = 11, + }, + [4] = { + ["CLSID"] = "{Su30_ASTRA}", + ["num"] = 2, + }, + [5] = { + ["CLSID"] = "{SU30_RudraM1}", + ["num"] = 8, + }, + [6] = { + ["CLSID"] = "{SU30_RudraM1}", + ["num"] = 5, + }, + [7] = { + ["CLSID"] = "{SU30_RudraM1}", + ["num"] = 10, + }, + [8] = { + ["CLSID"] = "{SU30_RudraM1}", + ["num"] = 9, + }, + [9] = { + ["CLSID"] = "{SU30_RudraM1}", + ["num"] = 4, + }, + [10] = { + ["CLSID"] = "{SU30_RudraM1}", + ["num"] = 3, + }, + [11] = { + ["CLSID"] = "{Su30_DERBY_ER}", + ["num"] = 7, + }, + [12] = { + ["CLSID"] = "{Su30_DERBY_ER}", + ["num"] = 6, + }, + }, + ["tasks"] = { + [1] = 29, + }, + }, + [7] = { + ["displayName"] = "Liberation Strike", + ["name"] = "Liberation Strike", + ["pylons"] = { + [1] = { + ["CLSID"] = "{44EE8698-89F9-48EE-AF36-5FD31896A82A}", + ["num"] = 12, + }, + [2] = { + ["CLSID"] = "{44EE8698-89F9-48EE-AF36-5FD31896A82F}", + ["num"] = 1, + }, + [3] = { + ["CLSID"] = "{Su30_ASTRA}", + ["num"] = 11, + }, + [4] = { + ["CLSID"] = "{Su30_ASTRA}", + ["num"] = 2, + }, + [5] = { + ["CLSID"] = "{E2C426E3-8B10-4E09-B733-9CDC26520F48}", + ["num"] = 8, + }, + [6] = { + ["CLSID"] = "{E2C426E3-8B10-4E09-B733-9CDC26520F48}", + ["num"] = 5, + }, + [7] = { + ["CLSID"] = "{E2C426E3-8B10-4E09-B733-9CDC26520F48}", + ["num"] = 10, + }, + [8] = { + ["CLSID"] = "{E2C426E3-8B10-4E09-B733-9CDC26520F48}", + ["num"] = 3, + }, + [9] = { + ["CLSID"] = "{E2C426E3-8B10-4E09-B733-9CDC26520F48}", + ["num"] = 9, + }, + [10] = { + ["CLSID"] = "{E2C426E3-8B10-4E09-B733-9CDC26520F48}", + ["num"] = 4, + }, + [11] = { + ["CLSID"] = "{Su30_DERBY_ER}", + ["num"] = 7, + }, + [12] = { + ["CLSID"] = "{Su30_DERBY_ER}", + ["num"] = 6, + }, + }, + ["tasks"] = { + [1] = 33, + [2] = 32, + [3] = 31, + }, + }, + [8] = { + ["name"] = "Liberation CAS", + ["pylons"] = { + [1] = { + ["CLSID"] = "{44EE8698-89F9-48EE-AF36-5FD31896A82A}", + ["num"] = 12, + }, + [2] = { + ["CLSID"] = "{44EE8698-89F9-48EE-AF36-5FD31896A82F}", + ["num"] = 1, + }, + [3] = { + ["CLSID"] = "{Su30_ASTRA}", + ["num"] = 11, + }, + [4] = { + ["CLSID"] = "{Su30_ASTRA}", + ["num"] = 2, + }, + [5] = { + ["CLSID"] = "{601C99F7-9AF3-4ed7-A565-F8B8EC0D7AAC}", + ["num"] = 10, + }, + [6] = { + ["CLSID"] = "{601C99F7-9AF3-4ed7-A565-F8B8EC0D7AAC}", + ["num"] = 3, + }, + [7] = { + ["CLSID"] = "{601C99F7-9AF3-4ed7-A565-F8B8EC0D7AAC}", + ["num"] = 4, + }, + [8] = { + ["CLSID"] = "{601C99F7-9AF3-4ed7-A565-F8B8EC0D7AAC}", + ["num"] = 9, + }, + [9] = { + ["CLSID"] = "{601C99F7-9AF3-4ed7-A565-F8B8EC0D7AAC}", + ["num"] = 8, + }, + [10] = { + ["CLSID"] = "{601C99F7-9AF3-4ed7-A565-F8B8EC0D7AAC}", + ["num"] = 5, + }, + [11] = { + ["CLSID"] = "{Su30_DERBY_ER}", + ["num"] = 7, + }, + [12] = { + ["CLSID"] = "{Su30_DERBY_ER}", + ["num"] = 6, + }, + }, + ["tasks"] = { + [1] = 31, + [2] = 32, + }, + }, + [9] = { + ["displayName"] = "Liberation SEAD", + ["name"] = "Liberation SEAD", + ["pylons"] = { + [1] = { + ["CLSID"] = "{44EE8698-89F9-48EE-AF36-5FD31896A82A}", + ["num"] = 12, + }, + [2] = { + ["CLSID"] = "{44EE8698-89F9-48EE-AF36-5FD31896A82F}", + ["num"] = 1, + }, + [3] = { + ["CLSID"] = "{Su30_ASTRA}", + ["num"] = 11, + }, + [4] = { + ["CLSID"] = "{Su30_ASTRA}", + ["num"] = 2, + }, + [5] = { + ["CLSID"] = "{SU30_RudraM1}", + ["num"] = 8, + }, + [6] = { + ["CLSID"] = "{SU30_RudraM1}", + ["num"] = 5, + }, + [7] = { + ["CLSID"] = "{SU30_RudraM1}", + ["num"] = 10, + }, + [8] = { + ["CLSID"] = "{SU30_RudraM1}", + ["num"] = 9, + }, + [9] = { + ["CLSID"] = "{SU30_RudraM1}", + ["num"] = 4, + }, + [10] = { + ["CLSID"] = "{SU30_RudraM1}", + ["num"] = 3, + }, + [11] = { + ["CLSID"] = "{Su30_DERBY_ER}", + ["num"] = 7, + }, + [12] = { + ["CLSID"] = "{Su30_DERBY_ER}", + ["num"] = 6, + }, + }, + ["tasks"] = { + [1] = 29, + }, + }, + }, + ["tasks"] = { + }, + ["unitType"] = "Su-30MKI", +} +return unitPayloads diff --git a/resources/customized_payloads/Su-30MKM.lua b/resources/customized_payloads/Su-30MKM.lua new file mode 100644 index 00000000..04a064ec --- /dev/null +++ b/resources/customized_payloads/Su-30MKM.lua @@ -0,0 +1,530 @@ +local unitPayloads = { + ["name"] = "Su-30MKM", + ["payloads"] = { + [1] = { + ["displayName"] = "Liberation BAI", + ["name"] = "Liberation BAI", + ["pylons"] = { + [1] = { + ["CLSID"] = "{44EE8698-89F9-48EE-AF36-5FD31896A82A}", + ["num"] = 12, + }, + [2] = { + ["CLSID"] = "{44EE8698-89F9-48EE-AF36-5FD31896A82F}", + ["num"] = 1, + }, + [3] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 11, + }, + [4] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 2, + }, + [5] = { + ["CLSID"] = "{601C99F7-9AF3-4ed7-A565-F8B8EC0D7AAC}", + ["num"] = 10, + }, + [6] = { + ["CLSID"] = "{601C99F7-9AF3-4ed7-A565-F8B8EC0D7AAC}", + ["num"] = 3, + }, + [7] = { + ["CLSID"] = "{601C99F7-9AF3-4ed7-A565-F8B8EC0D7AAC}", + ["num"] = 4, + }, + [8] = { + ["CLSID"] = "{601C99F7-9AF3-4ed7-A565-F8B8EC0D7AAC}", + ["num"] = 9, + }, + [9] = { + ["CLSID"] = "{601C99F7-9AF3-4ed7-A565-F8B8EC0D7AAC}", + ["num"] = 8, + }, + [10] = { + ["CLSID"] = "{601C99F7-9AF3-4ed7-A565-F8B8EC0D7AAC}", + ["num"] = 5, + }, + [11] = { + ["CLSID"] = "{SU30_R77}", + ["num"] = 7, + }, + [12] = { + ["CLSID"] = "{SU30_R77}", + ["num"] = 6, + }, + }, + ["tasks"] = { + [1] = 31, + [2] = 32, + }, + }, + [2] = { + ["displayName"] = "ANTISHIP", + ["name"] = "ANTISHIP", + ["pylons"] = { + [1] = { + ["CLSID"] = "{44EE8698-89F9-48EE-AF36-5FD31896A82A}", + ["num"] = 12, + }, + [2] = { + ["CLSID"] = "{44EE8698-89F9-48EE-AF36-5FD31896A82F}", + ["num"] = 1, + }, + [3] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 11, + }, + [4] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 2, + }, + [5] = { + ["CLSID"] = "{SU30_KH_31A}", + ["num"] = 8, + }, + [6] = { + ["CLSID"] = "{SU30_KH_31A}", + ["num"] = 5, + }, + [7] = { + ["CLSID"] = "{SU30_KH_35}", + ["num"] = 10, + }, + [8] = { + ["CLSID"] = "{SU30_KH_35}", + ["num"] = 9, + }, + [9] = { + ["CLSID"] = "{SU30_KH_35}", + ["num"] = 4, + }, + [10] = { + ["CLSID"] = "{SU30_KH_35}", + ["num"] = 3, + }, + [11] = { + ["CLSID"] = "{SU30_R77}", + ["num"] = 6, + }, + [12] = { + ["CLSID"] = "{SU30_R77}", + ["num"] = 7, + }, + }, + ["tasks"] = { + [1] = 30, + }, + }, + [3] = { + ["displayName"] = "Liberation SEAD", + ["name"] = "Liberation SEAD", + ["pylons"] = { + [1] = { + ["CLSID"] = "{44EE8698-89F9-48EE-AF36-5FD31896A82A}", + ["num"] = 12, + }, + [2] = { + ["CLSID"] = "{44EE8698-89F9-48EE-AF36-5FD31896A82F}", + ["num"] = 1, + }, + [3] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 11, + }, + [4] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 2, + }, + [5] = { + ["CLSID"] = "{SU30_KH31P}", + ["num"] = 8, + }, + [6] = { + ["CLSID"] = "{SU30_KH31P}", + ["num"] = 5, + }, + [7] = { + ["CLSID"] = "{SU30_KH31P}", + ["num"] = 10, + }, + [8] = { + ["CLSID"] = "{SU30_KH31P}", + ["num"] = 9, + }, + [9] = { + ["CLSID"] = "{SU30_KH31P}", + ["num"] = 4, + }, + [10] = { + ["CLSID"] = "{SU30_KH31P}", + ["num"] = 3, + }, + [11] = { + ["CLSID"] = "{SU30_R77}", + ["num"] = 7, + }, + [12] = { + ["CLSID"] = "{SU30_R77}", + ["num"] = 6, + }, + }, + ["tasks"] = { + [1] = 29, + }, + }, + [4] = { + ["displayName"] = "CAP", + ["name"] = "CAP", + ["pylons"] = { + [1] = { + ["CLSID"] = "{44EE8698-89F9-48EE-AF36-5FD31896A82A}", + ["num"] = 12, + }, + [2] = { + ["CLSID"] = "{44EE8698-89F9-48EE-AF36-5FD31896A82F}", + ["num"] = 1, + }, + [3] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 11, + }, + [4] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 2, + }, + [5] = { + ["CLSID"] = "{SU30_R77}", + ["num"] = 10, + }, + [6] = { + ["CLSID"] = "{SU30_R27ET}", + ["num"] = 9, + }, + [7] = { + ["CLSID"] = "{SU30_R27ER}", + ["num"] = 8, + }, + [8] = { + ["CLSID"] = "{SU30_R77}", + ["num"] = 7, + }, + [9] = { + ["CLSID"] = "{SU30_R77}", + ["num"] = 6, + }, + [10] = { + ["CLSID"] = "{SU30_R27ER}", + ["num"] = 5, + }, + [11] = { + ["CLSID"] = "{SU30_R27ET}", + ["num"] = 4, + }, + [12] = { + ["CLSID"] = "{SU30_R77}", + ["num"] = 3, + }, + }, + ["tasks"] = { + [1] = 18, + [2] = 19, + [3] = 10, + [4] = 11, + }, + }, + [5] = { + ["displayName"] = "Liberation OCA/Runway", + ["name"] = "Liberation OCA/Runway", + ["pylons"] = { + [1] = { + ["CLSID"] = "{44EE8698-89F9-48EE-AF36-5FD31896A82A}", + ["num"] = 12, + }, + [2] = { + ["CLSID"] = "{44EE8698-89F9-48EE-AF36-5FD31896A82F}", + ["num"] = 1, + }, + [3] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 11, + }, + [4] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 2, + }, + [5] = { + ["CLSID"] = "{SU30_R27ER}", + ["num"] = 8, + }, + [6] = { + ["CLSID"] = "{SU30_R27ER}", + ["num"] = 5, + }, + [7] = { + ["CLSID"] = "{BD289E34-DF84-4C5E-9220-4B14C346E79D}", + ["num"] = 10, + }, + [8] = { + ["CLSID"] = "{BD289E34-DF84-4C5E-9220-4B14C346E79D}", + ["num"] = 9, + }, + [9] = { + ["CLSID"] = "{BD289E34-DF84-4C5E-9220-4B14C346E79D}", + ["num"] = 4, + }, + [10] = { + ["CLSID"] = "{BD289E34-DF84-4C5E-9220-4B14C346E79D}", + ["num"] = 3, + }, + [11] = { + ["CLSID"] = "{BD289E34-DF84-4C5E-9220-4B14C346E79D}", + ["num"] = 7, + }, + [12] = { + ["CLSID"] = "{BD289E34-DF84-4C5E-9220-4B14C346E79D}", + ["num"] = 6, + }, + }, + ["tasks"] = { + [1] = 34, + }, + }, + [6] = { + ["displayName"] = "Liberation DEAD", + ["name"] = "Liberation DEAD", + ["pylons"] = { + [1] = { + ["CLSID"] = "{44EE8698-89F9-48EE-AF36-5FD31896A82A}", + ["num"] = 12, + }, + [2] = { + ["CLSID"] = "{44EE8698-89F9-48EE-AF36-5FD31896A82F}", + ["num"] = 1, + }, + [3] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 11, + }, + [4] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 2, + }, + [5] = { + ["CLSID"] = "{SU30_KH31P}", + ["num"] = 8, + }, + [6] = { + ["CLSID"] = "{SU30_KH31P}", + ["num"] = 5, + }, + [7] = { + ["CLSID"] = "{SU30_KH31P}", + ["num"] = 10, + }, + [8] = { + ["CLSID"] = "{SU30_KH31P}", + ["num"] = 9, + }, + [9] = { + ["CLSID"] = "{SU30_KH31P}", + ["num"] = 4, + }, + [10] = { + ["CLSID"] = "{SU30_KH31P}", + ["num"] = 3, + }, + [11] = { + ["CLSID"] = "{SU30_R77}", + ["num"] = 7, + }, + [12] = { + ["CLSID"] = "{SU30_R77}", + ["num"] = 6, + }, + }, + ["tasks"] = { + [1] = 29, + [2] = 32, + }, + }, + [7] = { + ["displayName"] = "Liberation Strike", + ["name"] = "Liberation Strike", + ["pylons"] = { + [1] = { + ["CLSID"] = "{44EE8698-89F9-48EE-AF36-5FD31896A82A}", + ["num"] = 12, + }, + [2] = { + ["CLSID"] = "{44EE8698-89F9-48EE-AF36-5FD31896A82F}", + ["num"] = 1, + }, + [3] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 11, + }, + [4] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 2, + }, + [5] = { + ["CLSID"] = "{SU30_R77}", + ["num"] = 8, + }, + [6] = { + ["CLSID"] = "{SU30_R77}", + ["num"] = 5, + }, + [7] = { + ["CLSID"] = "{E2C426E3-8B10-4E09-B733-9CDC26520F48}", + ["num"] = 10, + }, + [8] = { + ["CLSID"] = "{E2C426E3-8B10-4E09-B733-9CDC26520F48}", + ["num"] = 3, + }, + [9] = { + ["CLSID"] = "{E2C426E3-8B10-4E09-B733-9CDC26520F48}", + ["num"] = 9, + }, + [10] = { + ["CLSID"] = "{E2C426E3-8B10-4E09-B733-9CDC26520F48}", + ["num"] = 4, + }, + [11] = { + ["CLSID"] = "{E2C426E3-8B10-4E09-B733-9CDC26520F48}", + ["num"] = 7, + }, + [12] = { + ["CLSID"] = "{E2C426E3-8B10-4E09-B733-9CDC26520F48}", + ["num"] = 6, + }, + }, + ["tasks"] = { + [1] = 33, + [2] = 32, + [3] = 31, + }, + }, + [8] = { + ["name"] = "Liberation CAS", + ["pylons"] = { + [1] = { + ["CLSID"] = "{44EE8698-89F9-48EE-AF36-5FD31896A82A}", + ["num"] = 12, + }, + [2] = { + ["CLSID"] = "{44EE8698-89F9-48EE-AF36-5FD31896A82F}", + ["num"] = 1, + }, + [3] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 11, + }, + [4] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 2, + }, + [5] = { + ["CLSID"] = "{601C99F7-9AF3-4ed7-A565-F8B8EC0D7AAC}", + ["num"] = 10, + }, + [6] = { + ["CLSID"] = "{601C99F7-9AF3-4ed7-A565-F8B8EC0D7AAC}", + ["num"] = 3, + }, + [7] = { + ["CLSID"] = "{601C99F7-9AF3-4ed7-A565-F8B8EC0D7AAC}", + ["num"] = 4, + }, + [8] = { + ["CLSID"] = "{601C99F7-9AF3-4ed7-A565-F8B8EC0D7AAC}", + ["num"] = 9, + }, + [9] = { + ["CLSID"] = "{601C99F7-9AF3-4ed7-A565-F8B8EC0D7AAC}", + ["num"] = 8, + }, + [10] = { + ["CLSID"] = "{601C99F7-9AF3-4ed7-A565-F8B8EC0D7AAC}", + ["num"] = 5, + }, + [11] = { + ["CLSID"] = "{SU30_R77}", + ["num"] = 7, + }, + [12] = { + ["CLSID"] = "{SU30_R77}", + ["num"] = 6, + }, + }, + ["tasks"] = { + [1] = 31, + [2] = 32, + }, + }, + [9] = { + ["displayName"] = "Liberation OCA/Aircraft", + ["name"] = "Liberation OCA/Aircraft", + ["pylons"] = { + [1] = { + ["CLSID"] = "{44EE8698-89F9-48EE-AF36-5FD31896A82A}", + ["num"] = 12, + }, + [2] = { + ["CLSID"] = "{44EE8698-89F9-48EE-AF36-5FD31896A82F}", + ["num"] = 1, + }, + [3] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 11, + }, + [4] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 2, + }, + [5] = { + ["CLSID"] = "{SU30_R27ER}", + ["num"] = 8, + }, + [6] = { + ["CLSID"] = "{SU30_R27ER}", + ["num"] = 5, + }, + [7] = { + ["CLSID"] = "{96A7F676-F956-404A-AD04-F33FB2C74884}", + ["num"] = 10, + }, + [8] = { + ["CLSID"] = "{96A7F676-F956-404A-AD04-F33FB2C74881}", + ["num"] = 9, + }, + [9] = { + ["CLSID"] = "{96A7F676-F956-404A-AD04-F33FB2C74881}", + ["num"] = 4, + }, + [10] = { + ["CLSID"] = "{96A7F676-F956-404A-AD04-F33FB2C74884}", + ["num"] = 3, + }, + [11] = { + ["CLSID"] = "{53BE25A4-C86C-4571-9BC0-47D668349595}", + ["num"] = 7, + }, + [12] = { + ["CLSID"] = "{53BE25A4-C86C-4571-9BC0-47D668349595}", + ["num"] = 6, + }, + }, + ["tasks"] = { + [1] = 32, + [2] = 31, + }, + }, + }, + ["tasks"] = { + }, + ["unitType"] = "Su-30MKM", +} +return unitPayloads diff --git a/resources/customized_payloads/Su-30SM.lua b/resources/customized_payloads/Su-30SM.lua new file mode 100644 index 00000000..3633c61c --- /dev/null +++ b/resources/customized_payloads/Su-30SM.lua @@ -0,0 +1,530 @@ +local unitPayloads = { + ["name"] = "Su-30SM", + ["payloads"] = { + [1] = { + ["displayName"] = "Liberation BAI", + ["name"] = "Liberation BAI", + ["pylons"] = { + [1] = { + ["CLSID"] = "{44EE8698-89F9-48EE-AF36-5FD31896A82A}", + ["num"] = 12, + }, + [2] = { + ["CLSID"] = "{44EE8698-89F9-48EE-AF36-5FD31896A82F}", + ["num"] = 1, + }, + [3] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 11, + }, + [4] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 2, + }, + [5] = { + ["CLSID"] = "{601C99F7-9AF3-4ed7-A565-F8B8EC0D7AAC}", + ["num"] = 10, + }, + [6] = { + ["CLSID"] = "{601C99F7-9AF3-4ed7-A565-F8B8EC0D7AAC}", + ["num"] = 3, + }, + [7] = { + ["CLSID"] = "{601C99F7-9AF3-4ed7-A565-F8B8EC0D7AAC}", + ["num"] = 4, + }, + [8] = { + ["CLSID"] = "{601C99F7-9AF3-4ed7-A565-F8B8EC0D7AAC}", + ["num"] = 9, + }, + [9] = { + ["CLSID"] = "{601C99F7-9AF3-4ed7-A565-F8B8EC0D7AAC}", + ["num"] = 8, + }, + [10] = { + ["CLSID"] = "{601C99F7-9AF3-4ed7-A565-F8B8EC0D7AAC}", + ["num"] = 5, + }, + [11] = { + ["CLSID"] = "{SU30_R77M}", + ["num"] = 7, + }, + [12] = { + ["CLSID"] = "{SU30_R77M}", + ["num"] = 6, + }, + }, + ["tasks"] = { + [1] = 31, + [2] = 32, + }, + }, + [2] = { + ["displayName"] = "ANTISHIP", + ["name"] = "ANTISHIP", + ["pylons"] = { + [1] = { + ["CLSID"] = "{44EE8698-89F9-48EE-AF36-5FD31896A82A}", + ["num"] = 12, + }, + [2] = { + ["CLSID"] = "{44EE8698-89F9-48EE-AF36-5FD31896A82F}", + ["num"] = 1, + }, + [3] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 11, + }, + [4] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 2, + }, + [5] = { + ["CLSID"] = "{SU30_KH31AD}", + ["num"] = 8, + }, + [6] = { + ["CLSID"] = "{SU30_KH31AD}", + ["num"] = 5, + }, + [7] = { + ["CLSID"] = "{SU30_KH59MK}", + ["num"] = 10, + }, + [8] = { + ["CLSID"] = "{SU30_KH59MK}", + ["num"] = 9, + }, + [9] = { + ["CLSID"] = "{SU30_KH59MK}", + ["num"] = 4, + }, + [10] = { + ["CLSID"] = "{SU30_KH59MK}", + ["num"] = 3, + }, + [11] = { + ["CLSID"] = "{SU30_R77M}", + ["num"] = 6, + }, + [12] = { + ["CLSID"] = "{SU30_R77M}", + ["num"] = 7, + }, + }, + ["tasks"] = { + [1] = 30, + }, + }, + [3] = { + ["displayName"] = "Liberation SEAD", + ["name"] = "Liberation SEAD", + ["pylons"] = { + [1] = { + ["CLSID"] = "{44EE8698-89F9-48EE-AF36-5FD31896A82A}", + ["num"] = 12, + }, + [2] = { + ["CLSID"] = "{44EE8698-89F9-48EE-AF36-5FD31896A82F}", + ["num"] = 1, + }, + [3] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 11, + }, + [4] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 2, + }, + [5] = { + ["CLSID"] = "{SU30_KH31PD}", + ["num"] = 8, + }, + [6] = { + ["CLSID"] = "{SU30_KH31PD}", + ["num"] = 5, + }, + [7] = { + ["CLSID"] = "{SU30_KH31PD}", + ["num"] = 10, + }, + [8] = { + ["CLSID"] = "{SU30_KH31PD}", + ["num"] = 9, + }, + [9] = { + ["CLSID"] = "{SU30_KH31PD}", + ["num"] = 4, + }, + [10] = { + ["CLSID"] = "{SU30_KH31PD}", + ["num"] = 3, + }, + [11] = { + ["CLSID"] = "{SU30_R77M}", + ["num"] = 7, + }, + [12] = { + ["CLSID"] = "{SU30_R77M}", + ["num"] = 6, + }, + }, + ["tasks"] = { + [1] = 29, + }, + }, + [4] = { + ["displayName"] = "CAP", + ["name"] = "CAP", + ["pylons"] = { + [1] = { + ["CLSID"] = "{44EE8698-89F9-48EE-AF36-5FD31896A82A}", + ["num"] = 12, + }, + [2] = { + ["CLSID"] = "{44EE8698-89F9-48EE-AF36-5FD31896A82F}", + ["num"] = 1, + }, + [3] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 11, + }, + [4] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 2, + }, + [5] = { + ["CLSID"] = "{SU30_R77M}", + ["num"] = 10, + }, + [6] = { + ["CLSID"] = "{SU30_R27ET}", + ["num"] = 9, + }, + [7] = { + ["CLSID"] = "{SU30_R27EA}", + ["num"] = 8, + }, + [8] = { + ["CLSID"] = "{SU30_R77M}", + ["num"] = 7, + }, + [9] = { + ["CLSID"] = "{SU30_R77M}", + ["num"] = 6, + }, + [10] = { + ["CLSID"] = "{SU30_R27EA}", + ["num"] = 5, + }, + [11] = { + ["CLSID"] = "{SU30_R27ET}", + ["num"] = 4, + }, + [12] = { + ["CLSID"] = "{SU30_R77M}", + ["num"] = 3, + }, + }, + ["tasks"] = { + [1] = 18, + [2] = 19, + [3] = 10, + [4] = 11, + }, + }, + [5] = { + ["displayName"] = "Liberation OCA/Runway", + ["name"] = "Liberation OCA/Runway", + ["pylons"] = { + [1] = { + ["CLSID"] = "{44EE8698-89F9-48EE-AF36-5FD31896A82A}", + ["num"] = 12, + }, + [2] = { + ["CLSID"] = "{44EE8698-89F9-48EE-AF36-5FD31896A82F}", + ["num"] = 1, + }, + [3] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 11, + }, + [4] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 2, + }, + [5] = { + ["CLSID"] = "{SU30_R27EA}", + ["num"] = 8, + }, + [6] = { + ["CLSID"] = "{SU30_R27EA}", + ["num"] = 5, + }, + [7] = { + ["CLSID"] = "{BD289E34-DF84-4C5E-9220-4B14C346E79D}", + ["num"] = 10, + }, + [8] = { + ["CLSID"] = "{BD289E34-DF84-4C5E-9220-4B14C346E79D}", + ["num"] = 9, + }, + [9] = { + ["CLSID"] = "{BD289E34-DF84-4C5E-9220-4B14C346E79D}", + ["num"] = 4, + }, + [10] = { + ["CLSID"] = "{BD289E34-DF84-4C5E-9220-4B14C346E79D}", + ["num"] = 3, + }, + [11] = { + ["CLSID"] = "{BD289E34-DF84-4C5E-9220-4B14C346E79D}", + ["num"] = 7, + }, + [12] = { + ["CLSID"] = "{BD289E34-DF84-4C5E-9220-4B14C346E79D}", + ["num"] = 6, + }, + }, + ["tasks"] = { + [1] = 34, + }, + }, + [6] = { + ["displayName"] = "Liberation DEAD", + ["name"] = "Liberation DEAD", + ["pylons"] = { + [1] = { + ["CLSID"] = "{44EE8698-89F9-48EE-AF36-5FD31896A82A}", + ["num"] = 12, + }, + [2] = { + ["CLSID"] = "{44EE8698-89F9-48EE-AF36-5FD31896A82F}", + ["num"] = 1, + }, + [3] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 11, + }, + [4] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 2, + }, + [5] = { + ["CLSID"] = "{SU30_R77M}", + ["num"] = 8, + }, + [6] = { + ["CLSID"] = "{SU30_R77M}", + ["num"] = 5, + }, + [7] = { + ["CLSID"] = "{SU30_KH59MK2}", + ["num"] = 10, + }, + [8] = { + ["CLSID"] = "{SU30_KH59MK2}", + ["num"] = 9, + }, + [9] = { + ["CLSID"] = "{SU30_KH59MK2}", + ["num"] = 4, + }, + [10] = { + ["CLSID"] = "{SU30_KH59MK2}", + ["num"] = 3, + }, + [11] = { + ["CLSID"] = "{96A7F676-F956-404A-AD04-F33FB2C74881}", + ["num"] = 7, + }, + [12] = { + ["CLSID"] = "{96A7F676-F956-404A-AD04-F33FB2C74884}", + ["num"] = 6, + }, + }, + ["tasks"] = { + [1] = 29, + [2] = 32, + }, + }, + [7] = { + ["displayName"] = "Liberation Strike", + ["name"] = "Liberation Strike", + ["pylons"] = { + [1] = { + ["CLSID"] = "{44EE8698-89F9-48EE-AF36-5FD31896A82A}", + ["num"] = 12, + }, + [2] = { + ["CLSID"] = "{44EE8698-89F9-48EE-AF36-5FD31896A82F}", + ["num"] = 1, + }, + [3] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 11, + }, + [4] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 2, + }, + [5] = { + ["CLSID"] = "{SU30_R77M}", + ["num"] = 8, + }, + [6] = { + ["CLSID"] = "{SU30_R77M}", + ["num"] = 5, + }, + [7] = { + ["CLSID"] = "{E2C426E3-8B10-4E09-B733-9CDC26520F48}", + ["num"] = 10, + }, + [8] = { + ["CLSID"] = "{E2C426E3-8B10-4E09-B733-9CDC26520F48}", + ["num"] = 3, + }, + [9] = { + ["CLSID"] = "{E2C426E3-8B10-4E09-B733-9CDC26520F48}", + ["num"] = 9, + }, + [10] = { + ["CLSID"] = "{E2C426E3-8B10-4E09-B733-9CDC26520F48}", + ["num"] = 4, + }, + [11] = { + ["CLSID"] = "{E2C426E3-8B10-4E09-B733-9CDC26520F48}", + ["num"] = 7, + }, + [12] = { + ["CLSID"] = "{E2C426E3-8B10-4E09-B733-9CDC26520F48}", + ["num"] = 6, + }, + }, + ["tasks"] = { + [1] = 33, + [2] = 32, + [3] = 31, + }, + }, + [8] = { + ["name"] = "Liberation CAS", + ["pylons"] = { + [1] = { + ["CLSID"] = "{44EE8698-89F9-48EE-AF36-5FD31896A82A}", + ["num"] = 12, + }, + [2] = { + ["CLSID"] = "{44EE8698-89F9-48EE-AF36-5FD31896A82F}", + ["num"] = 1, + }, + [3] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 11, + }, + [4] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 2, + }, + [5] = { + ["CLSID"] = "{601C99F7-9AF3-4ed7-A565-F8B8EC0D7AAC}", + ["num"] = 10, + }, + [6] = { + ["CLSID"] = "{601C99F7-9AF3-4ed7-A565-F8B8EC0D7AAC}", + ["num"] = 3, + }, + [7] = { + ["CLSID"] = "{601C99F7-9AF3-4ed7-A565-F8B8EC0D7AAC}", + ["num"] = 4, + }, + [8] = { + ["CLSID"] = "{601C99F7-9AF3-4ed7-A565-F8B8EC0D7AAC}", + ["num"] = 9, + }, + [9] = { + ["CLSID"] = "{601C99F7-9AF3-4ed7-A565-F8B8EC0D7AAC}", + ["num"] = 8, + }, + [10] = { + ["CLSID"] = "{601C99F7-9AF3-4ed7-A565-F8B8EC0D7AAC}", + ["num"] = 5, + }, + [11] = { + ["CLSID"] = "{SU30_R77M}", + ["num"] = 7, + }, + [12] = { + ["CLSID"] = "{SU30_R77M}", + ["num"] = 6, + }, + }, + ["tasks"] = { + [1] = 31, + [2] = 32, + }, + }, + [9] = { + ["displayName"] = "Liberation OCA/Aircraft", + ["name"] = "Liberation OCA/Aircraft", + ["pylons"] = { + [1] = { + ["CLSID"] = "{44EE8698-89F9-48EE-AF36-5FD31896A82A}", + ["num"] = 12, + }, + [2] = { + ["CLSID"] = "{44EE8698-89F9-48EE-AF36-5FD31896A82F}", + ["num"] = 1, + }, + [3] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 11, + }, + [4] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 2, + }, + [5] = { + ["CLSID"] = "{SU30_R27EA}", + ["num"] = 8, + }, + [6] = { + ["CLSID"] = "{SU30_R27EA}", + ["num"] = 5, + }, + [7] = { + ["CLSID"] = "{96A7F676-F956-404A-AD04-F33FB2C74884}", + ["num"] = 10, + }, + [8] = { + ["CLSID"] = "{96A7F676-F956-404A-AD04-F33FB2C74881}", + ["num"] = 9, + }, + [9] = { + ["CLSID"] = "{96A7F676-F956-404A-AD04-F33FB2C74881}", + ["num"] = 4, + }, + [10] = { + ["CLSID"] = "{96A7F676-F956-404A-AD04-F33FB2C74884}", + ["num"] = 3, + }, + [11] = { + ["CLSID"] = "{53BE25A4-C86C-4571-9BC0-47D668349595}", + ["num"] = 7, + }, + [12] = { + ["CLSID"] = "{53BE25A4-C86C-4571-9BC0-47D668349595}", + ["num"] = 6, + }, + }, + ["tasks"] = { + [1] = 32, + [2] = 31, + }, + }, + }, + ["tasks"] = { + }, + ["unitType"] = "Su-30SM", +} +return unitPayloads diff --git a/resources/factions/bluefor_modern.json b/resources/factions/bluefor_modern.json index bdb3f938..c6b06daf 100644 --- a/resources/factions/bluefor_modern.json +++ b/resources/factions/bluefor_modern.json @@ -40,6 +40,10 @@ "SA 342M Gazelle", "Su-25T Frogfoot", "Su-27 Flanker-B", + "Su-30MKA Flanker-H", + "Su-30MKI Flanker-H", + "Su-30MKM Flanker-H", + "Su-30SM Flanker-H", "UH-1H Iroquois" ], "awacs": [ diff --git a/resources/factions/india_2010.json b/resources/factions/india_2010.json index 6bfc7eec..f1169512 100644 --- a/resources/factions/india_2010.json +++ b/resources/factions/india_2010.json @@ -15,7 +15,8 @@ "MiG-29S Fulcrum-C", "Mirage 2000-5", "Mirage 2000C", - "Su-30 Flanker-C" + "Su-30 Flanker-C", + "Su-30MKI Flanker-H" ], "awacs": [ "A-50" diff --git a/resources/factions/redfor_russia_2010.json b/resources/factions/redfor_russia_2010.json index 482eb6bc..e58f0f79 100644 --- a/resources/factions/redfor_russia_2010.json +++ b/resources/factions/redfor_russia_2010.json @@ -24,6 +24,7 @@ "Su-25T Frogfoot", "Su-27 Flanker-B", "Su-30 Flanker-C", + "Su-30SM Flanker-H", "Su-33 Flanker-D", "Su-34 Fullback", "Tu-22M3 Backfire-C" diff --git a/resources/factions/russia_2020.json b/resources/factions/russia_2020.json index 84f9523b..dfbabb81 100644 --- a/resources/factions/russia_2020.json +++ b/resources/factions/russia_2020.json @@ -21,6 +21,10 @@ "Su-25T Frogfoot", "Su-27 Flanker-B", "Su-30 Flanker-C", + "Su-30MKA Flanker-H", + "Su-30MKI Flanker-H", + "Su-30MKM Flanker-H", + "Su-30SM Flanker-H", "Su-33 Flanker-D", "Su-34 Fullback", "Su-57 Felon", diff --git a/resources/ui/units/aircrafts/banners/Su-30SM_24.jpg b/resources/ui/units/aircrafts/banners/Su-30SM_24.jpg new file mode 100644 index 00000000..326565cf Binary files /dev/null and b/resources/ui/units/aircrafts/banners/Su-30SM_24.jpg differ diff --git a/resources/ui/units/aircrafts/icons/Su-30MKA_24.jpg b/resources/ui/units/aircrafts/icons/Su-30MKA_24.jpg new file mode 100644 index 00000000..ced7b867 Binary files /dev/null and b/resources/ui/units/aircrafts/icons/Su-30MKA_24.jpg differ diff --git a/resources/ui/units/aircrafts/icons/Su-30MKI_24.jpg b/resources/ui/units/aircrafts/icons/Su-30MKI_24.jpg new file mode 100644 index 00000000..eb793e8b Binary files /dev/null and b/resources/ui/units/aircrafts/icons/Su-30MKI_24.jpg differ diff --git a/resources/ui/units/aircrafts/icons/Su-30MKM_24.jpg b/resources/ui/units/aircrafts/icons/Su-30MKM_24.jpg new file mode 100644 index 00000000..9d875efc Binary files /dev/null and b/resources/ui/units/aircrafts/icons/Su-30MKM_24.jpg differ diff --git a/resources/ui/units/aircrafts/icons/Su-30SM_24.jpg b/resources/ui/units/aircrafts/icons/Su-30SM_24.jpg new file mode 100644 index 00000000..e223a8f6 Binary files /dev/null and b/resources/ui/units/aircrafts/icons/Su-30SM_24.jpg differ diff --git a/resources/units/aircraft/Su-30MKA.yaml b/resources/units/aircraft/Su-30MKA.yaml new file mode 100644 index 00000000..01f6d4a0 --- /dev/null +++ b/resources/units/aircraft/Su-30MKA.yaml @@ -0,0 +1,19 @@ +description: + "The Sukhoi Su-30 (Russian: \u0421\u0443\u0445\u043E\u0439 \u0421\u0443\ + -30; NATO reporting name: Flanker-C/G/H) is a twin-engine, two-seat supermaneuverable\ + \ fighter aircraft developed in the Soviet Union by Russia's Sukhoi Aviation Corporation.\ + \ It is a multirole fighter for all-weather, air-to-air and air-to-surface deep\ + \ interdiction missions. 630 numbers have been build.\ + \ \ + \ A version of the Su-30MKI, except with French and Russian avionics for Algeria." +introduced: 2007 # http://sukhoi.mariwoj.pl/su-30-dz.htm +manufacturer: Sukhoi +origin: USSR/Russia +price: 24 +role: Multirole Fighter +max_range: 300 +variants: + Su-30MKA Flanker-H: {} +radios: + intra_flight: R-800 + inter_flight: R-800 \ No newline at end of file diff --git a/resources/units/aircraft/Su-30MKI.yaml b/resources/units/aircraft/Su-30MKI.yaml new file mode 100644 index 00000000..cc094204 --- /dev/null +++ b/resources/units/aircraft/Su-30MKI.yaml @@ -0,0 +1,22 @@ +description: + "The Sukhoi Su-30 (Russian: \u0421\u0443\u0445\u043E\u0439 \u0421\u0443\ + -30; NATO reporting name: Flanker-C/G/H) is a twin-engine, two-seat supermaneuverable\ + \ fighter aircraft developed in the Soviet Union by Russia's Sukhoi Aviation Corporation.\ + \ It is a multirole fighter for all-weather, air-to-air and air-to-surface deep\ + interdiction missions. 630 numbers have been build.\ + \ \ + \ MKI for Modernizirovannyi Kommercheskiy Indiski - \"Modernized Commercial Indian\". An export version for India,\ + \ jointly developed with Hindustan Aeronautics Limited (HAL). It is the first Su-30 family member to feature\ + \ thrust vectoring control (TVC) and canards. Equipped with a multinational avionics complex\ + \ sourced from Russia, India, France and Israel." +introduced: 2002 # https://en.wikipedia.org/wiki/Sukhoi_Su-30MKI +manufacturer: Sukhoi +origin: USSR/Russia +price: 24 +role: Multirole Fighter +max_range: 300 +variants: + Su-30MKI Flanker-H: {} +radios: + intra_flight: R-800 + inter_flight: R-800 diff --git a/resources/units/aircraft/Su-30MKM.yaml b/resources/units/aircraft/Su-30MKM.yaml new file mode 100644 index 00000000..8cd68f86 --- /dev/null +++ b/resources/units/aircraft/Su-30MKM.yaml @@ -0,0 +1,25 @@ +description: + "The Sukhoi Su-30 (Russian: \u0421\u0443\u0445\u043E\u0439 \u0421\u0443\ + -30; NATO reporting name: Flanker-C/G/H) is a twin-engine, two-seat supermaneuverable\ + \ fighter aircraft developed in the Soviet Union by Russia's Sukhoi Aviation Corporation.\ + \ It is a multirole fighter for all-weather, air-to-air and air-to-surface deep\ + \ interdiction missions. 630 numbers have been build.\ + \ \ + \ A derivative of the Russian-Indian Su-30MKI, the MKM is a highly specialised version for Royal Malaysian Air Force.\ + \ It includes thrust vectoring control (TVC) and canards but with avionics from various countries.\ + \ It will feature head-up displays (HUD), navigational forward-looking IR system (NAVFLIR) and\ + \ Damocles Laser Designation pod (LDP) from Thales Group of France, MAW-300 missile approach warning sensor (MAWS),\ + \ RWS-50 RWR and laser warning sensor (LWS) from SAAB AVITRONICS (South Africa)[114] as well as the\ + \ Russian NIIP N011M Bars Passive electronically scanned array radar, electronic warfare (EW) system,\ + \ optical-location system (OLS) and a glass cockpit." +introduced: 2007 # https://en.wikipedia.org/wiki/Sukhoi_Su-30MKM +manufacturer: Sukhoi +origin: USSR/Russia +price: 24 +role: Multirole Fighter +max_range: 300 +variants: + Su-30MKM Flanker-H: {} +radios: + intra_flight: R-800 + inter_flight: R-800 diff --git a/resources/units/aircraft/Su-30SM.yaml b/resources/units/aircraft/Su-30SM.yaml new file mode 100644 index 00000000..0a795ae7 --- /dev/null +++ b/resources/units/aircraft/Su-30SM.yaml @@ -0,0 +1,32 @@ +description: + "The Sukhoi Su-30 (Russian: \u0421\u0443\u0445\u043E\u0439 \u0421\u0443\ + -30; NATO reporting name: Flanker-C/G/H) is a twin-engine, two-seat supermaneuverable \ + \ fighter aircraft developed in the Soviet Union by Russia's Sukhoi Aviation Corporation. \ + \ It is a multirole fighter for all-weather, air-to-air and air-to-surface deep \ + \ interdiction missions. 630 numbers have been build. \ + \ \ + \ SM for Serijnyi Modernizirovannyi - \"Serial Modernized\". A specialised version of the thrust-vectoring \ + \ Su-30MKI for the Russian Air Force, produced by the Irkut Corporation. NATO reporting name Flanker-H. \ + \ The Su-30SM is considered a 4+ generation fighter jet. The aircraft has been upgraded according to \ + \ Russian military requirements for radar, radio communications systems, friend-or-foe identification system, \ + \ ejection seats, weapons, and other aircraft systems. It is equipped with the N011M Bars radar with a \ + \ maximum detection range 400 km, search range 200 km using a phased array antenna, frontal horizontal fins \ + \ and steerable thrusters for supermaneuverability as well as with wide-angle HUD. \ + \ The aircraft can be used to gain air supremacy same as for targeting adversary on the ground using \ + \ wide range of weapons including air-to-air, air-to-surface and guided and unguided bombs with total weapons \ + \ weight up to 8,000 kg. It is also equipped with the one barrel, 30 mm GSh-30-1 autocannon. \ + \ To ensure operations at major distances from airfield, the ability of in-flight refueling (IFR) is included. \ + \ Besides that, for electronic warfare purposes two SAP-518 jamming pods can be fitted on the wing tips. \ + \ The SAP-518 is designed to protect the aircraft from various air-to-air and surface-to-air missiles by \ + \ creating false targets, jamming missile's guidance, enemy aircraft radars or ground and seaborne air defence." +introduced: 2012 # https://www.airforce-technology.com/projects/su-30sm-multirole-fighter-aircraft/ +manufacturer: Sukhoi +origin: USSR/Russia +price: 24 +role: Multirole Fighter +max_range: 300 +variants: + Su-30SM Flanker-H: {} +radios: + intra_flight: R-800 + inter_flight: R-800