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 8873328d..d1645a43 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: diff --git a/game/theater/start_generator.py b/game/theater/start_generator.py index a096e255..d151718c 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 diff --git a/pydcs_extensions/__init__.py b/pydcs_extensions/__init__.py index 75092635..a086aa4f 100644 --- a/pydcs_extensions/__init__.py +++ b/pydcs_extensions/__init__.py @@ -22,6 +22,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 * 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/qt_ui/windows/newgame/QNewGameWizard.py b/qt_ui/windows/newgame/QNewGameWizard.py index b1b01403..a3bfdf7a 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"), diff --git a/qt_ui/windows/newgame/WizardPages/QGeneratorSettings.py b/qt_ui/windows/newgame/WizardPages/QGeneratorSettings.py index 7ee87666..733d954a 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() @@ -215,6 +217,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), @@ -283,6 +286,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)) 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/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/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/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