diff --git a/game/db.py b/game/db.py index 2765c0a2..7b7f7923 100644 --- a/game/db.py +++ b/game/db.py @@ -13,217 +13,31 @@ from dcs.mapping import Point from dcs.planes import ( B_17G, FA_18C_hornet, - F_16C_50, F_14A, + F_16C_50, Ju_88A4, P_51D_30_NA, plane_map, ) from dcs.ships import ( - ship_map, - Stennis, - KUZNECOW, CVN_71, - CVN_75, - CVN_73, CVN_72, + CVN_73, + CVN_75, CV_1143_5, + KUZNECOW, + Stennis, + ship_map, ) from dcs.terrain.terrain import Airport -from dcs.unit import Ship from dcs.unitgroup import ShipGroup, StaticGroup -from dcs.unittype import UnitType, FlyingType, ShipType, VehicleType +from dcs.unittype import FlyingType, ShipType, UnitType, VehicleType from dcs.vehicles import ( vehicle_map, ) -import pydcs_extensions.frenchpack.frenchpack as frenchpack -import pydcs_extensions.highdigitsams.highdigitsams as highdigitsams - # PATCH pydcs data with MODS from game.factions.faction_loader import FactionLoader -from pydcs_extensions.a4ec.a4ec import A_4E_C -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 -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 - -plane_map["A-4E-C"] = A_4E_C -plane_map["F-22A"] = F_22A -plane_map["Su-57"] = Su_57 -plane_map["Hercules"] = Hercules -plane_map["KC130J"] = KC130J -plane_map["JAS39Gripen"] = JAS39Gripen -plane_map["JAS39Gripen_AG"] = JAS39Gripen_AG -plane_map["VSN_F104G"] = VSN_F104G -plane_map["VSN_F104S"] = VSN_F104S -plane_map["VSN_F104S_AG"] = VSN_F104S_AG - -helicopter_map["UH-60L"] = UH_60L - -vehicle_map["FieldHL"] = frenchpack._FIELD_HIDE -vehicle_map["HARRIERH"] = frenchpack._FIELD_HIDE_SMALL -vehicle_map["SMOKESAM"] = frenchpack.SMOKE_SAM_IR -vehicle_map["SmokeD1"] = frenchpack.SmokeD1 -vehicle_map["SmokeD3"] = frenchpack.SmokeD3 -vehicle_map["AMX10RCR"] = frenchpack.AMX_10RCR -vehicle_map["SEPAR"] = frenchpack.AMX_10RCR_SEPAR -vehicle_map["ERC"] = frenchpack.ERC_90 -vehicle_map["M120"] = frenchpack.MO_120_RT -vehicle_map["AA20"] = frenchpack._53T2 -vehicle_map["TRM2000"] = frenchpack.TRM_2000 -vehicle_map["TRM2000_Citerne"] = frenchpack.TRM_2000_Fuel -vehicle_map["TRM2000_AA20"] = frenchpack.TRM_2000_53T2 -vehicle_map["TRMMISTRAL"] = frenchpack.TRM_2000_PAMELA -vehicle_map["VABH"] = frenchpack.VAB_MEDICAL -vehicle_map["VAB_RADIO"] = frenchpack.VAB -vehicle_map["VAB_50"] = frenchpack.VAB__50 -vehicle_map["VIB_VBR"] = frenchpack.VAB_T20_13 -vehicle_map["VAB_HOT"] = frenchpack.VAB_MEPHISTO -vehicle_map["VAB_MORTIER"] = frenchpack.VAB_MORTIER -vehicle_map["VBL50"] = frenchpack.VBL__50 -vehicle_map["VBLANF1"] = frenchpack.VBL_AANF1 -vehicle_map["VBL-radio"] = frenchpack.VBL -vehicle_map["VBAE"] = frenchpack.VBAE_CRAB -vehicle_map["VBAE_MMP"] = frenchpack.VBAE_CRAB_MMP -vehicle_map["AMX-30B2"] = frenchpack.AMX_30B2 -vehicle_map["Tracma"] = frenchpack.Tracma_TD_1500 -vehicle_map["JTACFP"] = frenchpack.Infantry_Soldier_JTAC -vehicle_map["SHERIDAN"] = frenchpack.Char_M551_Sheridan -vehicle_map["Leclerc_XXI"] = frenchpack.Leclerc_Serie_XXI -vehicle_map["Toyota_bleu"] = frenchpack.DIM__TOYOTA_BLUE -vehicle_map["Toyota_vert"] = frenchpack.DIM__TOYOTA_GREEN -vehicle_map["Toyota_desert"] = frenchpack.DIM__TOYOTA_DESERT -vehicle_map["Kamikaze"] = frenchpack.DIM__KAMIKAZE -vehicle_map["AMX1375"] = frenchpack.AMX_13_75mm -vehicle_map["AMX1390"] = frenchpack.AMX_13_90mm -vehicle_map["VBCI"] = frenchpack.VBCI -vehicle_map["T62"] = frenchpack.Char_T_62 -vehicle_map["T64BV"] = frenchpack.Char_T_64BV -vehicle_map["T72M"] = frenchpack.Char_T_72A -vehicle_map["KORNET"] = frenchpack.KORNET_ATGM - - -vehicle_map[highdigitsams.AAA_SON_9_Fire_Can.id] = highdigitsams.AAA_SON_9_Fire_Can -vehicle_map[highdigitsams.AAA_100mm_KS_19.id] = highdigitsams.AAA_100mm_KS_19 -vehicle_map[ - highdigitsams.SAM_SA_10B_S_300PS_54K6_CP.id -] = highdigitsams.SAM_SA_10B_S_300PS_54K6_CP -vehicle_map[ - highdigitsams.SAM_SA_10B_S_300PS_5P85SE_LN.id -] = highdigitsams.SAM_SA_10B_S_300PS_5P85SE_LN -vehicle_map[ - highdigitsams.SAM_SA_10B_S_300PS_5P85SU_LN.id -] = highdigitsams.SAM_SA_10B_S_300PS_5P85SU_LN -vehicle_map[ - highdigitsams.SAM_SA_10__5V55RUD__S_300PS_LN_5P85CE.id -] = highdigitsams.SAM_SA_10__5V55RUD__S_300PS_LN_5P85CE -vehicle_map[ - highdigitsams.SAM_SA_10__5V55RUD__S_300PS_LN_5P85DE.id -] = highdigitsams.SAM_SA_10__5V55RUD__S_300PS_LN_5P85DE -vehicle_map[ - highdigitsams.SAM_SA_10B_S_300PS_30N6_TR.id -] = highdigitsams.SAM_SA_10B_S_300PS_30N6_TR -vehicle_map[ - highdigitsams.SAM_SA_10B_S_300PS_40B6M_TR.id -] = highdigitsams.SAM_SA_10B_S_300PS_40B6M_TR -vehicle_map[ - highdigitsams.SAM_SA_10B_S_300PS_40B6MD_SR.id -] = highdigitsams.SAM_SA_10B_S_300PS_40B6MD_SR -vehicle_map[ - highdigitsams.SAM_SA_10B_S_300PS_64H6E_SR.id -] = highdigitsams.SAM_SA_10B_S_300PS_64H6E_SR -vehicle_map[ - highdigitsams.SAM_SA_20_S_300PMU1_CP_54K6.id -] = highdigitsams.SAM_SA_20_S_300PMU1_CP_54K6 -vehicle_map[ - highdigitsams.SAM_SA_20_S_300PMU1_TR_30N6E.id -] = highdigitsams.SAM_SA_20_S_300PMU1_TR_30N6E -vehicle_map[ - highdigitsams.SAM_SA_20_S_300PMU1_TR_30N6E_truck.id -] = highdigitsams.SAM_SA_20_S_300PMU1_TR_30N6E_truck -vehicle_map[ - highdigitsams.SAM_SA_20_S_300PMU1_SR_5N66E.id -] = highdigitsams.SAM_SA_20_S_300PMU1_SR_5N66E -vehicle_map[ - highdigitsams.SAM_SA_20_S_300PMU1_SR_64N6E.id -] = highdigitsams.SAM_SA_20_S_300PMU1_SR_64N6E -vehicle_map[ - highdigitsams.SAM_SA_20_S_300PMU1_LN_5P85CE.id -] = highdigitsams.SAM_SA_20_S_300PMU1_LN_5P85CE -vehicle_map[ - highdigitsams.SAM_SA_20_S_300PMU1_LN_5P85DE.id -] = highdigitsams.SAM_SA_20_S_300PMU1_LN_5P85DE -vehicle_map[ - highdigitsams.SAM_SA_20B_S_300PMU2_CP_54K6E2.id -] = highdigitsams.SAM_SA_20B_S_300PMU2_CP_54K6E2 -vehicle_map[ - highdigitsams.SAM_SA_20B_S_300PMU2_TR_92H6E_truck.id -] = highdigitsams.SAM_SA_20B_S_300PMU2_TR_92H6E_truck -vehicle_map[ - highdigitsams.SAM_SA_20B_S_300PMU2_SR_64N6E2.id -] = highdigitsams.SAM_SA_20B_S_300PMU2_SR_64N6E2 -vehicle_map[ - highdigitsams.SAM_SA_20B_S_300PMU2_LN_5P85SE2.id -] = highdigitsams.SAM_SA_20B_S_300PMU2_LN_5P85SE2 -vehicle_map[ - highdigitsams.SAM_SA_12_S_300V_9S457_CP.id -] = highdigitsams.SAM_SA_12_S_300V_9S457_CP -vehicle_map[ - highdigitsams.SAM_SA_12_S_300V_9A82_LN.id -] = highdigitsams.SAM_SA_12_S_300V_9A82_LN -vehicle_map[ - highdigitsams.SAM_SA_12_S_300V_9A83_LN.id -] = highdigitsams.SAM_SA_12_S_300V_9A83_LN -vehicle_map[ - highdigitsams.SAM_SA_12_S_300V_9S15_SR.id -] = highdigitsams.SAM_SA_12_S_300V_9S15_SR -vehicle_map[ - highdigitsams.SAM_SA_12_S_300V_9S19_SR.id -] = highdigitsams.SAM_SA_12_S_300V_9S19_SR -vehicle_map[ - highdigitsams.SAM_SA_12_S_300V_9S32_TR.id -] = highdigitsams.SAM_SA_12_S_300V_9S32_TR -vehicle_map[ - highdigitsams.SAM_SA_23_S_300VM_9S457ME_CP.id -] = highdigitsams.SAM_SA_23_S_300VM_9S457ME_CP -vehicle_map[ - highdigitsams.SAM_SA_23_S_300VM_9S15M2_SR.id -] = highdigitsams.SAM_SA_23_S_300VM_9S15M2_SR -vehicle_map[ - highdigitsams.SAM_SA_23_S_300VM_9S19M2_SR.id -] = highdigitsams.SAM_SA_23_S_300VM_9S19M2_SR -vehicle_map[ - highdigitsams.SAM_SA_23_S_300VM_9S32ME_TR.id -] = highdigitsams.SAM_SA_23_S_300VM_9S32ME_TR -vehicle_map[ - highdigitsams.SAM_SA_23_S_300VM_9A83ME_LN.id -] = highdigitsams.SAM_SA_23_S_300VM_9A83ME_LN -vehicle_map[ - highdigitsams.SAM_SA_23_S_300VM_9A82ME_LN.id -] = highdigitsams.SAM_SA_23_S_300VM_9A82ME_LN -vehicle_map[ - highdigitsams.SAM_SA_17_Buk_M1_2_LN_9A310M1_2.id -] = highdigitsams.SAM_SA_17_Buk_M1_2_LN_9A310M1_2 -vehicle_map[ - highdigitsams.SAM_SA_2__V759__LN_SM_90.id -] = highdigitsams.SAM_SA_2__V759__LN_SM_90 -vehicle_map[highdigitsams.SAM_HQ_2_LN_SM_90.id] = highdigitsams.SAM_HQ_2_LN_SM_90 -vehicle_map[ - highdigitsams.SAM_SA_3__V_601P__LN_5P73.id -] = highdigitsams.SAM_SA_3__V_601P__LN_5P73 -vehicle_map[ - highdigitsams.SAM_SA_24_Igla_S_manpad.id -] = highdigitsams.SAM_SA_24_Igla_S_manpad -vehicle_map[ - highdigitsams.SAM_SA_14_Strela_3_manpad.id -] = highdigitsams.SAM_SA_14_Strela_3_manpad -vehicle_map[highdigitsams.Polyana_D4M1_C2_node.id] = highdigitsams.Polyana_D4M1_C2_node -vehicle_map[ - highdigitsams._34Ya6E_Gazetchik_E_decoy.id -] = highdigitsams._34Ya6E_Gazetchik_E_decoy """ ---------- BEGINNING OF CONFIGURATION SECTION diff --git a/game/modsupport.py b/game/modsupport.py new file mode 100644 index 00000000..a5413e3f --- /dev/null +++ b/game/modsupport.py @@ -0,0 +1,21 @@ +from typing import Type + +from dcs.helicopters import HelicopterType, helicopter_map +from dcs.planes import PlaneType, plane_map +from dcs.unittype import VehicleType +from dcs.vehicles import vehicle_map + + +def helicoptermod(helicopter: Type[HelicopterType]) -> Type[HelicopterType]: + helicopter_map[helicopter.id] = helicopter + return helicopter + + +def planemod(plane: Type[PlaneType]) -> Type[PlaneType]: + plane_map[plane.id] = plane + return plane + + +def vehiclemod(vehicle: Type[VehicleType]) -> Type[VehicleType]: + vehicle_map[vehicle.id] = vehicle + return vehicle diff --git a/pydcs_extensions/__init__.py b/pydcs_extensions/__init__.py new file mode 100644 index 00000000..3bf436e2 --- /dev/null +++ b/pydcs_extensions/__init__.py @@ -0,0 +1,18 @@ +from .a4ec import * +from .f104 import * +from .f22a import * +from .frenchpack import * +from .hercules import * +from .highdigitsams import * +from .jas39 import * +from .su57 import * +from .uh60l import * + + +def load_mods() -> None: + """Loads all mods. + + Note that this function doesn't *do* anything. Its purpose is to prevent editors + from removing `import pydcs_extensions` when it is "unused", because mod imports + have side effects (unit types are registered with pydcs). + """ diff --git a/pydcs_extensions/a4ec/a4ec.py b/pydcs_extensions/a4ec/a4ec.py index 26b4bf02..0b609fa1 100644 --- a/pydcs_extensions/a4ec/a4ec.py +++ b/pydcs_extensions/a4ec/a4ec.py @@ -4,6 +4,7 @@ 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 @@ -439,6 +440,7 @@ class WeaponsA4EC: inject_weapons(WeaponsA4EC) +@planemod class A_4E_C(PlaneType): id = "A-4E-C" flyable = True diff --git a/pydcs_extensions/f104/f104.py b/pydcs_extensions/f104/f104.py index 1e056ba6..1e08fc34 100644 --- a/pydcs_extensions/f104/f104.py +++ b/pydcs_extensions/f104/f104.py @@ -4,6 +4,7 @@ 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 @@ -38,6 +39,7 @@ class WeaponsF104: inject_weapons(WeaponsF104) +@planemod class VSN_F104G(PlaneType): id = "VSN_F104G" flyable = True @@ -1622,6 +1624,7 @@ class VSN_F104G(PlaneType): task_default = task.FighterSweep +@planemod class VSN_F104S(PlaneType): id = "VSN_F104S" flyable = True @@ -1974,6 +1977,7 @@ class VSN_F104S(PlaneType): task_default = task.FighterSweep +@planemod class VSN_F104S_AG(PlaneType): id = "VSN_F104S_AG" flyable = True diff --git a/pydcs_extensions/f22a/f22a.py b/pydcs_extensions/f22a/f22a.py index 33eea7ea..09e553f0 100644 --- a/pydcs_extensions/f22a/f22a.py +++ b/pydcs_extensions/f22a/f22a.py @@ -4,6 +4,7 @@ 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 @@ -15,6 +16,7 @@ class F22AWeapons: inject_weapons(F22AWeapons) +@planemod class F_22A(PlaneType): id = "F-22A" flyable = True diff --git a/pydcs_extensions/frenchpack/frenchpack.py b/pydcs_extensions/frenchpack/frenchpack.py index faeb6981..eaad717d 100644 --- a/pydcs_extensions/frenchpack/frenchpack.py +++ b/pydcs_extensions/frenchpack/frenchpack.py @@ -3,7 +3,10 @@ # from dcs import unittype +from game.modsupport import vehiclemod + +@vehiclemod class AMX_10RCR(unittype.VehicleType): id = "AMX10RCR" name = "AMX-10RCR" @@ -12,6 +15,7 @@ class AMX_10RCR(unittype.VehicleType): air_weapon_dist = 4000 +@vehiclemod class AMX_10RCR_SEPAR(unittype.VehicleType): id = "SEPAR" name = "AMX-10RCR SEPAR" @@ -20,6 +24,7 @@ class AMX_10RCR_SEPAR(unittype.VehicleType): air_weapon_dist = 4000 +@vehiclemod class ERC_90(unittype.VehicleType): id = "ERC" name = "ERC-90" @@ -29,6 +34,7 @@ class ERC_90(unittype.VehicleType): eplrs = True +@vehiclemod class VAB__50(unittype.VehicleType): id = "VAB_50" name = "VAB .50" @@ -38,6 +44,7 @@ class VAB__50(unittype.VehicleType): eplrs = True +@vehiclemod class VAB_T20_13(unittype.VehicleType): id = "VIB_VBR" name = "VAB T20/13" @@ -47,6 +54,7 @@ class VAB_T20_13(unittype.VehicleType): eplrs = True +@vehiclemod class VAB_MEPHISTO(unittype.VehicleType): id = "VAB_HOT" name = "VAB MEPHISTO" @@ -56,6 +64,7 @@ class VAB_MEPHISTO(unittype.VehicleType): eplrs = True +@vehiclemod class VBL__50(unittype.VehicleType): id = "VBL50" name = "VBL .50" @@ -65,6 +74,7 @@ class VBL__50(unittype.VehicleType): eplrs = True +@vehiclemod class VBL_AANF1(unittype.VehicleType): id = "VBLANF1" name = "VBL AANF1" @@ -74,6 +84,7 @@ class VBL_AANF1(unittype.VehicleType): eplrs = True +@vehiclemod class VBAE_CRAB(unittype.VehicleType): id = "VBAE" name = "VBAE CRAB" @@ -83,6 +94,7 @@ class VBAE_CRAB(unittype.VehicleType): eplrs = True +@vehiclemod class VBAE_CRAB_MMP(unittype.VehicleType): id = "VBAE_MMP" name = "VBAE CRAB MMP" @@ -92,6 +104,7 @@ class VBAE_CRAB_MMP(unittype.VehicleType): eplrs = True +@vehiclemod class AMX_30B2(unittype.VehicleType): id = "AMX-30B2" name = "AMX-30B2" @@ -100,6 +113,7 @@ class AMX_30B2(unittype.VehicleType): air_weapon_dist = 2500 +@vehiclemod class Char_M551_Sheridan(unittype.VehicleType): id = "SHERIDAN" name = "Char M551 Sheridan" @@ -108,6 +122,7 @@ class Char_M551_Sheridan(unittype.VehicleType): air_weapon_dist = 5000 +@vehiclemod class Leclerc_Serie_XXI(unittype.VehicleType): id = "Leclerc_XXI" name = "Leclerc Série XXI" @@ -116,6 +131,7 @@ class Leclerc_Serie_XXI(unittype.VehicleType): air_weapon_dist = 5000 +@vehiclemod class DIM__TOYOTA_BLUE(unittype.VehicleType): id = "Toyota_bleu" name = "DIM' TOYOTA BLUE" @@ -125,6 +141,7 @@ class DIM__TOYOTA_BLUE(unittype.VehicleType): eplrs = True +@vehiclemod class DIM__TOYOTA_GREEN(unittype.VehicleType): id = "Toyota_vert" name = "DIM' TOYOTA GREEN" @@ -134,6 +151,7 @@ class DIM__TOYOTA_GREEN(unittype.VehicleType): eplrs = True +@vehiclemod class DIM__TOYOTA_DESERT(unittype.VehicleType): id = "Toyota_desert" name = "DIM' TOYOTA DESERT" @@ -143,6 +161,7 @@ class DIM__TOYOTA_DESERT(unittype.VehicleType): eplrs = True +@vehiclemod class DIM__KAMIKAZE(unittype.VehicleType): id = "Kamikaze" name = "DIM' KAMIKAZE" @@ -155,6 +174,7 @@ class DIM__KAMIKAZE(unittype.VehicleType): ## FORTIFICATION +@vehiclemod class _FIELD_HIDE(unittype.VehicleType): id = "FieldHL" name = "*FIELD HIDE" @@ -163,6 +183,7 @@ class _FIELD_HIDE(unittype.VehicleType): air_weapon_dist = 0 +@vehiclemod class _FIELD_HIDE_SMALL(unittype.VehicleType): id = "HARRIERH" name = "*FIELD HIDE SMALL" @@ -171,6 +192,7 @@ class _FIELD_HIDE_SMALL(unittype.VehicleType): air_weapon_dist = 0 +@vehiclemod class SmokeD1(unittype.VehicleType): id = "SmokeD1" name = "SmokeD1" @@ -179,6 +201,7 @@ class SmokeD1(unittype.VehicleType): air_weapon_dist = 0 +@vehiclemod class SmokeD3(unittype.VehicleType): id = "SmokeD3" name = "SmokeD3" @@ -187,6 +210,7 @@ class SmokeD3(unittype.VehicleType): air_weapon_dist = 0 +@vehiclemod class TRM_2000(unittype.VehicleType): id = "TRM2000" name = "TRM-2000" @@ -196,6 +220,7 @@ class TRM_2000(unittype.VehicleType): eplrs = True +@vehiclemod class TRM_2000_Fuel(unittype.VehicleType): id = "TRM2000_Citerne" name = "TRM-2000 Fuel" @@ -205,6 +230,7 @@ class TRM_2000_Fuel(unittype.VehicleType): eplrs = True +@vehiclemod class VAB_MEDICAL(unittype.VehicleType): id = "VABH" name = "VAB MEDICAL" @@ -214,6 +240,7 @@ class VAB_MEDICAL(unittype.VehicleType): eplrs = True +@vehiclemod class VAB(unittype.VehicleType): id = "VAB_RADIO" name = "VAB" @@ -223,6 +250,7 @@ class VAB(unittype.VehicleType): eplrs = True +@vehiclemod class VBL(unittype.VehicleType): id = "VBL-Radio" name = "VBL" @@ -232,6 +260,7 @@ class VBL(unittype.VehicleType): eplrs = True +@vehiclemod class Tracma_TD_1500(unittype.VehicleType): id = "Tracma" name = "Tracma TD 1500" @@ -243,6 +272,7 @@ class Tracma_TD_1500(unittype.VehicleType): ## AIRDEFENCE +@vehiclemod class SMOKE_SAM_IR(unittype.VehicleType): id = "SMOKESAM" name = "SMOKE SAM IR" @@ -252,6 +282,7 @@ class SMOKE_SAM_IR(unittype.VehicleType): eplrs = True +@vehiclemod class _53T2(unittype.VehicleType): id = "AA20" name = "53T2" @@ -260,6 +291,7 @@ class _53T2(unittype.VehicleType): air_weapon_dist = 4000 +@vehiclemod class TRM_2000_53T2(unittype.VehicleType): id = "TRM2000_AA20" name = "TRM-2000 53T2" @@ -269,6 +301,7 @@ class TRM_2000_53T2(unittype.VehicleType): eplrs = True +@vehiclemod class TRM_2000_PAMELA(unittype.VehicleType): id = "TRMMISTRAL" name = "TRM-2000 PAMELA" @@ -278,6 +311,7 @@ class TRM_2000_PAMELA(unittype.VehicleType): eplrs = True +@vehiclemod class Leclerc_Serie_XXI_Desert(unittype.VehicleType): id = "Leclerc_XXI_Desert" name = "Leclerc Série XXI Désert" @@ -286,6 +320,7 @@ class Leclerc_Serie_XXI_Desert(unittype.VehicleType): air_weapon_dist = 4000 +@vehiclemod class AMX_13_75mm(unittype.VehicleType): id = "AMX1375" name = "AMX-13 75mm" @@ -294,6 +329,7 @@ class AMX_13_75mm(unittype.VehicleType): air_weapon_dist = 3500 +@vehiclemod class AMX_13_90mm(unittype.VehicleType): id = "AMX1390" name = "AMX-13 90mm" @@ -302,6 +338,7 @@ class AMX_13_90mm(unittype.VehicleType): air_weapon_dist = 3500 +@vehiclemod class VBCI(unittype.VehicleType): id = "VBCI" name = "VBCI" @@ -311,6 +348,7 @@ class VBCI(unittype.VehicleType): eplrs = True +@vehiclemod class Char_T_62(unittype.VehicleType): id = "T62" name = "Char T-62" @@ -319,6 +357,7 @@ class Char_T_62(unittype.VehicleType): air_weapon_dist = 4000 +@vehiclemod class Char_T_64BV(unittype.VehicleType): id = "T64BV" name = "Char T-64BV" @@ -327,6 +366,7 @@ class Char_T_64BV(unittype.VehicleType): air_weapon_dist = 4000 +@vehiclemod class Char_T_72A(unittype.VehicleType): id = "T72M" name = "Char T-72A" @@ -335,6 +375,7 @@ class Char_T_72A(unittype.VehicleType): air_weapon_dist = 4000 +@vehiclemod class KORNET_ATGM(unittype.VehicleType): id = "KORNET" name = "KORNET ATGM" @@ -346,6 +387,7 @@ class KORNET_ATGM(unittype.VehicleType): ## INFANTRY +@vehiclemod class Infantry_Soldier_JTAC(unittype.VehicleType): id = "JTACFP" name = "Infantry Soldier JTAC" @@ -357,6 +399,7 @@ class Infantry_Soldier_JTAC(unittype.VehicleType): ## ARTILERY +@vehiclemod class MO_120_RT(unittype.VehicleType): id = "M120" name = "MO 120 RT" @@ -365,6 +408,7 @@ class MO_120_RT(unittype.VehicleType): air_weapon_dist = 15000 +@vehiclemod class VAB_MORTIER(unittype.VehicleType): id = "VAB_MORTIER" name = "VAB MORTIER" diff --git a/pydcs_extensions/hercules/hercules.py b/pydcs_extensions/hercules/hercules.py index 012a2ad0..4666cb95 100644 --- a/pydcs_extensions/hercules/hercules.py +++ b/pydcs_extensions/hercules/hercules.py @@ -4,6 +4,7 @@ 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 @@ -684,6 +685,7 @@ class HerculesWeapons: inject_weapons(HerculesWeapons) +@planemod class Hercules(PlaneType): id = "Hercules" flyable = True diff --git a/pydcs_extensions/highdigitsams/highdigitsams.py b/pydcs_extensions/highdigitsams/highdigitsams.py index a7e365dd..cf020256 100644 --- a/pydcs_extensions/highdigitsams/highdigitsams.py +++ b/pydcs_extensions/highdigitsams/highdigitsams.py @@ -1,6 +1,9 @@ from dcs import unittype +from game.modsupport import vehiclemod + +@vehiclemod class AAA_SON_9_Fire_Can(unittype.VehicleType): id = "Fire Can radar" name = "AAA SON-9 Fire Can" @@ -9,6 +12,7 @@ class AAA_SON_9_Fire_Can(unittype.VehicleType): air_weapon_dist = 0 +@vehiclemod class AAA_100mm_KS_19(unittype.VehicleType): id = "KS19" name = "AAA 100mm KS-19" @@ -17,6 +21,7 @@ class AAA_100mm_KS_19(unittype.VehicleType): air_weapon_dist = 15000 +@vehiclemod class SAM_SA_10B_S_300PS_54K6_CP(unittype.VehicleType): id = "S-300PS SA-10B 54K6 cp" name = "SAM SA-10B S-300PS 54K6 CP" @@ -25,6 +30,7 @@ class SAM_SA_10B_S_300PS_54K6_CP(unittype.VehicleType): air_weapon_dist = 0 +@vehiclemod class SAM_SA_10B_S_300PS_5P85SE_LN(unittype.VehicleType): id = "S-300PS 5P85SE_mod ln" name = "SAM SA-10B S-300PS 5P85SE LN " @@ -33,6 +39,7 @@ class SAM_SA_10B_S_300PS_5P85SE_LN(unittype.VehicleType): air_weapon_dist = 75000 +@vehiclemod class SAM_SA_10B_S_300PS_5P85SU_LN(unittype.VehicleType): id = "S-300PS 5P85SU_mod ln" name = "SAM SA-10B S-300PS 5P85SU LN " @@ -41,6 +48,7 @@ class SAM_SA_10B_S_300PS_5P85SU_LN(unittype.VehicleType): air_weapon_dist = 75000 +@vehiclemod class SAM_SA_10__5V55RUD__S_300PS_LN_5P85CE(unittype.VehicleType): id = "S-300PS 5P85CE ln" name = "SAM SA-10 (5V55RUD) S-300PS LN 5P85CE" @@ -49,6 +57,7 @@ class SAM_SA_10__5V55RUD__S_300PS_LN_5P85CE(unittype.VehicleType): air_weapon_dist = 90000 +@vehiclemod class SAM_SA_10__5V55RUD__S_300PS_LN_5P85DE(unittype.VehicleType): id = "S-300PS 5P85DE ln" name = "SAM SA-10 (5V55RUD) S-300PS LN 5P85DE" @@ -57,6 +66,7 @@ class SAM_SA_10__5V55RUD__S_300PS_LN_5P85DE(unittype.VehicleType): air_weapon_dist = 90000 +@vehiclemod class SAM_SA_10B_S_300PS_30N6_TR(unittype.VehicleType): id = "S-300PS 30N6 TRAILER tr" name = "SAM SA-10B S-300PS 30N6 TR" @@ -65,6 +75,7 @@ class SAM_SA_10B_S_300PS_30N6_TR(unittype.VehicleType): air_weapon_dist = 0 +@vehiclemod class SAM_SA_10B_S_300PS_40B6M_TR(unittype.VehicleType): id = "S-300PS SA-10B 40B6M MAST tr" name = "SAM SA-10B S-300PS 40B6M TR" @@ -73,6 +84,7 @@ class SAM_SA_10B_S_300PS_40B6M_TR(unittype.VehicleType): air_weapon_dist = 0 +@vehiclemod class SAM_SA_10B_S_300PS_40B6MD_SR(unittype.VehicleType): id = "S-300PS SA-10B 40B6MD MAST sr" name = "SAM SA-10B S-300PS 40B6MD SR" @@ -81,6 +93,7 @@ class SAM_SA_10B_S_300PS_40B6MD_SR(unittype.VehicleType): air_weapon_dist = 0 +@vehiclemod class SAM_SA_10B_S_300PS_64H6E_SR(unittype.VehicleType): id = "S-300PS 64H6E TRAILER sr" name = "SAM SA-10B S-300PS 64H6E SR" @@ -89,6 +102,7 @@ class SAM_SA_10B_S_300PS_64H6E_SR(unittype.VehicleType): air_weapon_dist = 0 +@vehiclemod class SAM_SA_20_S_300PMU1_CP_54K6(unittype.VehicleType): id = "S-300PMU1 54K6 cp" name = "SAM SA-20 S-300PMU1 CP 54K6" @@ -97,6 +111,7 @@ class SAM_SA_20_S_300PMU1_CP_54K6(unittype.VehicleType): air_weapon_dist = 0 +@vehiclemod class SAM_SA_20_S_300PMU1_TR_30N6E(unittype.VehicleType): id = "S-300PMU1 40B6M tr" name = "SAM SA-20 S-300PMU1 TR 30N6E" @@ -105,6 +120,7 @@ class SAM_SA_20_S_300PMU1_TR_30N6E(unittype.VehicleType): air_weapon_dist = 0 +@vehiclemod class SAM_SA_20_S_300PMU1_TR_30N6E_truck(unittype.VehicleType): id = "S-300PMU1 30N6E tr" name = "SAM SA-20 S-300PMU1 TR 30N6E(truck)" @@ -113,6 +129,7 @@ class SAM_SA_20_S_300PMU1_TR_30N6E_truck(unittype.VehicleType): air_weapon_dist = 0 +@vehiclemod class SAM_SA_20_S_300PMU1_SR_5N66E(unittype.VehicleType): id = "S-300PMU1 40B6MD sr" name = "SAM SA-20 S-300PMU1 SR 5N66E" @@ -121,6 +138,7 @@ class SAM_SA_20_S_300PMU1_SR_5N66E(unittype.VehicleType): air_weapon_dist = 0 +@vehiclemod class SAM_SA_20_S_300PMU1_SR_64N6E(unittype.VehicleType): id = "S-300PMU1 64N6E sr" name = "SAM SA-20 S-300PMU1 SR 64N6E" @@ -129,6 +147,7 @@ class SAM_SA_20_S_300PMU1_SR_64N6E(unittype.VehicleType): air_weapon_dist = 0 +@vehiclemod class SAM_SA_20_S_300PMU1_LN_5P85CE(unittype.VehicleType): id = "S-300PMU1 5P85CE ln" name = "SAM SA-20 S-300PMU1 LN 5P85CE" @@ -137,6 +156,7 @@ class SAM_SA_20_S_300PMU1_LN_5P85CE(unittype.VehicleType): air_weapon_dist = 150000 +@vehiclemod class SAM_SA_20_S_300PMU1_LN_5P85DE(unittype.VehicleType): id = "S-300PMU1 5P85DE ln" name = "SAM SA-20 S-300PMU1 LN 5P85DE" @@ -145,6 +165,7 @@ class SAM_SA_20_S_300PMU1_LN_5P85DE(unittype.VehicleType): air_weapon_dist = 150000 +@vehiclemod class SAM_SA_20B_S_300PMU2_CP_54K6E2(unittype.VehicleType): id = "S-300PMU2 54K6E2 cp" name = "SAM SA-20B S-300PMU2 CP 54K6E2" @@ -153,6 +174,7 @@ class SAM_SA_20B_S_300PMU2_CP_54K6E2(unittype.VehicleType): air_weapon_dist = 0 +@vehiclemod class SAM_SA_20B_S_300PMU2_TR_92H6E_truck(unittype.VehicleType): id = "S-300PMU2 92H6E tr" name = "SAM SA-20B S-300PMU2 TR 92H6E(truck)" @@ -161,6 +183,7 @@ class SAM_SA_20B_S_300PMU2_TR_92H6E_truck(unittype.VehicleType): air_weapon_dist = 0 +@vehiclemod class SAM_SA_20B_S_300PMU2_SR_64N6E2(unittype.VehicleType): id = "S-300PMU2 64H6E2 sr" name = "SAM SA-20B S-300PMU2 SR 64N6E2" @@ -169,6 +192,7 @@ class SAM_SA_20B_S_300PMU2_SR_64N6E2(unittype.VehicleType): air_weapon_dist = 0 +@vehiclemod class SAM_SA_20B_S_300PMU2_LN_5P85SE2(unittype.VehicleType): id = "S-300PMU2 5P85SE2 ln" name = "SAM SA-20B S-300PMU2 LN 5P85SE2" @@ -177,6 +201,7 @@ class SAM_SA_20B_S_300PMU2_LN_5P85SE2(unittype.VehicleType): air_weapon_dist = 200000 +@vehiclemod class SAM_SA_12_S_300V_9S457_CP(unittype.VehicleType): id = "S-300V 9S457 cp" name = "SAM SA-12 S-300V 9S457 CP" @@ -185,6 +210,7 @@ class SAM_SA_12_S_300V_9S457_CP(unittype.VehicleType): air_weapon_dist = 0 +@vehiclemod class SAM_SA_12_S_300V_9A82_LN(unittype.VehicleType): id = "S-300V 9A82 ln" name = "SAM SA-12 S-300V 9A82 LN" @@ -193,6 +219,7 @@ class SAM_SA_12_S_300V_9A82_LN(unittype.VehicleType): air_weapon_dist = 100000 +@vehiclemod class SAM_SA_12_S_300V_9A83_LN(unittype.VehicleType): id = "S-300V 9A83 ln" name = "SAM SA-12 S-300V 9A83 LN" @@ -201,6 +228,7 @@ class SAM_SA_12_S_300V_9A83_LN(unittype.VehicleType): air_weapon_dist = 75000 +@vehiclemod class SAM_SA_12_S_300V_9S15_SR(unittype.VehicleType): id = "S-300V 9S15 sr" name = "SAM SA-12 S-300V 9S15 SR" @@ -209,6 +237,7 @@ class SAM_SA_12_S_300V_9S15_SR(unittype.VehicleType): air_weapon_dist = 0 +@vehiclemod class SAM_SA_12_S_300V_9S19_SR(unittype.VehicleType): id = "S-300V 9S19 sr" name = "SAM SA-12 S-300V 9S19 SR" @@ -217,6 +246,7 @@ class SAM_SA_12_S_300V_9S19_SR(unittype.VehicleType): air_weapon_dist = 0 +@vehiclemod class SAM_SA_12_S_300V_9S32_TR(unittype.VehicleType): id = "S-300V 9S32 tr" name = "SAM SA-12 S-300V 9S32 TR" @@ -225,6 +255,7 @@ class SAM_SA_12_S_300V_9S32_TR(unittype.VehicleType): air_weapon_dist = 0 +@vehiclemod class SAM_SA_23_S_300VM_9S457ME_CP(unittype.VehicleType): id = "S-300VM 9S457ME cp" name = "SAM SA-23 S-300VM 9S457ME CP" @@ -233,6 +264,7 @@ class SAM_SA_23_S_300VM_9S457ME_CP(unittype.VehicleType): air_weapon_dist = 0 +@vehiclemod class SAM_SA_23_S_300VM_9S15M2_SR(unittype.VehicleType): id = "S-300VM 9S15M2 sr" name = "SAM SA-23 S-300VM 9S15M2 SR" @@ -241,6 +273,7 @@ class SAM_SA_23_S_300VM_9S15M2_SR(unittype.VehicleType): air_weapon_dist = 0 +@vehiclemod class SAM_SA_23_S_300VM_9S19M2_SR(unittype.VehicleType): id = "S-300VM 9S19M2 sr" name = "SAM SA-23 S-300VM 9S19M2 SR" @@ -249,6 +282,7 @@ class SAM_SA_23_S_300VM_9S19M2_SR(unittype.VehicleType): air_weapon_dist = 0 +@vehiclemod class SAM_SA_23_S_300VM_9S32ME_TR(unittype.VehicleType): id = "S-300VM 9S32ME tr" name = "SAM SA-23 S-300VM 9S32ME TR" @@ -257,6 +291,7 @@ class SAM_SA_23_S_300VM_9S32ME_TR(unittype.VehicleType): air_weapon_dist = 0 +@vehiclemod class SAM_SA_23_S_300VM_9A83ME_LN(unittype.VehicleType): id = "S-300VM 9A83ME ln" name = "SAM SA-23 S-300VM 9A83ME LN" @@ -265,6 +300,7 @@ class SAM_SA_23_S_300VM_9A83ME_LN(unittype.VehicleType): air_weapon_dist = 90000 +@vehiclemod class SAM_SA_23_S_300VM_9A82ME_LN(unittype.VehicleType): id = "S-300VM 9A82ME ln" name = "SAM SA-23 S-300VM 9A82ME LN" @@ -273,6 +309,7 @@ class SAM_SA_23_S_300VM_9A82ME_LN(unittype.VehicleType): air_weapon_dist = 200000 +@vehiclemod class SAM_SA_17_Buk_M1_2_LN_9A310M1_2(unittype.VehicleType): id = "SA-17 Buk M1-2 LN 9A310M1-2" name = "SAM SA-17 Buk M1-2 LN 9A310M1-2" @@ -281,6 +318,7 @@ class SAM_SA_17_Buk_M1_2_LN_9A310M1_2(unittype.VehicleType): air_weapon_dist = 50000 +@vehiclemod class SAM_SA_2__V759__LN_SM_90(unittype.VehicleType): id = "S_75M_Volhov_V759" name = "SAM SA-2 (V759) LN SM-90" @@ -289,6 +327,7 @@ class SAM_SA_2__V759__LN_SM_90(unittype.VehicleType): air_weapon_dist = 50000 +@vehiclemod class SAM_HQ_2_LN_SM_90(unittype.VehicleType): id = "HQ_2_Guideline_LN" name = "SAM HQ-2 LN SM-90" @@ -297,6 +336,7 @@ class SAM_HQ_2_LN_SM_90(unittype.VehicleType): air_weapon_dist = 50000 +@vehiclemod class SAM_SA_3__V_601P__LN_5P73(unittype.VehicleType): id = "5p73 V-601P ln" name = "SAM SA-3 (V-601P) LN 5P73" @@ -305,6 +345,7 @@ class SAM_SA_3__V_601P__LN_5P73(unittype.VehicleType): air_weapon_dist = 18000 +@vehiclemod class SAM_SA_24_Igla_S_manpad(unittype.VehicleType): id = "SA-24 Igla-S manpad" name = "SAM SA-24 Igla-S manpad" @@ -313,6 +354,7 @@ class SAM_SA_24_Igla_S_manpad(unittype.VehicleType): air_weapon_dist = 6000 +@vehiclemod class SAM_SA_14_Strela_3_manpad(unittype.VehicleType): id = "SA-14 Strela-3 manpad" name = "SAM SA-14 Strela-3 manpad" @@ -321,6 +363,7 @@ class SAM_SA_14_Strela_3_manpad(unittype.VehicleType): air_weapon_dist = 4500 +@vehiclemod class Polyana_D4M1_C2_node(unittype.VehicleType): id = "polyana-d4m1 cp" name = "Polyana-D4M1 C2 node" @@ -329,6 +372,7 @@ class Polyana_D4M1_C2_node(unittype.VehicleType): air_weapon_dist = 0 +@vehiclemod class _34Ya6E_Gazetchik_E_decoy(unittype.VehicleType): id = "34Ya6E Gazetchik E decoy" name = "34Ya6E Gazetchik E decoy" diff --git a/pydcs_extensions/jas39/jas39.py b/pydcs_extensions/jas39/jas39.py index a955b1be..7288c267 100644 --- a/pydcs_extensions/jas39/jas39.py +++ b/pydcs_extensions/jas39/jas39.py @@ -4,6 +4,7 @@ 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 @@ -254,6 +255,7 @@ class JAS39GripenWeapons: inject_weapons(JAS39GripenWeapons) +@planemod class JAS39Gripen(PlaneType): id = "JAS39Gripen" flyable = True @@ -491,6 +493,7 @@ class JAS39Gripen(PlaneType): task_default = task.FighterSweep +@planemod class JAS39Gripen_AG(PlaneType): id = "JAS39Gripen_AG" flyable = True diff --git a/pydcs_extensions/mod_units.py b/pydcs_extensions/mod_units.py deleted file mode 100644 index f519502f..00000000 --- a/pydcs_extensions/mod_units.py +++ /dev/null @@ -1,110 +0,0 @@ -from pydcs_extensions.a4ec.a4ec import A_4E_C -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 -from pydcs_extensions.highdigitsams import highdigitsams -from pydcs_extensions.jas39.jas39 import JAS39Gripen, JAS39Gripen_AG -from pydcs_extensions.su57.su57 import Su_57 -import pydcs_extensions.frenchpack.frenchpack as frenchpack -from pydcs_extensions.uh60l.uh60l import UH_60L, KC130J - -MODDED_AIRPLANES = [ - A_4E_C, - Su_57, - F_22A, - VSN_F104G, - VSN_F104S, - VSN_F104S_AG, - Hercules, - KC130J, - JAS39Gripen, - JAS39Gripen_AG, -] -MODDED_HELICOPTERS = [ - UH_60L, -] -MODDED_VEHICLES = [ - frenchpack._FIELD_HIDE, - frenchpack._FIELD_HIDE_SMALL, - frenchpack.SMOKE_SAM_IR, - frenchpack.SmokeD1, - frenchpack.SmokeD3, - frenchpack.AMX_10RCR, - frenchpack.AMX_10RCR_SEPAR, - frenchpack.ERC_90, - frenchpack.MO_120_RT, - frenchpack._53T2, - frenchpack.TRM_2000, - frenchpack.TRM_2000_Fuel, - frenchpack.TRM_2000_53T2, - frenchpack.TRM_2000_PAMELA, - frenchpack.VAB_MEDICAL, - frenchpack.VAB, - frenchpack.VAB__50, - frenchpack.VAB_T20_13, - frenchpack.VAB_MEPHISTO, - frenchpack.VAB_MORTIER, - frenchpack.VBL__50, - frenchpack.VBL_AANF1, - frenchpack.VBL, - frenchpack.VBAE_CRAB, - frenchpack.VBAE_CRAB_MMP, - frenchpack.AMX_30B2, - frenchpack.Tracma_TD_1500, - frenchpack.Infantry_Soldier_JTAC, - frenchpack.Char_M551_Sheridan, - frenchpack.Leclerc_Serie_XXI, - frenchpack.DIM__TOYOTA_BLUE, - frenchpack.DIM__TOYOTA_GREEN, - frenchpack.DIM__TOYOTA_DESERT, - frenchpack.DIM__KAMIKAZE, - frenchpack.VBCI, - frenchpack.AMX_13_75mm, - frenchpack.AMX_13_90mm, - frenchpack.Char_T_62, - frenchpack.Char_T_64BV, - frenchpack.Char_T_72A, - frenchpack.KORNET_ATGM, - highdigitsams.AAA_SON_9_Fire_Can, - highdigitsams.AAA_100mm_KS_19, - highdigitsams.SAM_SA_10B_S_300PS_54K6_CP, - highdigitsams.SAM_SA_10B_S_300PS_5P85SE_LN, - highdigitsams.SAM_SA_10B_S_300PS_5P85SU_LN, - highdigitsams.SAM_SA_10__5V55RUD__S_300PS_LN_5P85CE, - highdigitsams.SAM_SA_10__5V55RUD__S_300PS_LN_5P85DE, - highdigitsams.SAM_SA_10B_S_300PS_30N6_TR, - highdigitsams.SAM_SA_10B_S_300PS_40B6M_TR, - highdigitsams.SAM_SA_10B_S_300PS_40B6MD_SR, - highdigitsams.SAM_SA_10B_S_300PS_64H6E_SR, - highdigitsams.SAM_SA_20_S_300PMU1_CP_54K6, - highdigitsams.SAM_SA_20_S_300PMU1_TR_30N6E, - highdigitsams.SAM_SA_20_S_300PMU1_TR_30N6E_truck, - highdigitsams.SAM_SA_20_S_300PMU1_SR_5N66E, - highdigitsams.SAM_SA_20_S_300PMU1_SR_64N6E, - highdigitsams.SAM_SA_20_S_300PMU1_LN_5P85CE, - highdigitsams.SAM_SA_20_S_300PMU1_LN_5P85DE, - highdigitsams.SAM_SA_20B_S_300PMU2_CP_54K6E2, - highdigitsams.SAM_SA_20B_S_300PMU2_TR_92H6E_truck, - highdigitsams.SAM_SA_20B_S_300PMU2_SR_64N6E2, - highdigitsams.SAM_SA_20B_S_300PMU2_LN_5P85SE2, - highdigitsams.SAM_SA_12_S_300V_9S457_CP, - highdigitsams.SAM_SA_12_S_300V_9A82_LN, - highdigitsams.SAM_SA_12_S_300V_9A83_LN, - highdigitsams.SAM_SA_12_S_300V_9S15_SR, - highdigitsams.SAM_SA_12_S_300V_9S19_SR, - highdigitsams.SAM_SA_12_S_300V_9S32_TR, - highdigitsams.SAM_SA_23_S_300VM_9S457ME_CP, - highdigitsams.SAM_SA_23_S_300VM_9S15M2_SR, - highdigitsams.SAM_SA_23_S_300VM_9S19M2_SR, - highdigitsams.SAM_SA_23_S_300VM_9S32ME_TR, - highdigitsams.SAM_SA_23_S_300VM_9A83ME_LN, - highdigitsams.SAM_SA_23_S_300VM_9A82ME_LN, - highdigitsams.SAM_SA_17_Buk_M1_2_LN_9A310M1_2, - highdigitsams.SAM_SA_2__V759__LN_SM_90, - highdigitsams.SAM_HQ_2_LN_SM_90, - highdigitsams.SAM_SA_3__V_601P__LN_5P73, - highdigitsams.SAM_SA_24_Igla_S_manpad, - highdigitsams.SAM_SA_14_Strela_3_manpad, - highdigitsams.Polyana_D4M1_C2_node, - highdigitsams._34Ya6E_Gazetchik_E_decoy, -] diff --git a/pydcs_extensions/su57/su57.py b/pydcs_extensions/su57/su57.py index 211ddc53..725334fd 100644 --- a/pydcs_extensions/su57/su57.py +++ b/pydcs_extensions/su57/su57.py @@ -4,6 +4,7 @@ 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 @@ -23,6 +24,7 @@ class Su57Weapons: inject_weapons(Su57Weapons) +@planemod class Su_57(PlaneType): id = "Su-57" flyable = True diff --git a/pydcs_extensions/uh60l/uh60l.py b/pydcs_extensions/uh60l/uh60l.py index 81a697fc..94d9be03 100644 --- a/pydcs_extensions/uh60l/uh60l.py +++ b/pydcs_extensions/uh60l/uh60l.py @@ -1,10 +1,11 @@ from enum import Enum -from typing import Dict, Any +from typing import Any, Dict from dcs import task from dcs.helicopters import HelicopterType from dcs.planes import PlaneType +from game.modsupport import helicoptermod, planemod from pydcs_extensions.weapon_injector import inject_weapons @@ -19,6 +20,7 @@ class WeaponsUH60L: inject_weapons(WeaponsUH60L) +@helicoptermod class UH_60L(HelicopterType): id = "UH-60L" flyable = True @@ -1270,6 +1272,7 @@ class UH_60L(HelicopterType): task_default = task.Transport +@planemod class KC130J(PlaneType): id = "KC130J" group_size_max = 1 diff --git a/qt_ui/main.py b/qt_ui/main.py index deaf0a07..a769ce9c 100644 --- a/qt_ui/main.py +++ b/qt_ui/main.py @@ -21,6 +21,7 @@ from game.profiling import logged_duration from game.server import EventStream, GameContext, Server from game.settings import Settings from game.theater.start_generator import GameGenerator, GeneratorSettings, ModSettings +from pydcs_extensions import load_mods from qt_ui import ( liberation_install, liberation_theme, @@ -319,6 +320,8 @@ def main(): if args.warn_missing_weapon_data: lint_all_weapon_data() + load_mods() + if args.subcommand == "new-game": with logged_duration("New game creation"): game = create_game(