diff --git a/changelog.md b/changelog.md index 9804aabb..4c7b0784 100644 --- a/changelog.md +++ b/changelog.md @@ -4,6 +4,7 @@ Saves from 5.1.0 are compatible with 5.2.0 ## Features/Improvements +* **[Engine]** Add support for the flyable AH-64D Apache * **[Modding]** Add UH-60L mod support * **[Campaign]** Vegas Nerve campaign update * **[Campaign]** Add 3 new campaigns from Sith1144 diff --git a/game/db.py b/game/db.py index e9a56a86..36eed3ca 100644 --- a/game/db.py +++ b/game/db.py @@ -48,6 +48,7 @@ from pydcs_extensions.hercules.hercules import Hercules from pydcs_extensions.jas39.jas39 import JAS39Gripen, JAS39Gripen_AG from pydcs_extensions.su57.su57 import Su_57 from pydcs_extensions.uh60l.uh60l import UH_60L, KC130J +from pydcs_extensions.ah64d.ah64d import AH_64D_BLK_II plane_map["A-4E-C"] = A_4E_C plane_map["F-22A"] = F_22A @@ -61,6 +62,7 @@ plane_map["VSN_F104S"] = VSN_F104S plane_map["VSN_F104S_AG"] = VSN_F104S_AG helicopter_map["UH-60L"] = UH_60L +helicopter_map["AH-64D_BLK_II"] = AH_64D_BLK_II vehicle_map["FieldHL"] = frenchpack._FIELD_HIDE vehicle_map["HARRIERH"] = frenchpack._FIELD_HIDE_SMALL diff --git a/gen/flights/ai_flight_planner_db.py b/gen/flights/ai_flight_planner_db.py index 6d0c9ea0..70747f65 100644 --- a/gen/flights/ai_flight_planner_db.py +++ b/gen/flights/ai_flight_planner_db.py @@ -126,6 +126,7 @@ from pydcs_extensions.su57.su57 import Su_57 # Used for CAP, Escort, and intercept if there is not a specialised aircraft available from pydcs_extensions.uh60l.uh60l import UH_60L, KC130J +from pydcs_extensions.ah64d.ah64d import AH_64D_BLK_II CAP_CAPABLE = [ Su_57, @@ -210,6 +211,7 @@ CAS_CAPABLE = [ MiG_27K, MiG_29A, MiG_21Bis, + AH_64D_BLK_II, AH_64D, AH_64A, AH_1W, diff --git a/pydcs_extensions/ah64d/ah64d.py b/pydcs_extensions/ah64d/ah64d.py new file mode 100644 index 00000000..4334110a --- /dev/null +++ b/pydcs_extensions/ah64d/ah64d.py @@ -0,0 +1,492 @@ +from enum import Enum +from typing import Dict, Any, List, Set + +from dcs import task +from dcs.helicopters import HelicopterType +from dcs.weapons_data import Weapons + +from pydcs_extensions.weapon_injector import inject_weapons + + +class WeaponsAH64D: + M261_pod___19_x_2_75_Hydra__UnGd_Rkts_M257__Illum_ = { + "clsid": "{M261_M257}", + "name": 'M261 pod - 19 x 2.75" Hydra, UnGd Rkts M257, Illum.', + "weight": 271.5, + } + M261_pod___19_x_2_75_Hydra__UnGd_Rkts_M274__Smk = { + "clsid": "{M261_M274}", + "name": 'M261 pod - 19 x 2.75" Hydra, UnGd Rkts M274, Smk', + "weight": 286.7, + } + M261_pod___19_x_2_75_Hydra__UnGd_Rkts_M229__HEDP = { + "clsid": "{M261_M229}", + "name": 'M261 pod - 19 x 2.75" Hydra, UnGd Rkts M229, HEDP', + "weight": 338.19, + } + M261_pod___19_x_2_75_Hydra__UnGd_Rkts_M282__MPP = { + "clsid": "{M261_M282}", + "name": 'M261 pod - 19 x 2.75" Hydra, UnGd Rkts M282, MPP', + "weight": 309.88, + } + M261_Outboard_Launcher__Zones_A_B_M151_Hydra__6PD___Zone_E_M274_Hydra__6SK_ = { + "clsid": "{M261_OUTBOARD_AB_M151_E_M274}", + "name": "M261: Outboard Launcher, Zones A/B: M151 Hydra (6PD), Zone E: M274 Hydra (6SK)", + "weight": 273.1, + } + M261_Outboard_Launcher__Zones_A_B_M151_Hydra__6PD___Zone_E_M257_Hydra__6IL_ = { + "clsid": "{M261_OUTBOARD_AB_M151_E_M257}", + "name": "M261: Outboard Launcher, Zones A/B: M151 Hydra (6PD), Zone E: M257 Hydra (6IL)", + "weight": 275.5, + } + M299___4_x_AGM_114K_Hellfire = { + "clsid": "{88D18A5E-99C8-4B04-B40B-1C02F2018B6E}", + "name": "M299 - 4 x AGM-114K Hellfire", + "weight": 247.4, + } + M299___3_x_AGM_114K_Hellfire__Port = { + "clsid": "{M299_3xAGM_114K_OUTBOARD_PORT}", + "name": "M299 - 3 x AGM-114K Hellfire, Port", + "weight": 202, + } + M299___2_x_AGM_114K_Hellfire = { + "clsid": "{M299_2xAGM_114K}", + "name": "M299 - 2 x AGM-114K Hellfire", + "weight": 156.6, + } + M299___1_x_AGM_114K_Hellfire__Port = { + "clsid": "{M299_1xAGM_114K_OUTBOARD_PORT}", + "name": "M299 - 1 x AGM-114K Hellfire, Port", + "weight": 111.2, + } + M299___Empty_Launcher = { + "clsid": "{M299_EMPTY}", + "name": "M299 - Empty Launcher", + "weight": 65.8, + } + Fuel_tank_230_gal = { + "clsid": "{EFT_230GAL}", + "name": "Fuel tank 230 gal", + "weight": 765.45, + } + M261_Inboard_Launcher__Zone_C_M274_Hydra__6SK___Zones_D_E_M151_Hydra__6PD_ = { + "clsid": "{M261_INBOARD_DE_M151_C_M274}", + "name": "M261: Inboard Launcher, Zone C: M274 Hydra (6SK), Zones D/E: M151 Hydra (6PD)", + "weight": 273.1, + } + M261_Inboard_Launcher__Zone_C_M257_Hydra__6IL___Zones_D_E_M151_Hydra__6PD_ = { + "clsid": "{M261_INBOARD_DE_M151_C_M257}", + "name": "M261: Inboard Launcher, Zone C: M257 Hydra (6IL), Zones D/E: M151 Hydra (6PD)", + "weight": 275.5, + } + M299___3_x_AGM_114K_Hellfire__Starboard = { + "clsid": "{M299_3xAGM_114K_OUTBOARD_STARBOARD}", + "name": "M299 - 3 x AGM-114K Hellfire, Starboard", + "weight": 202, + } + M299___1_x_AGM_114K_Hellfire__Starboard = { + "clsid": "{M299_1xAGM_114K_OUTBOARD_STARBOARD}", + "name": "M299 - 1 x AGM-114K Hellfire, Starboard", + "weight": 111.2, + } + + +inject_weapons(WeaponsAH64D) + + +class AH_64D_BLK_II(HelicopterType): + id = "AH-64D_BLK_II" + flyable = True + height = 4.15 + width = 14.63 + length = 17.87 + fuel_max = 1438 + max_speed = 365 + chaff = 30 + flare = 60 + charge_total = 90 + chaff_charge_size = 1 + flare_charge_size = 1 + eplrs = True + + panel_radio = { + 1: { + "channels": { + 7: 141, + 1: 127.5, + 2: 135, + 4: 127, + 8: 128, + 9: 126, + 5: 125, + 10: 137, + 3: 136, + 6: 121, + }, + }, + 2: { + "channels": { + 7: 325, + 1: 225, + 2: 240, + 4: 270, + 8: 350, + 9: 375, + 5: 285, + 10: 390, + 3: 255, + 6: 300, + }, + }, + 4: { + "channels": { + 7: 30.035, + 1: 30, + 2: 30.01, + 4: 30.02, + 8: 30.04, + 9: 30.045, + 5: 30.025, + 10: 30.05, + 3: 30.015, + 6: 30.03, + }, + }, + 3: { + "channels": { + 7: 30.035, + 1: 30, + 2: 30.01, + 4: 30.02, + 8: 30.04, + 9: 30.045, + 5: 30.025, + 10: 30.05, + 3: 30.015, + 6: 30.03, + }, + }, + } + + callnames: Dict[str, List[str]] = { + "USA": [ + "ArmyAir", + "Apache", + "Crow", + "Chaos", + "Sioux", + "Gatling", + "Gunslinger", + "Hammerhead", + "Bootleg", + "Palehorse", + "Carnivore", + "Saber", + ] + } + + property_defaults: Dict[str, Any] = { + "FCR_RFI_removed": True, + "NetCrewControlPriority": 0, + "AIDisabled": False, + "FlareBurstCount": 0, + "FlareBurstInterval": 0, + "FlareSalvoCount": 0, + "FlareSalvoInterval": 0, + "FlareProgramDelay": 0, + "PltNVG": True, + "CpgNVG": True, + } + + class Properties: + class FCR_RFI_removed: + id = "FCR_RFI_removed" + + class NetCrewControlPriority: + id = "NetCrewControlPriority" + + class Values: + Pilot = 0 + CPG = 1 + Ask_Always = -1 + Equally_Responsible = -2 + + class AIDisabled: + id = "AIDisabled" + + class FlareBurstCount: + id = "FlareBurstCount" + + class Values: + _1 = 0 + _2 = 1 + _3 = 2 + _4 = 3 + _6 = 4 + _8 = 5 + + class FlareBurstInterval: + id = "FlareBurstInterval" + + class Values: + _0_1 = 0 + _0_2 = 1 + _0_3 = 2 + _0_4 = 3 + + class FlareSalvoCount: + id = "FlareSalvoCount" + + class Values: + _1 = 0 + _2 = 1 + _4 = 2 + _8 = 3 + Continuous = 4 + + class FlareSalvoInterval: + id = "FlareSalvoInterval" + + class Values: + _1 = 0 + _2 = 1 + _3 = 2 + _4 = 3 + _5 = 4 + _8 = 5 + Random = 6 + + class FlareProgramDelay: + id = "FlareProgramDelay" + + class Values: + _1 = 0 + _2 = 1 + _3 = 2 + _4 = 3 + + class PltNVG: + id = "PltNVG" + + class CpgNVG: + id = "CpgNVG" + + class Liveries: + class Combined_Joint_Task_Forces_Blue(Enum): + default = "default" + _1st_Attack_Helicopter_Battalion_Greece = ( + "1st Attack Helicopter Battalion Greece" + ) + _301_Squadron_Redskins_Netherlands = "301 Squadron Redskins Netherlands" + _664_Squadron_9_Regiment_UK = "664 Squadron 9 Regiment UK" + Archangel_4_2_ARB = "Archangel 4-2 ARB" + Avengers_1_227th_ARB = "Avengers 1-227th ARB" + Devils_1_1_ARB = "Devils 1-1 ARB" + The_Air_Pirates_1_211th_ARB = "The Air Pirates 1-211th ARB" + Silver_Spurs_3_17_CAV = "Silver Spurs 3-17 CAV" + Grim_Reapers_4_2_ARB = "Grim Reapers 4-2 ARB" + Killer_Bees_1_130th_ARB_NCNG = "Killer Bees 1-130th ARB NCNG" + Gunslingers_2_159th_ARB = "Gunslingers 2-159th ARB" + Slayers_4_2_ARB = "Slayers 4-2 ARB" + General_Attack_Recon_Battalion = "General Attack Recon Battalion" + Wolfpack_1_82_ARB = "Wolfpack 1-82 ARB" + + class UK(Enum): + _664_Squadron_9_Regiment_UK = "664 Squadron 9 Regiment UK" + + class TheNetherlands(Enum): + _301_Squadron_Redskins_Netherlands = "301 Squadron Redskins Netherlands" + + class Combined_Joint_Task_Forces_Red(Enum): + default = "default" + _1st_Attack_Helicopter_Battalion_Greece = ( + "1st Attack Helicopter Battalion Greece" + ) + _301_Squadron_Redskins_Netherlands = "301 Squadron Redskins Netherlands" + _664_Squadron_9_Regiment_UK = "664 Squadron 9 Regiment UK" + Archangel_4_2_ARB = "Archangel 4-2 ARB" + Avengers_1_227th_ARB = "Avengers 1-227th ARB" + Devils_1_1_ARB = "Devils 1-1 ARB" + The_Air_Pirates_1_211th_ARB = "The Air Pirates 1-211th ARB" + Silver_Spurs_3_17_CAV = "Silver Spurs 3-17 CAV" + Grim_Reapers_4_2_ARB = "Grim Reapers 4-2 ARB" + Killer_Bees_1_130th_ARB_NCNG = "Killer Bees 1-130th ARB NCNG" + Gunslingers_2_159th_ARB = "Gunslingers 2-159th ARB" + Slayers_4_2_ARB = "Slayers 4-2 ARB" + General_Attack_Recon_Battalion = "General Attack Recon Battalion" + Wolfpack_1_82_ARB = "Wolfpack 1-82 ARB" + + class USA(Enum): + default = "default" + Archangel_4_2_ARB = "Archangel 4-2 ARB" + Avengers_1_227th_ARB = "Avengers 1-227th ARB" + Devils_1_1_ARB = "Devils 1-1 ARB" + The_Air_Pirates_1_211th_ARB = "The Air Pirates 1-211th ARB" + Silver_Spurs_3_17_CAV = "Silver Spurs 3-17 CAV" + Grim_Reapers_4_2_ARB = "Grim Reapers 4-2 ARB" + Killer_Bees_1_130th_ARB_NCNG = "Killer Bees 1-130th ARB NCNG" + Gunslingers_2_159th_ARB = "Gunslingers 2-159th ARB" + Slayers_4_2_ARB = "Slayers 4-2 ARB" + General_Attack_Recon_Battalion = "General Attack Recon Battalion" + Wolfpack_1_82_ARB = "Wolfpack 1-82 ARB" + + class Pylon1: + M261_MK151 = (1, Weapons.M261_MK151) + M261_pod___19_x_2_75_Hydra__UnGd_Rkts_M257__Illum_ = ( + 1, + WeaponsAH64D.M261_pod___19_x_2_75_Hydra__UnGd_Rkts_M257__Illum_, + ) + M261_pod___19_x_2_75_Hydra__UnGd_Rkts_M274__Smk = ( + 1, + WeaponsAH64D.M261_pod___19_x_2_75_Hydra__UnGd_Rkts_M274__Smk, + ) + M261_pod___19_x_2_75_Hydra__UnGd_Rkts_M229__HEDP = ( + 1, + WeaponsAH64D.M261_pod___19_x_2_75_Hydra__UnGd_Rkts_M229__HEDP, + ) + M261_pod___19_x_2_75_Hydra__UnGd_Rkts_M282__MPP = ( + 1, + WeaponsAH64D.M261_pod___19_x_2_75_Hydra__UnGd_Rkts_M282__MPP, + ) + M261_Outboard_Launcher__Zones_A_B_M151_Hydra__6PD___Zone_E_M274_Hydra__6SK_ = ( + 1, + WeaponsAH64D.M261_Outboard_Launcher__Zones_A_B_M151_Hydra__6PD___Zone_E_M274_Hydra__6SK_, + ) + M261_Outboard_Launcher__Zones_A_B_M151_Hydra__6PD___Zone_E_M257_Hydra__6IL_ = ( + 1, + WeaponsAH64D.M261_Outboard_Launcher__Zones_A_B_M151_Hydra__6PD___Zone_E_M257_Hydra__6IL_, + ) + M299___4_x_AGM_114K_Hellfire = (1, WeaponsAH64D.M299___4_x_AGM_114K_Hellfire) + M299___3_x_AGM_114K_Hellfire__Port = ( + 1, + WeaponsAH64D.M299___3_x_AGM_114K_Hellfire__Port, + ) + M299___2_x_AGM_114K_Hellfire = (1, WeaponsAH64D.M299___2_x_AGM_114K_Hellfire) + M299___1_x_AGM_114K_Hellfire__Port = ( + 1, + WeaponsAH64D.M299___1_x_AGM_114K_Hellfire__Port, + ) + M299___Empty_Launcher = (1, WeaponsAH64D.M299___Empty_Launcher) + Fuel_tank_230_gal = (1, WeaponsAH64D.Fuel_tank_230_gal) + + class Pylon2: + M261_MK151 = (2, Weapons.M261_MK151) + M261_pod___19_x_2_75_Hydra__UnGd_Rkts_M257__Illum_ = ( + 2, + WeaponsAH64D.M261_pod___19_x_2_75_Hydra__UnGd_Rkts_M257__Illum_, + ) + M261_pod___19_x_2_75_Hydra__UnGd_Rkts_M274__Smk = ( + 2, + WeaponsAH64D.M261_pod___19_x_2_75_Hydra__UnGd_Rkts_M274__Smk, + ) + M261_pod___19_x_2_75_Hydra__UnGd_Rkts_M229__HEDP = ( + 2, + WeaponsAH64D.M261_pod___19_x_2_75_Hydra__UnGd_Rkts_M229__HEDP, + ) + M261_pod___19_x_2_75_Hydra__UnGd_Rkts_M282__MPP = ( + 2, + WeaponsAH64D.M261_pod___19_x_2_75_Hydra__UnGd_Rkts_M282__MPP, + ) + M261_Inboard_Launcher__Zone_C_M274_Hydra__6SK___Zones_D_E_M151_Hydra__6PD_ = ( + 2, + WeaponsAH64D.M261_Inboard_Launcher__Zone_C_M274_Hydra__6SK___Zones_D_E_M151_Hydra__6PD_, + ) + M261_Inboard_Launcher__Zone_C_M257_Hydra__6IL___Zones_D_E_M151_Hydra__6PD_ = ( + 2, + WeaponsAH64D.M261_Inboard_Launcher__Zone_C_M257_Hydra__6IL___Zones_D_E_M151_Hydra__6PD_, + ) + M299___4_x_AGM_114K_Hellfire = (2, WeaponsAH64D.M299___4_x_AGM_114K_Hellfire) + M299___3_x_AGM_114K_Hellfire__Port = ( + 2, + WeaponsAH64D.M299___3_x_AGM_114K_Hellfire__Port, + ) + M299___2_x_AGM_114K_Hellfire = (2, WeaponsAH64D.M299___2_x_AGM_114K_Hellfire) + M299___1_x_AGM_114K_Hellfire__Port = ( + 2, + WeaponsAH64D.M299___1_x_AGM_114K_Hellfire__Port, + ) + M299___Empty_Launcher = (2, WeaponsAH64D.M299___Empty_Launcher) + Fuel_tank_230_gal = (2, WeaponsAH64D.Fuel_tank_230_gal) + + class Pylon3: + M261_MK151 = (3, Weapons.M261_MK151) + M261_pod___19_x_2_75_Hydra__UnGd_Rkts_M257__Illum_ = ( + 3, + WeaponsAH64D.M261_pod___19_x_2_75_Hydra__UnGd_Rkts_M257__Illum_, + ) + M261_pod___19_x_2_75_Hydra__UnGd_Rkts_M274__Smk = ( + 3, + WeaponsAH64D.M261_pod___19_x_2_75_Hydra__UnGd_Rkts_M274__Smk, + ) + M261_pod___19_x_2_75_Hydra__UnGd_Rkts_M229__HEDP = ( + 3, + WeaponsAH64D.M261_pod___19_x_2_75_Hydra__UnGd_Rkts_M229__HEDP, + ) + M261_pod___19_x_2_75_Hydra__UnGd_Rkts_M282__MPP = ( + 3, + WeaponsAH64D.M261_pod___19_x_2_75_Hydra__UnGd_Rkts_M282__MPP, + ) + M261_Inboard_Launcher__Zone_C_M274_Hydra__6SK___Zones_D_E_M151_Hydra__6PD_ = ( + 3, + WeaponsAH64D.M261_Inboard_Launcher__Zone_C_M274_Hydra__6SK___Zones_D_E_M151_Hydra__6PD_, + ) + M261_Inboard_Launcher__Zone_C_M257_Hydra__6IL___Zones_D_E_M151_Hydra__6PD_ = ( + 3, + WeaponsAH64D.M261_Inboard_Launcher__Zone_C_M257_Hydra__6IL___Zones_D_E_M151_Hydra__6PD_, + ) + M299___4_x_AGM_114K_Hellfire = (3, WeaponsAH64D.M299___4_x_AGM_114K_Hellfire) + M299___3_x_AGM_114K_Hellfire__Starboard = ( + 3, + WeaponsAH64D.M299___3_x_AGM_114K_Hellfire__Starboard, + ) + M299___2_x_AGM_114K_Hellfire = (3, WeaponsAH64D.M299___2_x_AGM_114K_Hellfire) + M299___1_x_AGM_114K_Hellfire__Starboard = ( + 3, + WeaponsAH64D.M299___1_x_AGM_114K_Hellfire__Starboard, + ) + M299___Empty_Launcher = (3, WeaponsAH64D.M299___Empty_Launcher) + Fuel_tank_230_gal = (3, WeaponsAH64D.Fuel_tank_230_gal) + + class Pylon4: + M261_MK151 = (4, Weapons.M261_MK151) + M261_pod___19_x_2_75_Hydra__UnGd_Rkts_M257__Illum_ = ( + 4, + WeaponsAH64D.M261_pod___19_x_2_75_Hydra__UnGd_Rkts_M257__Illum_, + ) + M261_pod___19_x_2_75_Hydra__UnGd_Rkts_M274__Smk = ( + 4, + WeaponsAH64D.M261_pod___19_x_2_75_Hydra__UnGd_Rkts_M274__Smk, + ) + M261_pod___19_x_2_75_Hydra__UnGd_Rkts_M229__HEDP = ( + 4, + WeaponsAH64D.M261_pod___19_x_2_75_Hydra__UnGd_Rkts_M229__HEDP, + ) + M261_pod___19_x_2_75_Hydra__UnGd_Rkts_M282__MPP = ( + 4, + WeaponsAH64D.M261_pod___19_x_2_75_Hydra__UnGd_Rkts_M282__MPP, + ) + M261_Outboard_Launcher__Zones_A_B_M151_Hydra__6PD___Zone_E_M274_Hydra__6SK_ = ( + 4, + WeaponsAH64D.M261_Outboard_Launcher__Zones_A_B_M151_Hydra__6PD___Zone_E_M274_Hydra__6SK_, + ) + M261_Outboard_Launcher__Zones_A_B_M151_Hydra__6PD___Zone_E_M257_Hydra__6IL_ = ( + 4, + WeaponsAH64D.M261_Outboard_Launcher__Zones_A_B_M151_Hydra__6PD___Zone_E_M257_Hydra__6IL_, + ) + M299___4_x_AGM_114K_Hellfire = (4, WeaponsAH64D.M299___4_x_AGM_114K_Hellfire) + M299___3_x_AGM_114K_Hellfire__Starboard = ( + 4, + WeaponsAH64D.M299___3_x_AGM_114K_Hellfire__Starboard, + ) + M299___2_x_AGM_114K_Hellfire = (4, WeaponsAH64D.M299___2_x_AGM_114K_Hellfire) + M299___1_x_AGM_114K_Hellfire__Starboard = ( + 4, + WeaponsAH64D.M299___1_x_AGM_114K_Hellfire__Starboard, + ) + M299___Empty_Launcher = (4, WeaponsAH64D.M299___Empty_Launcher) + Fuel_tank_230_gal = (4, WeaponsAH64D.Fuel_tank_230_gal) + + pylons: Set[int] = {1, 2, 3, 4} + + tasks = [task.CAS, task.GroundAttack, task.Escort, task.AFAC, task.AntishipStrike] + task_default = task.CAS diff --git a/pydcs_extensions/mod_units.py b/pydcs_extensions/mod_units.py index f519502f..40236c1f 100644 --- a/pydcs_extensions/mod_units.py +++ b/pydcs_extensions/mod_units.py @@ -1,4 +1,5 @@ from pydcs_extensions.a4ec.a4ec import A_4E_C +from pydcs_extensions.ah64d.ah64d import AH_64D_BLK_II from pydcs_extensions.f104.f104 import VSN_F104G, VSN_F104S, VSN_F104S_AG from pydcs_extensions.f22a.f22a import F_22A from pydcs_extensions.hercules.hercules import Hercules @@ -22,6 +23,7 @@ MODDED_AIRPLANES = [ ] MODDED_HELICOPTERS = [ UH_60L, + AH_64D_BLK_II, ] MODDED_VEHICLES = [ frenchpack._FIELD_HIDE, diff --git a/resources/factions/Israel-USN_2005_Allied_Sword.json b/resources/factions/Israel-USN_2005_Allied_Sword.json index 63a8e8f4..e8309aa3 100644 --- a/resources/factions/Israel-USN_2005_Allied_Sword.json +++ b/resources/factions/Israel-USN_2005_Allied_Sword.json @@ -16,6 +16,7 @@ "AV-8B Harrier II Night Attack", "AH-1W SuperCobra", "AH-64D Apache Longbow", + "AH-64D Apache Longbow (AI)", "S-3B Viking", "SH-60B Seahawk", "UH-1H Iroquois" diff --git a/resources/factions/NATO_OIF.json b/resources/factions/NATO_OIF.json index 7f91ebe6..b804f99c 100644 --- a/resources/factions/NATO_OIF.json +++ b/resources/factions/NATO_OIF.json @@ -6,6 +6,7 @@ "aircrafts": [ "A-10C Thunderbolt II (Suite 3)", "AH-64D Apache Longbow", + "AH-64D Apache Longbow (AI)", "AV-8B Harrier II Night Attack", "B-1B Lancer", "B-52H Stratofortress", diff --git a/resources/factions/bluefor_modern.json b/resources/factions/bluefor_modern.json index c6206c38..88151eec 100644 --- a/resources/factions/bluefor_modern.json +++ b/resources/factions/bluefor_modern.json @@ -8,6 +8,7 @@ "A-10C Thunderbolt II (Suite 3)", "A-10C Thunderbolt II (Suite 7)", "AH-64D Apache Longbow", + "AH-64D Apache Longbow (AI)", "AJS-37 Viggen", "AV-8B Harrier II Night Attack", "B-1B Lancer", diff --git a/resources/factions/israel_2000.json b/resources/factions/israel_2000.json index c9edbb19..4bba06ff 100644 --- a/resources/factions/israel_2000.json +++ b/resources/factions/israel_2000.json @@ -9,6 +9,7 @@ "aircrafts": [ "AH-1W SuperCobra", "AH-64D Apache Longbow", + "AH-64D Apache Longbow (AI)", "C-130", "C-130J-30 Super Hercules", "F-15C Eagle", diff --git a/resources/factions/israel_2012.json b/resources/factions/israel_2012.json index 7a9f2bf3..877da84e 100644 --- a/resources/factions/israel_2012.json +++ b/resources/factions/israel_2012.json @@ -9,6 +9,7 @@ "aircrafts": [ "A-10C Thunderbolt II (Suite 3)", "AH-64D Apache Longbow", + "AH-64D Apache Longbow (AI)", "C-130", "C-130J-30 Super Hercules", "F-15C Eagle", diff --git a/resources/factions/japan_2005.json b/resources/factions/japan_2005.json index ddc82208..42c2326d 100644 --- a/resources/factions/japan_2005.json +++ b/resources/factions/japan_2005.json @@ -9,6 +9,7 @@ "aircrafts": [ "AH-1W SuperCobra", "AH-64D Apache Longbow", + "AH-64D Apache Longbow (AI)", "C-130", "C-130J-30 Super Hercules", "F-15J Eagle", diff --git a/resources/factions/uae_2005.json b/resources/factions/uae_2005.json index 4fcd9123..bff85cf0 100644 --- a/resources/factions/uae_2005.json +++ b/resources/factions/uae_2005.json @@ -5,6 +5,7 @@ "description": "

UAR army in the 2000s.

", "aircrafts": [ "AH-64D Apache Longbow", + "AH-64D Apache Longbow (AI)", "C-130", "F-16CM Fighting Falcon (Block 50)", "Mirage 2000-5", diff --git a/resources/factions/uae_2015.json b/resources/factions/uae_2015.json index 54fdcb07..c4969948 100644 --- a/resources/factions/uae_2015.json +++ b/resources/factions/uae_2015.json @@ -5,6 +5,7 @@ "description": "

UAE army in the 2010s.

", "aircrafts": [ "AH-64D Apache Longbow", + "AH-64D Apache Longbow (AI)", "C-130", "C-130J-30 Super Hercules", "C-17A", diff --git a/resources/factions/us_aggressors.json b/resources/factions/us_aggressors.json index 83a98be8..ee0cb05e 100644 --- a/resources/factions/us_aggressors.json +++ b/resources/factions/us_aggressors.json @@ -11,6 +11,7 @@ "A-10A Thunderbolt II", "A-10C Thunderbolt II (Suite 3)", "AH-64D Apache Longbow", + "AH-64D Apache Longbow (AI)", "AV-8B Harrier II Night Attack", "B-1B Lancer", "B-52H Stratofortress", diff --git a/resources/factions/usa_2005.json b/resources/factions/usa_2005.json index 1d6de10e..d2daaddd 100644 --- a/resources/factions/usa_2005.json +++ b/resources/factions/usa_2005.json @@ -10,6 +10,7 @@ "A-10C Thunderbolt II (Suite 3)", "A-10C Thunderbolt II (Suite 7)", "AH-64D Apache Longbow", + "AH-64D Apache Longbow (AI)", "AV-8B Harrier II Night Attack", "B-1B Lancer", "B-52H Stratofortress", diff --git a/resources/ui/units/aircrafts/banners/AH-64D_BLK_II_24.jpg b/resources/ui/units/aircrafts/banners/AH-64D_BLK_II_24.jpg new file mode 100644 index 00000000..5886e736 Binary files /dev/null and b/resources/ui/units/aircrafts/banners/AH-64D_BLK_II_24.jpg differ diff --git a/resources/ui/units/aircrafts/icons/AH-64D_BLK_II_24.jpg b/resources/ui/units/aircrafts/icons/AH-64D_BLK_II_24.jpg new file mode 100644 index 00000000..cbc1ff42 Binary files /dev/null and b/resources/ui/units/aircrafts/icons/AH-64D_BLK_II_24.jpg differ diff --git a/resources/units/aircraft/AH-64D.yaml b/resources/units/aircraft/AH-64D.yaml index 6043da0f..524e3e29 100644 --- a/resources/units/aircraft/AH-64D.yaml +++ b/resources/units/aircraft/AH-64D.yaml @@ -15,4 +15,4 @@ origin: USA price: 20 role: Attack variants: - AH-64D Apache Longbow: {} + AH-64D Apache Longbow (AI): {} diff --git a/resources/units/aircraft/AH-64D_BLK_II.yaml b/resources/units/aircraft/AH-64D_BLK_II.yaml new file mode 100644 index 00000000..6043da0f --- /dev/null +++ b/resources/units/aircraft/AH-64D_BLK_II.yaml @@ -0,0 +1,18 @@ +always_keeps_gun: true +description: The legendary 'Apache' is an US twin-turboshaft attack helicopter for + a crew of two. It features a nose-mounted sensor suite for target acquisition and + night vision systems. It is armed with a 30 mm (1.18 in) M230 chain gun carried + between the main landing gear, under the aircraft's forward fuselage, and four hardpoints + mounted on stub-wing pylons for carrying armament and stores, typically a mixture + of AGM-114 Hellfire missiles and Hydra 70 rocket pods. The AH-64 has significant + systems redundancy to improve combat survivability. American AH-64s have served + in conflicts in Panama, the Persian Gulf, Kosovo, Afghanistan, and Iraq. Israel + used the Apache in its military conflicts in Lebanon and the Gaza Strip. British + and Dutch Apaches have seen deployments in wars in Afghanistan and Iraq. +introduced: 2003 +manufacturer: Boeing +origin: USA +price: 20 +role: Attack +variants: + AH-64D Apache Longbow: {}