diff --git a/game/db.py b/game/db.py index cae523b8..d4ba1006 100644 --- a/game/db.py +++ b/game/db.py @@ -158,6 +158,7 @@ import pydcs_extensions.frenchpack.frenchpack as frenchpack # PATCH pydcs data with MODS from game.factions.faction_loader import FactionLoader from pydcs_extensions.a4ec.a4ec import A_4E_C +from pydcs_extensions.f22a.f22a import F_22A from pydcs_extensions.mb339.mb339 import MB_339PAN from pydcs_extensions.rafale.rafale import Rafale_A_S, Rafale_M from pydcs_extensions.su57.su57 import Su_57 @@ -274,6 +275,7 @@ PRICES = { F_16A: 14, F_14A_135_GR: 20, F_14B: 24, + F_22A: 40, Tornado_IDS: 20, Tornado_GR4: 20, @@ -577,6 +579,7 @@ UNIT_BY_TASK = { MiG_31, FA_18C_hornet, F_15C, + F_22A, F_14A_135_GR, F_14B, F_16A, @@ -1002,6 +1005,7 @@ PLANE_PAYLOAD_OVERRIDES: Dict[Type[PlaneType], Dict[Type[Task], str]] = { F_14A_135_GR: COMMON_OVERRIDE, F_14B: COMMON_OVERRIDE, F_15C: COMMON_OVERRIDE, + F_22A: COMMON_OVERRIDE, F_16C_50: COMMON_OVERRIDE, JF_17: COMMON_OVERRIDE, M_2000C: COMMON_OVERRIDE, diff --git a/gen/flights/ai_flight_planner_db.py b/gen/flights/ai_flight_planner_db.py index 776fe6f6..595e228d 100644 --- a/gen/flights/ai_flight_planner_db.py +++ b/gen/flights/ai_flight_planner_db.py @@ -84,6 +84,7 @@ from dcs.planes import ( # Interceptor are the aircraft prioritized for interception tasks # If none is available, the AI will use regular CAP-capable aircraft instead from pydcs_extensions.a4ec.a4ec import A_4E_C +from pydcs_extensions.f22a.f22a import F_22A from pydcs_extensions.mb339.mb339 import MB_339PAN from pydcs_extensions.rafale.rafale import Rafale_A_S, Rafale_M @@ -151,6 +152,7 @@ CAP_CAPABLE = [ F_16A, F_16C_50, FA_18C_hornet, + F_22A, C_101CC, L_39ZA, @@ -198,6 +200,7 @@ CAP_PREFERRED = [ F_14B, F_15C, F_16C_50, + F_22A, P_51D_30_NA, P_51D, @@ -246,6 +249,7 @@ CAS_CAPABLE = [ F_16C_50, FA_18C_hornet, F_15E, + F_22A, Tornado_IDS, Tornado_GR4, diff --git a/pydcs_extensions/f22a/f22a.py b/pydcs_extensions/f22a/f22a.py new file mode 100644 index 00000000..f4230f91 --- /dev/null +++ b/pydcs_extensions/f22a/f22a.py @@ -0,0 +1,357 @@ +from enum import Enum + +from dcs import task +from dcs.planes import PlaneType +from dcs.weapons_data import Weapons + + +class F_22A(PlaneType): + id = "F-22A" + flyable = True + height = 4.88 + width = 13.05 + length = 19.1 + fuel_max = 6103 + max_speed = 2649.996 + chaff = 120 + flare = 120 + charge_total = 240 + chaff_charge_size = 1 + flare_charge_size = 2 + eplrs = True + category = "Interceptor" #{78EFB7A2-FD52-4b57-A6A6-3BF0E1D6555F} + radio_frequency = 127.5 + + class Liveries: + + class USSR(Enum): + default = "default" + + class Georgia(Enum): + default = "default" + + class Venezuela(Enum): + default = "default" + + class Australia(Enum): + default = "default" + + class Israel(Enum): + default = "default" + + class Combined_Joint_Task_Forces_Blue(Enum): + default = "default" + + class Sudan(Enum): + default = "default" + + class Norway(Enum): + default = "default" + + class Romania(Enum): + default = "default" + + class Iran(Enum): + default = "default" + + class Ukraine(Enum): + default = "default" + + class Libya(Enum): + default = "default" + + class Belgium(Enum): + default = "default" + + class Slovakia(Enum): + default = "default" + + class Greece(Enum): + default = "default" + + class UK(Enum): + default = "default" + + class Third_Reich(Enum): + default = "default" + + class Hungary(Enum): + default = "default" + + class Abkhazia(Enum): + default = "default" + + class Morocco(Enum): + default = "default" + + class United_Nations_Peacekeepers(Enum): + default = "default" + + class Switzerland(Enum): + default = "default" + + class SouthOssetia(Enum): + default = "default" + + class Vietnam(Enum): + default = "default" + + class China(Enum): + default = "default" + + class Yemen(Enum): + default = "default" + + class Kuwait(Enum): + default = "default" + + class Serbia(Enum): + default = "default" + + class Oman(Enum): + default = "default" + + class India(Enum): + default = "default" + + class Egypt(Enum): + default = "default" + + class TheNetherlands(Enum): + default = "default" + + class Poland(Enum): + default = "default" + + class Syria(Enum): + default = "default" + + class Finland(Enum): + default = "default" + + class Kazakhstan(Enum): + default = "default" + + class Denmark(Enum): + default = "default" + + class Sweden(Enum): + default = "default" + + class Croatia(Enum): + default = "default" + + class CzechRepublic(Enum): + default = "default" + + class GDR(Enum): + default = "default" + + class Yugoslavia(Enum): + default = "default" + + class Bulgaria(Enum): + default = "default" + + class SouthKorea(Enum): + default = "default" + + class Tunisia(Enum): + default = "default" + + class Combined_Joint_Task_Forces_Red(Enum): + default = "default" + + class Lebanon(Enum): + default = "default" + + class Portugal(Enum): + default = "default" + + class Cuba(Enum): + default = "default" + + class Insurgents(Enum): + default = "default" + + class SaudiArabia(Enum): + default = "default" + + class France(Enum): + default = "default" + + class USA(Enum): + default = "default" + + class Honduras(Enum): + default = "default" + + class Qatar(Enum): + default = "default" + + class Russia(Enum): + default = "default" + + class United_Arab_Emirates(Enum): + default = "default" + + class Italian_Social_Republi(Enum): + default = "default" + + class Austria(Enum): + default = "default" + + class Bahrain(Enum): + default = "default" + + class Italy(Enum): + default = "default" + + class Chile(Enum): + default = "default" + + class Turkey(Enum): + default = "default" + + class Philippines(Enum): + default = "default" + + class Algeria(Enum): + default = "default" + + class Pakistan(Enum): + default = "default" + + class Malaysia(Enum): + default = "default" + + class Indonesia(Enum): + default = "default" + + class Iraq(Enum): + default = "default" + + class Germany(Enum): + default = "default" + + class South_Africa(Enum): + default = "default" + + class Jordan(Enum): + default = "default" + + class Mexico(Enum): + default = "default" + + class USAFAggressors(Enum): + default = "default" + + class Brazil(Enum): + default = "default" + + class Spain(Enum): + default = "default" + + class Belarus(Enum): + default = "default" + + class Canada(Enum): + default = "default" + + class NorthKorea(Enum): + default = "default" + + class Ethiopia(Enum): + default = "default" + + class Japan(Enum): + default = "default" + + class Thailand(Enum): + default = "default" + + class Pylon1: + AIM_9X_Sidewinder_IR_AAM = (1, Weapons.AIM_9X_Sidewinder_IR_AAM) + + class Pylon2: + Fuel_tank_610_gal = (2, Weapons.Fuel_tank_610_gal) + AIM_9X_Sidewinder_IR_AAM = (2, Weapons.AIM_9X_Sidewinder_IR_AAM) + AIM_9M_Sidewinder_IR_AAM = (2, Weapons.AIM_9M_Sidewinder_IR_AAM) + AIM_120C = (2, Weapons.AIM_120C) + Smokewinder___red = (2, Weapons.Smokewinder___red) + Smokewinder___green = (2, Weapons.Smokewinder___green) + Smokewinder___blue = (2, Weapons.Smokewinder___blue) + Smokewinder___white = (2, Weapons.Smokewinder___white) + Smokewinder___yellow = (2, Weapons.Smokewinder___yellow) + CBU_97 = (2, Weapons.CBU_97) + Fuel_tank_370_gal = (2, Weapons.Fuel_tank_370_gal) + LAU_115_2_LAU_127_AIM_9M = (2, Weapons.LAU_115_2_LAU_127_AIM_9M) + LAU_115_2_LAU_127_AIM_9X = (2, Weapons.LAU_115_2_LAU_127_AIM_9X) + LAU_115_2_LAU_127_AIM_120C = (2, Weapons.LAU_115_2_LAU_127_AIM_120C) + + class Pylon3: + AIM_9M_Sidewinder_IR_AAM = (3, Weapons.AIM_9M_Sidewinder_IR_AAM) + AIM_9X_Sidewinder_IR_AAM = (3, Weapons.AIM_9X_Sidewinder_IR_AAM) + AIM_120C = (3, Weapons.AIM_120C) + CBU_97 = (3, Weapons.CBU_97) + + class Pylon4: + AIM_9M_Sidewinder_IR_AAM = (4, Weapons.AIM_9M_Sidewinder_IR_AAM) + AIM_9X_Sidewinder_IR_AAM = (4, Weapons.AIM_9X_Sidewinder_IR_AAM) + AIM_120C = (4, Weapons.AIM_120C) + CBU_97 = (4, Weapons.CBU_97) + + class Pylon5: + AIM_9M_Sidewinder_IR_AAM = (5, Weapons.AIM_9M_Sidewinder_IR_AAM) + AIM_9X_Sidewinder_IR_AAM = (5, Weapons.AIM_9X_Sidewinder_IR_AAM) + AIM_120C = (5, Weapons.AIM_120C) + CBU_97 = (5, Weapons.CBU_97) + + class Pylon6: + Smokewinder___red = (6, Weapons.Smokewinder___red) + Smokewinder___green = (6, Weapons.Smokewinder___green) + Smokewinder___blue = (6, Weapons.Smokewinder___blue) + Smokewinder___white = (6, Weapons.Smokewinder___white) + Smokewinder___yellow = (6, Weapons.Smokewinder___yellow) + + class Pylon7: + AIM_9M_Sidewinder_IR_AAM = (7, Weapons.AIM_9M_Sidewinder_IR_AAM) + AIM_9X_Sidewinder_IR_AAM = (7, Weapons.AIM_9X_Sidewinder_IR_AAM) + AIM_120C = (7, Weapons.AIM_120C) + CBU_97 = (7, Weapons.CBU_97) + + class Pylon8: + AIM_9M_Sidewinder_IR_AAM = (8, Weapons.AIM_9M_Sidewinder_IR_AAM) + AIM_9X_Sidewinder_IR_AAM = (8, Weapons.AIM_9X_Sidewinder_IR_AAM) + AIM_120C = (8, Weapons.AIM_120C) + CBU_97 = (8, Weapons.CBU_97) + + class Pylon9: + AIM_9M_Sidewinder_IR_AAM = (9, Weapons.AIM_9M_Sidewinder_IR_AAM) + AIM_9X_Sidewinder_IR_AAM = (9, Weapons.AIM_9X_Sidewinder_IR_AAM) + AIM_120C = (9, Weapons.AIM_120C) + CBU_97 = (9, Weapons.CBU_97) + + class Pylon10: + Fuel_tank_610_gal = (10, Weapons.Fuel_tank_610_gal) + AIM_9X_Sidewinder_IR_AAM = (10, Weapons.AIM_9X_Sidewinder_IR_AAM) + AIM_9M_Sidewinder_IR_AAM = (10, Weapons.AIM_9M_Sidewinder_IR_AAM) + AIM_120C = (10, Weapons.AIM_120C) + Smokewinder___red = (10, Weapons.Smokewinder___red) + Smokewinder___green = (10, Weapons.Smokewinder___green) + Smokewinder___blue = (10, Weapons.Smokewinder___blue) + Smokewinder___white = (10, Weapons.Smokewinder___white) + Smokewinder___yellow = (10, Weapons.Smokewinder___yellow) + CBU_97 = (10, Weapons.CBU_97) + Fuel_tank_370_gal = (10, Weapons.Fuel_tank_370_gal) + LAU_115_2_LAU_127_AIM_9M = (10, Weapons.LAU_115_2_LAU_127_AIM_9M) + LAU_115_2_LAU_127_AIM_9X = (10, Weapons.LAU_115_2_LAU_127_AIM_9X) + LAU_115_2_LAU_127_AIM_120C = (10, Weapons.LAU_115_2_LAU_127_AIM_120C) + + class Pylon11: + AIM_9X_Sidewinder_IR_AAM = (11, Weapons.AIM_9X_Sidewinder_IR_AAM) + + pylons = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11} + + tasks = [task.CAP, task.Escort, task.FighterSweep, task.Intercept, task.Reconnaissance] + task_default = task.CAP diff --git a/pydcs_extensions/mod_units.py b/pydcs_extensions/mod_units.py index cfa1b321..82c6b09f 100644 --- a/pydcs_extensions/mod_units.py +++ b/pydcs_extensions/mod_units.py @@ -1,11 +1,12 @@ from pydcs_extensions.a4ec.a4ec import A_4E_C +from pydcs_extensions.f22a.f22a import F_22A from pydcs_extensions.highdigitsams import highdigitsams from pydcs_extensions.mb339.mb339 import MB_339PAN from pydcs_extensions.rafale.rafale import Rafale_M, Rafale_A_S from pydcs_extensions.su57.su57 import Su_57 import pydcs_extensions.frenchpack.frenchpack as frenchpack -MODDED_AIRPLANES = [A_4E_C, MB_339PAN, Rafale_A_S, Rafale_M, Su_57] +MODDED_AIRPLANES = [A_4E_C, MB_339PAN, Rafale_A_S, Rafale_M, Su_57, F_22A] MODDED_VEHICLES = [ frenchpack._FIELD_HIDE, frenchpack._FIELD_HIDE_SMALL, diff --git a/resources/factions/usa_2005_modded.json b/resources/factions/usa_2005_modded.json new file mode 100644 index 00000000..6afba8e0 --- /dev/null +++ b/resources/factions/usa_2005_modded.json @@ -0,0 +1,114 @@ +{ + "country": "USA", + "name": "USA 2005 Modded", + "authors": "Khopa", + "description": "
USA 2005 with the Raptor mod, with the F-22 mod.
", + "aircrafts": [ + "F_15C", + "F_15E", + "F_14B", + "FA_18C_hornet", + "F_16C_50", + "A_10C", + "A_10C_2", + "AV8BNA", + "UH_1H", + "AH_64D", + "B_52H", + "B_1B", + "F_117A", + "F_22A" + ], + "awacs": [ + "E_3A" + ], + "tankers": [ + "KC_135", + "KC130" + ], + "frontline_units": [ + "MBT_M1A2_Abrams", + "ATGM_M1134_Stryker", + "APC_M1126_Stryker_ICV", + "IFV_M2A2_Bradley", + "IFV_LAV_25", + "APC_M1043_HMMWV_Armament", + "ATGM_M1045_HMMWV_TOW" + ], + "artillery_units": [ + "MLRS_M270", + "SPH_M109_Paladin" + ], + "logistics_units": [ + "Transport_M818" + ], + "infantry_units": [ + "Infantry_M4", + "Soldier_M249" + ], + "shorads": [ + "AvengerGenerator" + ], + "sams": [ + "HawkGenerator", + "PatriotGenerator" + ], + "ewrs": [ + "PatriotEwrGenerator" + ], + "aircraft_carrier": [ + "CVN_74_John_C__Stennis" + ], + "helicopter_carrier": [ + "LHA_1_Tarawa" + ], + "destroyers": [ + "USS_Arleigh_Burke_IIa" + ], + "cruisers": [ + "Ticonderoga_class" + ], + "requirements": {}, + "carrier_names": [ + "CVN-71 Theodore Roosevelt", + "CVN-72 Abraham Lincoln", + "CVN-73 George Washington", + "CVN-74 John C. Stennis" + ], + "helicopter_carrier_names": [ + "LHA-1 Tarawa", + "LHA-2 Saipan", + "LHA-3 Belleau Wood", + "LHA-4 Nassau", + "LHA-5 Peleliu" + ], + "navy_generators": [ + "ArleighBurkeGroupGenerator", + "OliverHazardPerryGroupGenerator" + ], + "requirements": { + "F-22A mod": "https://drive.google.com/file/d/1aLDbSvkgOnwv4C-xtdc_dfMXNROynl_c/view?usp=sharing" + }, + "has_jtac": true, + "jtac_unit": "MQ_9_Reaper", + "liveries_overrides": { + "FA_18C_hornet": [ + "VFA-37", + "VFA-106", + "VFA-113", + "VFA-122", + "VFA-131", + "VFA-192", + "VFA-34", + "VFA-83", + "VFA-87", + "VFA-97", + "VMFA-122", + "VMFA-132", + "VMFA-251", + "VMFA-312", + "VMFA-314", + "VMFA-323" + ] + } +} \ No newline at end of file