diff --git a/changelog.md b/changelog.md index 493d73ec..7af3f103 100644 --- a/changelog.md +++ b/changelog.md @@ -6,6 +6,7 @@ BAI/ANTISHIP/DEAD/STRIKE/BARCAP/CAS/OCA/AIR-ASSAULT (main) missions * **[Modding]** Support for F-15D 'Baz' mod version 1.0 * **[Modding]** Support for Su-30 mod version 2.01B +* **[Modding]** Support for A-6A Intruder version 2.7.5.01 * **[Modding]** Support for F-4B Phantom II mod version v2.7.10.02, patch 2022.10.02 * **[Modding]** Support for F-100 Super Sabre mod versions v2.7.18.01 & 2.7.18.30765 and patches 30.09.22 & 09.10.22 * **[Modding]** Support for F-105 mod version 2.7.12.23x diff --git a/game/ato/ai_flight_planner_db.py b/game/ato/ai_flight_planner_db.py index a16f0cc1..ebb9b260 100644 --- a/game/ato/ai_flight_planner_db.py +++ b/game/ato/ai_flight_planner_db.py @@ -121,6 +121,7 @@ from dcs.unittype import FlyingType from game.dcs.aircrafttype import AircraftType from pydcs_extensions.a4ec.a4ec import A_4E_C +from pydcs_extensions.a6a.a6a import VSN_A6A from pydcs_extensions.f100.f100 import VSN_F100 from pydcs_extensions.f104.f104 import VSN_F104C, VSN_F104G, VSN_F104S, VSN_F104S_AG from pydcs_extensions.f105.f105 import VSN_F105D, VSN_F105G @@ -239,7 +240,6 @@ CAS_CAPABLE = [ Su_17M4, Su_33, F_4E, - VSN_F4B, S_3B, Su_30, Su_30MKA, @@ -279,15 +279,8 @@ CAS_CAPABLE = [ C_101CC, L_39ZA, UH_1H, - VSN_F105G, - VSN_F105D, - VSN_F104S_AG, - VSN_F104G, - VSN_F104C, - VSN_F100, A_20G, Ju_88A4, - VSN_F84G, P_47D_40, P_47D_30bl1, P_47D_30, @@ -303,6 +296,15 @@ CAS_CAPABLE = [ WingLoong_I, MQ_9_Reaper, RQ_1A_Predator, + VSN_A6A, + VSN_F100, + VSN_F105G, + VSN_F105D, + VSN_F104S_AG, + VSN_F104G, + VSN_F104C, + VSN_F4B, + VSN_F84G, ] @@ -348,12 +350,6 @@ DEAD_CAPABLE = SEAD_CAPABLE + [ H_6J, A_20G, Ju_88A4, - VSN_F105D, - VSN_F104S_AG, - VSN_F104G, - VSN_F104C, - VSN_F100, - VSN_F84G, P_47D_40, P_47D_30bl1, P_47D_30, @@ -365,6 +361,13 @@ DEAD_CAPABLE = SEAD_CAPABLE + [ Bf_109K_4, FW_190D9, FW_190A8, + VSN_A6A, + VSN_F105D, + VSN_F104S_AG, + VSN_F104G, + VSN_F104C, + VSN_F100, + VSN_F84G, ] @@ -407,7 +410,6 @@ STRIKE_CAPABLE = [ MiG_29G, MiG_29A, F_4E, - VSN_F4B, A_10C_2, A_10C, S_3B, @@ -422,8 +424,6 @@ STRIKE_CAPABLE = [ Mirage_F1M_EE, Mirage_F1CT, MiG_27K, - VSN_F105G, - VSN_F105D, MiG_21Bis, MiG_15bis, F_5E_3, @@ -433,11 +433,6 @@ STRIKE_CAPABLE = [ B_17G, A_20G, Ju_88A4, - VSN_F104S_AG, - VSN_F104G, - VSN_F104C, - VSN_F100, - VSN_F84G, P_47D_40, P_47D_30bl1, P_47D_30, @@ -449,6 +444,15 @@ STRIKE_CAPABLE = [ Bf_109K_4, FW_190D9, FW_190A8, + VSN_A6A, + VSN_F100, + VSN_F104S_AG, + VSN_F104G, + VSN_F104C, + VSN_F105G, + VSN_F105D, + VSN_F4B, + VSN_F84G, ] @@ -521,7 +525,6 @@ RUNWAY_ATTACK_CAPABLE = [ MiG_29G, MiG_29A, F_4E, - VSN_F4B, A_10C_2, A_10C, S_3B, @@ -536,8 +539,6 @@ RUNWAY_ATTACK_CAPABLE = [ Mirage_F1M_EE, Mirage_F1CT, MiG_27K, - VSN_F105G, - VSN_F105D, MiG_21Bis, MiG_15bis, F_5E_3, @@ -547,10 +548,6 @@ RUNWAY_ATTACK_CAPABLE = [ B_17G, A_20G, Ju_88A4, - VSN_F104S_AG, - VSN_F104G, - VSN_F104C, - VSN_F100, P_47D_40, P_47D_30bl1, P_47D_30, @@ -562,6 +559,14 @@ RUNWAY_ATTACK_CAPABLE = [ Bf_109K_4, FW_190D9, FW_190A8, + VSN_A6A, + VSN_F105G, + VSN_F105D, + VSN_F104S_AG, + VSN_F104G, + VSN_F104C, + VSN_F100, + VSN_F4B, ] # For any aircraft that isn't necessarily directly involved in strike diff --git a/game/factions/faction.py b/game/factions/faction.py index 94805c15..477ca348 100644 --- a/game/factions/faction.py +++ b/game/factions/faction.py @@ -320,6 +320,8 @@ class Faction: if not mod_settings.f105_thunderchief: self.remove_aircraft("VSN_F105D") self.remove_aircraft("VSN_F105G") + if not mod_settings.a6a_intruder: + self.remove_aircraft("VSN_A6A") if not mod_settings.jas39_gripen: self.remove_aircraft("JAS39Gripen") self.remove_aircraft("JAS39Gripen_AG") diff --git a/game/theater/start_generator.py b/game/theater/start_generator.py index 3c0b5bc8..5248320a 100644 --- a/game/theater/start_generator.py +++ b/game/theater/start_generator.py @@ -52,6 +52,7 @@ class GeneratorSettings: @dataclass class ModSettings: a4_skyhawk: bool = False + a6a_intruder: bool = False f4b_phantom: bool = False f15d_baz: bool = False f22_raptor: bool = False diff --git a/pydcs_extensions/__init__.py b/pydcs_extensions/__init__.py index 02a5183e..8182fb3e 100644 --- a/pydcs_extensions/__init__.py +++ b/pydcs_extensions/__init__.py @@ -1,4 +1,5 @@ from .a4ec import * +from .a6a import * from .f4b import * from .f84g import * from .f100 import * diff --git a/pydcs_extensions/a6a/a6a.py b/pydcs_extensions/a6a/a6a.py new file mode 100644 index 00000000..f2120ee6 --- /dev/null +++ b/pydcs_extensions/a6a/a6a.py @@ -0,0 +1,257 @@ +from typing import Set + +from dcs import task +from dcs.planes import PlaneType +from dcs.weapons_data import Weapons +from dcs.liveries_scanner import Liveries + +from game.modsupport import planemod + + +@planemod +class VSN_A6A(PlaneType): + id = "VSN_A6A" + flyable = True + group_size_max = 1 + height = 4.57 + width = 10.15 + length = 17.98 + fuel_max = 6994 + max_speed = 1047.96 + chaff = 30 + flare = 30 + charge_total = 60 + chaff_charge_size = 1 + flare_charge_size = 1 + eplrs = True + radio_frequency = 250.5 + + livery_name = "VSN_A6A" # from type + Liveries = Liveries()[livery_name] + + class Pylon1: + F_5_275Gal_Fuel_tank = (1, Weapons.F_5_275Gal_Fuel_tank) + AIM_9M_Sidewinder_IR_AAM = (1, Weapons.AIM_9M_Sidewinder_IR_AAM) + AIM_9X_Sidewinder_IR_AAM = (1, Weapons.AIM_9X_Sidewinder_IR_AAM) + Mk_82___500lb_GP_Bomb_LD = (1, Weapons.Mk_82___500lb_GP_Bomb_LD) + Mk_83___1000lb_GP_Bomb_LD = (1, Weapons.Mk_83___1000lb_GP_Bomb_LD) + Mk_84___2000lb_GP_Bomb_LD = (1, Weapons.Mk_84___2000lb_GP_Bomb_LD) + BRU_42_with_3_x_Mk_82___500lb_GP_Bombs_LD = ( + 1, + Weapons.BRU_42_with_3_x_Mk_82___500lb_GP_Bombs_LD, + ) + BRU_42_with_3_x_Mk_82_AIR_Ballute___500lb_GP_Bombs_HD = ( + 1, + Weapons.BRU_42_with_3_x_Mk_82_AIR_Ballute___500lb_GP_Bombs_HD, + ) + LAU_10_pod___4_x_127mm_ZUNI__UnGd_Rkts_Mk71__HE_FRAG = ( + 1, + Weapons.LAU_10_pod___4_x_127mm_ZUNI__UnGd_Rkts_Mk71__HE_FRAG, + ) + LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_Mk5__HEAT = ( + 1, + Weapons.LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_Mk5__HEAT, + ) + LAU_61_pod___19_x_2_75_Hydra__UnGd_Rkts_M151__HE = ( + 1, + Weapons.LAU_61_pod___19_x_2_75_Hydra__UnGd_Rkts_M151__HE, + ) + BRU_33_with_2_x_LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_M151__HE = ( + 1, + Weapons.BRU_33_with_2_x_LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_M151__HE, + ) + BRU_33_with_2_x_LAU_61_pod___19_x_2_75_Hydra__UnGd_Rkts_M151__HE = ( + 1, + Weapons.BRU_33_with_2_x_LAU_61_pod___19_x_2_75_Hydra__UnGd_Rkts_M151__HE, + ) + BRU_33_with_2_x_LAU_10_pod___4_x_127mm_ZUNI__UnGd_Rkts_Mk71__HE_FRAG = ( + 1, + Weapons.BRU_33_with_2_x_LAU_10_pod___4_x_127mm_ZUNI__UnGd_Rkts_Mk71__HE_FRAG, + ) + + # ERRR {ac94375e-aa45-491e-858b-a8b93ee8b959} + # ERRR + + class Pylon2: + F_5_275Gal_Fuel_tank = (2, Weapons.F_5_275Gal_Fuel_tank) + AIM_9M_Sidewinder_IR_AAM = (2, Weapons.AIM_9M_Sidewinder_IR_AAM) + AIM_9X_Sidewinder_IR_AAM = (2, Weapons.AIM_9X_Sidewinder_IR_AAM) + Mk_82___500lb_GP_Bomb_LD = (2, Weapons.Mk_82___500lb_GP_Bomb_LD) + Mk_83___1000lb_GP_Bomb_LD = (2, Weapons.Mk_83___1000lb_GP_Bomb_LD) + Mk_84___2000lb_GP_Bomb_LD = (2, Weapons.Mk_84___2000lb_GP_Bomb_LD) + MER6_with_6_x_Mk_82___500lb_GP_Bombs_LD = ( + 2, + Weapons.MER6_with_6_x_Mk_82___500lb_GP_Bombs_LD, + ) + MER6_with_6_x_Mk_20_Rockeye___490lbs_CBUs__247_x_HEAT_Bomblets = ( + 2, + Weapons.MER6_with_6_x_Mk_20_Rockeye___490lbs_CBUs__247_x_HEAT_Bomblets, + ) + BRU_42_with_3_x_Mk_82___500lb_GP_Bombs_LD = ( + 2, + Weapons.BRU_42_with_3_x_Mk_82___500lb_GP_Bombs_LD, + ) + BRU_42_with_3_x_Mk_82_AIR_Ballute___500lb_GP_Bombs_HD = ( + 2, + Weapons.BRU_42_with_3_x_Mk_82_AIR_Ballute___500lb_GP_Bombs_HD, + ) + LAU_10_pod___4_x_127mm_ZUNI__UnGd_Rkts_Mk71__HE_FRAG = ( + 2, + Weapons.LAU_10_pod___4_x_127mm_ZUNI__UnGd_Rkts_Mk71__HE_FRAG, + ) + LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_Mk5__HEAT = ( + 2, + Weapons.LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_Mk5__HEAT, + ) + LAU_61_pod___19_x_2_75_Hydra__UnGd_Rkts_M151__HE = ( + 2, + Weapons.LAU_61_pod___19_x_2_75_Hydra__UnGd_Rkts_M151__HE, + ) + BRU_33_with_2_x_LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_M151__HE = ( + 2, + Weapons.BRU_33_with_2_x_LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_M151__HE, + ) + BRU_33_with_2_x_LAU_61_pod___19_x_2_75_Hydra__UnGd_Rkts_M151__HE = ( + 2, + Weapons.BRU_33_with_2_x_LAU_61_pod___19_x_2_75_Hydra__UnGd_Rkts_M151__HE, + ) + BRU_33_with_2_x_LAU_10_pod___4_x_127mm_ZUNI__UnGd_Rkts_Mk71__HE_FRAG = ( + 2, + Weapons.BRU_33_with_2_x_LAU_10_pod___4_x_127mm_ZUNI__UnGd_Rkts_Mk71__HE_FRAG, + ) + + # ERRR {ac94375e-aa45-491e-858b-a8b93ee8b959} + # ERRR + + class Pylon3: + F_5_275Gal_Fuel_tank = (3, Weapons.F_5_275Gal_Fuel_tank) + Mk_82___500lb_GP_Bomb_LD = (3, Weapons.Mk_82___500lb_GP_Bomb_LD) + Mk_83___1000lb_GP_Bomb_LD = (3, Weapons.Mk_83___1000lb_GP_Bomb_LD) + Mk_84___2000lb_GP_Bomb_LD = (3, Weapons.Mk_84___2000lb_GP_Bomb_LD) + MER6_with_6_x_Mk_82___500lb_GP_Bombs_LD = ( + 3, + Weapons.MER6_with_6_x_Mk_82___500lb_GP_Bombs_LD, + ) + MER6_with_6_x_Mk_20_Rockeye___490lbs_CBUs__247_x_HEAT_Bomblets = ( + 3, + Weapons.MER6_with_6_x_Mk_20_Rockeye___490lbs_CBUs__247_x_HEAT_Bomblets, + ) + BRU_42_with_3_x_Mk_82___500lb_GP_Bombs_LD = ( + 3, + Weapons.BRU_42_with_3_x_Mk_82___500lb_GP_Bombs_LD, + ) + BRU_42_with_3_x_Mk_82_AIR_Ballute___500lb_GP_Bombs_HD = ( + 3, + Weapons.BRU_42_with_3_x_Mk_82_AIR_Ballute___500lb_GP_Bombs_HD, + ) + + # ERRR {ac94375e-aa45-491e-858b-a8b93ee8b959} + # ERRR + + class Pylon4: + F_5_275Gal_Fuel_tank = (4, Weapons.F_5_275Gal_Fuel_tank) + AIM_9M_Sidewinder_IR_AAM = (4, Weapons.AIM_9M_Sidewinder_IR_AAM) + AIM_9X_Sidewinder_IR_AAM = (4, Weapons.AIM_9X_Sidewinder_IR_AAM) + Mk_82___500lb_GP_Bomb_LD = (4, Weapons.Mk_82___500lb_GP_Bomb_LD) + Mk_83___1000lb_GP_Bomb_LD = (4, Weapons.Mk_83___1000lb_GP_Bomb_LD) + Mk_84___2000lb_GP_Bomb_LD = (4, Weapons.Mk_84___2000lb_GP_Bomb_LD) + MER6_with_6_x_Mk_82___500lb_GP_Bombs_LD = ( + 4, + Weapons.MER6_with_6_x_Mk_82___500lb_GP_Bombs_LD, + ) + MER6_with_6_x_Mk_20_Rockeye___490lbs_CBUs__247_x_HEAT_Bomblets = ( + 4, + Weapons.MER6_with_6_x_Mk_20_Rockeye___490lbs_CBUs__247_x_HEAT_Bomblets, + ) + BRU_42_with_3_x_Mk_82___500lb_GP_Bombs_LD = ( + 4, + Weapons.BRU_42_with_3_x_Mk_82___500lb_GP_Bombs_LD, + ) + BRU_42_with_3_x_Mk_82_AIR_Ballute___500lb_GP_Bombs_HD = ( + 4, + Weapons.BRU_42_with_3_x_Mk_82_AIR_Ballute___500lb_GP_Bombs_HD, + ) + LAU_10_pod___4_x_127mm_ZUNI__UnGd_Rkts_Mk71__HE_FRAG = ( + 4, + Weapons.LAU_10_pod___4_x_127mm_ZUNI__UnGd_Rkts_Mk71__HE_FRAG, + ) + LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_Mk5__HEAT = ( + 4, + Weapons.LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_Mk5__HEAT, + ) + LAU_61_pod___19_x_2_75_Hydra__UnGd_Rkts_M151__HE = ( + 4, + Weapons.LAU_61_pod___19_x_2_75_Hydra__UnGd_Rkts_M151__HE, + ) + BRU_33_with_2_x_LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_M151__HE = ( + 4, + Weapons.BRU_33_with_2_x_LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_M151__HE, + ) + BRU_33_with_2_x_LAU_61_pod___19_x_2_75_Hydra__UnGd_Rkts_M151__HE = ( + 4, + Weapons.BRU_33_with_2_x_LAU_61_pod___19_x_2_75_Hydra__UnGd_Rkts_M151__HE, + ) + BRU_33_with_2_x_LAU_10_pod___4_x_127mm_ZUNI__UnGd_Rkts_Mk71__HE_FRAG = ( + 4, + Weapons.BRU_33_with_2_x_LAU_10_pod___4_x_127mm_ZUNI__UnGd_Rkts_Mk71__HE_FRAG, + ) + + # ERRR {ac94375e-aa45-491e-858b-a8b93ee8b959} + # ERRR + + class Pylon5: + F_5_275Gal_Fuel_tank = (5, Weapons.F_5_275Gal_Fuel_tank) + AIM_9M_Sidewinder_IR_AAM = (5, Weapons.AIM_9M_Sidewinder_IR_AAM) + AIM_9X_Sidewinder_IR_AAM = (5, Weapons.AIM_9X_Sidewinder_IR_AAM) + Mk_82___500lb_GP_Bomb_LD = (5, Weapons.Mk_82___500lb_GP_Bomb_LD) + Mk_83___1000lb_GP_Bomb_LD = (5, Weapons.Mk_83___1000lb_GP_Bomb_LD) + Mk_84___2000lb_GP_Bomb_LD = (5, Weapons.Mk_84___2000lb_GP_Bomb_LD) + BRU_42_with_3_x_Mk_82___500lb_GP_Bombs_LD = ( + 5, + Weapons.BRU_42_with_3_x_Mk_82___500lb_GP_Bombs_LD, + ) + BRU_42_with_3_x_Mk_82_AIR_Ballute___500lb_GP_Bombs_HD = ( + 5, + Weapons.BRU_42_with_3_x_Mk_82_AIR_Ballute___500lb_GP_Bombs_HD, + ) + LAU_10_pod___4_x_127mm_ZUNI__UnGd_Rkts_Mk71__HE_FRAG = ( + 5, + Weapons.LAU_10_pod___4_x_127mm_ZUNI__UnGd_Rkts_Mk71__HE_FRAG, + ) + LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_Mk5__HEAT = ( + 5, + Weapons.LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_Mk5__HEAT, + ) + LAU_61_pod___19_x_2_75_Hydra__UnGd_Rkts_M151__HE = ( + 5, + Weapons.LAU_61_pod___19_x_2_75_Hydra__UnGd_Rkts_M151__HE, + ) + BRU_33_with_2_x_LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_M151__HE = ( + 5, + Weapons.BRU_33_with_2_x_LAU_68_pod___7_x_2_75_Hydra__UnGd_Rkts_M151__HE, + ) + BRU_33_with_2_x_LAU_61_pod___19_x_2_75_Hydra__UnGd_Rkts_M151__HE = ( + 5, + Weapons.BRU_33_with_2_x_LAU_61_pod___19_x_2_75_Hydra__UnGd_Rkts_M151__HE, + ) + BRU_33_with_2_x_LAU_10_pod___4_x_127mm_ZUNI__UnGd_Rkts_Mk71__HE_FRAG = ( + 5, + Weapons.BRU_33_with_2_x_LAU_10_pod___4_x_127mm_ZUNI__UnGd_Rkts_Mk71__HE_FRAG, + ) + + # ERRR {ac94375e-aa45-491e-858b-a8b93ee8b959} + # ERRR + + pylons: Set[int] = {1, 2, 3, 4, 5} + + tasks = [ + task.Escort, + task.Reconnaissance, + task.GroundAttack, + task.CAS, + task.AFAC, + task.RunwayAttack, + task.AntishipStrike, + task.SEAD, + ] + task_default = task.GroundAttack diff --git a/qt_ui/main.py b/qt_ui/main.py index 6d5a2372..ea1cd449 100644 --- a/qt_ui/main.py +++ b/qt_ui/main.py @@ -294,6 +294,7 @@ def create_game( ), ModSettings( a4_skyhawk=False, + a6a_intruder=False, f4b_phantom=False, f22_raptor=False, f84g_thunderjet=False, diff --git a/qt_ui/windows/newgame/QNewGameWizard.py b/qt_ui/windows/newgame/QNewGameWizard.py index abeb7674..fa21e741 100644 --- a/qt_ui/windows/newgame/QNewGameWizard.py +++ b/qt_ui/windows/newgame/QNewGameWizard.py @@ -159,6 +159,7 @@ class NewGameWizard(QtWidgets.QWizard): ) mod_settings = ModSettings( a4_skyhawk=self.field("a4_skyhawk"), + a6a_intruder=self.field("a6a_intruder"), f4b_phantom=self.field("f4b_phantom"), f15d_baz=self.field("f15d_baz"), f22_raptor=self.field("f22_raptor"), @@ -657,6 +658,8 @@ class GeneratorOptions(QtWidgets.QWizardPage): modSettingsGroup = QtWidgets.QGroupBox("Mod Settings") a4_skyhawk = QtWidgets.QCheckBox() self.registerField("a4_skyhawk", a4_skyhawk) + a6a_intruder = QtWidgets.QCheckBox() + self.registerField("a6a_intruder", a6a_intruder) hercules = QtWidgets.QCheckBox() self.registerField("hercules", hercules) uh_60l = QtWidgets.QCheckBox() @@ -698,6 +701,11 @@ class GeneratorOptions(QtWidgets.QWizardPage): ) modLayout.addWidget(a4_skyhawk, modLayout_row, 1) modLayout_row += 1 + modLayout.addWidget( + QtWidgets.QLabel("A-6A Intruder (v2.7.5.01)"), modLayout_row, 0 + ) + modLayout.addWidget(a6a_intruder, modLayout_row, 1) + modLayout_row += 1 modLayout.addWidget( QtWidgets.QLabel("F-4B Phantom II (v2.7.10.02 EFM + Patch 2022.10.02)"), modLayout_row, @@ -711,6 +719,9 @@ class GeneratorOptions(QtWidgets.QWizardPage): modLayout.addWidget(QtWidgets.QLabel("F-22A Raptor"), modLayout_row, 0) modLayout.addWidget(f22_raptor, modLayout_row, 1) modLayout_row += 1 + # Section break here for readability + modLayout.addWidget(QtWidgets.QWidget(), modLayout_row, 0) + modLayout_row += 1 modLayout.addWidget( QtWidgets.QLabel("F-84G Thunderjet (version 2.5.7.01)"), modLayout_row, @@ -718,9 +729,6 @@ class GeneratorOptions(QtWidgets.QWizardPage): ) modLayout.addWidget(f84g_thunderjet, modLayout_row, 1) modLayout_row += 1 - # Section break here for readability - modLayout.addWidget(QtWidgets.QWidget(), modLayout_row, 0) - modLayout_row += 1 modLayout.addWidget( QtWidgets.QLabel("F-100 Super Sabre (version 2.7.18.30765 patch 09.10.22)"), modLayout_row, @@ -747,14 +755,14 @@ class GeneratorOptions(QtWidgets.QWizardPage): ) modLayout.addWidget(hercules, modLayout_row, 1) modLayout_row += 1 + # Section break here for readability + modLayout.addWidget(QtWidgets.QWidget(), modLayout_row, 0) + modLayout_row += 1 modLayout.addWidget( QtWidgets.QLabel("UH-60L Black Hawk (version 1.3.1)"), modLayout_row, 0 ) modLayout.addWidget(uh_60l, modLayout_row, 1) modLayout_row += 1 - # Section break here for readability - modLayout.addWidget(QtWidgets.QWidget(), modLayout_row, 0) - modLayout_row += 1 modLayout.addWidget( QtWidgets.QLabel("JAS 39 Gripen (version v1.8.0-beta)"), modLayout_row, 0 ) @@ -770,9 +778,11 @@ class GeneratorOptions(QtWidgets.QWizardPage): modLayout_row += 1 modLayout.addWidget(QtWidgets.QLabel("Frenchpack"), modLayout_row, 0) modLayout.addWidget(frenchpack, modLayout_row, 1) - modLayout_row += 1 - modLayout.addWidget(QtWidgets.QLabel("High Digit SAMs"), modLayout_row, 0) - modLayout.addWidget(high_digit_sams, modLayout_row, 1) + + # new column starts here + modLayout_row = 1 + modLayout.addWidget(QtWidgets.QLabel("High Digit SAMs"), modLayout_row, 2) + modLayout.addWidget(high_digit_sams, modLayout_row, 3) modSettingsGroup.setLayout(modLayout) mlayout = QVBoxLayout() diff --git a/resources/customized_payloads/VSN_A6A.lua b/resources/customized_payloads/VSN_A6A.lua new file mode 100644 index 00000000..e3e5a40d --- /dev/null +++ b/resources/customized_payloads/VSN_A6A.lua @@ -0,0 +1,129 @@ +local unitPayloads = { + ["name"] = "VSN_A6A", + ["payloads"] = { + [1] = { + ["name"] = "STRIKE", + ["pylons"] = { + [1] = { + ["CLSID"] = "{6CEB49FC-DED8-4DED-B053-E1F033FF72D3}", + ["num"] = 1, + }, + [2] = { + ["CLSID"] = "{AB8B8299-F1CC-4359-89B5-2172E0CF4A5A}", + ["num"] = 2, + }, + [3] = { + ["CLSID"] = "{0395076D-2F77-4420-9D33-087A4398130B}", + ["num"] = 3, + }, + [4] = { + ["CLSID"] = "{AB8B8299-F1CC-4359-89B5-2172E0CF4A5A}", + ["num"] = 4, + }, + [5] = { + ["CLSID"] = "{6CEB49FC-DED8-4DED-B053-E1F033FF72D3}", + ["num"] = 5, + }, + }, + ["tasks"] = { + [1] = 15, + [2] = 32, + }, + }, + [2] = { + ["displayName"] = "Retribution OCA/Runway", + ["name"] = "Retribution OCA/Runway", + ["pylons"] = { + [1] = { + ["CLSID"] = "{6CEB49FC-DED8-4DED-B053-E1F033FF72D3}", + ["num"] = 1, + }, + [2] = { + ["CLSID"] = "{BRU-42_3*Mk-82AIR}", + ["num"] = 2, + }, + [3] = { + ["CLSID"] = "{0395076D-2F77-4420-9D33-087A4398130B}", + ["num"] = 3, + }, + [4] = { + ["CLSID"] = "{BRU-42_3*Mk-82AIR}", + ["num"] = 4, + }, + [5] = { + ["CLSID"] = "{6CEB49FC-DED8-4DED-B053-E1F033FF72D3}", + ["num"] = 5, + }, + }, + ["tasks"] = { + [1] = 15, + [2] = 34, + }, + }, + [3] = { + ["displayName"] = "Retribution OCA/Aircraft", + ["name"] = "Retribution OCA/Aircraft", + ["pylons"] = { + [1] = { + ["CLSID"] = "{6CEB49FC-DED8-4DED-B053-E1F033FF72D3}", + ["num"] = 1, + }, + [2] = { + ["CLSID"] = "{0395076D-2F77-4420-9D33-087A4398130B}", + ["num"] = 2, + }, + [3] = { + ["CLSID"] = "{3C7CD675-7D39-41C5-8735-0F4F537818A8}", + ["num"] = 3, + }, + [4] = { + ["CLSID"] = "{0395076D-2F77-4420-9D33-087A4398130B}", + ["num"] = 4, + }, + [5] = { + ["CLSID"] = "{6CEB49FC-DED8-4DED-B053-E1F033FF72D3}", + ["num"] = 5, + }, + }, + ["tasks"] = { + [1] = 15, + [2] = 32, + }, + }, + [4] = { + ["displayName"] = "DEAD", + ["name"] = "DEAD", + ["pylons"] = { + [1] = { + ["CLSID"] = "{6CEB49FC-DED8-4DED-B053-E1F033FF72D3}", + ["num"] = 1, + }, + [2] = { + ["CLSID"] = "{0395076D-2F77-4420-9D33-087A4398130B}", + ["num"] = 2, + }, + [3] = { + ["CLSID"] = "{3C7CD675-7D39-41C5-8735-0F4F537818A8}", + ["num"] = 3, + }, + [4] = { + ["CLSID"] = "{0395076D-2F77-4420-9D33-087A4398130B}", + ["num"] = 4, + }, + [5] = { + ["CLSID"] = "{6CEB49FC-DED8-4DED-B053-E1F033FF72D3}", + ["num"] = 5, + }, + }, + ["tasks"] = { + [1] = 15, + [2] = 29, + [3] = 32, + }, + }, + }, + ["tasks"] = { + }, + ["unitType"] = "VSN_A6A", +} +return unitPayloads diff --git a/resources/factions/bluefor_coldwar.json b/resources/factions/bluefor_coldwar.json index 5dd956b8..50936b93 100644 --- a/resources/factions/bluefor_coldwar.json +++ b/resources/factions/bluefor_coldwar.json @@ -6,6 +6,7 @@ "aircrafts": [ "A-10A Thunderbolt II", "A-4E Skyhawk", + "A-6A Intruder", "AJS-37 Viggen", "B-52H Stratofortress", "C-130", diff --git a/resources/factions/usa_1965.json b/resources/factions/usa_1965.json index 40b24bd5..a04658b6 100644 --- a/resources/factions/usa_1965.json +++ b/resources/factions/usa_1965.json @@ -10,6 +10,7 @@ "B-52H Stratofortress", "C-130", "CH-47D", + "A-6A Intruder", "F-4B Phantom II", "F-4E Phantom II", "F-5E Tiger II", diff --git a/resources/factions/usn_1985.json b/resources/factions/usn_1985.json index 26b54b5e..06b8d12f 100644 --- a/resources/factions/usn_1985.json +++ b/resources/factions/usn_1985.json @@ -9,13 +9,14 @@ "aircrafts": [ "AH-1W SuperCobra", "A-4E Skyhawk", + "A-6A Intruder", "F-14A Tomcat (Block 135-GR Late)", "F-14B Tomcat", "F-4B Phantom II", "F-4E Phantom II", "S-3B Viking", "SH-60B Seahawk", - "UH-1H Iroquois" + "UH-1H Iroquois", ], "awacs": [ "E-2C Hawkeye" diff --git a/resources/ui/units/aircrafts/banners/VSN_A6A_24.jpg b/resources/ui/units/aircrafts/banners/VSN_A6A_24.jpg new file mode 100644 index 00000000..2ff7a708 Binary files /dev/null and b/resources/ui/units/aircrafts/banners/VSN_A6A_24.jpg differ diff --git a/resources/ui/units/aircrafts/icons/VSN_A6A_24.jpg b/resources/ui/units/aircrafts/icons/VSN_A6A_24.jpg new file mode 100644 index 00000000..772b0fcc Binary files /dev/null and b/resources/ui/units/aircrafts/icons/VSN_A6A_24.jpg differ diff --git a/resources/units/aircraft/VSN_A6A.yaml b/resources/units/aircraft/VSN_A6A.yaml new file mode 100644 index 00000000..14a24d10 --- /dev/null +++ b/resources/units/aircraft/VSN_A6A.yaml @@ -0,0 +1,12 @@ +description: # from wiki + The Grumman A-6 Intruder is an American dual-engine all-weather attack aircraft developed and manufactured by + American aircraft company Grumman Aerospace and operated by the U.S. Navy and U.S. Marine Corps. +introduced: 1963 +manufacturer: Boeing +origin: USA +price: 20 +role: Close Air Support/Attack +carrier_capable: true +gunfighter: false +variants: + A-6A Intruder: {}