diff --git a/changelog.md b/changelog.md index e67c88d9..b7b5021d 100644 --- a/changelog.md +++ b/changelog.md @@ -11,6 +11,7 @@ * **[Modding]** Added OH-6 Cayuse (v1.2) mod support, including the Vietnam Asset Pack v1.0 * **[Modding]** Added VSN EA-6B Prowler mod support (v2.9.4.102) * **[Modding]** Added tripod3 Cold War assets mod support (v1.0) +* **[Modding]** Added VSN Mirage III mod support (2.5.7.01) * **[Campaign Setup]** Allow adjustments to naval TGOs (except carriers) on turn 0 * **[Campaign Design]** Ability to configure specific carrier names & types in campaign's yaml file * **[Mission Generation]** Ability to inject custom kneeboards diff --git a/game/factions/faction.py b/game/factions/faction.py index 66311896..1bd30267 100644 --- a/game/factions/faction.py +++ b/game/factions/faction.py @@ -479,6 +479,10 @@ class Faction: self.remove_aircraft("JAS39Gripen") self.remove_aircraft("JAS39Gripen_BVR") self.remove_aircraft("JAS39Gripen_AG") + if not mod_settings.mirage_3: + self.remove_aircraft("VSN_MirageIIIC") + self.remove_aircraft("VSN_MirageIIIC_AG") + self.remove_aircraft("VSN_MirageIIIS") if not mod_settings.super_etendard: self.remove_aircraft("VSN_SEM") if not mod_settings.sk_60: @@ -838,6 +842,19 @@ class Faction: self.remove_preset("MIM-104 Patriot (Stationary)") self.remove_preset("NASAMS 3") self.remove_preset("THAAD") + if not mod_settings.ukrainemilitaryassetspack: + self.remove_aircraft("Su-24MU") + self.remove_aircraft("MiG-29MU2") + self.remove_aircraft("CH_Su-27P1M") + self.remove_vehicle("T84_OplotM") + self.remove_vehicle("BTR-4") + self.remove_vehicle("CH_T64BV") + self.remove_vehicle("CH_Kozak5") + self.remove_vehicle("CH_KrAZSpartan") + self.remove_vehicle("CH_BRDM2L1") + self.remove_vehicle("CH_Alligator_Sniper") + self.remove_vehicle("CH_Stugna_P") + self.remove_vehicle("CH_KrAZ6322") def remove_aircraft(self, name: str) -> None: for aircraft_set in [self.aircraft, self.awacs, self.tankers]: diff --git a/game/theater/start_generator.py b/game/theater/start_generator.py index a096e255..5cbcaca0 100644 --- a/game/theater/start_generator.py +++ b/game/theater/start_generator.py @@ -89,6 +89,7 @@ class ModSettings: uh_60l: bool = False jas39_gripen: bool = False sk_60: bool = False + mirage_3: bool = False super_etendard: bool = False su15_flagon: bool = False su30_flanker_h: bool = False @@ -104,6 +105,7 @@ class ModSettings: chinesemilitaryassetspack: bool = False russianmilitaryassetspack: bool = False usamilitaryassetspack: bool = False + ukrainemilitaryassetspack: bool = False class GameGenerator: diff --git a/pydcs_extensions/__init__.py b/pydcs_extensions/__init__.py index f39b5119..6c9e0d3c 100644 --- a/pydcs_extensions/__init__.py +++ b/pydcs_extensions/__init__.py @@ -21,6 +21,7 @@ from .hercules import * from .highdigitsams import * from .irondome import * from .jas39 import * +from .mirage3 import * from .oh6 import * from .oh6_vietnamassetpack import * from .ov10a import * @@ -37,6 +38,7 @@ from .vietnamwarvessels import * from .chinesemilitaryassetspack import * from .russianmilitaryassetspack import * from .usamilitaryassetspack import * +from .ukrainemilitaryassetspack import * def load_mods() -> None: diff --git a/pydcs_extensions/mirage3/__init__.py b/pydcs_extensions/mirage3/__init__.py new file mode 100644 index 00000000..e2a281a1 --- /dev/null +++ b/pydcs_extensions/mirage3/__init__.py @@ -0,0 +1 @@ +from .mirage3 import * diff --git a/pydcs_extensions/mirage3/mirage3.py b/pydcs_extensions/mirage3/mirage3.py new file mode 100644 index 00000000..dcca5078 --- /dev/null +++ b/pydcs_extensions/mirage3/mirage3.py @@ -0,0 +1,646 @@ +from enum import Enum + +from dcs import task + +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 WeaponsMirage3: + M3_Fuel_Tank_1300_Liter = { + "clsid": "{VSN_M3C2_PTB}", + "name": "M3 Fuel Tank 1300 Liter", + "weight": 1172, + } + M3_Fuel_Tank_1700_Liter = { + "clsid": "{VSN_M3C3_PTB}", + "name": "M3 Fuel Tank 1700 Liter", + "weight": 1492, + } + M3_Fuel_Tank_625_Liter = { + "clsid": "{VSN_M3C1_PTB}", + "name": "M3 Fuel Tank 625 Liter", + "weight": 600, + } + + +inject_weapons(WeaponsMirage3) + + +@planemod +class VSN_MirageIIIC(PlaneType): + id = "VSN_MirageIIIC" + flyable = True + height = 4.5 + width = 8.22 + length = 15.03 + fuel_max = 2150 + max_speed = 2450.088 + chaff = 90 + flare = 45 + charge_total = 180 + chaff_charge_size = 1 + flare_charge_size = 2 + category = "Interceptor" # {78EFB7A2-FD52-4b57-A6A6-3BF0E1D6555F} + radio_frequency = 127.5 + + livery_name = "VSN_MirageIIIC" # from type + + class Pylon1: + AN_ASQ_T50_TCTS_Pod___ACMI_Pod = (1, Weapons.AN_ASQ_T50_TCTS_Pod___ACMI_Pod) + Smokewinder___red = (1, Weapons.Smokewinder___red) + Smokewinder___green = (1, Weapons.Smokewinder___green) + Smokewinder___blue = (1, Weapons.Smokewinder___blue) + Smokewinder___white = (1, Weapons.Smokewinder___white) + Smokewinder___yellow = (1, Weapons.Smokewinder___yellow) + Smokewinder___orange = (1, Weapons.Smokewinder___orange) + R550_Magic_2_IR_AAM = (1, Weapons.R550_Magic_2_IR_AAM) + Matra_Super_530D = (1, Weapons.Matra_Super_530D) + + # ERRR + + class Pylon2: + Kh_29T__AS_14_Kedge____670kg__ASM__TV_Guided = ( + 2, + Weapons.Kh_29T__AS_14_Kedge____670kg__ASM__TV_Guided, + ) + LAU_117_with_AGM_65D___Maverick_D__IIR_ASM_ = ( + 2, + Weapons.LAU_117_with_AGM_65D___Maverick_D__IIR_ASM_, + ) + KAB_1500L___1500kg_Laser_Guided_Bomb = ( + 2, + Weapons.KAB_1500L___1500kg_Laser_Guided_Bomb, + ) + KAB_500Kr___500kg_TV_Guided_Bomb = (2, Weapons.KAB_500Kr___500kg_TV_Guided_Bomb) + Mk_84___2000lb_GP_Bomb_LD = (2, Weapons.Mk_84___2000lb_GP_Bomb_LD) + MER2_with_2_x_Mk_82___500lb_GP_Bombs_LD = ( + 2, + Weapons.MER2_with_2_x_Mk_82___500lb_GP_Bombs_LD, + ) + Mk_83___1000lb_GP_Bomb_LD = (2, Weapons.Mk_83___1000lb_GP_Bomb_LD) + BLU_107___440lb_Anti_Runway_Penetrator_Bomb = ( + 2, + Weapons.BLU_107___440lb_Anti_Runway_Penetrator_Bomb, + ) + # ERRR {FAAFA032-8996-42BF-ADC4-8E2C86BCE536} + Kh_59M__AS_18_Kazoo____930kg__ASM__IN = ( + 2, + Weapons.Kh_59M__AS_18_Kazoo____930kg__ASM__IN, + ) + Kh_58U__AS_11_Kilter____640kg__ARM__IN__Pas_Rdr_ = ( + 2, + Weapons.Kh_58U__AS_11_Kilter____640kg__ARM__IN__Pas_Rdr_, + ) + R550_Magic_2_IR_AAM = (2, Weapons.R550_Magic_2_IR_AAM) + Matra_Super_530D = (2, Weapons.Matra_Super_530D) + M3_Fuel_Tank_625_Liter = (2, WeaponsMirage3.M3_Fuel_Tank_625_Liter) + M3_Fuel_Tank_1300_Liter = (2, WeaponsMirage3.M3_Fuel_Tank_1300_Liter) + + class Pylon3: + LAU_117_with_AGM_65D___Maverick_D__IIR_ASM_ = ( + 3, + Weapons.LAU_117_with_AGM_65D___Maverick_D__IIR_ASM_, + ) + KAB_1500L___1500kg_Laser_Guided_Bomb = ( + 3, + Weapons.KAB_1500L___1500kg_Laser_Guided_Bomb, + ) + KAB_500Kr___500kg_TV_Guided_Bomb = (3, Weapons.KAB_500Kr___500kg_TV_Guided_Bomb) + Mk_84___2000lb_GP_Bomb_LD = (3, Weapons.Mk_84___2000lb_GP_Bomb_LD) + MER2_with_2_x_Mk_82___500lb_GP_Bombs_LD = ( + 3, + Weapons.MER2_with_2_x_Mk_82___500lb_GP_Bombs_LD, + ) + Mk_83___1000lb_GP_Bomb_LD = (3, Weapons.Mk_83___1000lb_GP_Bomb_LD) + R550_Magic_2_IR_AAM = (3, Weapons.R550_Magic_2_IR_AAM) + Matra_Super_530D = (3, Weapons.Matra_Super_530D) + + # ERRR {Kh-58U} + + class Pylon5: + L005_Sorbtsiya_ECM_pod__left_ = (5, Weapons.L005_Sorbtsiya_ECM_pod__left_) + L_081_Fantasmagoria_ELINT_pod = (5, Weapons.L_081_Fantasmagoria_ELINT_pod) + Smoke_Generator___red_ = (5, Weapons.Smoke_Generator___red_) + Smoke_Generator___green_ = (5, Weapons.Smoke_Generator___green_) + Smoke_Generator___blue_ = (5, Weapons.Smoke_Generator___blue_) + Smoke_Generator___white_ = (5, Weapons.Smoke_Generator___white_) + Smoke_Generator___yellow_ = (5, Weapons.Smoke_Generator___yellow_) + Smoke_Generator___orange_ = (5, Weapons.Smoke_Generator___orange_) + + class Pylon6: + M3_Fuel_Tank_1300_Liter = (6, WeaponsMirage3.M3_Fuel_Tank_1300_Liter) + M3_Fuel_Tank_1700_Liter = (6, WeaponsMirage3.M3_Fuel_Tank_1700_Liter) + + class Pylon7: + L005_Sorbtsiya_ECM_pod__left_ = (7, Weapons.L005_Sorbtsiya_ECM_pod__left_) + L_081_Fantasmagoria_ELINT_pod = (7, Weapons.L_081_Fantasmagoria_ELINT_pod) + Smoke_Generator___red_ = (7, Weapons.Smoke_Generator___red_) + Smoke_Generator___green_ = (7, Weapons.Smoke_Generator___green_) + Smoke_Generator___blue_ = (7, Weapons.Smoke_Generator___blue_) + Smoke_Generator___white_ = (7, Weapons.Smoke_Generator___white_) + Smoke_Generator___yellow_ = (7, Weapons.Smoke_Generator___yellow_) + Smoke_Generator___orange_ = (7, Weapons.Smoke_Generator___orange_) + + class Pylon9: + LAU_117_with_AGM_65D___Maverick_D__IIR_ASM_ = ( + 9, + Weapons.LAU_117_with_AGM_65D___Maverick_D__IIR_ASM_, + ) + KAB_1500L___1500kg_Laser_Guided_Bomb = ( + 9, + Weapons.KAB_1500L___1500kg_Laser_Guided_Bomb, + ) + KAB_500Kr___500kg_TV_Guided_Bomb = (9, Weapons.KAB_500Kr___500kg_TV_Guided_Bomb) + Mk_84___2000lb_GP_Bomb_LD = (9, Weapons.Mk_84___2000lb_GP_Bomb_LD) + MER2_with_2_x_Mk_82___500lb_GP_Bombs_LD = ( + 9, + Weapons.MER2_with_2_x_Mk_82___500lb_GP_Bombs_LD, + ) + Mk_83___1000lb_GP_Bomb_LD = (9, Weapons.Mk_83___1000lb_GP_Bomb_LD) + R550_Magic_2_IR_AAM = (9, Weapons.R550_Magic_2_IR_AAM) + Matra_Super_530D = (9, Weapons.Matra_Super_530D) + + # ERRR {Kh-58U} + + class Pylon10: + Kh_29T__AS_14_Kedge____670kg__ASM__TV_Guided = ( + 10, + Weapons.Kh_29T__AS_14_Kedge____670kg__ASM__TV_Guided, + ) + LAU_117_with_AGM_65D___Maverick_D__IIR_ASM_ = ( + 10, + Weapons.LAU_117_with_AGM_65D___Maverick_D__IIR_ASM_, + ) + KAB_1500L___1500kg_Laser_Guided_Bomb = ( + 10, + Weapons.KAB_1500L___1500kg_Laser_Guided_Bomb, + ) + KAB_500Kr___500kg_TV_Guided_Bomb = ( + 10, + Weapons.KAB_500Kr___500kg_TV_Guided_Bomb, + ) + Mk_84___2000lb_GP_Bomb_LD = (10, Weapons.Mk_84___2000lb_GP_Bomb_LD) + MER2_with_2_x_Mk_82___500lb_GP_Bombs_LD = ( + 10, + Weapons.MER2_with_2_x_Mk_82___500lb_GP_Bombs_LD, + ) + Mk_83___1000lb_GP_Bomb_LD = (10, Weapons.Mk_83___1000lb_GP_Bomb_LD) + BLU_107___440lb_Anti_Runway_Penetrator_Bomb = ( + 10, + Weapons.BLU_107___440lb_Anti_Runway_Penetrator_Bomb, + ) + # ERRR {FAAFA032-8996-42BF-ADC4-8E2C86BCE536} + Kh_59M__AS_18_Kazoo____930kg__ASM__IN = ( + 10, + Weapons.Kh_59M__AS_18_Kazoo____930kg__ASM__IN, + ) + Kh_58U__AS_11_Kilter____640kg__ARM__IN__Pas_Rdr_ = ( + 10, + Weapons.Kh_58U__AS_11_Kilter____640kg__ARM__IN__Pas_Rdr_, + ) + R550_Magic_2_IR_AAM = (10, Weapons.R550_Magic_2_IR_AAM) + Matra_Super_530D = (10, Weapons.Matra_Super_530D) + M3_Fuel_Tank_625_Liter = (10, WeaponsMirage3.M3_Fuel_Tank_625_Liter) + M3_Fuel_Tank_1300_Liter = (10, WeaponsMirage3.M3_Fuel_Tank_1300_Liter) + + class Pylon11: + AN_ASQ_T50_TCTS_Pod___ACMI_Pod = (11, Weapons.AN_ASQ_T50_TCTS_Pod___ACMI_Pod) + Smokewinder___red = (11, Weapons.Smokewinder___red) + Smokewinder___green = (11, Weapons.Smokewinder___green) + Smokewinder___blue = (11, Weapons.Smokewinder___blue) + Smokewinder___white = (11, Weapons.Smokewinder___white) + Smokewinder___yellow = (11, Weapons.Smokewinder___yellow) + Smokewinder___orange = (11, Weapons.Smokewinder___orange) + R550_Magic_2_IR_AAM = (11, Weapons.R550_Magic_2_IR_AAM) + Matra_Super_530D = (11, Weapons.Matra_Super_530D) + + # ERRR + + pylons = {1, 2, 3, 5, 6, 7, 9, 10, 11} + + tasks = [ + task.CAP, + task.Escort, + task.FighterSweep, + task.Intercept, + task.Reconnaissance, + task.GroundAttack, + task.CAS, + task.AFAC, + task.RunwayAttack, + ] + task_default = task.FighterSweep + + +@planemod +class VSN_MirageIIIC_AG(PlaneType): + id = "VSN_MirageIIIC_AG" + flyable = True + height = 4.5 + width = 8.22 + length = 15.03 + fuel_max = 2150 + max_speed = 2450.088 + chaff = 90 + flare = 45 + charge_total = 180 + chaff_charge_size = 1 + flare_charge_size = 2 + category = "Interceptor" # {78EFB7A2-FD52-4b57-A6A6-3BF0E1D6555F} + radio_frequency = 127.5 + + livery_name = "VSN_MirageIIIC_AG" # from type + + class Pylon1: + AN_ASQ_T50_TCTS_Pod___ACMI_Pod = (1, Weapons.AN_ASQ_T50_TCTS_Pod___ACMI_Pod) + Smokewinder___red = (1, Weapons.Smokewinder___red) + Smokewinder___green = (1, Weapons.Smokewinder___green) + Smokewinder___blue = (1, Weapons.Smokewinder___blue) + Smokewinder___white = (1, Weapons.Smokewinder___white) + Smokewinder___yellow = (1, Weapons.Smokewinder___yellow) + Smokewinder___orange = (1, Weapons.Smokewinder___orange) + R550_Magic_2_IR_AAM = (1, Weapons.R550_Magic_2_IR_AAM) + Matra_Super_530D = (1, Weapons.Matra_Super_530D) + + # ERRR + + class Pylon2: + Kh_29T__AS_14_Kedge____670kg__ASM__TV_Guided = ( + 2, + Weapons.Kh_29T__AS_14_Kedge____670kg__ASM__TV_Guided, + ) + LAU_117_with_AGM_65D___Maverick_D__IIR_ASM_ = ( + 2, + Weapons.LAU_117_with_AGM_65D___Maverick_D__IIR_ASM_, + ) + KAB_1500L___1500kg_Laser_Guided_Bomb = ( + 2, + Weapons.KAB_1500L___1500kg_Laser_Guided_Bomb, + ) + KAB_500Kr___500kg_TV_Guided_Bomb = (2, Weapons.KAB_500Kr___500kg_TV_Guided_Bomb) + Mk_84___2000lb_GP_Bomb_LD = (2, Weapons.Mk_84___2000lb_GP_Bomb_LD) + MER2_with_2_x_Mk_82___500lb_GP_Bombs_LD = ( + 2, + Weapons.MER2_with_2_x_Mk_82___500lb_GP_Bombs_LD, + ) + Mk_83___1000lb_GP_Bomb_LD = (2, Weapons.Mk_83___1000lb_GP_Bomb_LD) + BLU_107___440lb_Anti_Runway_Penetrator_Bomb = ( + 2, + Weapons.BLU_107___440lb_Anti_Runway_Penetrator_Bomb, + ) + # ERRR {FAAFA032-8996-42BF-ADC4-8E2C86BCE536} + Kh_59M__AS_18_Kazoo____930kg__ASM__IN = ( + 2, + Weapons.Kh_59M__AS_18_Kazoo____930kg__ASM__IN, + ) + Kh_58U__AS_11_Kilter____640kg__ARM__IN__Pas_Rdr_ = ( + 2, + Weapons.Kh_58U__AS_11_Kilter____640kg__ARM__IN__Pas_Rdr_, + ) + R550_Magic_2_IR_AAM = (2, Weapons.R550_Magic_2_IR_AAM) + Matra_Super_530D = (2, Weapons.Matra_Super_530D) + M3_Fuel_Tank_625_Liter = (2, WeaponsMirage3.M3_Fuel_Tank_625_Liter) + M3_Fuel_Tank_1300_Liter = (2, WeaponsMirage3.M3_Fuel_Tank_1300_Liter) + + class Pylon3: + LAU_117_with_AGM_65D___Maverick_D__IIR_ASM_ = ( + 3, + Weapons.LAU_117_with_AGM_65D___Maverick_D__IIR_ASM_, + ) + KAB_1500L___1500kg_Laser_Guided_Bomb = ( + 3, + Weapons.KAB_1500L___1500kg_Laser_Guided_Bomb, + ) + KAB_500Kr___500kg_TV_Guided_Bomb = (3, Weapons.KAB_500Kr___500kg_TV_Guided_Bomb) + Mk_84___2000lb_GP_Bomb_LD = (3, Weapons.Mk_84___2000lb_GP_Bomb_LD) + MER2_with_2_x_Mk_82___500lb_GP_Bombs_LD = ( + 3, + Weapons.MER2_with_2_x_Mk_82___500lb_GP_Bombs_LD, + ) + Mk_83___1000lb_GP_Bomb_LD = (3, Weapons.Mk_83___1000lb_GP_Bomb_LD) + R550_Magic_2_IR_AAM = (3, Weapons.R550_Magic_2_IR_AAM) + Matra_Super_530D = (3, Weapons.Matra_Super_530D) + + # ERRR {Kh-58U} + + class Pylon5: + L005_Sorbtsiya_ECM_pod__left_ = (5, Weapons.L005_Sorbtsiya_ECM_pod__left_) + L_081_Fantasmagoria_ELINT_pod = (5, Weapons.L_081_Fantasmagoria_ELINT_pod) + Smoke_Generator___red_ = (5, Weapons.Smoke_Generator___red_) + Smoke_Generator___green_ = (5, Weapons.Smoke_Generator___green_) + Smoke_Generator___blue_ = (5, Weapons.Smoke_Generator___blue_) + Smoke_Generator___white_ = (5, Weapons.Smoke_Generator___white_) + Smoke_Generator___yellow_ = (5, Weapons.Smoke_Generator___yellow_) + Smoke_Generator___orange_ = (5, Weapons.Smoke_Generator___orange_) + + class Pylon6: + M3_Fuel_Tank_1300_Liter = (6, WeaponsMirage3.M3_Fuel_Tank_1300_Liter) + M3_Fuel_Tank_1700_Liter = (6, WeaponsMirage3.M3_Fuel_Tank_1700_Liter) + + class Pylon7: + L005_Sorbtsiya_ECM_pod__left_ = (7, Weapons.L005_Sorbtsiya_ECM_pod__left_) + L_081_Fantasmagoria_ELINT_pod = (7, Weapons.L_081_Fantasmagoria_ELINT_pod) + Smoke_Generator___red_ = (7, Weapons.Smoke_Generator___red_) + Smoke_Generator___green_ = (7, Weapons.Smoke_Generator___green_) + Smoke_Generator___blue_ = (7, Weapons.Smoke_Generator___blue_) + Smoke_Generator___white_ = (7, Weapons.Smoke_Generator___white_) + Smoke_Generator___yellow_ = (7, Weapons.Smoke_Generator___yellow_) + Smoke_Generator___orange_ = (7, Weapons.Smoke_Generator___orange_) + + class Pylon9: + LAU_117_with_AGM_65D___Maverick_D__IIR_ASM_ = ( + 9, + Weapons.LAU_117_with_AGM_65D___Maverick_D__IIR_ASM_, + ) + KAB_1500L___1500kg_Laser_Guided_Bomb = ( + 9, + Weapons.KAB_1500L___1500kg_Laser_Guided_Bomb, + ) + KAB_500Kr___500kg_TV_Guided_Bomb = (9, Weapons.KAB_500Kr___500kg_TV_Guided_Bomb) + Mk_84___2000lb_GP_Bomb_LD = (9, Weapons.Mk_84___2000lb_GP_Bomb_LD) + MER2_with_2_x_Mk_82___500lb_GP_Bombs_LD = ( + 9, + Weapons.MER2_with_2_x_Mk_82___500lb_GP_Bombs_LD, + ) + Mk_83___1000lb_GP_Bomb_LD = (9, Weapons.Mk_83___1000lb_GP_Bomb_LD) + R550_Magic_2_IR_AAM = (9, Weapons.R550_Magic_2_IR_AAM) + Matra_Super_530D = (9, Weapons.Matra_Super_530D) + + # ERRR {Kh-58U} + + class Pylon10: + Kh_29T__AS_14_Kedge____670kg__ASM__TV_Guided = ( + 10, + Weapons.Kh_29T__AS_14_Kedge____670kg__ASM__TV_Guided, + ) + LAU_117_with_AGM_65D___Maverick_D__IIR_ASM_ = ( + 10, + Weapons.LAU_117_with_AGM_65D___Maverick_D__IIR_ASM_, + ) + KAB_1500L___1500kg_Laser_Guided_Bomb = ( + 10, + Weapons.KAB_1500L___1500kg_Laser_Guided_Bomb, + ) + KAB_500Kr___500kg_TV_Guided_Bomb = ( + 10, + Weapons.KAB_500Kr___500kg_TV_Guided_Bomb, + ) + Mk_84___2000lb_GP_Bomb_LD = (10, Weapons.Mk_84___2000lb_GP_Bomb_LD) + MER2_with_2_x_Mk_82___500lb_GP_Bombs_LD = ( + 10, + Weapons.MER2_with_2_x_Mk_82___500lb_GP_Bombs_LD, + ) + Mk_83___1000lb_GP_Bomb_LD = (10, Weapons.Mk_83___1000lb_GP_Bomb_LD) + BLU_107___440lb_Anti_Runway_Penetrator_Bomb = ( + 10, + Weapons.BLU_107___440lb_Anti_Runway_Penetrator_Bomb, + ) + # ERRR {FAAFA032-8996-42BF-ADC4-8E2C86BCE536} + Kh_59M__AS_18_Kazoo____930kg__ASM__IN = ( + 10, + Weapons.Kh_59M__AS_18_Kazoo____930kg__ASM__IN, + ) + Kh_58U__AS_11_Kilter____640kg__ARM__IN__Pas_Rdr_ = ( + 10, + Weapons.Kh_58U__AS_11_Kilter____640kg__ARM__IN__Pas_Rdr_, + ) + R550_Magic_2_IR_AAM = (10, Weapons.R550_Magic_2_IR_AAM) + Matra_Super_530D = (10, Weapons.Matra_Super_530D) + M3_Fuel_Tank_625_Liter = (10, WeaponsMirage3.M3_Fuel_Tank_625_Liter) + M3_Fuel_Tank_1300_Liter = (10, WeaponsMirage3.M3_Fuel_Tank_1300_Liter) + + class Pylon11: + AN_ASQ_T50_TCTS_Pod___ACMI_Pod = (11, Weapons.AN_ASQ_T50_TCTS_Pod___ACMI_Pod) + Smokewinder___red = (11, Weapons.Smokewinder___red) + Smokewinder___green = (11, Weapons.Smokewinder___green) + Smokewinder___blue = (11, Weapons.Smokewinder___blue) + Smokewinder___white = (11, Weapons.Smokewinder___white) + Smokewinder___yellow = (11, Weapons.Smokewinder___yellow) + Smokewinder___orange = (11, Weapons.Smokewinder___orange) + R550_Magic_2_IR_AAM = (11, Weapons.R550_Magic_2_IR_AAM) + Matra_Super_530D = (11, Weapons.Matra_Super_530D) + + # ERRR + + pylons = {1, 2, 3, 5, 6, 7, 9, 10, 11} + + tasks = [ + task.CAP, + task.Escort, + task.FighterSweep, + task.Intercept, + task.Reconnaissance, + task.GroundAttack, + task.CAS, + task.AFAC, + task.RunwayAttack, + ] + task_default = task.FighterSweep + + +@planemod +class VSN_MirageIIIS(PlaneType): + id = "VSN_MirageIIIS" + flyable = True + height = 4.5 + width = 8.22 + length = 15.03 + fuel_max = 2150 + max_speed = 2450.088 + chaff = 90 + flare = 45 + charge_total = 180 + chaff_charge_size = 1 + flare_charge_size = 2 + category = "Interceptor" # {78EFB7A2-FD52-4b57-A6A6-3BF0E1D6555F} + radio_frequency = 127.5 + + livery_name = "VSN_MirageIIIS" # from type + + class Pylon1: + AIM_9M_Sidewinder_IR_AAM = (1, Weapons.AIM_9M_Sidewinder_IR_AAM) + AIM_9P_Sidewinder_IR_AAM = (1, Weapons.AIM_9P_Sidewinder_IR_AAM) + AIM_120B_AMRAAM___Active_Radar_AAM = ( + 1, + Weapons.AIM_120B_AMRAAM___Active_Radar_AAM, + ) + AN_ASQ_T50_TCTS_Pod___ACMI_Pod = (1, Weapons.AN_ASQ_T50_TCTS_Pod___ACMI_Pod) + Smokewinder___red = (1, Weapons.Smokewinder___red) + Smokewinder___green = (1, Weapons.Smokewinder___green) + Smokewinder___blue = (1, Weapons.Smokewinder___blue) + Smokewinder___white = (1, Weapons.Smokewinder___white) + Smokewinder___yellow = (1, Weapons.Smokewinder___yellow) + Smokewinder___orange = (1, Weapons.Smokewinder___orange) + R550_Magic_2_IR_AAM = (1, Weapons.R550_Magic_2_IR_AAM) + Matra_Super_530D = (1, Weapons.Matra_Super_530D) + + # ERRR + + class Pylon2: + LAU_115_LAU_127_CATM_9M = (2, Weapons.LAU_115_LAU_127_CATM_9M) + LAU_115_LAU_127_AIM_9L = (2, Weapons.LAU_115_LAU_127_AIM_9L) + LAU_115_LAU_127_AIM_9M = (2, Weapons.LAU_115_LAU_127_AIM_9M) + AIM_120B_AMRAAM___Active_Radar_AAM = ( + 2, + Weapons.AIM_120B_AMRAAM___Active_Radar_AAM, + ) + Kh_29T__AS_14_Kedge____670kg__ASM__TV_Guided = ( + 2, + Weapons.Kh_29T__AS_14_Kedge____670kg__ASM__TV_Guided, + ) + Mk_84___2000lb_GP_Bomb_LD = (2, Weapons.Mk_84___2000lb_GP_Bomb_LD) + MER2_with_2_x_Mk_82___500lb_GP_Bombs_LD = ( + 2, + Weapons.MER2_with_2_x_Mk_82___500lb_GP_Bombs_LD, + ) + Mk_83___1000lb_GP_Bomb_LD = (2, Weapons.Mk_83___1000lb_GP_Bomb_LD) + BLU_107___440lb_Anti_Runway_Penetrator_Bomb = ( + 2, + Weapons.BLU_107___440lb_Anti_Runway_Penetrator_Bomb, + ) + # ERRR {FAAFA032-8996-42BF-ADC4-8E2C86BCE536} + Kh_59M__AS_18_Kazoo____930kg__ASM__IN = ( + 2, + Weapons.Kh_59M__AS_18_Kazoo____930kg__ASM__IN, + ) + Kh_58U__AS_11_Kilter____640kg__ARM__IN__Pas_Rdr_ = ( + 2, + Weapons.Kh_58U__AS_11_Kilter____640kg__ARM__IN__Pas_Rdr_, + ) + R550_Magic_2_IR_AAM = (2, Weapons.R550_Magic_2_IR_AAM) + Matra_Super_530D = (2, Weapons.Matra_Super_530D) + M3_Fuel_Tank_625_Liter = (2, WeaponsMirage3.M3_Fuel_Tank_625_Liter) + + class Pylon3: + LAU_115_LAU_127_CATM_9M = (3, Weapons.LAU_115_LAU_127_CATM_9M) + LAU_115_LAU_127_AIM_9L = (3, Weapons.LAU_115_LAU_127_AIM_9L) + LAU_115_LAU_127_AIM_9M = (3, Weapons.LAU_115_LAU_127_AIM_9M) + AIM_120B_AMRAAM___Active_Radar_AAM = ( + 3, + Weapons.AIM_120B_AMRAAM___Active_Radar_AAM, + ) + Mk_84___2000lb_GP_Bomb_LD = (3, Weapons.Mk_84___2000lb_GP_Bomb_LD) + MER2_with_2_x_Mk_82___500lb_GP_Bombs_LD = ( + 3, + Weapons.MER2_with_2_x_Mk_82___500lb_GP_Bombs_LD, + ) + Mk_83___1000lb_GP_Bomb_LD = (3, Weapons.Mk_83___1000lb_GP_Bomb_LD) + R550_Magic_2_IR_AAM = (3, Weapons.R550_Magic_2_IR_AAM) + Matra_Super_530D = (3, Weapons.Matra_Super_530D) + + # ERRR {Kh-58U} + + class Pylon5: + L005_Sorbtsiya_ECM_pod__left_ = (5, Weapons.L005_Sorbtsiya_ECM_pod__left_) + L_081_Fantasmagoria_ELINT_pod = (5, Weapons.L_081_Fantasmagoria_ELINT_pod) + Smoke_Generator___red_ = (5, Weapons.Smoke_Generator___red_) + Smoke_Generator___green_ = (5, Weapons.Smoke_Generator___green_) + Smoke_Generator___blue_ = (5, Weapons.Smoke_Generator___blue_) + Smoke_Generator___white_ = (5, Weapons.Smoke_Generator___white_) + Smoke_Generator___yellow_ = (5, Weapons.Smoke_Generator___yellow_) + Smoke_Generator___orange_ = (5, Weapons.Smoke_Generator___orange_) + + class Pylon6: + M3_Fuel_Tank_1700_Liter = (6, WeaponsMirage3.M3_Fuel_Tank_1700_Liter) + + class Pylon7: + L005_Sorbtsiya_ECM_pod__left_ = (7, Weapons.L005_Sorbtsiya_ECM_pod__left_) + L_081_Fantasmagoria_ELINT_pod = (7, Weapons.L_081_Fantasmagoria_ELINT_pod) + Smoke_Generator___red_ = (7, Weapons.Smoke_Generator___red_) + Smoke_Generator___green_ = (7, Weapons.Smoke_Generator___green_) + Smoke_Generator___blue_ = (7, Weapons.Smoke_Generator___blue_) + Smoke_Generator___white_ = (7, Weapons.Smoke_Generator___white_) + Smoke_Generator___yellow_ = (7, Weapons.Smoke_Generator___yellow_) + Smoke_Generator___orange_ = (7, Weapons.Smoke_Generator___orange_) + + class Pylon9: + LAU_115_LAU_127_CATM_9M = (9, Weapons.LAU_115_LAU_127_CATM_9M) + LAU_115_LAU_127_AIM_9L = (9, Weapons.LAU_115_LAU_127_AIM_9L) + LAU_115_LAU_127_AIM_9M = (9, Weapons.LAU_115_LAU_127_AIM_9M) + AIM_120B_AMRAAM___Active_Radar_AAM = ( + 9, + Weapons.AIM_120B_AMRAAM___Active_Radar_AAM, + ) + Mk_84___2000lb_GP_Bomb_LD = (9, Weapons.Mk_84___2000lb_GP_Bomb_LD) + MER2_with_2_x_Mk_82___500lb_GP_Bombs_LD = ( + 9, + Weapons.MER2_with_2_x_Mk_82___500lb_GP_Bombs_LD, + ) + Mk_83___1000lb_GP_Bomb_LD = (9, Weapons.Mk_83___1000lb_GP_Bomb_LD) + R550_Magic_2_IR_AAM = (9, Weapons.R550_Magic_2_IR_AAM) + Matra_Super_530D = (9, Weapons.Matra_Super_530D) + + # ERRR {Kh-58U} + + class Pylon10: + LAU_115_LAU_127_CATM_9M = (10, Weapons.LAU_115_LAU_127_CATM_9M) + LAU_115_LAU_127_AIM_9L = (10, Weapons.LAU_115_LAU_127_AIM_9L) + LAU_115_LAU_127_AIM_9M = (10, Weapons.LAU_115_LAU_127_AIM_9M) + AIM_120B_AMRAAM___Active_Radar_AAM = ( + 10, + Weapons.AIM_120B_AMRAAM___Active_Radar_AAM, + ) + Kh_29T__AS_14_Kedge____670kg__ASM__TV_Guided = ( + 10, + Weapons.Kh_29T__AS_14_Kedge____670kg__ASM__TV_Guided, + ) + Mk_84___2000lb_GP_Bomb_LD = (10, Weapons.Mk_84___2000lb_GP_Bomb_LD) + MER2_with_2_x_Mk_82___500lb_GP_Bombs_LD = ( + 10, + Weapons.MER2_with_2_x_Mk_82___500lb_GP_Bombs_LD, + ) + Mk_83___1000lb_GP_Bomb_LD = (10, Weapons.Mk_83___1000lb_GP_Bomb_LD) + BLU_107___440lb_Anti_Runway_Penetrator_Bomb = ( + 10, + Weapons.BLU_107___440lb_Anti_Runway_Penetrator_Bomb, + ) + # ERRR {FAAFA032-8996-42BF-ADC4-8E2C86BCE536} + Kh_59M__AS_18_Kazoo____930kg__ASM__IN = ( + 10, + Weapons.Kh_59M__AS_18_Kazoo____930kg__ASM__IN, + ) + Kh_58U__AS_11_Kilter____640kg__ARM__IN__Pas_Rdr_ = ( + 10, + Weapons.Kh_58U__AS_11_Kilter____640kg__ARM__IN__Pas_Rdr_, + ) + R550_Magic_2_IR_AAM = (10, Weapons.R550_Magic_2_IR_AAM) + Matra_Super_530D = (10, Weapons.Matra_Super_530D) + M3_Fuel_Tank_625_Liter = (10, WeaponsMirage3.M3_Fuel_Tank_625_Liter) + + class Pylon11: + AIM_9M_Sidewinder_IR_AAM = (11, Weapons.AIM_9M_Sidewinder_IR_AAM) + AIM_9P_Sidewinder_IR_AAM = (11, Weapons.AIM_9P_Sidewinder_IR_AAM) + AIM_120B_AMRAAM___Active_Radar_AAM = ( + 11, + Weapons.AIM_120B_AMRAAM___Active_Radar_AAM, + ) + AN_ASQ_T50_TCTS_Pod___ACMI_Pod = (11, Weapons.AN_ASQ_T50_TCTS_Pod___ACMI_Pod) + Smokewinder___red = (11, Weapons.Smokewinder___red) + Smokewinder___green = (11, Weapons.Smokewinder___green) + Smokewinder___blue = (11, Weapons.Smokewinder___blue) + Smokewinder___white = (11, Weapons.Smokewinder___white) + Smokewinder___yellow = (11, Weapons.Smokewinder___yellow) + Smokewinder___orange = (11, Weapons.Smokewinder___orange) + R550_Magic_2_IR_AAM = (11, Weapons.R550_Magic_2_IR_AAM) + Matra_Super_530D = (11, Weapons.Matra_Super_530D) + + # ERRR + + pylons = {1, 2, 3, 5, 6, 7, 9, 10, 11} + + tasks = [ + task.CAP, + task.Escort, + task.FighterSweep, + task.Intercept, + task.Reconnaissance, + task.GroundAttack, + task.CAS, + task.AFAC, + task.RunwayAttack, + ] + task_default = task.FighterSweep diff --git a/pydcs_extensions/ukrainemilitaryassetspack/__init__.py b/pydcs_extensions/ukrainemilitaryassetspack/__init__.py new file mode 100644 index 00000000..afcb001c --- /dev/null +++ b/pydcs_extensions/ukrainemilitaryassetspack/__init__.py @@ -0,0 +1 @@ +from .ukrainemilitaryassetspack import * diff --git a/pydcs_extensions/ukrainemilitaryassetspack/ukrainemilitaryassetspack.py b/pydcs_extensions/ukrainemilitaryassetspack/ukrainemilitaryassetspack.py new file mode 100644 index 00000000..be2597cb --- /dev/null +++ b/pydcs_extensions/ukrainemilitaryassetspack/ukrainemilitaryassetspack.py @@ -0,0 +1,1107 @@ +# Requires Ukraine Military Assets for DCS by Currenthill: +# https://www.currenthill.com/ukraine +# + + +from typing import Set, Dict, Any + +from dcs import unittype, task +from dcs.planes import PlaneType +from dcs.weapons_data import Weapons + +from game.modsupport import ( + planemod, + vehiclemod, +) +from pydcs_extensions.weapon_injector import inject_weapons + + +# Weapons +class WeaponsUKR: + CH_AASM_250_PGM = { + "clsid": "{CH_AASM250}", + "name": "[CH] AASM 250 PGM", + "weight": 340, + } + CH_Storm_Shadow_ALCM = { + "clsid": "{SU24MU_STORMSHADOW}", + "name": "[CH] Storm Shadow ALCM", + "weight": 1300, + } + CH_Taurus_KEPD_350_ALCM = { + "clsid": "{SU24MU_KEPD350}", + "name": "[CH] Taurus KEPD-350 ALCM", + "weight": 1400, + } + ADM_160B_MALD_x_3___Miniature_Air_Launched_Decoy = { + "clsid": "{MIG29MU2_BRU_42A_x3_ADM_160B}", + "name": "ADM-160B MALD x 3 - Miniature Air-Launched Decoy", + "weight": 500.8, + } + ADM_160B_MALD___Miniature_Air_Launched_Decoy = { + "clsid": "{MiG-29MU2_ADM-160B}", + "name": "ADM-160B MALD - Miniature Air-Launched Decoy", + "weight": 150, + } + ADM_160B_MALD___Miniature_Air_Launched_Decoy_ = { + "clsid": "{MiG-29MU2_ADM-160B_LAU118}", + "name": "ADM-160B MALD - Miniature Air-Launched Decoy", + "weight": 150, + } + JDAM_ER___450_kg_GPS_Guided_Mk_83_GP_bomb = { + "clsid": "{MIG29MU2_JDAM-ER}", + "name": "JDAM-ER - 450 kg GPS Guided Mk-83 GP bomb", + "weight": 934, + } + + +inject_weapons(WeaponsUKR) + + +# Armor +@vehiclemod +class T84_OplotM(unittype.VehicleType): + id = "T84_OplotM" + name = "[CH] T-84 Oplot-M MBT" + detection_range = 8000 + threat_range = 5000 + air_weapon_dist = 5000 + eplrs = True + + +@vehiclemod +class BTR_4(unittype.VehicleType): + id = "BTR-4" + name = "[CH] BTR-4 IFV" + detection_range = 0 + threat_range = 5000 + air_weapon_dist = 5000 + eplrs = True + + +@vehiclemod +class CH_T64BV(unittype.VehicleType): + id = "CH_T64BV" + name = "[CH] T-64BV MBT" + detection_range = 5000 + threat_range = 4000 + air_weapon_dist = 4000 + eplrs = True + + +@vehiclemod +class CH_Kozak5(unittype.VehicleType): + id = "CH_Kozak5" + name = "[CH] Kozak-5 APC" + detection_range = 0 + threat_range = 1800 + air_weapon_dist = 1800 + eplrs = True + + +@vehiclemod +class CH_KrAZSpartan(unittype.VehicleType): + id = "CH_KrAZSpartan" + name = "[CH] KrAZ Spartan APC" + detection_range = 0 + threat_range = 1800 + air_weapon_dist = 1800 + eplrs = True + + +@vehiclemod +class CH_BRDM2L1(unittype.VehicleType): + id = "CH_BRDM2L1" + name = "[CH] BRDM-2L1 ARV" + detection_range = 0 + threat_range = 2000 + air_weapon_dist = 2000 + eplrs = True + + +# Infantry +@vehiclemod +class CH_Alligator_Sniper(unittype.VehicleType): + id = "CH_Alligator_Sniper" + name = "[CH] Alligator Sniper AMR" + detection_range = 5000 + threat_range = 3000 + air_weapon_dist = 3000 + eplrs = True + + +@vehiclemod +class CH_Stugna_P(unittype.VehicleType): + id = "CH_Stugna_P" + name = "[CH] Stugna-P ATGM" + detection_range = 5500 + threat_range = 5500 + air_weapon_dist = 5500 + eplrs = True + + +# Logistics +@vehiclemod +class CH_KrAZ6322(unittype.VehicleType): + id = "CH_KrAZ6322" + name = "[CH] KrAZ-6322 Truck" + detection_range = 0 + threat_range = 0 + air_weapon_dist = 0 + + +# Planes +@planemod +class Su_24MU(PlaneType): + id = "Su-24MU" + height = 4.97 + width = 17.64 + length = 24.53 + fuel_max = 11700 + max_speed = 1699.2 + chaff = 96 + flare = 96 + charge_total = 192 + chaff_charge_size = 1 + flare_charge_size = 1 + + livery_name = "SU-24MU" # from type + + class Pylon1: + R_60M__AA_8_Aphid_B____IR_AAM = (1, Weapons.R_60M__AA_8_Aphid_B____IR_AAM) + R_73__AA_11_Archer____Infra_Red = (1, Weapons.R_73__AA_11_Archer____Infra_Red) + MBD3_U6_68_with_6_x_FAB_100___100kg_GP_Bombs_LD = ( + 1, + Weapons.MBD3_U6_68_with_6_x_FAB_100___100kg_GP_Bombs_LD, + ) + UB_32A___32_x_UnGd_Rkts__57_mm_S_5KO_HEAT_Frag = ( + 1, + Weapons.UB_32A___32_x_UnGd_Rkts__57_mm_S_5KO_HEAT_Frag, + ) + B_8M1___20_x_UnGd_Rkts__80_mm_S_8KOM_HEAT_Frag = ( + 1, + Weapons.B_8M1___20_x_UnGd_Rkts__80_mm_S_8KOM_HEAT_Frag, + ) + FAB_250___250kg_GP_Bomb_LD = (1, Weapons.FAB_250___250kg_GP_Bomb_LD) + B_13L___5_x_UnGd_Rkts__122_mm_S_13OF_Blast_Fragmentation = ( + 1, + Weapons.B_13L___5_x_UnGd_Rkts__122_mm_S_13OF_Blast_Fragmentation, + ) + APU_68___S_24B___240mm_UnGd_Rkt__235kg__HE_Frag___Low_Smk_ = ( + 1, + Weapons.APU_68___S_24B___240mm_UnGd_Rkt__235kg__HE_Frag___Low_Smk_, + ) + O_25___1_x_UnGd_Rkts__340_mm_S_25_OFM_Hardened_Target_Penetrator = ( + 1, + Weapons.O_25___1_x_UnGd_Rkts__340_mm_S_25_OFM_Hardened_Target_Penetrator, + ) + Kh_25ML__AS_10_Karen____300kg__ASM__Semi_Act_Laser_ = ( + 1, + Weapons.Kh_25ML__AS_10_Karen____300kg__ASM__Semi_Act_Laser_, + ) + CH_AASM_250_PGM = (1, Weapons.CH_AASM_250_PGM) + + class Pylon2: + MBD3_U6_68_with_6_x_FAB_100___100kg_GP_Bombs_LD = ( + 2, + Weapons.MBD3_U6_68_with_6_x_FAB_100___100kg_GP_Bombs_LD, + ) + Kh_29T__AS_14_Kedge____670kg__ASM__TV_Guided_ = ( + 2, + Weapons.Kh_29T__AS_14_Kedge____670kg__ASM__TV_Guided_, + ) + Kh_25ML__AS_10_Karen____300kg__ASM__Semi_Act_Laser_ = ( + 2, + Weapons.Kh_25ML__AS_10_Karen____300kg__ASM__Semi_Act_Laser_, + ) + FAB_250___250kg_GP_Bomb_LD = (2, Weapons.FAB_250___250kg_GP_Bomb_LD) + FAB_500_M_62___500kg_GP_Bomb_LD = (2, Weapons.FAB_500_M_62___500kg_GP_Bomb_LD) + KAB_500Kr___500kg_TV_Guided_Bomb = (2, Weapons.KAB_500Kr___500kg_TV_Guided_Bomb) + UB_32A___32_x_UnGd_Rkts__57_mm_S_5KO_HEAT_Frag = ( + 2, + Weapons.UB_32A___32_x_UnGd_Rkts__57_mm_S_5KO_HEAT_Frag, + ) + B_8M1___20_x_UnGd_Rkts__80_mm_S_8KOM_HEAT_Frag = ( + 2, + Weapons.B_8M1___20_x_UnGd_Rkts__80_mm_S_8KOM_HEAT_Frag, + ) + B_13L___5_x_UnGd_Rkts__122_mm_S_13OF_Blast_Fragmentation = ( + 2, + Weapons.B_13L___5_x_UnGd_Rkts__122_mm_S_13OF_Blast_Fragmentation, + ) + APU_68___S_24B___240mm_UnGd_Rkt__235kg__HE_Frag___Low_Smk_ = ( + 2, + Weapons.APU_68___S_24B___240mm_UnGd_Rkt__235kg__HE_Frag___Low_Smk_, + ) + O_25___1_x_UnGd_Rkts__340_mm_S_25_OFM_Hardened_Target_Penetrator = ( + 2, + Weapons.O_25___1_x_UnGd_Rkts__340_mm_S_25_OFM_Hardened_Target_Penetrator, + ) + KAB_1500L___1500kg_Laser_Guided_Bomb = ( + 2, + Weapons.KAB_1500L___1500kg_Laser_Guided_Bomb, + ) + Fuel_tank_3000L = (2, Weapons.Fuel_tank_3000L) + CH_Storm_Shadow_ALCM = (2, Weapons.CH_Storm_Shadow_ALCM) + CH_Taurus_KEPD_350_ALCM = (2, Weapons.CH_Taurus_KEPD_350_ALCM) + CH_AASM_250_PGM = (2, Weapons.CH_AASM_250_PGM) + + class Pylon3: + 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, + ) + FAB_250___250kg_GP_Bomb_LD = (3, Weapons.FAB_250___250kg_GP_Bomb_LD) + FAB_500_M_62___500kg_GP_Bomb_LD = (3, Weapons.FAB_500_M_62___500kg_GP_Bomb_LD) + KAB_500Kr___500kg_TV_Guided_Bomb = (3, Weapons.KAB_500Kr___500kg_TV_Guided_Bomb) + UB_32A___32_x_UnGd_Rkts__57_mm_S_5KO_HEAT_Frag = ( + 3, + Weapons.UB_32A___32_x_UnGd_Rkts__57_mm_S_5KO_HEAT_Frag, + ) + B_8M1___20_x_UnGd_Rkts__80_mm_S_8KOM_HEAT_Frag = ( + 3, + Weapons.B_8M1___20_x_UnGd_Rkts__80_mm_S_8KOM_HEAT_Frag, + ) + APU_68___S_24B___240mm_UnGd_Rkt__235kg__HE_Frag___Low_Smk_ = ( + 3, + Weapons.APU_68___S_24B___240mm_UnGd_Rkt__235kg__HE_Frag___Low_Smk_, + ) + CH_AASM_250_PGM = (3, Weapons.CH_AASM_250_PGM) + + class Pylon4: + 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, + ) + FAB_250___250kg_GP_Bomb_LD = (4, Weapons.FAB_250___250kg_GP_Bomb_LD) + KAB_1500L___1500kg_Laser_Guided_Bomb = ( + 4, + Weapons.KAB_1500L___1500kg_Laser_Guided_Bomb, + ) + CH_AASM_250_PGM = (4, Weapons.CH_AASM_250_PGM) + + class Pylon5: + Fuel_tank_2000L = (5, Weapons.Fuel_tank_2000L) + L_081_Fantasmagoria_ELINT_pod = (5, Weapons.L_081_Fantasmagoria_ELINT_pod) + FAB_250___250kg_GP_Bomb_LD = (5, Weapons.FAB_250___250kg_GP_Bomb_LD) + + class Pylon6: + MBD3_U6_68_with_6_x_FAB_100___100kg_GP_Bombs_LD = ( + 6, + Weapons.MBD3_U6_68_with_6_x_FAB_100___100kg_GP_Bombs_LD, + ) + FAB_250___250kg_GP_Bomb_LD = (6, Weapons.FAB_250___250kg_GP_Bomb_LD) + FAB_500_M_62___500kg_GP_Bomb_LD = (6, Weapons.FAB_500_M_62___500kg_GP_Bomb_LD) + KAB_500Kr___500kg_TV_Guided_Bomb = (6, Weapons.KAB_500Kr___500kg_TV_Guided_Bomb) + UB_32A___32_x_UnGd_Rkts__57_mm_S_5KO_HEAT_Frag = ( + 6, + Weapons.UB_32A___32_x_UnGd_Rkts__57_mm_S_5KO_HEAT_Frag, + ) + B_8M1___20_x_UnGd_Rkts__80_mm_S_8KOM_HEAT_Frag = ( + 6, + Weapons.B_8M1___20_x_UnGd_Rkts__80_mm_S_8KOM_HEAT_Frag, + ) + APU_68___S_24B___240mm_UnGd_Rkt__235kg__HE_Frag___Low_Smk_ = ( + 6, + Weapons.APU_68___S_24B___240mm_UnGd_Rkt__235kg__HE_Frag___Low_Smk_, + ) + CH_AASM_250_PGM = (6, Weapons.CH_AASM_250_PGM) + + class Pylon7: + MBD3_U6_68_with_6_x_FAB_100___100kg_GP_Bombs_LD = ( + 7, + Weapons.MBD3_U6_68_with_6_x_FAB_100___100kg_GP_Bombs_LD, + ) + Kh_29T__AS_14_Kedge____670kg__ASM__TV_Guided_ = ( + 7, + Weapons.Kh_29T__AS_14_Kedge____670kg__ASM__TV_Guided_, + ) + Kh_25ML__AS_10_Karen____300kg__ASM__Semi_Act_Laser_ = ( + 7, + Weapons.Kh_25ML__AS_10_Karen____300kg__ASM__Semi_Act_Laser_, + ) + FAB_250___250kg_GP_Bomb_LD = (7, Weapons.FAB_250___250kg_GP_Bomb_LD) + FAB_500_M_62___500kg_GP_Bomb_LD = (7, Weapons.FAB_500_M_62___500kg_GP_Bomb_LD) + KAB_500Kr___500kg_TV_Guided_Bomb = (7, Weapons.KAB_500Kr___500kg_TV_Guided_Bomb) + UB_32A___32_x_UnGd_Rkts__57_mm_S_5KO_HEAT_Frag = ( + 7, + Weapons.UB_32A___32_x_UnGd_Rkts__57_mm_S_5KO_HEAT_Frag, + ) + B_8M1___20_x_UnGd_Rkts__80_mm_S_8KOM_HEAT_Frag = ( + 7, + Weapons.B_8M1___20_x_UnGd_Rkts__80_mm_S_8KOM_HEAT_Frag, + ) + B_13L___5_x_UnGd_Rkts__122_mm_S_13OF_Blast_Fragmentation = ( + 7, + Weapons.B_13L___5_x_UnGd_Rkts__122_mm_S_13OF_Blast_Fragmentation, + ) + APU_68___S_24B___240mm_UnGd_Rkt__235kg__HE_Frag___Low_Smk_ = ( + 7, + Weapons.APU_68___S_24B___240mm_UnGd_Rkt__235kg__HE_Frag___Low_Smk_, + ) + O_25___1_x_UnGd_Rkts__340_mm_S_25_OFM_Hardened_Target_Penetrator = ( + 7, + Weapons.O_25___1_x_UnGd_Rkts__340_mm_S_25_OFM_Hardened_Target_Penetrator, + ) + KAB_1500L___1500kg_Laser_Guided_Bomb = ( + 7, + Weapons.KAB_1500L___1500kg_Laser_Guided_Bomb, + ) + Fuel_tank_3000L = (7, Weapons.Fuel_tank_3000L) + CH_Storm_Shadow_ALCM = (7, Weapons.CH_Storm_Shadow_ALCM) + CH_Taurus_KEPD_350_ALCM = (7, Weapons.CH_Taurus_KEPD_350_ALCM) + CH_AASM_250_PGM = (7, Weapons.CH_AASM_250_PGM) + + class Pylon8: + R_60M__AA_8_Aphid_B____IR_AAM = (8, Weapons.R_60M__AA_8_Aphid_B____IR_AAM) + R_73__AA_11_Archer____Infra_Red = (8, Weapons.R_73__AA_11_Archer____Infra_Red) + MBD3_U6_68_with_6_x_FAB_100___100kg_GP_Bombs_LD = ( + 8, + Weapons.MBD3_U6_68_with_6_x_FAB_100___100kg_GP_Bombs_LD, + ) + UB_32A___32_x_UnGd_Rkts__57_mm_S_5KO_HEAT_Frag = ( + 8, + Weapons.UB_32A___32_x_UnGd_Rkts__57_mm_S_5KO_HEAT_Frag, + ) + B_8M1___20_x_UnGd_Rkts__80_mm_S_8KOM_HEAT_Frag = ( + 8, + Weapons.B_8M1___20_x_UnGd_Rkts__80_mm_S_8KOM_HEAT_Frag, + ) + FAB_250___250kg_GP_Bomb_LD = (8, Weapons.FAB_250___250kg_GP_Bomb_LD) + B_13L___5_x_UnGd_Rkts__122_mm_S_13OF_Blast_Fragmentation = ( + 8, + Weapons.B_13L___5_x_UnGd_Rkts__122_mm_S_13OF_Blast_Fragmentation, + ) + APU_68___S_24B___240mm_UnGd_Rkt__235kg__HE_Frag___Low_Smk_ = ( + 8, + Weapons.APU_68___S_24B___240mm_UnGd_Rkt__235kg__HE_Frag___Low_Smk_, + ) + O_25___1_x_UnGd_Rkts__340_mm_S_25_OFM_Hardened_Target_Penetrator = ( + 8, + Weapons.O_25___1_x_UnGd_Rkts__340_mm_S_25_OFM_Hardened_Target_Penetrator, + ) + Kh_25ML__AS_10_Karen____300kg__ASM__Semi_Act_Laser_ = ( + 8, + Weapons.Kh_25ML__AS_10_Karen____300kg__ASM__Semi_Act_Laser_, + ) + CH_AASM_250_PGM = (8, Weapons.CH_AASM_250_PGM) + + pylons: Set[int] = {1, 2, 3, 4, 5, 6, 7, 8} + + tasks = [ + task.Reconnaissance, + task.GroundAttack, + task.CAS, + task.AFAC, + task.RunwayAttack, + task.AntishipStrike, + task.SEAD, + task.PinpointStrike, + ] + task_default = task.GroundAttack + + +@planemod +class MiG_29MU2(PlaneType): + id = "MiG-29MU2" + height = 4.73 + width = 11.36 + length = 20.32 + fuel_max = 3493 + max_speed = 2450.16 + chaff = 30 + flare = 30 + charge_total = 60 + chaff_charge_size = 1 + flare_charge_size = 1 + eplrs = True + category = "Interceptor" # {78EFB7A2-FD52-4b57-A6A6-3BF0E1D6555F} + + livery_name = "MIG-29MU2" # from type + + class Pylon1: + R_73__AA_11_Archer____Infra_Red = (1, Weapons.R_73__AA_11_Archer____Infra_Red) + R_60M__AA_8_Aphid_B____IR_AAM = (1, Weapons.R_60M__AA_8_Aphid_B____IR_AAM) + AIM_9L_Sidewinder_IR_AAM = (1, Weapons.AIM_9L_Sidewinder_IR_AAM) + AIM_9M_Sidewinder_IR_AAM = (1, Weapons.AIM_9M_Sidewinder_IR_AAM) + R_27ER__AA_10_Alamo_C____Semi_Act_Extended_Range = ( + 1, + Weapons.R_27ER__AA_10_Alamo_C____Semi_Act_Extended_Range, + ) + R_27ET__AA_10_Alamo_D____IR_Extended_Range = ( + 1, + Weapons.R_27ET__AA_10_Alamo_D____IR_Extended_Range, + ) + AIM_120B_AMRAAM___Active_Radar_AAM = ( + 1, + Weapons.AIM_120B_AMRAAM___Active_Radar_AAM, + ) + AIM_120C_AMRAAM___Active_Radar_AAM = ( + 1, + Weapons.AIM_120C_AMRAAM___Active_Radar_AAM, + ) + + # ERRR + + class Pylon2: + R_73__AA_11_Archer____Infra_Red = (2, Weapons.R_73__AA_11_Archer____Infra_Red) + R_60M__AA_8_Aphid_B____IR_AAM = (2, Weapons.R_60M__AA_8_Aphid_B____IR_AAM) + AIM_9L_Sidewinder_IR_AAM = (2, Weapons.AIM_9L_Sidewinder_IR_AAM) + AIM_9M_Sidewinder_IR_AAM = (2, Weapons.AIM_9M_Sidewinder_IR_AAM) + R_27ER__AA_10_Alamo_C____Semi_Act_Extended_Range = ( + 2, + Weapons.R_27ER__AA_10_Alamo_C____Semi_Act_Extended_Range, + ) + R_27ET__AA_10_Alamo_D____IR_Extended_Range = ( + 2, + Weapons.R_27ET__AA_10_Alamo_D____IR_Extended_Range, + ) + AIM_120B_AMRAAM___Active_Radar_AAM = ( + 2, + Weapons.AIM_120B_AMRAAM___Active_Radar_AAM, + ) + AIM_120C_AMRAAM___Active_Radar_AAM = ( + 2, + Weapons.AIM_120C_AMRAAM___Active_Radar_AAM, + ) + Kh_29T__AS_14_Kedge____670kg__ASM__TV_Guided__ = ( + 2, + Weapons.Kh_29T__AS_14_Kedge____670kg__ASM__TV_Guided__, + ) + KAB_500Kr___500kg_TV_Guided_Bomb = (2, Weapons.KAB_500Kr___500kg_TV_Guided_Bomb) + ADM_160B_MALD___Miniature_Air_Launched_Decoy_ = ( + 2, + Weapons.ADM_160B_MALD___Miniature_Air_Launched_Decoy_, + ) + JDAM_ER___450_kg_GPS_Guided_Mk_83_GP_bomb = ( + 2, + Weapons.JDAM_ER___450_kg_GPS_Guided_Mk_83_GP_bomb, + ) + UB_32A___32_x_UnGd_Rkts__57_mm_S_5KO_HEAT_Frag = ( + 2, + Weapons.UB_32A___32_x_UnGd_Rkts__57_mm_S_5KO_HEAT_Frag, + ) + B_8M1___20_x_UnGd_Rkts__80_mm_S_8KOM_HEAT_Frag = ( + 2, + Weapons.B_8M1___20_x_UnGd_Rkts__80_mm_S_8KOM_HEAT_Frag, + ) + B_13L___5_x_UnGd_Rkts__122_mm_S_13OF_Blast_Fragmentation = ( + 2, + Weapons.B_13L___5_x_UnGd_Rkts__122_mm_S_13OF_Blast_Fragmentation, + ) + O_25___1_x_UnGd_Rkts__340_mm_S_25_OFM_Hardened_Target_Penetrator = ( + 2, + Weapons.O_25___1_x_UnGd_Rkts__340_mm_S_25_OFM_Hardened_Target_Penetrator, + ) + B_8M1___20_x_UnGd_Rkts__80_mm_S_8TsM_SM_Orange = ( + 2, + Weapons.B_8M1___20_x_UnGd_Rkts__80_mm_S_8TsM_SM_Orange, + ) + AGM_88C_HARM___High_Speed_Anti_Radiation_Missile_ = ( + 2, + Weapons.AGM_88C_HARM___High_Speed_Anti_Radiation_Missile_, + ) + Kh_25ML__AS_10_Karen____300kg__ASM__Semi_Act_Laser__ = ( + 2, + Weapons.Kh_25ML__AS_10_Karen____300kg__ASM__Semi_Act_Laser__, + ) + FAB_500_M_62___500kg_GP_Bomb_LD = (2, Weapons.FAB_500_M_62___500kg_GP_Bomb_LD) + FAB_250___250kg_GP_Bomb_LD = (2, Weapons.FAB_250___250kg_GP_Bomb_LD) + APU_68___S_24B___240mm_UnGd_Rkt__235kg__HE_Frag___Low_Smk_ = ( + 2, + Weapons.APU_68___S_24B___240mm_UnGd_Rkt__235kg__HE_Frag___Low_Smk_, + ) + LAU_10___4_x_UnGd_Rkts__127_mm_Zuni_Mk__24_Mod__1_HE = ( + 2, + Weapons.LAU_10___4_x_UnGd_Rkts__127_mm_Zuni_Mk__24_Mod__1_HE, + ) + # ERRR + CH_AASM_250_PGM = (2, Weapons.CH_AASM_250_PGM) + + class Pylon3: + Fuel_tank_1150L_MiG_29 = (3, Weapons.Fuel_tank_1150L_MiG_29) + R_73__AA_11_Archer____Infra_Red = (3, Weapons.R_73__AA_11_Archer____Infra_Red) + R_60M__AA_8_Aphid_B____IR_AAM = (3, Weapons.R_60M__AA_8_Aphid_B____IR_AAM) + AIM_9L_Sidewinder_IR_AAM = (3, Weapons.AIM_9L_Sidewinder_IR_AAM) + AIM_9M_Sidewinder_IR_AAM = (3, Weapons.AIM_9M_Sidewinder_IR_AAM) + R_27ER__AA_10_Alamo_C____Semi_Act_Extended_Range = ( + 3, + Weapons.R_27ER__AA_10_Alamo_C____Semi_Act_Extended_Range, + ) + R_27ET__AA_10_Alamo_D____IR_Extended_Range = ( + 3, + Weapons.R_27ET__AA_10_Alamo_D____IR_Extended_Range, + ) + AIM_120B_AMRAAM___Active_Radar_AAM = ( + 3, + Weapons.AIM_120B_AMRAAM___Active_Radar_AAM, + ) + AIM_120C_AMRAAM___Active_Radar_AAM = ( + 3, + Weapons.AIM_120C_AMRAAM___Active_Radar_AAM, + ) + Kh_29T__AS_14_Kedge____670kg__ASM__TV_Guided__ = ( + 3, + Weapons.Kh_29T__AS_14_Kedge____670kg__ASM__TV_Guided__, + ) + KAB_500Kr___500kg_TV_Guided_Bomb = (3, Weapons.KAB_500Kr___500kg_TV_Guided_Bomb) + ADM_160B_MALD___Miniature_Air_Launched_Decoy_ = ( + 3, + Weapons.ADM_160B_MALD___Miniature_Air_Launched_Decoy_, + ) + JDAM_ER___450_kg_GPS_Guided_Mk_83_GP_bomb = ( + 3, + Weapons.JDAM_ER___450_kg_GPS_Guided_Mk_83_GP_bomb, + ) + UB_32A___32_x_UnGd_Rkts__57_mm_S_5KO_HEAT_Frag = ( + 3, + Weapons.UB_32A___32_x_UnGd_Rkts__57_mm_S_5KO_HEAT_Frag, + ) + B_8M1___20_x_UnGd_Rkts__80_mm_S_8KOM_HEAT_Frag = ( + 3, + Weapons.B_8M1___20_x_UnGd_Rkts__80_mm_S_8KOM_HEAT_Frag, + ) + O_25___1_x_UnGd_Rkts__340_mm_S_25_OFM_Hardened_Target_Penetrator = ( + 3, + Weapons.O_25___1_x_UnGd_Rkts__340_mm_S_25_OFM_Hardened_Target_Penetrator, + ) + B_8M1___20_x_UnGd_Rkts__80_mm_S_8TsM_SM_Orange = ( + 3, + Weapons.B_8M1___20_x_UnGd_Rkts__80_mm_S_8TsM_SM_Orange, + ) + AGM_88C_HARM___High_Speed_Anti_Radiation_Missile_ = ( + 3, + Weapons.AGM_88C_HARM___High_Speed_Anti_Radiation_Missile_, + ) + Kh_25ML__AS_10_Karen____300kg__ASM__Semi_Act_Laser__ = ( + 3, + Weapons.Kh_25ML__AS_10_Karen____300kg__ASM__Semi_Act_Laser__, + ) + FAB_500_M_62___500kg_GP_Bomb_LD = (3, Weapons.FAB_500_M_62___500kg_GP_Bomb_LD) + FAB_250___250kg_GP_Bomb_LD = (3, Weapons.FAB_250___250kg_GP_Bomb_LD) + APU_68___S_24B___240mm_UnGd_Rkt__235kg__HE_Frag___Low_Smk_ = ( + 3, + Weapons.APU_68___S_24B___240mm_UnGd_Rkt__235kg__HE_Frag___Low_Smk_, + ) + LAU_10___4_x_UnGd_Rkts__127_mm_Zuni_Mk__24_Mod__1_HE = ( + 3, + Weapons.LAU_10___4_x_UnGd_Rkts__127_mm_Zuni_Mk__24_Mod__1_HE, + ) + ADM_160B_MALD_x_3___Miniature_Air_Launched_Decoy = ( + 3, + Weapons.ADM_160B_MALD_x_3___Miniature_Air_Launched_Decoy, + ) + # ERRR + CH_AASM_250_PGM = (3, Weapons.CH_AASM_250_PGM) + + class Pylon4: + Fuel_tank_1400L = (4, Weapons.Fuel_tank_1400L) + + class Pylon5: + Fuel_tank_1150L_MiG_29 = (5, Weapons.Fuel_tank_1150L_MiG_29) + R_73__AA_11_Archer____Infra_Red = (5, Weapons.R_73__AA_11_Archer____Infra_Red) + R_60M__AA_8_Aphid_B____IR_AAM = (5, Weapons.R_60M__AA_8_Aphid_B____IR_AAM) + AIM_9L_Sidewinder_IR_AAM = (5, Weapons.AIM_9L_Sidewinder_IR_AAM) + AIM_9M_Sidewinder_IR_AAM = (5, Weapons.AIM_9M_Sidewinder_IR_AAM) + R_27ER__AA_10_Alamo_C____Semi_Act_Extended_Range = ( + 5, + Weapons.R_27ER__AA_10_Alamo_C____Semi_Act_Extended_Range, + ) + R_27ET__AA_10_Alamo_D____IR_Extended_Range = ( + 5, + Weapons.R_27ET__AA_10_Alamo_D____IR_Extended_Range, + ) + AIM_120B_AMRAAM___Active_Radar_AAM = ( + 5, + Weapons.AIM_120B_AMRAAM___Active_Radar_AAM, + ) + AIM_120C_AMRAAM___Active_Radar_AAM = ( + 5, + Weapons.AIM_120C_AMRAAM___Active_Radar_AAM, + ) + Kh_29T__AS_14_Kedge____670kg__ASM__TV_Guided__ = ( + 5, + Weapons.Kh_29T__AS_14_Kedge____670kg__ASM__TV_Guided__, + ) + KAB_500Kr___500kg_TV_Guided_Bomb = (5, Weapons.KAB_500Kr___500kg_TV_Guided_Bomb) + ADM_160B_MALD___Miniature_Air_Launched_Decoy_ = ( + 5, + Weapons.ADM_160B_MALD___Miniature_Air_Launched_Decoy_, + ) + JDAM_ER___450_kg_GPS_Guided_Mk_83_GP_bomb = ( + 5, + Weapons.JDAM_ER___450_kg_GPS_Guided_Mk_83_GP_bomb, + ) + UB_32A___32_x_UnGd_Rkts__57_mm_S_5KO_HEAT_Frag = ( + 5, + Weapons.UB_32A___32_x_UnGd_Rkts__57_mm_S_5KO_HEAT_Frag, + ) + B_8M1___20_x_UnGd_Rkts__80_mm_S_8KOM_HEAT_Frag = ( + 5, + Weapons.B_8M1___20_x_UnGd_Rkts__80_mm_S_8KOM_HEAT_Frag, + ) + O_25___1_x_UnGd_Rkts__340_mm_S_25_OFM_Hardened_Target_Penetrator = ( + 5, + Weapons.O_25___1_x_UnGd_Rkts__340_mm_S_25_OFM_Hardened_Target_Penetrator, + ) + B_8M1___20_x_UnGd_Rkts__80_mm_S_8TsM_SM_Orange = ( + 5, + Weapons.B_8M1___20_x_UnGd_Rkts__80_mm_S_8TsM_SM_Orange, + ) + AGM_88C_HARM___High_Speed_Anti_Radiation_Missile_ = ( + 5, + Weapons.AGM_88C_HARM___High_Speed_Anti_Radiation_Missile_, + ) + Kh_25ML__AS_10_Karen____300kg__ASM__Semi_Act_Laser__ = ( + 5, + Weapons.Kh_25ML__AS_10_Karen____300kg__ASM__Semi_Act_Laser__, + ) + FAB_500_M_62___500kg_GP_Bomb_LD = (5, Weapons.FAB_500_M_62___500kg_GP_Bomb_LD) + FAB_250___250kg_GP_Bomb_LD = (5, Weapons.FAB_250___250kg_GP_Bomb_LD) + APU_68___S_24B___240mm_UnGd_Rkt__235kg__HE_Frag___Low_Smk_ = ( + 5, + Weapons.APU_68___S_24B___240mm_UnGd_Rkt__235kg__HE_Frag___Low_Smk_, + ) + LAU_10___4_x_UnGd_Rkts__127_mm_Zuni_Mk__24_Mod__1_HE = ( + 5, + Weapons.LAU_10___4_x_UnGd_Rkts__127_mm_Zuni_Mk__24_Mod__1_HE, + ) + ADM_160B_MALD_x_3___Miniature_Air_Launched_Decoy = ( + 5, + Weapons.ADM_160B_MALD_x_3___Miniature_Air_Launched_Decoy, + ) + # ERRR + CH_AASM_250_PGM = (5, Weapons.CH_AASM_250_PGM) + + class Pylon6: + R_73__AA_11_Archer____Infra_Red = (6, Weapons.R_73__AA_11_Archer____Infra_Red) + R_60M__AA_8_Aphid_B____IR_AAM = (6, Weapons.R_60M__AA_8_Aphid_B____IR_AAM) + AIM_9L_Sidewinder_IR_AAM = (6, Weapons.AIM_9L_Sidewinder_IR_AAM) + AIM_9M_Sidewinder_IR_AAM = (6, Weapons.AIM_9M_Sidewinder_IR_AAM) + R_27ER__AA_10_Alamo_C____Semi_Act_Extended_Range = ( + 6, + Weapons.R_27ER__AA_10_Alamo_C____Semi_Act_Extended_Range, + ) + R_27ET__AA_10_Alamo_D____IR_Extended_Range = ( + 6, + Weapons.R_27ET__AA_10_Alamo_D____IR_Extended_Range, + ) + AIM_120B_AMRAAM___Active_Radar_AAM = ( + 6, + Weapons.AIM_120B_AMRAAM___Active_Radar_AAM, + ) + AIM_120C_AMRAAM___Active_Radar_AAM = ( + 6, + Weapons.AIM_120C_AMRAAM___Active_Radar_AAM, + ) + Kh_29T__AS_14_Kedge____670kg__ASM__TV_Guided__ = ( + 6, + Weapons.Kh_29T__AS_14_Kedge____670kg__ASM__TV_Guided__, + ) + KAB_500Kr___500kg_TV_Guided_Bomb = (6, Weapons.KAB_500Kr___500kg_TV_Guided_Bomb) + ADM_160B_MALD___Miniature_Air_Launched_Decoy_ = ( + 6, + Weapons.ADM_160B_MALD___Miniature_Air_Launched_Decoy_, + ) + JDAM_ER___450_kg_GPS_Guided_Mk_83_GP_bomb = ( + 6, + Weapons.JDAM_ER___450_kg_GPS_Guided_Mk_83_GP_bomb, + ) + UB_32A___32_x_UnGd_Rkts__57_mm_S_5KO_HEAT_Frag = ( + 6, + Weapons.UB_32A___32_x_UnGd_Rkts__57_mm_S_5KO_HEAT_Frag, + ) + B_8M1___20_x_UnGd_Rkts__80_mm_S_8KOM_HEAT_Frag = ( + 6, + Weapons.B_8M1___20_x_UnGd_Rkts__80_mm_S_8KOM_HEAT_Frag, + ) + B_13L___5_x_UnGd_Rkts__122_mm_S_13OF_Blast_Fragmentation = ( + 6, + Weapons.B_13L___5_x_UnGd_Rkts__122_mm_S_13OF_Blast_Fragmentation, + ) + O_25___1_x_UnGd_Rkts__340_mm_S_25_OFM_Hardened_Target_Penetrator = ( + 6, + Weapons.O_25___1_x_UnGd_Rkts__340_mm_S_25_OFM_Hardened_Target_Penetrator, + ) + B_8M1___20_x_UnGd_Rkts__80_mm_S_8TsM_SM_Orange = ( + 6, + Weapons.B_8M1___20_x_UnGd_Rkts__80_mm_S_8TsM_SM_Orange, + ) + AGM_88C_HARM___High_Speed_Anti_Radiation_Missile_ = ( + 6, + Weapons.AGM_88C_HARM___High_Speed_Anti_Radiation_Missile_, + ) + Kh_25ML__AS_10_Karen____300kg__ASM__Semi_Act_Laser__ = ( + 6, + Weapons.Kh_25ML__AS_10_Karen____300kg__ASM__Semi_Act_Laser__, + ) + FAB_500_M_62___500kg_GP_Bomb_LD = (6, Weapons.FAB_500_M_62___500kg_GP_Bomb_LD) + FAB_250___250kg_GP_Bomb_LD = (6, Weapons.FAB_250___250kg_GP_Bomb_LD) + APU_68___S_24B___240mm_UnGd_Rkt__235kg__HE_Frag___Low_Smk_ = ( + 6, + Weapons.APU_68___S_24B___240mm_UnGd_Rkt__235kg__HE_Frag___Low_Smk_, + ) + LAU_10___4_x_UnGd_Rkts__127_mm_Zuni_Mk__24_Mod__1_HE = ( + 6, + Weapons.LAU_10___4_x_UnGd_Rkts__127_mm_Zuni_Mk__24_Mod__1_HE, + ) + # ERRR + CH_AASM_250_PGM = (6, Weapons.CH_AASM_250_PGM) + + class Pylon7: + R_73__AA_11_Archer____Infra_Red = (7, Weapons.R_73__AA_11_Archer____Infra_Red) + R_60M__AA_8_Aphid_B____IR_AAM = (7, Weapons.R_60M__AA_8_Aphid_B____IR_AAM) + AIM_9L_Sidewinder_IR_AAM = (7, Weapons.AIM_9L_Sidewinder_IR_AAM) + AIM_9M_Sidewinder_IR_AAM = (7, Weapons.AIM_9M_Sidewinder_IR_AAM) + R_27ER__AA_10_Alamo_C____Semi_Act_Extended_Range = ( + 7, + Weapons.R_27ER__AA_10_Alamo_C____Semi_Act_Extended_Range, + ) + R_27ET__AA_10_Alamo_D____IR_Extended_Range = ( + 7, + Weapons.R_27ET__AA_10_Alamo_D____IR_Extended_Range, + ) + AIM_120B_AMRAAM___Active_Radar_AAM = ( + 7, + Weapons.AIM_120B_AMRAAM___Active_Radar_AAM, + ) + AIM_120C_AMRAAM___Active_Radar_AAM = ( + 7, + Weapons.AIM_120C_AMRAAM___Active_Radar_AAM, + ) + + # ERRR + + pylons: Set[int] = {1, 2, 3, 4, 5, 6, 7} + + 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 CH_Su_27P1M(PlaneType): + id = "CH_Su-27P1M" + 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 + eplrs = True + + property_defaults: Dict[str, Any] = {} + + livery_name = "CH_SU-27P1M" # from type + + class Pylon1: + R_73__AA_11_Archer____Infra_Red = (1, Weapons.R_73__AA_11_Archer____Infra_Red) + + class Pylon2: + R_73__AA_11_Archer____Infra_Red = (2, Weapons.R_73__AA_11_Archer____Infra_Red) + + # ERRR + + class Pylon3: + R_73__AA_11_Archer____Infra_Red = (3, Weapons.R_73__AA_11_Archer____Infra_Red) + R_27ER__AA_10_Alamo_C____Semi_Act_Extended_Range = ( + 3, + Weapons.R_27ER__AA_10_Alamo_C____Semi_Act_Extended_Range, + ) + R_27ET__AA_10_Alamo_D____IR_Extended_Range = ( + 3, + Weapons.R_27ET__AA_10_Alamo_D____IR_Extended_Range, + ) + B_8M1___20_S_8OFP2 = (3, Weapons.B_8M1___20_S_8OFP2) + FAB_250___250kg_GP_Bomb_LD = (3, Weapons.FAB_250___250kg_GP_Bomb_LD) + FAB_500_M_62___500kg_GP_Bomb_LD = (3, Weapons.FAB_500_M_62___500kg_GP_Bomb_LD) + B_8M1___20_x_UnGd_Rkts__80_mm_S_8KOM_HEAT_Frag = ( + 3, + Weapons.B_8M1___20_x_UnGd_Rkts__80_mm_S_8KOM_HEAT_Frag, + ) + B_13L___5_x_UnGd_Rkts__122_mm_S_13OF_Blast_Fragmentation = ( + 3, + Weapons.B_13L___5_x_UnGd_Rkts__122_mm_S_13OF_Blast_Fragmentation, + ) + B_8M1___20_x_UnGd_Rkts__80_mm_S_8TsM_SM_Orange = ( + 3, + Weapons.B_8M1___20_x_UnGd_Rkts__80_mm_S_8TsM_SM_Orange, + ) + 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, + ) + 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, + ) + _2_x_B_13L___5_x_UnGd_Rkts__122_mm_S_13OF_Blast_Fragmentation = ( + 3, + Weapons._2_x_B_13L___5_x_UnGd_Rkts__122_mm_S_13OF_Blast_Fragmentation, + ) + _2_x_B_8M1___20_x_UnGd_Rkts__80_mm_S_8KOM_HEAT_Frag = ( + 3, + Weapons._2_x_B_8M1___20_x_UnGd_Rkts__80_mm_S_8KOM_HEAT_Frag, + ) + _2_x_B_8M1___20_x_UnGd_Rkts__80_mm_S_8TsM_SM_Orange = ( + 3, + Weapons._2_x_B_8M1___20_x_UnGd_Rkts__80_mm_S_8TsM_SM_Orange, + ) + _2_x_B_8M1___20_x_UnGd_Rkts__80_mm_S_8OFP2_MPP = ( + 3, + Weapons._2_x_B_8M1___20_x_UnGd_Rkts__80_mm_S_8OFP2_MPP, + ) + ADM_160B_MALD___Miniature_Air_Launched_Decoy_ = ( + 3, + Weapons.ADM_160B_MALD___Miniature_Air_Launched_Decoy_, + ) + ADM_160B_MALD_x_3___Miniature_Air_Launched_Decoy = ( + 3, + Weapons.ADM_160B_MALD_x_3___Miniature_Air_Launched_Decoy, + ) + AGM_88C_HARM___High_Speed_Anti_Radiation_Missile_ = ( + 3, + Weapons.AGM_88C_HARM___High_Speed_Anti_Radiation_Missile_, + ) + JDAM_ER___450_kg_GPS_Guided_Mk_83_GP_bomb = ( + 3, + Weapons.JDAM_ER___450_kg_GPS_Guided_Mk_83_GP_bomb, + ) + # ERRR + CH_AASM_250_PGM = (3, Weapons.CH_AASM_250_PGM) + + class Pylon4: + R_27ER__AA_10_Alamo_C____Semi_Act_Extended_Range = ( + 4, + Weapons.R_27ER__AA_10_Alamo_C____Semi_Act_Extended_Range, + ) + FAB_250___250kg_GP_Bomb_LD = (4, Weapons.FAB_250___250kg_GP_Bomb_LD) + FAB_500_M_62___500kg_GP_Bomb_LD = (4, Weapons.FAB_500_M_62___500kg_GP_Bomb_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, + ) + MBD3_U6_68_with_5_x_FAB_250___250kg_GP_Bombs_LD = ( + 4, + Weapons.MBD3_U6_68_with_5_x_FAB_250___250kg_GP_Bombs_LD, + ) + ADM_160B_MALD___Miniature_Air_Launched_Decoy_ = ( + 4, + Weapons.ADM_160B_MALD___Miniature_Air_Launched_Decoy_, + ) + ADM_160B_MALD_x_3___Miniature_Air_Launched_Decoy = ( + 4, + Weapons.ADM_160B_MALD_x_3___Miniature_Air_Launched_Decoy, + ) + AGM_88C_HARM___High_Speed_Anti_Radiation_Missile_ = ( + 4, + Weapons.AGM_88C_HARM___High_Speed_Anti_Radiation_Missile_, + ) + JDAM_ER___450_kg_GPS_Guided_Mk_83_GP_bomb = ( + 4, + Weapons.JDAM_ER___450_kg_GPS_Guided_Mk_83_GP_bomb, + ) + # ERRR + CH_AASM_250_PGM = (4, Weapons.CH_AASM_250_PGM) + + class Pylon5: + R_27ER__AA_10_Alamo_C____Semi_Act_Extended_Range = ( + 5, + Weapons.R_27ER__AA_10_Alamo_C____Semi_Act_Extended_Range, + ) + FAB_250___250kg_GP_Bomb_LD = (5, Weapons.FAB_250___250kg_GP_Bomb_LD) + FAB_500_M_62___500kg_GP_Bomb_LD = (5, Weapons.FAB_500_M_62___500kg_GP_Bomb_LD) + MBD3_U6_68_with_6_x_FAB_100___100kg_GP_Bombs_LD = ( + 5, + Weapons.MBD3_U6_68_with_6_x_FAB_100___100kg_GP_Bombs_LD, + ) + MBD3_U6_68_with_3_x_FAB_250___250kg_GP_Bombs_LD = ( + 5, + Weapons.MBD3_U6_68_with_3_x_FAB_250___250kg_GP_Bombs_LD, + ) + ADM_160B_MALD___Miniature_Air_Launched_Decoy_ = ( + 5, + Weapons.ADM_160B_MALD___Miniature_Air_Launched_Decoy_, + ) + ADM_160B_MALD_x_3___Miniature_Air_Launched_Decoy = ( + 5, + Weapons.ADM_160B_MALD_x_3___Miniature_Air_Launched_Decoy, + ) + JDAM_ER___450_kg_GPS_Guided_Mk_83_GP_bomb = ( + 5, + Weapons.JDAM_ER___450_kg_GPS_Guided_Mk_83_GP_bomb, + ) + # ERRR + CH_AASM_250_PGM = (5, Weapons.CH_AASM_250_PGM) + + class Pylon6: + R_27ER__AA_10_Alamo_C____Semi_Act_Extended_Range = ( + 6, + Weapons.R_27ER__AA_10_Alamo_C____Semi_Act_Extended_Range, + ) + FAB_250___250kg_GP_Bomb_LD = (6, Weapons.FAB_250___250kg_GP_Bomb_LD) + FAB_500_M_62___500kg_GP_Bomb_LD = (6, Weapons.FAB_500_M_62___500kg_GP_Bomb_LD) + MBD3_U6_68_with_6_x_FAB_100___100kg_GP_Bombs_LD = ( + 6, + Weapons.MBD3_U6_68_with_6_x_FAB_100___100kg_GP_Bombs_LD, + ) + 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, + ) + ADM_160B_MALD___Miniature_Air_Launched_Decoy_ = ( + 6, + Weapons.ADM_160B_MALD___Miniature_Air_Launched_Decoy_, + ) + ADM_160B_MALD_x_3___Miniature_Air_Launched_Decoy = ( + 6, + Weapons.ADM_160B_MALD_x_3___Miniature_Air_Launched_Decoy, + ) + JDAM_ER___450_kg_GPS_Guided_Mk_83_GP_bomb = ( + 6, + Weapons.JDAM_ER___450_kg_GPS_Guided_Mk_83_GP_bomb, + ) + # ERRR + CH_AASM_250_PGM = (6, Weapons.CH_AASM_250_PGM) + + class Pylon7: + R_27ER__AA_10_Alamo_C____Semi_Act_Extended_Range = ( + 7, + Weapons.R_27ER__AA_10_Alamo_C____Semi_Act_Extended_Range, + ) + FAB_250___250kg_GP_Bomb_LD = (7, Weapons.FAB_250___250kg_GP_Bomb_LD) + FAB_500_M_62___500kg_GP_Bomb_LD = (7, Weapons.FAB_500_M_62___500kg_GP_Bomb_LD) + MBD3_U6_68_with_6_x_FAB_100___100kg_GP_Bombs_LD = ( + 7, + Weapons.MBD3_U6_68_with_6_x_FAB_100___100kg_GP_Bombs_LD, + ) + MBD3_U6_68_with_5_x_FAB_250___250kg_GP_Bombs_LD = ( + 7, + Weapons.MBD3_U6_68_with_5_x_FAB_250___250kg_GP_Bombs_LD, + ) + ADM_160B_MALD___Miniature_Air_Launched_Decoy_ = ( + 7, + Weapons.ADM_160B_MALD___Miniature_Air_Launched_Decoy_, + ) + ADM_160B_MALD_x_3___Miniature_Air_Launched_Decoy = ( + 7, + Weapons.ADM_160B_MALD_x_3___Miniature_Air_Launched_Decoy, + ) + AGM_88C_HARM___High_Speed_Anti_Radiation_Missile_ = ( + 7, + Weapons.AGM_88C_HARM___High_Speed_Anti_Radiation_Missile_, + ) + JDAM_ER___450_kg_GPS_Guided_Mk_83_GP_bomb = ( + 7, + Weapons.JDAM_ER___450_kg_GPS_Guided_Mk_83_GP_bomb, + ) + # ERRR + CH_AASM_250_PGM = (7, Weapons.CH_AASM_250_PGM) + + class Pylon8: + R_73__AA_11_Archer____Infra_Red = (8, Weapons.R_73__AA_11_Archer____Infra_Red) + R_27ER__AA_10_Alamo_C____Semi_Act_Extended_Range = ( + 8, + Weapons.R_27ER__AA_10_Alamo_C____Semi_Act_Extended_Range, + ) + R_27ET__AA_10_Alamo_D____IR_Extended_Range = ( + 8, + Weapons.R_27ET__AA_10_Alamo_D____IR_Extended_Range, + ) + B_8M1___20_S_8OFP2 = (8, Weapons.B_8M1___20_S_8OFP2) + FAB_250___250kg_GP_Bomb_LD = (8, Weapons.FAB_250___250kg_GP_Bomb_LD) + FAB_500_M_62___500kg_GP_Bomb_LD = (8, Weapons.FAB_500_M_62___500kg_GP_Bomb_LD) + B_8M1___20_x_UnGd_Rkts__80_mm_S_8KOM_HEAT_Frag = ( + 8, + Weapons.B_8M1___20_x_UnGd_Rkts__80_mm_S_8KOM_HEAT_Frag, + ) + B_13L___5_x_UnGd_Rkts__122_mm_S_13OF_Blast_Fragmentation = ( + 8, + Weapons.B_13L___5_x_UnGd_Rkts__122_mm_S_13OF_Blast_Fragmentation, + ) + B_8M1___20_x_UnGd_Rkts__80_mm_S_8TsM_SM_Orange = ( + 8, + Weapons.B_8M1___20_x_UnGd_Rkts__80_mm_S_8TsM_SM_Orange, + ) + MBD3_U6_68_with_6_x_FAB_100___100kg_GP_Bombs_LD = ( + 8, + Weapons.MBD3_U6_68_with_6_x_FAB_100___100kg_GP_Bombs_LD, + ) + 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, + ) + _2_x_B_13L___5_x_UnGd_Rkts__122_mm_S_13OF_Blast_Fragmentation = ( + 8, + Weapons._2_x_B_13L___5_x_UnGd_Rkts__122_mm_S_13OF_Blast_Fragmentation, + ) + _2_x_B_8M1___20_x_UnGd_Rkts__80_mm_S_8KOM_HEAT_Frag = ( + 8, + Weapons._2_x_B_8M1___20_x_UnGd_Rkts__80_mm_S_8KOM_HEAT_Frag, + ) + _2_x_B_8M1___20_x_UnGd_Rkts__80_mm_S_8TsM_SM_Orange = ( + 8, + Weapons._2_x_B_8M1___20_x_UnGd_Rkts__80_mm_S_8TsM_SM_Orange, + ) + _2_x_B_8M1___20_x_UnGd_Rkts__80_mm_S_8OFP2_MPP = ( + 8, + Weapons._2_x_B_8M1___20_x_UnGd_Rkts__80_mm_S_8OFP2_MPP, + ) + ADM_160B_MALD___Miniature_Air_Launched_Decoy_ = ( + 8, + Weapons.ADM_160B_MALD___Miniature_Air_Launched_Decoy_, + ) + ADM_160B_MALD_x_3___Miniature_Air_Launched_Decoy = ( + 8, + Weapons.ADM_160B_MALD_x_3___Miniature_Air_Launched_Decoy, + ) + AGM_88C_HARM___High_Speed_Anti_Radiation_Missile_ = ( + 8, + Weapons.AGM_88C_HARM___High_Speed_Anti_Radiation_Missile_, + ) + JDAM_ER___450_kg_GPS_Guided_Mk_83_GP_bomb = ( + 8, + Weapons.JDAM_ER___450_kg_GPS_Guided_Mk_83_GP_bomb, + ) + # ERRR + CH_AASM_250_PGM = (8, Weapons.CH_AASM_250_PGM) + + class Pylon9: + R_73__AA_11_Archer____Infra_Red = (9, Weapons.R_73__AA_11_Archer____Infra_Red) + + # ERRR + + class Pylon10: + R_73__AA_11_Archer____Infra_Red = (10, Weapons.R_73__AA_11_Archer____Infra_Red) + + pylons: Set[int] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10} + + 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/windows/newgame/QNewGameWizard.py b/qt_ui/windows/newgame/QNewGameWizard.py index b1b01403..91bb2c46 100644 --- a/qt_ui/windows/newgame/QNewGameWizard.py +++ b/qt_ui/windows/newgame/QNewGameWizard.py @@ -111,6 +111,7 @@ class NewGameWizard(QtWidgets.QWizard): oh_6_vietnamassetpack=self.field("oh_6_vietnamassetpack"), uh_60l=self.field("uh_60l"), jas39_gripen=self.field("jas39_gripen"), + mirage_3=self.field("mirage_3"), super_etendard=self.field("super_etendard"), sk_60=self.field("sk_60"), su15_flagon=self.field("su15_flagon"), @@ -127,6 +128,7 @@ class NewGameWizard(QtWidgets.QWizard): chinesemilitaryassetspack=self.field("chinesemilitaryassetspack"), russianmilitaryassetspack=self.field("russianmilitaryassetspack"), usamilitaryassetspack=self.field("usamilitaryassetspack"), + ukrainemilitaryassetspack=self.field("ukrainemilitaryassetspack"), ) blue_faction = self.faction_selection_page.selected_blue_faction diff --git a/qt_ui/windows/newgame/WizardPages/QGeneratorSettings.py b/qt_ui/windows/newgame/WizardPages/QGeneratorSettings.py index fcc1a7a5..173c374a 100644 --- a/qt_ui/windows/newgame/WizardPages/QGeneratorSettings.py +++ b/qt_ui/windows/newgame/WizardPages/QGeneratorSettings.py @@ -132,6 +132,8 @@ class GeneratorOptions(QtWidgets.QWizardPage): self.registerField("f106_deltadart", self.f106_deltadart) self.jas39_gripen = QtWidgets.QCheckBox() self.registerField("jas39_gripen", self.jas39_gripen) + self.mirage_3 = QtWidgets.QCheckBox() + self.registerField("mirage_3", self.mirage_3) self.super_etendard = QtWidgets.QCheckBox() self.registerField("super_etendard", self.super_etendard) self.sk_60 = QtWidgets.QCheckBox() @@ -166,6 +168,8 @@ class GeneratorOptions(QtWidgets.QWizardPage): self.registerField("russianmilitaryassetspack", self.russianmilitaryassetspack) self.usamilitaryassetspack = QtWidgets.QCheckBox() self.registerField("usamilitaryassetspack", self.usamilitaryassetspack) + self.ukrainemilitaryassetspack = QtWidgets.QCheckBox() + self.registerField("ukrainemilitaryassetspack", self.ukrainemilitaryassetspack) modHelpText = QtWidgets.QLabel( "

Select the mods you have installed. If your chosen factions support them, you'll be able to use these mods in your campaign.

" @@ -197,6 +201,10 @@ class GeneratorOptions(QtWidgets.QWizardPage): "CurrentHill USA Military Assets pack (1.1.5)", self.usamilitaryassetspack, ), + ( + "CurrentHill Ukraine Military Assets pack (1.1.1)", + self.ukrainemilitaryassetspack, + ), ("EA-6B Prowler (v2.9.4.102)", self.ea6b_prowler), ("F-100 Super Sabre (v2.7.18.30765 patch 20.10.22)", self.f100_supersabre), ("F-104 Starfighter (v2.7.11.222.01)", self.f104_starfighter), @@ -214,6 +222,7 @@ class GeneratorOptions(QtWidgets.QWizardPage): ("High Digit SAMs", self.high_digit_sams), ("IDF Assets Pack (v1.1 by IDF Mods Project)", self.irondome), ("JAS 39 Gripen (v1.8.5-beta)", self.jas39_gripen), + ("Mirage III (v2.5.7.01)", self.mirage_3), ("OH-6 Cayuse (v1.2)", self.oh_6), ("OH-6 Vietnam Asset Pack (v1.0)", self.oh_6_vietnamassetpack), ("OV-10A Bronco", self.ov10a_bronco), @@ -282,6 +291,7 @@ class GeneratorOptions(QtWidgets.QWizardPage): self.f106_deltadart.setChecked(s.get("f106_deltadart", False)) self.jas39_gripen.setChecked(s.get("jas39_gripen", False)) self.sk_60.setChecked(s.get("sk_60", False)) + self.mirage_3.setChecked(s.get("mirage_3", False)) self.super_etendard.setChecked(s.get("super_etendard", False)) self.su30_flanker_h.setChecked(s.get("su30_flanker_h", False)) self.su57_felon.setChecked(s.get("su57_felon", False)) @@ -301,3 +311,6 @@ class GeneratorOptions(QtWidgets.QWizardPage): s.get("russianmilitaryassetspack", False) ) self.usamilitaryassetspack.setChecked(s.get("usamilitaryassetspack", False)) + self.ukrainemilitaryassetspack.setChecked( + s.get("ukrainemilitaryassetspack", False) + ) diff --git a/requirements.txt b/requirements.txt index 35ae96ac..15d2e41e 100644 --- a/requirements.txt +++ b/requirements.txt @@ -33,7 +33,7 @@ pluggy==1.5.0 pre-commit==3.7.1 pydantic==2.7.4 pydantic-settings==2.3.3 -pydcs @ git+https://github.com/dcs-retribution/pydcs@aa892f0da70586febfe8046bcd92cae4eae70964 +pydcs @ git+https://github.com/dcs-retribution/pydcs@e1887779dfaef14208062e399d3baad535870804 pyinstaller==5.13.2 pyinstaller-hooks-contrib==2024.0 pyparsing==3.1.2 diff --git a/resources/campaigns/exercise_able_archer.miz b/resources/campaigns/exercise_able_archer.miz index f49cafa9..452812b0 100644 Binary files a/resources/campaigns/exercise_able_archer.miz and b/resources/campaigns/exercise_able_archer.miz differ diff --git a/resources/campaigns/slava_ukraini.miz b/resources/campaigns/slava_ukraini.miz new file mode 100644 index 00000000..b8f2f7b4 Binary files /dev/null and b/resources/campaigns/slava_ukraini.miz differ diff --git a/resources/campaigns/slava_ukraini.yaml b/resources/campaigns/slava_ukraini.yaml new file mode 100644 index 00000000..8977805d --- /dev/null +++ b/resources/campaigns/slava_ukraini.yaml @@ -0,0 +1,120 @@ +--- +name: Caucasus - Slava Ukraini +theater: Caucasus +authors: Starfire +recommended_player_faction: Ukraine 2020 +recommended_enemy_faction: Redfor (Russia) 2020 +description: +

This campaign is intended to be run with Currenthill's Ukraine and Russia Asset Packs installed.

+

After years of brutal fighting, Ukraine has achieved the unthinkable - Crimea has been liberated. Now, the tide of war has turned, + and Kyiv has set its sights on destroying the Iskander missile launchers in Southern Russia that continue to threaten its territory. + Southern Russia's remaining air defences will need to be dismantled before this goal can be achieved. High priority secondary targets include + elements of the rail transportation network that are used to move ammunition, fuel, and reinforcements to frontline troops, as well as the + military airfields where Russia's fighter and bomber squadrons are based.

+miz: slava_ukraini.miz +performance: 1 +recommended_start_date: 2026-02-24 +version: "10.7" +settings: + ukrainemilitaryassetspack: true + russianmilitaryassetspack: true + squadron_start_full: true +squadrons: + #Anapa-Vityazevo + 12: + - primary: SEAD + secondary: any + aircraft: + - "[CH] MiG-29MU2" + - MiG-29S Fulcrum-C + size: 12 + - primary: Escort + secondary: any + aircraft: + - "[CH] Su-27P1M" + - Su-27 Flanker-B + size: 12 + - primary: DEAD + secondary: air-to-ground + aircraft: + - "[CH] Su-24MU" + - Su-24M Fencer-D + size: 12 + - primary: Air Assault + secondary: any + aircraft: + - Mi-24P Hind-F + size: 4 + #Novorossiysk + 14: + - primary: CAS + secondary: air-to-ground + aircraft: + - Su-25 Frogfoot + size: 12 + - primary: BAI + secondary: any + aircraft: + - F-16CM Fighting Falcon (Block 50) + size: 12 + - primary: BARCAP + secondary: any + aircraft: + - Mirage 2000C + size: 12 + #Maykop-Khanskaya + 16: + - primary: Air Assault + secondary: any + aircraft: + - Mi-26 + size: 2 + - primary: SEAD Sweep + secondary: air-to-ground + aircraft: + - Su-25T Frogfoot + size: 12 + - primary: Escort + secondary: air-to-air + aircraft: + - Su-27 Flanker-B + size: 12 + - primary: BAI + secondary: any + aircraft: + - "[CH] Ka-52" + - Ka-50 Hokum III + size: 8 + - primary: CAS + secondary: air-to-ground + aircraft: + - "[CH] Mi-28N AH" + size: 4 + #Mineralnye Vody + 26: + - primary: Refueling + aircraft: + - IL-78M + size: 2 + - primary: BARCAP + secondary: air-to-air + aircraft: + - MiG-29S Fulcrum-C + size: 12 + - primary: DEAD + secondary: air-to-ground + aircraft: + - Su-34 Fullback + size: 12 + #Mozdok + 28: + - primary: AEW&C + aircraft: + - A-50 + size: 2 + - primary: Strike + secondary: any + aircraft: + - "[CH] Tu-95MSM" + - Tu-95MS Bear-H + size: 12 \ No newline at end of file diff --git a/resources/customized_payloads/CH_Su-27P1M.lua b/resources/customized_payloads/CH_Su-27P1M.lua new file mode 100644 index 00000000..e08666fc --- /dev/null +++ b/resources/customized_payloads/CH_Su-27P1M.lua @@ -0,0 +1,597 @@ +local unitPayloads = { + ["name"] = "CH_Su-27P1M", + ["payloads"] = { + [1] = { + ["displayName"] = "Retribution TARCAP", + ["name"] = "Retribution TARCAP", + ["pylons"] = { + [1] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 10, + }, + [2] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 9, + }, + [3] = { + ["CLSID"] = "{E8069896-8435-4B90-95C0-01A03AE6E400}", + ["num"] = 8, + }, + [4] = { + ["CLSID"] = "{E8069896-8435-4B90-95C0-01A03AE6E400}", + ["num"] = 7, + }, + [5] = { + ["CLSID"] = "{E8069896-8435-4B90-95C0-01A03AE6E400}", + ["num"] = 6, + }, + [6] = { + ["CLSID"] = "{E8069896-8435-4B90-95C0-01A03AE6E400}", + ["num"] = 5, + }, + [7] = { + ["CLSID"] = "{E8069896-8435-4B90-95C0-01A03AE6E400}", + ["num"] = 4, + }, + [8] = { + ["CLSID"] = "{E8069896-8435-4B90-95C0-01A03AE6E400}", + ["num"] = 3, + }, + [9] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 2, + }, + [10] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 1, + }, + }, + ["tasks"] = { + [1] = 11, + }, + }, + [2] = { + ["displayName"] = "Retribution BARCAP", + ["name"] = "Retribution BARCAP", + ["pylons"] = { + [1] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 10, + }, + [2] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 9, + }, + [3] = { + ["CLSID"] = "{E8069896-8435-4B90-95C0-01A03AE6E400}", + ["num"] = 8, + }, + [4] = { + ["CLSID"] = "{E8069896-8435-4B90-95C0-01A03AE6E400}", + ["num"] = 7, + }, + [5] = { + ["CLSID"] = "{E8069896-8435-4B90-95C0-01A03AE6E400}", + ["num"] = 6, + }, + [6] = { + ["CLSID"] = "{E8069896-8435-4B90-95C0-01A03AE6E400}", + ["num"] = 5, + }, + [7] = { + ["CLSID"] = "{E8069896-8435-4B90-95C0-01A03AE6E400}", + ["num"] = 4, + }, + [8] = { + ["CLSID"] = "{E8069896-8435-4B90-95C0-01A03AE6E400}", + ["num"] = 3, + }, + [9] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 2, + }, + [10] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 1, + }, + }, + ["tasks"] = { + [1] = 11, + }, + }, + [3] = { + ["displayName"] = "Retribution CAS", + ["name"] = "Retribution CAS", + ["pylons"] = { + [1] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 10, + }, + [2] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 9, + }, + [3] = { + ["CLSID"] = "{CH_AASM250}", + ["num"] = 8, + }, + [4] = { + ["CLSID"] = "{CH_AASM250}", + ["num"] = 7, + }, + [5] = { + ["CLSID"] = "{E8069896-8435-4B90-95C0-01A03AE6E400}", + ["num"] = 6, + }, + [6] = { + ["CLSID"] = "{E8069896-8435-4B90-95C0-01A03AE6E400}", + ["num"] = 5, + }, + [7] = { + ["CLSID"] = "{CH_AASM250}", + ["num"] = 4, + }, + [8] = { + ["CLSID"] = "{CH_AASM250}", + ["num"] = 3, + }, + [9] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 2, + }, + [10] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 1, + }, + }, + ["tasks"] = { + [1] = 11, + }, + }, + [4] = { + ["displayName"] = "Retribution Escort", + ["name"] = "Retribution Escort", + ["pylons"] = { + [1] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 10, + }, + [2] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 9, + }, + [3] = { + ["CLSID"] = "{E8069896-8435-4B90-95C0-01A03AE6E400}", + ["num"] = 8, + }, + [4] = { + ["CLSID"] = "{E8069896-8435-4B90-95C0-01A03AE6E400}", + ["num"] = 7, + }, + [5] = { + ["CLSID"] = "{E8069896-8435-4B90-95C0-01A03AE6E400}", + ["num"] = 6, + }, + [6] = { + ["CLSID"] = "{E8069896-8435-4B90-95C0-01A03AE6E400}", + ["num"] = 5, + }, + [7] = { + ["CLSID"] = "{E8069896-8435-4B90-95C0-01A03AE6E400}", + ["num"] = 4, + }, + [8] = { + ["CLSID"] = "{E8069896-8435-4B90-95C0-01A03AE6E400}", + ["num"] = 3, + }, + [9] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 2, + }, + [10] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 1, + }, + }, + ["tasks"] = { + [1] = 11, + }, + }, + [5] = { + ["displayName"] = "Retribution BAI", + ["name"] = "Retribution BAI", + ["pylons"] = { + [1] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 10, + }, + [2] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 9, + }, + [3] = { + ["CLSID"] = "{MIG29MU2_JDAM-ER}", + ["num"] = 8, + }, + [4] = { + ["CLSID"] = "{MIG29MU2_JDAM-ER}", + ["num"] = 7, + }, + [5] = { + ["CLSID"] = "{E8069896-8435-4B90-95C0-01A03AE6E400}", + ["num"] = 6, + }, + [6] = { + ["CLSID"] = "{E8069896-8435-4B90-95C0-01A03AE6E400}", + ["num"] = 5, + }, + [7] = { + ["CLSID"] = "{MIG29MU2_JDAM-ER}", + ["num"] = 4, + }, + [8] = { + ["CLSID"] = "{MIG29MU2_JDAM-ER}", + ["num"] = 3, + }, + [9] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 2, + }, + [10] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 1, + }, + }, + ["tasks"] = { + [1] = 11, + }, + }, + [6] = { + ["displayName"] = "Retribution SEAD", + ["name"] = "Retribution SEAD", + ["pylons"] = { + [1] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 10, + }, + [2] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 9, + }, + [3] = { + ["CLSID"] = "{MIG29MU2_BRU_42A_x3_ADM_160B}", + ["num"] = 8, + }, + [4] = { + ["CLSID"] = "{MIG29MU2_BRU_42A_x3_ADM_160B}", + ["num"] = 7, + }, + [5] = { + ["CLSID"] = "{E8069896-8435-4B90-95C0-01A03AE6E400}", + ["num"] = 6, + }, + [6] = { + ["CLSID"] = "{E8069896-8435-4B90-95C0-01A03AE6E400}", + ["num"] = 5, + }, + [7] = { + ["CLSID"] = "{MIG29MU2_BRU_42A_x3_ADM_160B}", + ["num"] = 4, + }, + [8] = { + ["CLSID"] = "{MIG29MU2_BRU_42A_x3_ADM_160B}", + ["num"] = 3, + }, + [9] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 2, + }, + [10] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 1, + }, + }, + ["tasks"] = { + [1] = 11, + }, + }, + [7] = { + ["displayName"] = "Retribution CEAD", + ["name"] = "Retribution CEAD", + ["pylons"] = { + [1] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 10, + }, + [2] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 9, + }, + [3] = { + ["CLSID"] = "{MIG29MU2_BRU_42A_x3_ADM_160B}", + ["num"] = 8, + }, + [4] = { + ["CLSID"] = "{MIG29MU2_BRU_42A_x3_ADM_160B}", + ["num"] = 7, + }, + [5] = { + ["CLSID"] = "{MIG29MU2_BRU_42A_x3_ADM_160B}", + ["num"] = 6, + }, + [6] = { + ["CLSID"] = "{MIG29MU2_BRU_42A_x3_ADM_160B}", + ["num"] = 5, + }, + [7] = { + ["CLSID"] = "{MIG29MU2_BRU_42A_x3_ADM_160B}", + ["num"] = 4, + }, + [8] = { + ["CLSID"] = "{MIG29MU2_BRU_42A_x3_ADM_160B}", + ["num"] = 3, + }, + [9] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 2, + }, + [10] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 1, + }, + }, + ["tasks"] = { + [1] = 11, + }, + }, + [8] = { + ["displayName"] = "Retribution DEAD", + ["name"] = "Retribution DEAD", + ["pylons"] = { + [1] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 10, + }, + [2] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 9, + }, + [3] = { + ["CLSID"] = "{CH_AASM250}", + ["num"] = 8, + }, + [4] = { + ["CLSID"] = "{CH_AASM250}", + ["num"] = 7, + }, + [5] = { + ["CLSID"] = "{E8069896-8435-4B90-95C0-01A03AE6E400}", + ["num"] = 6, + }, + [6] = { + ["CLSID"] = "{E8069896-8435-4B90-95C0-01A03AE6E400}", + ["num"] = 5, + }, + [7] = { + ["CLSID"] = "{CH_AASM250}", + ["num"] = 4, + }, + [8] = { + ["CLSID"] = "{CH_AASM250}", + ["num"] = 3, + }, + [9] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 2, + }, + [10] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 1, + }, + }, + ["tasks"] = { + [1] = 11, + }, + }, + [9] = { + ["displayName"] = "Retribution OCA/Runway", + ["name"] = "Retribution OCA/Runway", + ["pylons"] = { + [1] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 10, + }, + [2] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 9, + }, + [3] = { + ["CLSID"] = "{MIG29MU2_JDAM-ER}", + ["num"] = 8, + }, + [4] = { + ["CLSID"] = "{MIG29MU2_JDAM-ER}", + ["num"] = 7, + }, + [5] = { + ["CLSID"] = "{E8069896-8435-4B90-95C0-01A03AE6E400}", + ["num"] = 6, + }, + [6] = { + ["CLSID"] = "{E8069896-8435-4B90-95C0-01A03AE6E400}", + ["num"] = 5, + }, + [7] = { + ["CLSID"] = "{MIG29MU2_JDAM-ER}", + ["num"] = 4, + }, + [8] = { + ["CLSID"] = "{MIG29MU2_JDAM-ER}", + ["num"] = 3, + }, + [9] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 2, + }, + [10] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 1, + }, + }, + ["tasks"] = { + [1] = 11, + }, + }, + [10] = { + ["displayName"] = "Retribution OCA/Aircraft", + ["name"] = "Retribution OCA/Aircraft", + ["pylons"] = { + [1] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 10, + }, + [2] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 9, + }, + [3] = { + ["CLSID"] = "{MIG29MU2_JDAM-ER}", + ["num"] = 8, + }, + [4] = { + ["CLSID"] = "{MIG29MU2_JDAM-ER}", + ["num"] = 7, + }, + [5] = { + ["CLSID"] = "{E8069896-8435-4B90-95C0-01A03AE6E400}", + ["num"] = 6, + }, + [6] = { + ["CLSID"] = "{E8069896-8435-4B90-95C0-01A03AE6E400}", + ["num"] = 5, + }, + [7] = { + ["CLSID"] = "{MIG29MU2_JDAM-ER}", + ["num"] = 4, + }, + [8] = { + ["CLSID"] = "{MIG29MU2_JDAM-ER}", + ["num"] = 3, + }, + [9] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 2, + }, + [10] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 1, + }, + }, + ["tasks"] = { + [1] = 11, + }, + }, + [11] = { + ["displayName"] = "Retribution SEAD Sweep", + ["name"] = "Retribution SEAD Sweep", + ["pylons"] = { + [1] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 10, + }, + [2] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 9, + }, + [3] = { + ["CLSID"] = "{B06DD79A-F21E-4EB9-BD9D-AB3844618C93}", + ["num"] = 8, + }, + [4] = { + ["CLSID"] = "{CH_AASM250}", + ["num"] = 7, + }, + [5] = { + ["CLSID"] = "{E8069896-8435-4B90-95C0-01A03AE6E400}", + ["num"] = 6, + }, + [6] = { + ["CLSID"] = "{E8069896-8435-4B90-95C0-01A03AE6E400}", + ["num"] = 5, + }, + [7] = { + ["CLSID"] = "{CH_AASM250}", + ["num"] = 4, + }, + [8] = { + ["CLSID"] = "{B06DD79A-F21E-4EB9-BD9D-AB3844618C93}", + ["num"] = 3, + }, + [9] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 2, + }, + [10] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 1, + }, + }, + ["tasks"] = { + [1] = 11, + }, + }, + [12] = { + ["displayName"] = "Retribution Strike", + ["name"] = "Retribution Strike", + ["pylons"] = { + [1] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 10, + }, + [2] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 9, + }, + [3] = { + ["CLSID"] = "{MIG29MU2_JDAM-ER}", + ["num"] = 8, + }, + [4] = { + ["CLSID"] = "{MIG29MU2_JDAM-ER}", + ["num"] = 7, + }, + [5] = { + ["CLSID"] = "{E8069896-8435-4B90-95C0-01A03AE6E400}", + ["num"] = 6, + }, + [6] = { + ["CLSID"] = "{E8069896-8435-4B90-95C0-01A03AE6E400}", + ["num"] = 5, + }, + [7] = { + ["CLSID"] = "{MIG29MU2_JDAM-ER}", + ["num"] = 4, + }, + [8] = { + ["CLSID"] = "{MIG29MU2_JDAM-ER}", + ["num"] = 3, + }, + [9] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 2, + }, + [10] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 1, + }, + }, + ["tasks"] = { + [1] = 11, + }, + }, + }, + ["tasks"] = { + }, + ["unitType"] = "CH_Su-27P1M", +} +return unitPayloads diff --git a/resources/customized_payloads/MiG-29MU2.lua b/resources/customized_payloads/MiG-29MU2.lua new file mode 100644 index 00000000..6888a2a2 --- /dev/null +++ b/resources/customized_payloads/MiG-29MU2.lua @@ -0,0 +1,453 @@ +local unitPayloads = { + ["name"] = "MiG-29MU2", + ["payloads"] = { + [1] = { + ["displayName"] = "Retribution BAI", + ["name"] = "Retribution BAI", + ["pylons"] = { + [1] = { + ["CLSID"] = "{40EF17B7-F508-45de-8566-6FFECC0C1AB8}", + ["num"] = 7, + }, + [2] = { + ["CLSID"] = "{CH_AASM250}", + ["num"] = 6, + }, + [3] = { + ["CLSID"] = "{CH_AASM250}", + ["num"] = 5, + }, + [4] = { + ["CLSID"] = "{2BEC576B-CDF5-4B7F-961F-B0FA4312B841}", + ["num"] = 4, + }, + [5] = { + ["CLSID"] = "{CH_AASM250}", + ["num"] = 3, + }, + [6] = { + ["CLSID"] = "{CH_AASM250}", + ["num"] = 2, + }, + [7] = { + ["CLSID"] = "{40EF17B7-F508-45de-8566-6FFECC0C1AB8}", + ["num"] = 1, + }, + }, + ["tasks"] = { + [1] = 11, + }, + }, + [2] = { + ["displayName"] = "Retribution TARCAP", + ["name"] = "Retribution TARCAP", + ["pylons"] = { + [1] = { + ["CLSID"] = "{40EF17B7-F508-45de-8566-6FFECC0C1AB8}", + ["num"] = 7, + }, + [2] = { + ["CLSID"] = "{6CEB49FC-DED8-4DED-B053-E1F033FF72D3}", + ["num"] = 6, + }, + [3] = { + ["CLSID"] = "{40EF17B7-F508-45de-8566-6FFECC0C1AB8}", + ["num"] = 5, + }, + [4] = { + ["CLSID"] = "{2BEC576B-CDF5-4B7F-961F-B0FA4312B841}", + ["num"] = 4, + }, + [5] = { + ["CLSID"] = "{40EF17B7-F508-45de-8566-6FFECC0C1AB8}", + ["num"] = 3, + }, + [6] = { + ["CLSID"] = "{6CEB49FC-DED8-4DED-B053-E1F033FF72D3}", + ["num"] = 2, + }, + [7] = { + ["CLSID"] = "{40EF17B7-F508-45de-8566-6FFECC0C1AB8}", + ["num"] = 1, + }, + }, + ["tasks"] = { + [1] = 11, + }, + }, + [3] = { + ["displayName"] = "Retribution BARCAP", + ["name"] = "Retribution BARCAP", + ["pylons"] = { + [1] = { + ["CLSID"] = "{40EF17B7-F508-45de-8566-6FFECC0C1AB8}", + ["num"] = 7, + }, + [2] = { + ["CLSID"] = "{6CEB49FC-DED8-4DED-B053-E1F033FF72D3}", + ["num"] = 6, + }, + [3] = { + ["CLSID"] = "{40EF17B7-F508-45de-8566-6FFECC0C1AB8}", + ["num"] = 5, + }, + [4] = { + ["CLSID"] = "{2BEC576B-CDF5-4B7F-961F-B0FA4312B841}", + ["num"] = 4, + }, + [5] = { + ["CLSID"] = "{40EF17B7-F508-45de-8566-6FFECC0C1AB8}", + ["num"] = 3, + }, + [6] = { + ["CLSID"] = "{6CEB49FC-DED8-4DED-B053-E1F033FF72D3}", + ["num"] = 2, + }, + [7] = { + ["CLSID"] = "{40EF17B7-F508-45de-8566-6FFECC0C1AB8}", + ["num"] = 1, + }, + }, + ["tasks"] = { + [1] = 11, + }, + }, + [4] = { + ["displayName"] = "Retribution SEAD", + ["name"] = "Retribution SEAD", + ["pylons"] = { + [1] = { + ["CLSID"] = "{40EF17B7-F508-45de-8566-6FFECC0C1AB8}", + ["num"] = 7, + }, + [2] = { + ["CLSID"] = "{B06DD79A-F21E-4EB9-BD9D-AB3844618C93}", + ["num"] = 6, + }, + [3] = { + ["CLSID"] = "{B06DD79A-F21E-4EB9-BD9D-AB3844618C93}", + ["num"] = 5, + }, + [4] = { + ["CLSID"] = "{2BEC576B-CDF5-4B7F-961F-B0FA4312B841}", + ["num"] = 4, + }, + [5] = { + ["CLSID"] = "{B06DD79A-F21E-4EB9-BD9D-AB3844618C93}", + ["num"] = 3, + }, + [6] = { + ["CLSID"] = "{B06DD79A-F21E-4EB9-BD9D-AB3844618C93}", + ["num"] = 2, + }, + [7] = { + ["CLSID"] = "{40EF17B7-F508-45de-8566-6FFECC0C1AB8}", + ["num"] = 1, + }, + }, + ["tasks"] = { + [1] = 11, + }, + }, + [5] = { + ["displayName"] = "Retribution Strike", + ["name"] = "Retribution Strike", + ["pylons"] = { + [1] = { + ["CLSID"] = "{40EF17B7-F508-45de-8566-6FFECC0C1AB8}", + ["num"] = 7, + }, + [2] = { + ["CLSID"] = "{MIG29MU2_JDAM-ER}", + ["num"] = 6, + }, + [3] = { + ["CLSID"] = "{MIG29MU2_JDAM-ER}", + ["num"] = 5, + }, + [4] = { + ["CLSID"] = "{2BEC576B-CDF5-4B7F-961F-B0FA4312B841}", + ["num"] = 4, + }, + [5] = { + ["CLSID"] = "{MIG29MU2_JDAM-ER}", + ["num"] = 3, + }, + [6] = { + ["CLSID"] = "{MIG29MU2_JDAM-ER}", + ["num"] = 2, + }, + [7] = { + ["CLSID"] = "{40EF17B7-F508-45de-8566-6FFECC0C1AB8}", + ["num"] = 1, + }, + }, + ["tasks"] = { + [1] = 11, + }, + }, + [6] = { + ["displayName"] = "Retribution OCA/Aircraft", + ["name"] = "Retribution OCA/Aircraft", + ["pylons"] = { + [1] = { + ["CLSID"] = "{40EF17B7-F508-45de-8566-6FFECC0C1AB8}", + ["num"] = 7, + }, + [2] = { + ["CLSID"] = "{MIG29MU2_JDAM-ER}", + ["num"] = 6, + }, + [3] = { + ["CLSID"] = "{MIG29MU2_JDAM-ER}", + ["num"] = 5, + }, + [4] = { + ["CLSID"] = "{2BEC576B-CDF5-4B7F-961F-B0FA4312B841}", + ["num"] = 4, + }, + [5] = { + ["CLSID"] = "{MIG29MU2_JDAM-ER}", + ["num"] = 3, + }, + [6] = { + ["CLSID"] = "{MIG29MU2_JDAM-ER}", + ["num"] = 2, + }, + [7] = { + ["CLSID"] = "{40EF17B7-F508-45de-8566-6FFECC0C1AB8}", + ["num"] = 1, + }, + }, + ["tasks"] = { + [1] = 11, + }, + }, + [7] = { + ["displayName"] = "Retribution DEAD", + ["name"] = "Retribution DEAD", + ["pylons"] = { + [1] = { + ["CLSID"] = "{40EF17B7-F508-45de-8566-6FFECC0C1AB8}", + ["num"] = 7, + }, + [2] = { + ["CLSID"] = "{CH_AASM250}", + ["num"] = 6, + }, + [3] = { + ["CLSID"] = "{CH_AASM250}", + ["num"] = 5, + }, + [4] = { + ["CLSID"] = "{2BEC576B-CDF5-4B7F-961F-B0FA4312B841}", + ["num"] = 4, + }, + [5] = { + ["CLSID"] = "{CH_AASM250}", + ["num"] = 3, + }, + [6] = { + ["CLSID"] = "{CH_AASM250}", + ["num"] = 2, + }, + [7] = { + ["CLSID"] = "{40EF17B7-F508-45de-8566-6FFECC0C1AB8}", + ["num"] = 1, + }, + }, + ["tasks"] = { + [1] = 11, + }, + }, + [8] = { + ["displayName"] = "Retribution OCA/Runway", + ["name"] = "Retribution OCA/Runway", + ["pylons"] = { + [1] = { + ["CLSID"] = "{40EF17B7-F508-45de-8566-6FFECC0C1AB8}", + ["num"] = 7, + }, + [2] = { + ["CLSID"] = "{MIG29MU2_JDAM-ER}", + ["num"] = 6, + }, + [3] = { + ["CLSID"] = "{MIG29MU2_JDAM-ER}", + ["num"] = 5, + }, + [4] = { + ["CLSID"] = "{2BEC576B-CDF5-4B7F-961F-B0FA4312B841}", + ["num"] = 4, + }, + [5] = { + ["CLSID"] = "{MIG29MU2_JDAM-ER}", + ["num"] = 3, + }, + [6] = { + ["CLSID"] = "{MIG29MU2_JDAM-ER}", + ["num"] = 2, + }, + [7] = { + ["CLSID"] = "{40EF17B7-F508-45de-8566-6FFECC0C1AB8}", + ["num"] = 1, + }, + }, + ["tasks"] = { + [1] = 11, + }, + }, + [9] = { + ["displayName"] = "Retribution Escort", + ["name"] = "Retribution Escort", + ["pylons"] = { + [1] = { + ["CLSID"] = "{40EF17B7-F508-45de-8566-6FFECC0C1AB8}", + ["num"] = 7, + }, + [2] = { + ["CLSID"] = "{6CEB49FC-DED8-4DED-B053-E1F033FF72D3}", + ["num"] = 6, + }, + [3] = { + ["CLSID"] = "{40EF17B7-F508-45de-8566-6FFECC0C1AB8}", + ["num"] = 5, + }, + [4] = { + ["CLSID"] = "{2BEC576B-CDF5-4B7F-961F-B0FA4312B841}", + ["num"] = 4, + }, + [5] = { + ["CLSID"] = "{40EF17B7-F508-45de-8566-6FFECC0C1AB8}", + ["num"] = 3, + }, + [6] = { + ["CLSID"] = "{6CEB49FC-DED8-4DED-B053-E1F033FF72D3}", + ["num"] = 2, + }, + [7] = { + ["CLSID"] = "{40EF17B7-F508-45de-8566-6FFECC0C1AB8}", + ["num"] = 1, + }, + }, + ["tasks"] = { + [1] = 11, + }, + }, + [10] = { + ["displayName"] = "Retribution CEAD", + ["name"] = "Retribution CEAD", + ["pylons"] = { + [1] = { + ["CLSID"] = "{40EF17B7-F508-45de-8566-6FFECC0C1AB8}", + ["num"] = 7, + }, + [2] = { + ["CLSID"] = "{MiG-29MU2_ADM-160B_LAU118}", + ["num"] = 6, + }, + [3] = { + ["CLSID"] = "{MIG29MU2_BRU_42A_x3_ADM_160B}", + ["num"] = 5, + }, + [4] = { + ["CLSID"] = "{2BEC576B-CDF5-4B7F-961F-B0FA4312B841}", + ["num"] = 4, + }, + [5] = { + ["CLSID"] = "{MIG29MU2_BRU_42A_x3_ADM_160B}", + ["num"] = 3, + }, + [6] = { + ["CLSID"] = "{MiG-29MU2_ADM-160B_LAU118}", + ["num"] = 2, + }, + [7] = { + ["CLSID"] = "{40EF17B7-F508-45de-8566-6FFECC0C1AB8}", + ["num"] = 1, + }, + }, + ["tasks"] = { + [1] = 11, + }, + }, + [11] = { + ["displayName"] = "Retribution SEAD Sweep", + ["name"] = "Retribution SEAD Sweep", + ["pylons"] = { + [1] = { + ["CLSID"] = "{40EF17B7-F508-45de-8566-6FFECC0C1AB8}", + ["num"] = 7, + }, + [2] = { + ["CLSID"] = "{CH_AASM250}", + ["num"] = 6, + }, + [3] = { + ["CLSID"] = "{B06DD79A-F21E-4EB9-BD9D-AB3844618C93}", + ["num"] = 5, + }, + [4] = { + ["CLSID"] = "{2BEC576B-CDF5-4B7F-961F-B0FA4312B841}", + ["num"] = 4, + }, + [5] = { + ["CLSID"] = "{B06DD79A-F21E-4EB9-BD9D-AB3844618C93}", + ["num"] = 3, + }, + [6] = { + ["CLSID"] = "{CH_AASM250}", + ["num"] = 2, + }, + [7] = { + ["CLSID"] = "{40EF17B7-F508-45de-8566-6FFECC0C1AB8}", + ["num"] = 1, + }, + }, + ["tasks"] = { + [1] = 11, + }, + }, + [12] = { + ["displayName"] = "Retribution CAS", + ["name"] = "Retribution CAS", + ["pylons"] = { + [1] = { + ["CLSID"] = "{40EF17B7-F508-45de-8566-6FFECC0C1AB8}", + ["num"] = 7, + }, + [2] = { + ["CLSID"] = "{CH_AASM250}", + ["num"] = 6, + }, + [3] = { + ["CLSID"] = "{CH_AASM250}", + ["num"] = 5, + }, + [4] = { + ["CLSID"] = "{2BEC576B-CDF5-4B7F-961F-B0FA4312B841}", + ["num"] = 4, + }, + [5] = { + ["CLSID"] = "{CH_AASM250}", + ["num"] = 3, + }, + [6] = { + ["CLSID"] = "{CH_AASM250}", + ["num"] = 2, + }, + [7] = { + ["CLSID"] = "{40EF17B7-F508-45de-8566-6FFECC0C1AB8}", + ["num"] = 1, + }, + }, + ["tasks"] = { + [1] = 11, + }, + }, + }, + ["tasks"] = { + }, + ["unitType"] = "MiG-29MU2", +} +return unitPayloads diff --git a/resources/customized_payloads/Su-24MU.lua b/resources/customized_payloads/Su-24MU.lua new file mode 100644 index 00000000..f7b0a690 --- /dev/null +++ b/resources/customized_payloads/Su-24MU.lua @@ -0,0 +1,215 @@ +local unitPayloads = { + ["name"] = "Su-24MU", + ["payloads"] = { + [1] = { + ["displayName"] = "Retribution BAI", + ["name"] = "Retribution BAI", + ["pylons"] = { + [1] = { + ["CLSID"] = "{CH_AASM250}", + ["num"] = 8, + }, + [2] = { + ["CLSID"] = "{CH_AASM250}", + ["num"] = 7, + }, + [3] = { + ["CLSID"] = "{CH_AASM250}", + ["num"] = 1, + }, + [4] = { + ["CLSID"] = "{CH_AASM250}", + ["num"] = 2, + }, + [5] = { + ["CLSID"] = "{16602053-4A12-40A2-B214-AB60D481B20E}", + ["num"] = 5, + }, + [6] = { + ["CLSID"] = "{CH_AASM250}", + ["num"] = 6, + }, + [7] = { + ["CLSID"] = "{CH_AASM250}", + ["num"] = 3, + }, + }, + ["tasks"] = { + [1] = 32, + }, + }, + [2] = { + ["displayName"] = "Retribution DEAD", + ["name"] = "Retribution DEAD", + ["pylons"] = { + [1] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 8, + }, + [2] = { + ["CLSID"] = "{SU24MU_STORMSHADOW}", + ["num"] = 7, + }, + [3] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 1, + }, + [4] = { + ["CLSID"] = "{SU24MU_STORMSHADOW}", + ["num"] = 2, + }, + [5] = { + ["CLSID"] = "{16602053-4A12-40A2-B214-AB60D481B20E}", + ["num"] = 5, + }, + }, + ["tasks"] = { + [1] = 32, + }, + }, + [3] = { + ["displayName"] = "Retribution OCA/Runway", + ["name"] = "Retribution OCA/Runway", + ["pylons"] = { + [1] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 8, + }, + [2] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 1, + }, + [3] = { + ["CLSID"] = "{39821727-F6E2-45B3-B1F0-490CC8921D1E}", + ["num"] = 7, + }, + [4] = { + ["CLSID"] = "{16602053-4A12-40A2-B214-AB60D481B20E}", + ["num"] = 5, + }, + [5] = { + ["CLSID"] = "{39821727-F6E2-45B3-B1F0-490CC8921D1E}", + ["num"] = 2, + }, + }, + ["tasks"] = { + [1] = 32, + }, + }, + [4] = { + ["displayName"] = "Retribution Strike", + ["name"] = "Retribution Strike", + ["pylons"] = { + [1] = { + ["CLSID"] = "{CH_AASM250}", + ["num"] = 8, + }, + [2] = { + ["CLSID"] = "{CH_AASM250}", + ["num"] = 7, + }, + [3] = { + ["CLSID"] = "{CH_AASM250}", + ["num"] = 1, + }, + [4] = { + ["CLSID"] = "{CH_AASM250}", + ["num"] = 2, + }, + [5] = { + ["CLSID"] = "{CH_AASM250}", + ["num"] = 6, + }, + [6] = { + ["CLSID"] = "{CH_AASM250}", + ["num"] = 3, + }, + [7] = { + ["CLSID"] = "{16602053-4A12-40A2-B214-AB60D481B20E}", + ["num"] = 5, + }, + }, + ["tasks"] = { + [1] = 32, + }, + }, + [5] = { + ["displayName"] = "Retribution OCA/Aircraft", + ["name"] = "Retribution OCA/Aircraft", + ["pylons"] = { + [1] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 8, + }, + [2] = { + ["CLSID"] = "{FBC29BFE-3D24-4C64-B81D-941239D12249}", + ["num"] = 1, + }, + [3] = { + ["CLSID"] = "{E2C426E3-8B10-4E09-B733-9CDC26520F48}", + ["num"] = 7, + }, + [4] = { + ["CLSID"] = "{16602053-4A12-40A2-B214-AB60D481B20E}", + ["num"] = 5, + }, + [5] = { + ["CLSID"] = "{E2C426E3-8B10-4E09-B733-9CDC26520F48}", + ["num"] = 2, + }, + [6] = { + ["CLSID"] = "{E2C426E3-8B10-4E09-B733-9CDC26520F48}", + ["num"] = 6, + }, + [7] = { + ["CLSID"] = "{E2C426E3-8B10-4E09-B733-9CDC26520F48}", + ["num"] = 3, + }, + }, + ["tasks"] = { + [1] = 32, + }, + }, + [6] = { + ["displayName"] = "Retribution CAS", + ["name"] = "Retribution CAS", + ["pylons"] = { + [1] = { + ["CLSID"] = "{CH_AASM250}", + ["num"] = 8, + }, + [2] = { + ["CLSID"] = "{CH_AASM250}", + ["num"] = 7, + }, + [3] = { + ["CLSID"] = "{CH_AASM250}", + ["num"] = 1, + }, + [4] = { + ["CLSID"] = "{CH_AASM250}", + ["num"] = 2, + }, + [5] = { + ["CLSID"] = "{16602053-4A12-40A2-B214-AB60D481B20E}", + ["num"] = 5, + }, + [6] = { + ["CLSID"] = "{CH_AASM250}", + ["num"] = 6, + }, + [7] = { + ["CLSID"] = "{CH_AASM250}", + ["num"] = 3, + }, + }, + ["tasks"] = { + [1] = 32, + }, + }, + }, + ["tasks"] = { + }, + ["unitType"] = "Su-24MU", +} +return unitPayloads diff --git a/resources/customized_payloads/VSN_MirageIIIC.lua b/resources/customized_payloads/VSN_MirageIIIC.lua new file mode 100644 index 00000000..a15b0d57 --- /dev/null +++ b/resources/customized_payloads/VSN_MirageIIIC.lua @@ -0,0 +1,53 @@ +local unitPayloads = { + ["name"] = "VSN_MirageIIIC", + ["payloads"] = { + [1] = { + ["name"] = "Retribution BARCAP", + ["pylons"] = { + [1] = { + ["CLSID"] = "{FC23864E-3B80-48E3-9C03-4DA8B1D7497B}", + ["num"] = 1, + }, + [2] = { + ["CLSID"] = "{FD21B13E-57F3-4C2A-9F78-C522D0B5BCE1}", + ["num"] = 2, + }, + [3] = { + ["CLSID"] = "{FD21B13E-57F3-4C2A-9F78-C522D0B5BCE1}", + ["num"] = 3, + }, + [4] = { + ["CLSID"] = "{44EE8698-89F9-48EE-AF36-5FD31896A82F}", + ["num"] = 5, + }, + [5] = { + ["CLSID"] = "{VSN_M3C3_PTB}", + ["num"] = 6, + }, + [6] = { + ["CLSID"] = "{44EE8698-89F9-48EE-AF36-5FD31896A82F}", + ["num"] = 7, + }, + [7] = { + ["CLSID"] = "{FD21B13E-57F3-4C2A-9F78-C522D0B5BCE1}", + ["num"] = 9, + }, + [8] = { + ["CLSID"] = "{FD21B13E-57F3-4C2A-9F78-C522D0B5BCE1}", + ["num"] = 10, + }, + [9] = { + ["CLSID"] = "{FC23864E-3B80-48E3-9C03-4DA8B1D7497B}", + ["num"] = 11, + }, + }, + ["tasks"] = { + [1] = 11, + }, + }, + }, + ["tasks"] = { + }, + ["unitType"] = "VSN_MirageIIIC", +} +return unitPayloads diff --git a/resources/customized_payloads/VSN_MirageIIIC_AG.lua b/resources/customized_payloads/VSN_MirageIIIC_AG.lua new file mode 100644 index 00000000..44783260 --- /dev/null +++ b/resources/customized_payloads/VSN_MirageIIIC_AG.lua @@ -0,0 +1,229 @@ +local unitPayloads = { + ["name"] = "VSN_MirageIIIC_AG", + ["payloads"] = { + [1] = { + ["name"] = "BARCAP", + ["pylons"] = { + [1] = { + ["CLSID"] = "{FC23864E-3B80-48E3-9C03-4DA8B1D7497B}", + ["num"] = 1, + }, + [2] = { + ["CLSID"] = "{FC23864E-3B80-48E3-9C03-4DA8B1D7497B}", + ["num"] = 2, + }, + [3] = { + ["CLSID"] = "{FC23864E-3B80-48E3-9C03-4DA8B1D7497B}", + ["num"] = 3, + }, + [4] = { + ["CLSID"] = "{44EE8698-89F9-48EE-AF36-5FD31896A82F}", + ["num"] = 5, + }, + [5] = { + ["CLSID"] = "{VSN_M3C3_PTB}", + ["num"] = 6, + }, + [6] = { + ["CLSID"] = "{44EE8698-89F9-48EE-AF36-5FD31896A82F}", + ["num"] = 7, + }, + [7] = { + ["CLSID"] = "{FC23864E-3B80-48E3-9C03-4DA8B1D7497B}", + ["num"] = 9, + }, + [8] = { + ["CLSID"] = "{FC23864E-3B80-48E3-9C03-4DA8B1D7497B}", + ["num"] = 10, + }, + [9] = { + ["CLSID"] = "{FC23864E-3B80-48E3-9C03-4DA8B1D7497B}", + ["num"] = 11, + }, + }, + ["tasks"] = { + [1] = 11, + }, + }, + [2] = { + ["name"] = "CAS", + ["pylons"] = { + [1] = { + ["CLSID"] = "{FC23864E-3B80-48E3-9C03-4DA8B1D7497B}", + ["num"] = 1, + }, + [2] = { + ["CLSID"] = "{D5D51E24-348C-4702-96AF-97A714E72697}", + ["num"] = 2, + }, + [3] = { + ["CLSID"] = "{AB8B8299-F1CC-4359-89B5-2172E0CF4A5A}", + ["num"] = 3, + }, + [4] = { + ["CLSID"] = "{FC23864E-3B80-48E3-9C03-4DA8B1D7497B}", + ["num"] = 11, + }, + [5] = { + ["CLSID"] = "{D5D51E24-348C-4702-96AF-97A714E72697}", + ["num"] = 10, + }, + [6] = { + ["CLSID"] = "{AB8B8299-F1CC-4359-89B5-2172E0CF4A5A}", + ["num"] = 9, + }, + [7] = { + ["CLSID"] = "{VSN_M3C3_PTB}", + ["num"] = 6, + }, + [8] = { + ["CLSID"] = "{44EE8698-89F9-48EE-AF36-5FD31896A82F}", + ["num"] = 7, + }, + [9] = { + ["CLSID"] = "{44EE8698-89F9-48EE-AF36-5FD31896A82F}", + ["num"] = 5, + }, + }, + ["tasks"] = { + [1] = 11, + }, + }, + [3] = { + ["name"] = "STRIKE", + ["pylons"] = { + [1] = { + ["CLSID"] = "{FC23864E-3B80-48E3-9C03-4DA8B1D7497B}", + ["num"] = 1, + }, + [2] = { + ["CLSID"] = "{AB8B8299-F1CC-4359-89B5-2172E0CF4A5A}", + ["num"] = 2, + }, + [3] = { + ["CLSID"] = "{AB8B8299-F1CC-4359-89B5-2172E0CF4A5A}", + ["num"] = 3, + }, + [4] = { + ["CLSID"] = "{FC23864E-3B80-48E3-9C03-4DA8B1D7497B}", + ["num"] = 11, + }, + [5] = { + ["CLSID"] = "{AB8B8299-F1CC-4359-89B5-2172E0CF4A5A}", + ["num"] = 10, + }, + [6] = { + ["CLSID"] = "{AB8B8299-F1CC-4359-89B5-2172E0CF4A5A}", + ["num"] = 9, + }, + [7] = { + ["CLSID"] = "{VSN_M3C3_PTB}", + ["num"] = 6, + }, + [8] = { + ["CLSID"] = "{44EE8698-89F9-48EE-AF36-5FD31896A82F}", + ["num"] = 7, + }, + [9] = { + ["CLSID"] = "{44EE8698-89F9-48EE-AF36-5FD31896A82F}", + ["num"] = 5, + }, + }, + ["tasks"] = { + [1] = 11, + }, + }, + [4] = { + ["name"] = "DEAD", + ["pylons"] = { + [1] = { + ["CLSID"] = "{FC23864E-3B80-48E3-9C03-4DA8B1D7497B}", + ["num"] = 1, + }, + [2] = { + ["CLSID"] = "{D5D51E24-348C-4702-96AF-97A714E72697}", + ["num"] = 2, + }, + [3] = { + ["CLSID"] = "{AB8B8299-F1CC-4359-89B5-2172E0CF4A5A}", + ["num"] = 3, + }, + [4] = { + ["CLSID"] = "{FC23864E-3B80-48E3-9C03-4DA8B1D7497B}", + ["num"] = 11, + }, + [5] = { + ["CLSID"] = "{D5D51E24-348C-4702-96AF-97A714E72697}", + ["num"] = 10, + }, + [6] = { + ["CLSID"] = "{AB8B8299-F1CC-4359-89B5-2172E0CF4A5A}", + ["num"] = 9, + }, + [7] = { + ["CLSID"] = "{VSN_M3C3_PTB}", + ["num"] = 6, + }, + [8] = { + ["CLSID"] = "{44EE8698-89F9-48EE-AF36-5FD31896A82F}", + ["num"] = 7, + }, + [9] = { + ["CLSID"] = "{44EE8698-89F9-48EE-AF36-5FD31896A82F}", + ["num"] = 5, + }, + }, + ["tasks"] = { + [1] = 11, + }, + }, + [5] = { + ["name"] = "RUNWAY_ATTACK", + ["pylons"] = { + [1] = { + ["CLSID"] = "{FC23864E-3B80-48E3-9C03-4DA8B1D7497B}", + ["num"] = 1, + }, + [2] = { + ["CLSID"] = "{752B9781-F962-11d5-9190-00A0249B6F00}", + ["num"] = 2, + }, + [3] = { + ["CLSID"] = "{AB8B8299-F1CC-4359-89B5-2172E0CF4A5A}", + ["num"] = 3, + }, + [4] = { + ["CLSID"] = "{FC23864E-3B80-48E3-9C03-4DA8B1D7497B}", + ["num"] = 11, + }, + [5] = { + ["CLSID"] = "{752B9781-F962-11d5-9190-00A0249B6F00}", + ["num"] = 10, + }, + [6] = { + ["CLSID"] = "{AB8B8299-F1CC-4359-89B5-2172E0CF4A5A}", + ["num"] = 9, + }, + [7] = { + ["CLSID"] = "{VSN_M3C3_PTB}", + ["num"] = 6, + }, + [8] = { + ["CLSID"] = "{44EE8698-89F9-48EE-AF36-5FD31896A82F}", + ["num"] = 7, + }, + [9] = { + ["CLSID"] = "{44EE8698-89F9-48EE-AF36-5FD31896A82F}", + ["num"] = 5, + }, + }, + ["tasks"] = { + [1] = 34, + }, + }, + }, + ["tasks"] = { + }, + ["unitType"] = "VSN_MirageIIIC_AG", +} +return unitPayloads diff --git a/resources/customized_payloads/VSN_MirageIIIS.lua b/resources/customized_payloads/VSN_MirageIIIS.lua new file mode 100644 index 00000000..c75df4cc --- /dev/null +++ b/resources/customized_payloads/VSN_MirageIIIS.lua @@ -0,0 +1,229 @@ +local unitPayloads = { + ["name"] = "VSN_MirageIIIS", + ["payloads"] = { + [1] = { + ["name"] = "BARCAP", + ["pylons"] = { + [1] = { + ["CLSID"] = "{FC23864E-3B80-48E3-9C03-4DA8B1D7497B}", + ["num"] = 1, + }, + [2] = { + ["CLSID"] = "{FD21B13E-57F3-4C2A-9F78-C522D0B5BCE1}", + ["num"] = 2, + }, + [3] = { + ["CLSID"] = "{FC23864E-3B80-48E3-9C03-4DA8B1D7497B}", + ["num"] = 11, + }, + [4] = { + ["CLSID"] = "{VSN_M3C3_PTB}", + ["num"] = 6, + }, + [5] = { + ["CLSID"] = "{FD21B13E-57F3-4C2A-9F78-C522D0B5BCE1}", + ["num"] = 10, + }, + [6] = { + ["CLSID"] = "{44EE8698-89F9-48EE-AF36-5FD31896A82F}", + ["num"] = 7, + }, + [7] = { + ["CLSID"] = "{44EE8698-89F9-48EE-AF36-5FD31896A82F}", + ["num"] = 5, + }, + [8] = { + ["CLSID"] = "{FD21B13E-57F3-4C2A-9F78-C522D0B5BCE1}", + ["num"] = 9, + }, + [9] = { + ["CLSID"] = "{FD21B13E-57F3-4C2A-9F78-C522D0B5BCE1}", + ["num"] = 3, + }, + }, + ["tasks"] = { + [1] = 11, + }, + }, + [2] = { + ["name"] = "CAS", + ["pylons"] = { + [1] = { + ["CLSID"] = "{FC23864E-3B80-48E3-9C03-4DA8B1D7497B}", + ["num"] = 1, + }, + [2] = { + ["CLSID"] = "{D5D51E24-348C-4702-96AF-97A714E72697}", + ["num"] = 2, + }, + [3] = { + ["CLSID"] = "{FC23864E-3B80-48E3-9C03-4DA8B1D7497B}", + ["num"] = 11, + }, + [4] = { + ["CLSID"] = "{VSN_M3C3_PTB}", + ["num"] = 6, + }, + [5] = { + ["CLSID"] = "{D5D51E24-348C-4702-96AF-97A714E72697}", + ["num"] = 10, + }, + [6] = { + ["CLSID"] = "{44EE8698-89F9-48EE-AF36-5FD31896A82F}", + ["num"] = 7, + }, + [7] = { + ["CLSID"] = "{44EE8698-89F9-48EE-AF36-5FD31896A82F}", + ["num"] = 5, + }, + [8] = { + ["CLSID"] = "{AB8B8299-F1CC-4359-89B5-2172E0CF4A5A}", + ["num"] = 9, + }, + [9] = { + ["CLSID"] = "{AB8B8299-F1CC-4359-89B5-2172E0CF4A5A}", + ["num"] = 3, + }, + }, + ["tasks"] = { + [1] = 11, + }, + }, + [3] = { + ["name"] = "STRIKE", + ["pylons"] = { + [1] = { + ["CLSID"] = "{FC23864E-3B80-48E3-9C03-4DA8B1D7497B}", + ["num"] = 1, + }, + [2] = { + ["CLSID"] = "{AB8B8299-F1CC-4359-89B5-2172E0CF4A5A}", + ["num"] = 2, + }, + [3] = { + ["CLSID"] = "{FC23864E-3B80-48E3-9C03-4DA8B1D7497B}", + ["num"] = 11, + }, + [4] = { + ["CLSID"] = "{VSN_M3C3_PTB}", + ["num"] = 6, + }, + [5] = { + ["CLSID"] = "{AB8B8299-F1CC-4359-89B5-2172E0CF4A5A}", + ["num"] = 10, + }, + [6] = { + ["CLSID"] = "{44EE8698-89F9-48EE-AF36-5FD31896A82F}", + ["num"] = 7, + }, + [7] = { + ["CLSID"] = "{44EE8698-89F9-48EE-AF36-5FD31896A82F}", + ["num"] = 5, + }, + [8] = { + ["CLSID"] = "{AB8B8299-F1CC-4359-89B5-2172E0CF4A5A}", + ["num"] = 9, + }, + [9] = { + ["CLSID"] = "{AB8B8299-F1CC-4359-89B5-2172E0CF4A5A}", + ["num"] = 3, + }, + }, + ["tasks"] = { + [1] = 11, + }, + }, + [4] = { + ["name"] = "DEAD", + ["pylons"] = { + [1] = { + ["CLSID"] = "{FC23864E-3B80-48E3-9C03-4DA8B1D7497B}", + ["num"] = 1, + }, + [2] = { + ["CLSID"] = "{B5CA9846-776E-4230-B4FD-8BCC9BFB1676}", + ["num"] = 2, + }, + [3] = { + ["CLSID"] = "{AB8B8299-F1CC-4359-89B5-2172E0CF4A5A}", + ["num"] = 3, + }, + [4] = { + ["CLSID"] = "{44EE8698-89F9-48EE-AF36-5FD31896A82F}", + ["num"] = 5, + }, + [5] = { + ["CLSID"] = "{VSN_M3C3_PTB}", + ["num"] = 6, + }, + [6] = { + ["CLSID"] = "{44EE8698-89F9-48EE-AF36-5FD31896A82F}", + ["num"] = 7, + }, + [7] = { + ["CLSID"] = "{AB8B8299-F1CC-4359-89B5-2172E0CF4A5A}", + ["num"] = 9, + }, + [8] = { + ["CLSID"] = "{B5CA9846-776E-4230-B4FD-8BCC9BFB1676}", + ["num"] = 10, + }, + [9] = { + ["CLSID"] = "{FC23864E-3B80-48E3-9C03-4DA8B1D7497B}", + ["num"] = 11, + }, + }, + ["tasks"] = { + [1] = 11, + }, + }, + [5] = { + ["name"] = "RUNWAY_ATTACK", + ["pylons"] = { + [1] = { + ["CLSID"] = "{FC23864E-3B80-48E3-9C03-4DA8B1D7497B}", + ["num"] = 1, + }, + [2] = { + ["CLSID"] = "{752B9781-F962-11d5-9190-00A0249B6F00}", + ["num"] = 2, + }, + [3] = { + ["CLSID"] = "{FC23864E-3B80-48E3-9C03-4DA8B1D7497B}", + ["num"] = 11, + }, + [4] = { + ["CLSID"] = "{VSN_M3C3_PTB}", + ["num"] = 6, + }, + [5] = { + ["CLSID"] = "{752B9781-F962-11d5-9190-00A0249B6F00}", + ["num"] = 10, + }, + [6] = { + ["CLSID"] = "{44EE8698-89F9-48EE-AF36-5FD31896A82F}", + ["num"] = 7, + }, + [7] = { + ["CLSID"] = "{44EE8698-89F9-48EE-AF36-5FD31896A82F}", + ["num"] = 5, + }, + [8] = { + ["CLSID"] = "{AB8B8299-F1CC-4359-89B5-2172E0CF4A5A}", + ["num"] = 9, + }, + [9] = { + ["CLSID"] = "{AB8B8299-F1CC-4359-89B5-2172E0CF4A5A}", + ["num"] = 3, + }, + }, + ["tasks"] = { + [1] = 34, + }, + }, + }, + ["tasks"] = { + }, + ["unitType"] = "VSN_MirageIIIS", +} +return unitPayloads diff --git a/resources/factions/argentina_1982.json b/resources/factions/argentina_1982.json index c344d3b1..97165d4e 100644 --- a/resources/factions/argentina_1982.json +++ b/resources/factions/argentina_1982.json @@ -7,6 +7,9 @@ "es_ES" ], "aircrafts": [ + "Mirage IIIB/C", + "Mirage IIIB/C A/G", + "Super Étendard", "A-4E Skyhawk", "C-130", "C-130J-30 Super Hercules", diff --git a/resources/factions/france_1985.json b/resources/factions/france_1985.json index c3bb2b29..acd1fe3e 100644 --- a/resources/factions/france_1985.json +++ b/resources/factions/france_1985.json @@ -9,6 +9,8 @@ "doctrine": "coldwar", "aircrafts": [ "C-130", + "Mirage IIIB/C", + "Mirage IIIB/C A/G", "Mirage 2000C", "Mirage-F1B", "Mirage-F1CE", diff --git a/resources/factions/ukraine_2020.json b/resources/factions/ukraine_2020.json new file mode 100644 index 00000000..7c702568 --- /dev/null +++ b/resources/factions/ukraine_2020.json @@ -0,0 +1,81 @@ +{ + "country": "Ukraine", + "name": "Ukraine 2020", + "authors": "Starfire", + "description": "

Ukrainian military in the 2020s during the Russo-Ukrainian War. This faction is intended for use with the Currenthill Ukraine Asset Pack.

", + "aircrafts": [ + "IL-76MD", + "Mi-24V Hind-E", + "Mi-24P Hind-F", + "Mi-8MTV2 Hip", + "MiG-29S Fulcrum-C", + "Su-24M Fencer-D", + "Su-25 Frogfoot", + "Su-27 Flanker-B", + "F-16CM Fighting Falcon (Block 50)", + "Mirage 2000C", + "[CH] Su-27P1M", + "[CH] MiG-29MU2", + "[CH] Su-24MU" + ], + "awacs": [], + "tankers": [], + "frontline_units": [ + "BMP-2", + "BMP-3", + "BTR-80", + "M1043 HMMWV (M2 HMG)", + "T-72B with Kontakt-1 ERA", + "T-80UD", + "[CH] BTR-4 IFV", + "[CH] BRDM-2L1 ARV", + "[CH] Kozak-5 APC", + "[CH] KrAZ Spartan APC", + "[CH] T-64BV MBT", + "[CH] T-84 Oplot-M MBT" + ], + "artillery_units": [], + "logistics_units": [ + "LUV UAZ-469 Jeep", + "Truck Ural-375", + "[CH] KrAZ-6322 Truck" + ], + "infantry_units": [ + "Infantry AK-74 Rus", + "MANPADS SA-18 Igla-S \"Grouse\"", + "Paratrooper AKS", + "Paratrooper RPG-16", + "[CH] Alligator Sniper AMR", + "[CH] Stugna-P ATGM" + ], + "missiles": [], + "preset_groups": [ + "SA-5/S-200", + "SA-3/S-125", + "SA-6", + "SA-11", + "SA-10/S-300PS", + "SA-17", + "SA-20/S-300PMU-1", + "Hawk", + "Patriot", + "NASAMS AIM-120C" + ], + "naval_units": [], + "air_defense_units": [ + "SAM SA-10 S-300 \"Grumble\" Big Bird SR", + "SAM SA-8 Osa \"Gecko\" TEL", + "SA-9 Strela", + "SA-13 Gopher (9K35 Strela-10M3)", + "SA-15 Tor", + "SA-19 Grison (2K22 Tunguska)", + "ZSU-23-4 Shilka", + "M1097 Heavy HMMWV Avenger" + ], + "requirements": { + "Currenthill Ukraine Asset Pack": "https://www.currenthill.com/ukraine" + }, + "has_jtac": true, + "jtac_unit": "MQ-9 Reaper", + "unrestricted_satnav": true +} \ No newline at end of file diff --git a/resources/ui/units/aircrafts/banners/CH_Su-27P1M.jpg b/resources/ui/units/aircrafts/banners/CH_Su-27P1M.jpg new file mode 100644 index 00000000..cdcbeca1 Binary files /dev/null and b/resources/ui/units/aircrafts/banners/CH_Su-27P1M.jpg differ diff --git a/resources/ui/units/aircrafts/banners/MiG-29MU2.jpg b/resources/ui/units/aircrafts/banners/MiG-29MU2.jpg new file mode 100644 index 00000000..5a1cf740 Binary files /dev/null and b/resources/ui/units/aircrafts/banners/MiG-29MU2.jpg differ diff --git a/resources/ui/units/aircrafts/banners/Su-24MU.jpg b/resources/ui/units/aircrafts/banners/Su-24MU.jpg new file mode 100644 index 00000000..5ed546f3 Binary files /dev/null and b/resources/ui/units/aircrafts/banners/Su-24MU.jpg differ diff --git a/resources/ui/units/aircrafts/banners/VSN_MirageIIIC_24.jpg b/resources/ui/units/aircrafts/banners/VSN_MirageIIIC_24.jpg new file mode 100644 index 00000000..2468d9ba Binary files /dev/null and b/resources/ui/units/aircrafts/banners/VSN_MirageIIIC_24.jpg differ diff --git a/resources/ui/units/aircrafts/banners/VSN_MirageIIIC_AG_24.jpg b/resources/ui/units/aircrafts/banners/VSN_MirageIIIC_AG_24.jpg new file mode 100644 index 00000000..2468d9ba Binary files /dev/null and b/resources/ui/units/aircrafts/banners/VSN_MirageIIIC_AG_24.jpg differ diff --git a/resources/ui/units/aircrafts/banners/VSN_MirageIIIS_24.jpg b/resources/ui/units/aircrafts/banners/VSN_MirageIIIS_24.jpg new file mode 100644 index 00000000..bf2b6d67 Binary files /dev/null and b/resources/ui/units/aircrafts/banners/VSN_MirageIIIS_24.jpg differ diff --git a/resources/ui/units/aircrafts/icons/CH_Su-27P1M_24.jpg b/resources/ui/units/aircrafts/icons/CH_Su-27P1M_24.jpg new file mode 100644 index 00000000..7ce6b045 Binary files /dev/null and b/resources/ui/units/aircrafts/icons/CH_Su-27P1M_24.jpg differ diff --git a/resources/ui/units/aircrafts/icons/MiG-29MU2_24.jpg b/resources/ui/units/aircrafts/icons/MiG-29MU2_24.jpg new file mode 100644 index 00000000..32c2c425 Binary files /dev/null and b/resources/ui/units/aircrafts/icons/MiG-29MU2_24.jpg differ diff --git a/resources/ui/units/aircrafts/icons/Su-24MU_24.jpg b/resources/ui/units/aircrafts/icons/Su-24MU_24.jpg new file mode 100644 index 00000000..94457607 Binary files /dev/null and b/resources/ui/units/aircrafts/icons/Su-24MU_24.jpg differ diff --git a/resources/ui/units/aircrafts/icons/VSN_MirageIIIC_24.jpg b/resources/ui/units/aircrafts/icons/VSN_MirageIIIC_24.jpg new file mode 100644 index 00000000..04a15d4b Binary files /dev/null and b/resources/ui/units/aircrafts/icons/VSN_MirageIIIC_24.jpg differ diff --git a/resources/ui/units/aircrafts/icons/VSN_MirageIIIC_AG_24.jpg b/resources/ui/units/aircrafts/icons/VSN_MirageIIIC_AG_24.jpg new file mode 100644 index 00000000..4aee37c5 Binary files /dev/null and b/resources/ui/units/aircrafts/icons/VSN_MirageIIIC_AG_24.jpg differ diff --git a/resources/ui/units/aircrafts/icons/VSN_MirageIIIS_24.jpg b/resources/ui/units/aircrafts/icons/VSN_MirageIIIS_24.jpg new file mode 100644 index 00000000..b9e2d56a Binary files /dev/null and b/resources/ui/units/aircrafts/icons/VSN_MirageIIIS_24.jpg differ diff --git a/resources/units/aircraft/CH_Su-27P1M.yaml b/resources/units/aircraft/CH_Su-27P1M.yaml new file mode 100644 index 00000000..2daa7f1a --- /dev/null +++ b/resources/units/aircraft/CH_Su-27P1M.yaml @@ -0,0 +1,35 @@ +description: + The Su-27, NATO codename Flanker, is one of the pillars of modern-day + Russian combat aviation. Built to counter the American F-15 Eagle, the Flanker is + a twin-engine, supersonic, highly manoeuvrable air superiority fighter. The Flanker + is equally capable of engaging targets well beyond visual range as it is in a dogfight + given its amazing slow speed and high angle attack manoeuvrability. Using its radar + and stealthy infrared search and track system, the Flanker can employ a wide array + of radar and infrared guided missiles. The Flanker also includes a helmet-mounted + sight that allows you to simply look at a target to lock it up! In addition to its + powerful air-to-air capabilities, the Flanker can also be armed with bombs and unguided + rockets to fulfil a secondary ground attack role. +introduced: 1985 +manufacturer: Sukhoi +origin: USSR/Russia +price: 18 +role: Air-Superiority Fighter +max_range: 300 +default_livery: Air Force Standard +variants: + "[CH] Su-27P1M": {} +kneeboard_units: "metric" +tasks: + BARCAP: 480 + BAI: 650 + CAS: 650 + DEAD: 420 + Escort: 480 + Fighter sweep: 480 + Intercept: 480 + OCA/Runway: 440 + OCA/Aircraft: 440 + SEAD: 330 + SEAD Escort: 330 + Strike: 440 + TARCAP: 480 diff --git a/resources/units/aircraft/MiG-29MU2.yaml b/resources/units/aircraft/MiG-29MU2.yaml new file mode 100644 index 00000000..3c1c4ba7 --- /dev/null +++ b/resources/units/aircraft/MiG-29MU2.yaml @@ -0,0 +1,45 @@ +description: + 'The MiG-29 "Fulcrum" is a Russian-designed, twin-engine, supersonic + fighter. First operational in the early 1980s, the Fulcrum is a "light weight" fighter, + comparable to the American F/A-18 Hornet and F-16. Designed to work in conjunction + with the larger Su-27 Flanker, the MiG-29 is armed with an internal 30mm cannon + and both infrared and radar guided air-to-air missiles. For air-to-ground tasks, + the MiG-29 can be armed with a large array of unguided bombs and rockets. + + + In addition to a sophisticated pulse doppler radar, the MiG-29 is also equipped + with a passive Infrared Search and Track (IRST) sensor that allows the Fulcrum to + detect and target enemy aircraft just based on target infrared emissions. This allows + the MiG-29 to make stealthy attacks with no warning! + + + The Fulcrum is a highly-maneuverable fighter in a dogfight, and when paired with + the helmet mounted sight and the AA-11 "Archer" air-to-air missile, it is a very + lethal adversary. + + + The MiG-29 has also been widely exported and has served in many countries that include + Germany, Iran, Ukraine, and Poland.' +introduced: 1993 +manufacturer: Mikoyan +origin: USSR/Russia +price: 18 +role: Multirole Fighter +max_range: 150 +variants: + "[CH] MiG-29MU2": {} +kneeboard_units: "metric" +tasks: + BAI: 540 + BARCAP: 380 + CAS: 540 + DEAD: 380 + Escort: 380 + Fighter sweep: 380 + Intercept: 380 + OCA/Aircraft: 540 + OCA/Runway: 420 + SEAD: 420 + SEAD Escort: 420 + Strike: 420 + TARCAP: 380 diff --git a/resources/units/aircraft/Su-24MU.yaml b/resources/units/aircraft/Su-24MU.yaml new file mode 100644 index 00000000..ed8b0608 --- /dev/null +++ b/resources/units/aircraft/Su-24MU.yaml @@ -0,0 +1,24 @@ +description: + "The Sukhoi Su-24 (NATO reporting name: Fencer) is a supersonic, all-weather + attack aircraft developed in the Soviet Union. The aircraft has a variable-sweep + wing, twin-engines and a side-by-side seating arrangement for its crew of two. It + was the first of the USSR's aircraft to carry an integrated digital navigation/attack + system. It remains in service with the Russian Air Force, Syrian Air Force, Ukrainian + Air Force, Azerbaijan Air Force , Iraqi Air Force and various air forces to which + it was exported." +introduced: 1983 +manufacturer: Sukhoi +origin: USSR/Russia +price: 14 +role: Attack +max_range: 200 +default_livery: af standard +variants: + "[CH] Su-24MU": {} +tasks: + BAI: 610 + CAS: 610 + DEAD: 330 + OCA/Aircraft: 610 + OCA/Runway: 510 + Strike: 510 \ No newline at end of file diff --git a/resources/units/aircraft/VSN_MirageIIIC.yaml b/resources/units/aircraft/VSN_MirageIIIC.yaml new file mode 100644 index 00000000..e2d0a7e2 --- /dev/null +++ b/resources/units/aircraft/VSN_MirageIIIC.yaml @@ -0,0 +1,21 @@ +description: + The Dassault Mirage III is a family of single/dual-seat, single-engine, fighter aircraft + developed and manufactured by French aircraft company Dassault Aviation. It was the first + Western European combat aircraft to exceed Mach 2 in horizontal flight, a feat which was + achieved on 24 October 1958. + This is the interceptor variant. +introduced: 1961 +manufacturer: Dassault +origin: France +price: 12 +role: Interceptor +max_range: 150 +gunfighter: true +variants: + Mirage IIIB/C: {} +tasks: + BARCAP: 210 + Escort: 210 + Fighter sweep: 210 + Intercept: 210 + TARCAP: 210 diff --git a/resources/units/aircraft/VSN_MirageIIIC_AG.yaml b/resources/units/aircraft/VSN_MirageIIIC_AG.yaml new file mode 100644 index 00000000..cf41a6a2 --- /dev/null +++ b/resources/units/aircraft/VSN_MirageIIIC_AG.yaml @@ -0,0 +1,22 @@ +description: + The Dassault Mirage III is a family of single/dual-seat, single-engine, fighter aircraft + developed and manufactured by French aircraft company Dassault Aviation. It was the first + Western European combat aircraft to exceed Mach 2 in horizontal flight, a feat which was + achieved on 24 October 1958. + This is the ground attack variant. +introduced: 1961 +manufacturer: Dassault +origin: France +price: 12 +role: Fighter Bomber +max_range: 150 +gunfighter: true +variants: + Mirage IIIB/C A/G: {} +tasks: + BAI: 210 + CAS: 210 + DEAD: 210 + OCA/Aircraft: 210 + OCA/Runway: 190 + Strike: 210 \ No newline at end of file diff --git a/resources/units/aircraft/VSN_MirageIIIS.yaml b/resources/units/aircraft/VSN_MirageIIIS.yaml new file mode 100644 index 00000000..be96ded5 --- /dev/null +++ b/resources/units/aircraft/VSN_MirageIIIS.yaml @@ -0,0 +1,27 @@ +description: + The Dassault Mirage III is a family of single/dual-seat, single-engine, fighter aircraft + developed and manufactured by French aircraft company Dassault Aviation. It was the first + Western European combat aircraft to exceed Mach 2 in horizontal flight, a feat which was + achieved on 24 October 1958. + The Mirage IIIS is the Swiss attack, interception and reconnaissance variant. +introduced: 1967 +manufacturer: Dassault +origin: France +price: 12 +role: Multirole Fighter +max_range: 150 +gunfighter: true +variants: + Mirage IIIS: {} +tasks: + BARCAP: 220 + Escort: 220 + Fighter sweep: 220 + Intercept: 220 + TARCAP: 220 + BAI: 220 + CAS: 220 + DEAD: 220 + OCA/Aircraft: 220 + OCA/Runway: 200 + Strike: 220 \ No newline at end of file diff --git a/resources/units/ground_units/BTR-4.yaml b/resources/units/ground_units/BTR-4.yaml new file mode 100644 index 00000000..66fe019d --- /dev/null +++ b/resources/units/ground_units/BTR-4.yaml @@ -0,0 +1,12 @@ +class: IFV +description: "The BTR-4 Bucephalus (Ukrainian: \xD0\x91\xD0\xA2\xD0\xA0\x2D\x34\x20\xC2\xAB\xD0\x91\xD1\x83\xD1\x86\xD0\xB5\xD1\x84\xD0\xB0\xD0\xBB\xC2\xBB, + romanized: Butsefal, abbreviation of \xD0\x91\xD1\x80\xD0\xBE\xD0\xBD\xD0\xB5\xD1\x82\xD1\x80\xD0\xB0\xD0\xBD\xD1\x81\xD0\xBF\xD0\xBE\xD1\x80\xD1\x82\xD0\xB5\xD1\x80\x2C\x20\x42\x72\x6F\x6E\x65\x74\x72\x61\x6E\x73\x70\x6F\x72\x74\x65\x72, + armoured transporter) is an amphibious 8x8 wheeled infantry fighting vehicle (IFV) designed in Ukraine + by the Kharkiv Morozov Machine Building Design Bureau (SOE KMDB)." +introduced: 2014 +manufacturer: Kharkiv Morozov Machine Building Design Bureau +origin: Ukraine +price: 12 +role: Infantry Fighting Vehicle +variants: + "[CH] BTR-4 IFV": {} diff --git a/resources/units/ground_units/CH_Alligator_Sniper.yaml b/resources/units/ground_units/CH_Alligator_Sniper.yaml new file mode 100644 index 00000000..850c9cf8 --- /dev/null +++ b/resources/units/ground_units/CH_Alligator_Sniper.yaml @@ -0,0 +1,5 @@ +class: Infantry +price: 0 +spawn_weight: 1 +variants: + "[CH] Alligator Sniper AMR": null diff --git a/resources/units/ground_units/CH_BRDM2L1.yaml b/resources/units/ground_units/CH_BRDM2L1.yaml new file mode 100644 index 00000000..daf2a3b0 --- /dev/null +++ b/resources/units/ground_units/CH_BRDM2L1.yaml @@ -0,0 +1,16 @@ +class: Recon +description: "The PT-76 is a Soviet amphibious light tank that was introduced in the\ + \ early 1950s and soon became the standard reconnaissance tank of the Soviet Army\ + \ and the other Warsaw Pact armed forces. It was widely exported to other friendly\ + \ states, like India, Iraq, Syria, North Korea and North Vietnam. Overall, some\ + \ 25 countries used the PT-76. The tank's full name is Floating Tank\u201376 (\u043F\ + \u043B\u0430\u0432\u0430\u044E\u0449\u0438\u0439 \u0442\u0430\u043D\u043A, plavayushchiy\ + \ tank, or \u041F\u0422-76). 76 stands for the caliber of the main armament: the\ + \ 76.2 mm D-56T series rifled tank gun." +introduced: 1962 +manufacturer: GAZ +origin: USSR/Russia +price: 6 +role: Amphibious Armoured Car +variants: + "[CH] BRDM-2L1 ARV": {} diff --git a/resources/units/ground_units/CH_Kozak5.yaml b/resources/units/ground_units/CH_Kozak5.yaml new file mode 100644 index 00000000..95a82373 --- /dev/null +++ b/resources/units/ground_units/CH_Kozak5.yaml @@ -0,0 +1,4 @@ +class: IFV +price: 5 +variants: + "[CH] Kozak-5 APC": null \ No newline at end of file diff --git a/resources/units/ground_units/CH_KrAZ6322.yaml b/resources/units/ground_units/CH_KrAZ6322.yaml new file mode 100644 index 00000000..a2c0f697 --- /dev/null +++ b/resources/units/ground_units/CH_KrAZ6322.yaml @@ -0,0 +1,11 @@ +class: Logistics +description: "The KrAZ-6322 is a Ukrainian off-road six-wheel drive truck intended for extreme + conditions. It has been produced since 1994 and is manufactured at the KrAZ factory in Kremenchuk, + Ukraine. It was first presented at the 1994 defence industry trade show in Kyiv." +introduced: 1994 +manufacturer: KrAZ +origin: Ukraine +price: 3 +role: Tactical Transport Vehicle +variants: + "[CH] KrAZ-6322 Truck": {} diff --git a/resources/units/ground_units/CH_KrAZSpartan.yaml b/resources/units/ground_units/CH_KrAZSpartan.yaml new file mode 100644 index 00000000..641062e9 --- /dev/null +++ b/resources/units/ground_units/CH_KrAZSpartan.yaml @@ -0,0 +1,10 @@ +class: IFV +description: "The STREIT Group Spartan is an Infantry mobility vehicle designed and built by + STREIT Group; it is also license produced by KrAZ (Kremenchuk Automobile Plant) in Kremenchuk, Ukraine." +introduced: 2014 +manufacturer: STREIT Group +origin: Ukraine +price: 10 +role: Infantry Fighting Vehicle +variants: + "[CH] KrAZ Spartan APC": {} diff --git a/resources/units/ground_units/CH_Stugna_P.yaml b/resources/units/ground_units/CH_Stugna_P.yaml new file mode 100644 index 00000000..8c1ed49e --- /dev/null +++ b/resources/units/ground_units/CH_Stugna_P.yaml @@ -0,0 +1,5 @@ +class: Infantry +price: 0 +spawn_weight: 2 +variants: + "[CH] Stugna-P ATGM": null diff --git a/resources/units/ground_units/CH_T64BV.yaml b/resources/units/ground_units/CH_T64BV.yaml new file mode 100644 index 00000000..ef58318b --- /dev/null +++ b/resources/units/ground_units/CH_T64BV.yaml @@ -0,0 +1,17 @@ +class: Tank +description: The T-64 is a Soviet second-generation main battle tank, designed by + Kharkiv Morozov Machine Building Design Bureau in Ukraine, introduced in the early + 1960s. It was a more advanced counterpart to the T-62; the T-64 served in tank + divisions, while the T-62 supported infantry in motorized rifle divisions. It + introduced a number of advanced features including composite armour, a compact + engine and transmission, and a smoothbore 125-mm gun equipped with an autoloader + to allow the crew to be reduced to three so the tank could be smaller and lighter. + In spite of being armed and armoured like a heavy tank, the T-64 weighed only 38 + tonnes (42 short tons; 37 long tons). +introduced: 1966 +manufacturer: Kharkiv +origin: USSR/Russia +price: 19 +role: Main Battle Tank +variants: + "[CH] T-64BV MBT": {} diff --git a/resources/units/ground_units/T84_OplotM.yaml b/resources/units/ground_units/T84_OplotM.yaml new file mode 100644 index 00000000..6d98d4e1 --- /dev/null +++ b/resources/units/ground_units/T84_OplotM.yaml @@ -0,0 +1,13 @@ +class: Tank +description: "The T-84 is a Ukrainian main battle tank (MBT), based on the Soviet T-80 MBT + introduced in 1976, specifically the diesel engine version: T-80UD. The T-84 was first built in + 1994 and entered service in the Ukrainian Armed Forces in 1999. Its high-performance opposed-piston + engine makes it a fast tank, comparable to other modern MBTs with a power-to-weight ratio of about + 26 horsepower per tonne (19 kW/t)." +introduced: 1999 +manufacturer: Malyshev Factory +origin: Ukraine +price: 25 +role: Main Battle Tank +variants: + "[CH] T-84 Oplot-M MBT": {}