diff --git a/game/data/radar_db.py b/game/data/radar_db.py index ba810b72..31dd4482 100644 --- a/game/data/radar_db.py +++ b/game/data/radar_db.py @@ -26,6 +26,7 @@ from dcs.vehicles import AirDefence from pydcs_extensions import highdigitsams as hds from pydcs_extensions import vietnamwarvessels as vwv from pydcs_extensions import chinesemilitaryassetspack as cmap +from pydcs_extensions import russianmilitaryassetspack as rmap TELARS = { @@ -37,6 +38,10 @@ TELARS = { hds.SAM_SA_17_Buk_M1_2_LN_9A310M1_2, cmap.PGL_625, cmap.HQ17A, + rmap.CH_BukM3_9A317M, + rmap.CH_BukM3_9A317MA, + rmap.CH_S350_50P6_9M96D, + rmap.CH_S350_50P6_9M100, } TRACK_RADARS = { @@ -57,6 +62,8 @@ TRACK_RADARS = { hds.SAM_SA_20B_S_300PMU2_TR_92H6E_truck, hds.SAM_SA_23_S_300VM_9S32ME_TR, cmap.CH_HQ22_STR, + rmap.CH_BukM3_9S36M, + rmap.CH_S350_50N6, } LAUNCHER_TRACKER_PAIRS = { @@ -91,6 +98,10 @@ LAUNCHER_TRACKER_PAIRS = { hds.SAM_SA_23_S_300VM_9A82ME_LN: (hds.SAM_SA_23_S_300VM_9S32ME_TR,), hds.SAM_SA_23_S_300VM_9A83ME_LN: (hds.SAM_SA_23_S_300VM_9S32ME_TR,), cmap.CH_HQ22_LN: (cmap.CH_HQ22_STR,), + rmap.CH_BukM3_9A317M: (rmap.CH_BukM3_9S36M,), + rmap.CH_BukM3_9A317MA: (rmap.CH_BukM3_9S36M,), + rmap.CH_S350_50P6_9M96D: (rmap.CH_S350_50N6,), + rmap.CH_S350_50P6_9M100: (rmap.CH_S350_50N6,), } UNITS_WITH_RADAR = { @@ -126,6 +137,23 @@ UNITS_WITH_RADAR = { AirDefence.HQ_7_STR_SP, AirDefence.FuMG_401, AirDefence.FuSe_65, + cmap.PGL_625, + cmap.HQ17A, + cmap.CH_PGZ09, + cmap.CH_HQ22_SR, + cmap.CH_HQ22_STR, + cmap.CH_LD3000, + cmap.CH_LD3000_stationary, + cmap.CH_PGZ95, + rmap.PantsirS1, + rmap.PantsirS2, + rmap.TorM2, + rmap.TorM2K, + rmap.TorM2M, + rmap.CH_S350_96L6, + rmap.CH_S350_50N6, + rmap.CH_BukM3_9S18M13, + rmap.CH_BukM3_9S36M, # Ships ALBATROS, CVN_71, @@ -159,4 +187,11 @@ UNITS_WITH_RADAR = { cmap.CH_Type054B, cmap.Type055, cmap.CH_Type056A, + rmap.Admiral_Gorshkov, + rmap.CH_Steregushchiy, + rmap.CH_Project22160, + rmap.CH_Grigorovich_AShM, + rmap.CH_Grigorovich_LACM, + rmap.CH_Gremyashchiy_AShM, + rmap.CH_Gremyashchiy_LACM, } diff --git a/game/factions/faction.py b/game/factions/faction.py index 4003c2b9..0b28cfca 100644 --- a/game/factions/faction.py +++ b/game/factions/faction.py @@ -703,6 +703,61 @@ class Faction: self.remove_ship("CH_Type056A") self.remove_ship("CH_Type054B") self.remove_preset("HQ-22") + # Russian Military Assets Pack + if not mod_settings.russianmilitaryassetspack: + self.remove_vehicle("CH_2S35") + self.remove_vehicle("CH_TOS1A") + self.remove_vehicle("CH_DSHK_HMG_RUS") + self.remove_vehicle("CH_DSHK_HMG_UKR") + self.remove_vehicle("CH_9M133") + self.remove_vehicle("CH_RussianInfantry_Kord") + self.remove_vehicle("CH_2S38_LG") + self.remove_vehicle("CH_2S38") + self.remove_vehicle("PantsirS1") + self.remove_vehicle("PantsirS2") + self.remove_vehicle("CH_S350_50P6_9M96D") + self.remove_vehicle("CH_S350_50P6_9M100") + self.remove_vehicle("CH_S350_50N6") + self.remove_vehicle("CH_S350_50K6") + self.remove_vehicle("CH_S350_96L6") + self.remove_vehicle("TorM2K") + self.remove_vehicle("TorM2") + self.remove_vehicle("TorM2M") + self.remove_vehicle("CH_BukM3_9A317M") + self.remove_vehicle("CH_BukM3_9A317MA") + self.remove_vehicle("CH_BukM3_9S36M") + self.remove_vehicle("CH_BukM3_9S510M") + self.remove_vehicle("CH_BukM3_9S18M13") + self.remove_vehicle("CH_TM62_AT_Mine") + self.remove_vehicle("CH_T14") + self.remove_vehicle("CH_T90M") + self.remove_vehicle("CH_TigrM") + self.remove_vehicle("CH_T90A") + self.remove_vehicle("CH_T80BVM") + self.remove_vehicle("CH_BMD4") + self.remove_vehicle("CH_3K60_BAL") + self.remove_vehicle("K300P") + self.remove_vehicle("MonolitB") + self.remove_vehicle("CH_IskanderM") + self.remove_vehicle("CH_IskanderK") + self.remove_ship("CH_Project22160") + self.remove_ship("Admiral_Gorshkov") + self.remove_ship("CH_Grigorovich_AShM") + self.remove_ship("CH_Grigorovich_LACM") + self.remove_ship("Karakurt_AShM") + self.remove_ship("Karakurt_LACM") + self.remove_ship("CH_Steregushchiy") + self.remove_ship("CH_Gremyashchiy_AShM") + self.remove_ship("CH_Gremyashchiy_LACM") + self.remove_aircraft("CH_Tu-160M2") + self.remove_aircraft("CH_Tu-95MSM") + self.remove_aircraft("CH_Mi28N") + self.remove_aircraft("CH_Ka52") + self.remove_aircraft("CH_Ka52K") + self.remove_preset("BAL_LBASM") + self.remove_preset("BUK_M3") + self.remove_preset("Bastion-P_LBASM") + self.remove_preset("S-350") def remove_aircraft(self, name: str) -> None: for aircraft_set in [self.aircraft, self.awacs, self.tankers]: diff --git a/game/modsupport.py b/game/modsupport.py index f0f9bced..a31f4f52 100644 --- a/game/modsupport.py +++ b/game/modsupport.py @@ -2,9 +2,10 @@ from typing import Type from dcs.helicopters import HelicopterType, helicopter_map from dcs.planes import PlaneType, plane_map -from dcs.unittype import VehicleType, ShipType +from dcs.unittype import VehicleType, ShipType, StaticType from dcs.vehicles import vehicle_map from dcs.ships import ship_map +from dcs.statics import cargo_map, fortification_map def helicoptermod(helicopter: Type[HelicopterType]) -> Type[HelicopterType]: @@ -25,3 +26,13 @@ def vehiclemod(vehicle: Type[VehicleType]) -> Type[VehicleType]: def shipmod(ship: Type[ShipType]) -> Type[ShipType]: ship_map[ship.id] = ship return ship + + +def cargomod(static: Type[StaticType]) -> Type[StaticType]: + cargo_map[static.id] = static + return static + + +def fortificationmod(static: Type[StaticType]) -> Type[StaticType]: + fortification_map[static.id] = static + return static diff --git a/game/theater/start_generator.py b/game/theater/start_generator.py index ad41cc58..886c6bdf 100644 --- a/game/theater/start_generator.py +++ b/game/theater/start_generator.py @@ -102,6 +102,7 @@ class ModSettings: SWPack: bool = False vietnamwarvessels: bool = False chinesemilitaryassetspack: bool = False + russianmilitaryassetspack: bool = False class GameGenerator: diff --git a/pydcs_extensions/__init__.py b/pydcs_extensions/__init__.py index 7be91dcd..01e23314 100644 --- a/pydcs_extensions/__init__.py +++ b/pydcs_extensions/__init__.py @@ -36,6 +36,7 @@ from .coldwarassets import * from .uh60l import * from .vietnamwarvessels import * from .chinesemilitaryassetspack import * +from .russianmilitaryassetspack import * def load_mods() -> None: diff --git a/pydcs_extensions/russianmilitaryassetspack/__init__.py b/pydcs_extensions/russianmilitaryassetspack/__init__.py new file mode 100644 index 00000000..51b478d7 --- /dev/null +++ b/pydcs_extensions/russianmilitaryassetspack/__init__.py @@ -0,0 +1 @@ +from .russianmilitaryassetspack import * diff --git a/pydcs_extensions/russianmilitaryassetspack/russianmilitaryassetspack.py b/pydcs_extensions/russianmilitaryassetspack/russianmilitaryassetspack.py new file mode 100644 index 00000000..18b07bc0 --- /dev/null +++ b/pydcs_extensions/russianmilitaryassetspack/russianmilitaryassetspack.py @@ -0,0 +1,1250 @@ +# Requires Russian Military Assets for DCS by Currenthill: +# https://www.currenthill.com/russia +# + + +from typing import Set, Dict, Any + +from dcs import unittype, task +from dcs.helicopters import HelicopterType +from dcs.planes import PlaneType +from dcs.weapons_data import Weapons + +from game.modsupport import ( + fortificationmod, + helicoptermod, + planemod, + shipmod, + cargomod, + vehiclemod, +) +from pydcs_extensions.weapon_injector import inject_weapons + + +# Weapons +class WeaponsRU: + + Kh_555_ALCM = {"clsid": "{CH_Kh555}", "name": "Kh-555 ALCM", "weight": 1280} + + _6_x_Kh_555_ALCM = { + "clsid": "{CH_Kh555x6}", + "name": "6 x Kh-555 ALCM", + "weight": 7680, + } + + _6_x_9M120_Ataka__AT_9_Spiral_2____ATGM__SACLOS__Tandem_HEAT = { + "clsid": "{Ka52_9M120_6}", + "name": "6 x 9M120 Ataka (AT-9 Spiral-2) - ATGM, SACLOS, Tandem HEAT", + "weight": 118, + } + + _6_x_9M120F_Ataka__AT_9_Spiral_2____AGM__SACLOS__HE = { + "clsid": "{Ka52_9M120F_6}", + "name": "6 x 9M120F Ataka (AT-9 Spiral-2) - AGM, SACLOS, HE", + "weight": 118, + } + + Kh_101_ALCM = {"clsid": "{Tu95MSM_Kh101}", "name": "Kh-101 ALCM", "weight": 2400} + + Kh_101_ALCM_ = {"clsid": "{Tu160M2_Kh101}", "name": "Kh-101 ALCM", "weight": 2400} + + _6_x_Kh_101_ALCM = { + "clsid": "{Tu160M2_Kh101x6}", + "name": "6 x Kh-101 ALCM", + "weight": 14400, + } + + _6_x_Kh_555_ALCM = { + "clsid": "{CH_Kh555x6}", + "name": "6 x Kh-555 ALCM", + "weight": 7680, + } + + Kh_31A = {"clsid": "{Ka52_Kh31A}", "name": "Kh-31A", "weight": 610} + + Kh_35U = {"clsid": "{Ka52_Kh35U}", "name": "Kh-35U", "weight": 550} + + Kh_38MA = {"clsid": "{Ka52_Kh38MA}", "name": "Kh-38MA", "weight": 50} + + _9M120 = {"clsid": "{Ka52_9M120}", "name": "9M120", "weight": None} + + _9M120F = {"clsid": "{Ka52_9M120F}", "name": "9M120F", "weight": None} + + +inject_weapons(WeaponsRU) + + +# Artillery +@vehiclemod +class CH_2S35(unittype.VehicleType): + id = "CH_2S35" + name = "[CH] 2S35 SPG" + detection_range = 5000 + threat_range = 40000 + air_weapon_dist = 1800 + eplrs = True + + +@vehiclemod +class CH_TOS1A(unittype.VehicleType): + id = "CH_TOS1A" + name = "[CH] TOS-1A MRL" + detection_range = 0 + threat_range = 6000 + air_weapon_dist = 6000 + eplrs = True + + +# Infantry +@vehiclemod +class CH_DSHK_HMG_RUS(unittype.VehicleType): + id = "CH_DSHK_HMG_RUS" + name = "[CH] DShK HMG" + detection_range = 5000 + threat_range = 1800 + air_weapon_dist = 1800 + eplrs = True + + +@vehiclemod +class CH_DSHK_HMG_UKR(unittype.VehicleType): + id = "CH_DSHK_HMG_UKR" + name = "[CH] DShK HMG" + detection_range = 5000 + threat_range = 1800 + air_weapon_dist = 1800 + eplrs = True + + +@vehiclemod +class CH_9M133(unittype.VehicleType): + id = "CH_9M133" + name = "[CH] 9M133 ATGM Soldier" + detection_range = 5500 + threat_range = 5500 + air_weapon_dist = 5500 + eplrs = True + + +@vehiclemod +class CH_RussianInfantry_Kord(unittype.VehicleType): + id = "CH_RussianInfantry_Kord" + name = "[CH] Kord HMG Soldier" + detection_range = 0 + threat_range = 1800 + air_weapon_dist = 1800 + eplrs = True + + +# Air Defense +@vehiclemod +class CH_2S38_LG(unittype.VehicleType): + id = "CH_2S38_LG" + name = "[CH] 2S38 SPAAG (LG-HE)" + detection_range = 12000 + threat_range = 8000 + air_weapon_dist = 8000 + eplrs = True + + +@vehiclemod +class CH_2S38(unittype.VehicleType): + id = "CH_2S38" + name = "[CH] 2S38 SPAAG" + detection_range = 12000 + threat_range = 5000 + air_weapon_dist = 5000 + eplrs = True + + +@vehiclemod +class PantsirS1(unittype.VehicleType): + id = "PantsirS1" + name = "[CH] Pantsir-S1 SPAAGM" + detection_range = 36000 + threat_range = 20000 + air_weapon_dist = 20000 + eplrs = True + + +@vehiclemod +class PantsirS2(unittype.VehicleType): + id = "PantsirS2" + name = "[CH] Pantsir-S2 SPAAGM" + detection_range = 40000 + threat_range = 30000 + air_weapon_dist = 30000 + eplrs = True + + +@vehiclemod +class CH_S350_50P6_9M96D(unittype.VehicleType): + id = "CH_S350_50P6_9M96D" + name = "[CH] S-350 50P6 9M96D LN" + detection_range = 0 + threat_range = 150000 + air_weapon_dist = 150000 + eplrs = True + + +@vehiclemod +class CH_S350_50P6_9M100(unittype.VehicleType): + id = "CH_S350_50P6_9M100" + name = "[CH] S-350 50P6 9M100 LN" + detection_range = 0 + threat_range = 15000 + air_weapon_dist = 15000 + eplrs = True + + +@vehiclemod +class CH_S350_50N6(unittype.VehicleType): + id = "CH_S350_50N6" + name = "[CH] S-350 50N6 STR" + detection_range = 200000 + threat_range = 0 + air_weapon_dist = 0 + eplrs = True + + +@vehiclemod +class CH_S350_50K6(unittype.VehicleType): + id = "CH_S350_50K6" + name = "[CH] S-350 50K6 CP" + detection_range = 0 + threat_range = 0 + air_weapon_dist = 0 + eplrs = True + + +@vehiclemod +class CH_S350_96L6(unittype.VehicleType): + id = "CH_S350_96L6" + name = "[CH] S-350 96L6 SR" + detection_range = 300000 + threat_range = 0 + air_weapon_dist = 0 + + +@vehiclemod +class TorM2K(unittype.VehicleType): + id = "TorM2K" + name = "[CH] Tor M2K SHORAD" + detection_range = 25000 + threat_range = 12000 + air_weapon_dist = 12000 + eplrs = True + + +@vehiclemod +class TorM2(unittype.VehicleType): + id = "TorM2" + name = "[CH] Tor M2 SHORAD" + detection_range = 25000 + threat_range = 12000 + air_weapon_dist = 12000 + eplrs = True + + +@vehiclemod +class TorM2M(unittype.VehicleType): + id = "TorM2M" + name = "[CH] Tor M2M SHORAD" + detection_range = 25000 + threat_range = 16000 + air_weapon_dist = 16000 + eplrs = True + + +@vehiclemod +class CH_BukM3_9A317M(unittype.VehicleType): + id = "CH_BukM3_9A317M" + name = "[CH] Buk M3 9A317M TELAR" + detection_range = 120000 + threat_range = 70000 + air_weapon_dist = 70000 + + +@vehiclemod +class CH_BukM3_9A317MA(unittype.VehicleType): + id = "CH_BukM3_9A317MA" + name = "[CH] Buk M3 9A317MA TELAR" + detection_range = 120000 + threat_range = 70000 + air_weapon_dist = 70000 + + +@vehiclemod +class CH_BukM3_9S36M(unittype.VehicleType): + id = "CH_BukM3_9S36M" + name = "[CH] Buk M3 9S36M TR" + detection_range = 120000 + threat_range = 0 + air_weapon_dist = 0 + + +@vehiclemod +class CH_BukM3_9S510M(unittype.VehicleType): + id = "CH_BukM3_9S510M" + name = "[CH] Buk M3 9S510M CP" + detection_range = 0 + threat_range = 0 + air_weapon_dist = 0 + eplrs = True + + +@vehiclemod +class CH_BukM3_9S18M13(unittype.VehicleType): + id = "CH_BukM3_9S18M13" + name = "[CH] Buk M3 9S18M1-3 SR" + detection_range = 150000 + threat_range = 0 + air_weapon_dist = 0 + + +# Fortification +@fortificationmod +class CH_TM62_AT_Mine(unittype.VehicleType): + id = "CH_TM62_AT_Mine" + name = "[CH] TM-62M AT mine" + detection_range = 0 + threat_range = 50 + air_weapon_dist = 50 + + +# Armor +@vehiclemod +class CH_T14(unittype.VehicleType): + id = "CH_T14" + name = "[CH] T-14 MBT" + detection_range = 8000 + threat_range = 5000 + air_weapon_dist = 5000 + eplrs = True + + +@vehiclemod +class CH_T90M(unittype.VehicleType): + id = "CH_T90M" + name = "[CH] T-90M MBT" + detection_range = 8000 + threat_range = 5000 + air_weapon_dist = 5000 + eplrs = True + + +@vehiclemod +class CH_TigrM(unittype.VehicleType): + id = "CH_TigrM" + name = "[CH] Tigr-M" + detection_range = 0 + threat_range = 1200 + air_weapon_dist = 1200 + eplrs = True + + +@vehiclemod +class CH_T90A(unittype.VehicleType): + id = "CH_T90A" + name = "[CH] T-90A MBT" + detection_range = 0 + threat_range = 8000 + air_weapon_dist = 1800 + eplrs = True + + +@vehiclemod +class CH_T80BVM(unittype.VehicleType): + id = "CH_T80BVM" + name = "[CH] T-80BVM MBT" + detection_range = 0 + threat_range = 8000 + air_weapon_dist = 1800 + eplrs = True + + +@vehiclemod +class CH_BMD4(unittype.VehicleType): + id = "CH_BMD4" + name = "[CH] BMD-4 IFV" + detection_range = 6000 + threat_range = 4000 + air_weapon_dist = 4000 + eplrs = True + + +# Missiles +@vehiclemod +class CH_3K60_BAL(unittype.VehicleType): + id = "CH_3K60_BAL" + name = "[CH] Bal LBASM TEL" + detection_range = 260000 + threat_range = 260000 + air_weapon_dist = 260000 + eplrs = True + + +@vehiclemod +class K300P(unittype.VehicleType): + id = "K300P" + name = "[CH] Bastion-P LBASM TEL" + detection_range = 400000 + threat_range = 400000 + air_weapon_dist = 400000 + eplrs = True + + +@vehiclemod +class MonolitB(unittype.VehicleType): + id = "MonolitB" + name = "[CH] Monolit-B LBASM STR" + detection_range = 800000 + threat_range = 0 + air_weapon_dist = 0 + + +@vehiclemod +class CH_IskanderM(unittype.VehicleType): + id = "CH_IskanderM" + name = "[CH] Iskander-M SRBM" + detection_range = 0 + threat_range = 500000 + air_weapon_dist = 500000 + eplrs = True + + +@vehiclemod +class CH_IskanderK(unittype.VehicleType): + id = "CH_IskanderK" + name = "[CH] Iskander-K GLCM" + detection_range = 1500000 + threat_range = 1500000 + air_weapon_dist = 1500000 + eplrs = True + + +## SHIPS + + +@shipmod +class CH_Project22160(unittype.ShipType): + id = "CH_Project22160" + name = "[CH] Project 22160 Patrol Ship" + plane_num = 0 + helicopter_num = 1 + parking = 1 + detection_range = 80000 + threat_range = 8000 + air_weapon_dist = 8000 + + +@shipmod +class Admiral_Gorshkov(unittype.ShipType): + id = "Admiral_Gorshkov" + name = "[CH] Project 22350 Admiral Gorshkov Frigate" + plane_num = 0 + helicopter_num = 1 + parking = 1 + detection_range = 150000 + threat_range = 150000 + air_weapon_dist = 150000 + + +@shipmod +class CH_Grigorovich_AShM(unittype.ShipType): + id = "CH_Grigorovich_AShM" + name = "[CH] Project 11356R Admiral Grigorovich Frigate (AShM)" + plane_num = 0 + helicopter_num = 1 + parking = 1 + detection_range = 300000 + threat_range = 70000 + air_weapon_dist = 70000 + + +@shipmod +class CH_Grigorovich_LACM(unittype.ShipType): + id = "CH_Grigorovich_LACM" + name = "[CH] Project 11356R Admiral Grigorovich Frigate (LACM)" + plane_num = 0 + helicopter_num = 1 + parking = 1 + detection_range = 300000 + threat_range = 70000 + air_weapon_dist = 70000 + + +@shipmod +class Karakurt_AShM(unittype.ShipType): + id = "Karakurt_AShM" + name = "[CH] Project 22800 Karakurt Corvette AShM" + plane_num = 0 + helicopter_num = 0 + parking = 0 + detection_range = 150000 + threat_range = 25000 + air_weapon_dist = 25000 + + +@shipmod +class Karakurt_LACM(unittype.ShipType): + id = "Karakurt_LACM" + name = "[CH] Project 22800 Karakurt Corvette LACM" + plane_num = 0 + helicopter_num = 0 + parking = 0 + detection_range = 150000 + threat_range = 25000 + air_weapon_dist = 25000 + + +@shipmod +class CH_Steregushchiy(unittype.ShipType): + id = "CH_Steregushchiy" + name = "[CH] Project 20381 Steregushchiy Corvette" + plane_num = 0 + helicopter_num = 1 + parking = 1 + detection_range = 150000 + threat_range = 150000 + air_weapon_dist = 150000 + + +@shipmod +class CH_Gremyashchiy_AShM(unittype.ShipType): + id = "CH_Gremyashchiy_AShM" + name = "[CH] Project 20385 Gremyashchiy Corvette (AShM)" + plane_num = 0 + helicopter_num = 1 + parking = 1 + detection_range = 300000 + threat_range = 150000 + air_weapon_dist = 150000 + + +@shipmod +class CH_Gremyashchiy_LACM(unittype.ShipType): + id = "CH_Gremyashchiy_LACM" + name = "[CH] Project 20385 Gremyashchiy Corvette (LACM)" + plane_num = 0 + helicopter_num = 1 + parking = 1 + detection_range = 300000 + threat_range = 150000 + air_weapon_dist = 150000 + + +# Helicopters +@helicoptermod +class CH_Ka52K(HelicopterType): + id = "CH_Ka52K" + height = 5.6 + width = 14.4 + length = 15.84 + fuel_max = 1450 + max_speed = 350 + chaff = 32 + flare = 96 + charge_total = 128 + chaff_charge_size = 1 + flare_charge_size = 1 + radio_frequency = 124 + + livery_name = "CH_KA52K" # from type + + class Pylon1: + B_8V20A_CM = (1, Weapons.B_8V20A_CM) + B_8V20A_OFP2 = (1, Weapons.B_8V20A_OFP2) + B_8V20A_OM = (1, Weapons.B_8V20A_OM) + Kh_25ML__AS_10_Karen____300kg__ASM__Semi_Act_Laser_ = ( + 1, + Weapons.Kh_25ML__AS_10_Karen____300kg__ASM__Semi_Act_Laser_, + ) + B_8V20A___20_x_UnGd_Rkts__80_mm_S_8KOM_HEAT_Frag = ( + 1, + Weapons.B_8V20A___20_x_UnGd_Rkts__80_mm_S_8KOM_HEAT_Frag, + ) + B_13L___5_x_UnGd_Rkts__122_mm_S_13OF_Blast_Fragmentation = ( + 1, + Weapons.B_13L___5_x_UnGd_Rkts__122_mm_S_13OF_Blast_Fragmentation, + ) + UPK_23_250___2_x_23mm__GSh_23L_Autocannon_Pod = ( + 1, + Weapons.UPK_23_250___2_x_23mm__GSh_23L_Autocannon_Pod, + ) + KMGU_2___96_x_AO_2_5RT_Dispenser__CBU__HE_Frag = ( + 1, + Weapons.KMGU_2___96_x_AO_2_5RT_Dispenser__CBU__HE_Frag, + ) + KMGU_2___96_x_PTAB_2_5KO_Dispenser__CBU__HEAT_AP = ( + 1, + Weapons.KMGU_2___96_x_PTAB_2_5KO_Dispenser__CBU__HEAT_AP, + ) + FAB_250___250kg_GP_Bomb_LD = (1, Weapons.FAB_250___250kg_GP_Bomb_LD) + FAB_250_M62___250_kg_GP_Bomb_LD = (1, Weapons.FAB_250_M62___250_kg_GP_Bomb_LD) + FAB_500_M_62___500kg_GP_Bomb_LD = (1, Weapons.FAB_500_M_62___500kg_GP_Bomb_LD) + Fuel_tank_PTB_450 = (1, Weapons.Fuel_tank_PTB_450) + APU_6___6_x_9M127_Vikhr___ATGM__LOSBR__Tandem_HEAT_Frag = ( + 1, + Weapons.APU_6___6_x_9M127_Vikhr___ATGM__LOSBR__Tandem_HEAT_Frag, + ) + _6_x_9M120_Ataka__AT_9_Spiral_2____ATGM__SACLOS__Tandem_HEAT = ( + 1, + Weapons._6_x_9M120_Ataka__AT_9_Spiral_2____ATGM__SACLOS__Tandem_HEAT, + ) + _6_x_9M120F_Ataka__AT_9_Spiral_2____AGM__SACLOS__HE = ( + 1, + Weapons._6_x_9M120F_Ataka__AT_9_Spiral_2____AGM__SACLOS__HE, + ) + + class Pylon2: + B_8V20A_CM = (2, Weapons.B_8V20A_CM) + B_8V20A_OFP2 = (2, Weapons.B_8V20A_OFP2) + B_8V20A_OM = (2, Weapons.B_8V20A_OM) + Kh_25ML__AS_10_Karen____300kg__ASM__Semi_Act_Laser_ = ( + 2, + Weapons.Kh_25ML__AS_10_Karen____300kg__ASM__Semi_Act_Laser_, + ) + B_8V20A___20_x_UnGd_Rkts__80_mm_S_8KOM_HEAT_Frag = ( + 2, + Weapons.B_8V20A___20_x_UnGd_Rkts__80_mm_S_8KOM_HEAT_Frag, + ) + B_13L___5_x_UnGd_Rkts__122_mm_S_13OF_Blast_Fragmentation = ( + 2, + Weapons.B_13L___5_x_UnGd_Rkts__122_mm_S_13OF_Blast_Fragmentation, + ) + UPK_23_250___2_x_23mm__GSh_23L_Autocannon_Pod = ( + 2, + Weapons.UPK_23_250___2_x_23mm__GSh_23L_Autocannon_Pod, + ) + KMGU_2___96_x_AO_2_5RT_Dispenser__CBU__HE_Frag = ( + 2, + Weapons.KMGU_2___96_x_AO_2_5RT_Dispenser__CBU__HE_Frag, + ) + KMGU_2___96_x_PTAB_2_5KO_Dispenser__CBU__HEAT_AP = ( + 2, + Weapons.KMGU_2___96_x_PTAB_2_5KO_Dispenser__CBU__HEAT_AP, + ) + FAB_250___250kg_GP_Bomb_LD = (2, Weapons.FAB_250___250kg_GP_Bomb_LD) + FAB_250_M62___250_kg_GP_Bomb_LD = (2, Weapons.FAB_250_M62___250_kg_GP_Bomb_LD) + FAB_500_M_62___500kg_GP_Bomb_LD = (2, Weapons.FAB_500_M_62___500kg_GP_Bomb_LD) + Fuel_tank_PTB_450 = (2, Weapons.Fuel_tank_PTB_450) + APU_6___6_x_9M127_Vikhr___ATGM__LOSBR__Tandem_HEAT_Frag = ( + 2, + Weapons.APU_6___6_x_9M127_Vikhr___ATGM__LOSBR__Tandem_HEAT_Frag, + ) + _6_x_9M120_Ataka__AT_9_Spiral_2____ATGM__SACLOS__Tandem_HEAT = ( + 2, + Weapons._6_x_9M120_Ataka__AT_9_Spiral_2____ATGM__SACLOS__Tandem_HEAT, + ) + _6_x_9M120F_Ataka__AT_9_Spiral_2____AGM__SACLOS__HE = ( + 2, + Weapons._6_x_9M120F_Ataka__AT_9_Spiral_2____AGM__SACLOS__HE, + ) + Kh_35U = (2, Weapons.Kh_35U) + Kh_38MA = (2, Weapons.Kh_38MA) + Kh_31A = (2, Weapons.Kh_31A) + + class Pylon3: + B_8V20A_CM = (3, Weapons.B_8V20A_CM) + B_8V20A_OFP2 = (3, Weapons.B_8V20A_OFP2) + B_8V20A_OM = (3, Weapons.B_8V20A_OM) + Kh_25ML__AS_10_Karen____300kg__ASM__Semi_Act_Laser_ = ( + 3, + Weapons.Kh_25ML__AS_10_Karen____300kg__ASM__Semi_Act_Laser_, + ) + B_8V20A___20_x_UnGd_Rkts__80_mm_S_8KOM_HEAT_Frag = ( + 3, + Weapons.B_8V20A___20_x_UnGd_Rkts__80_mm_S_8KOM_HEAT_Frag, + ) + B_13L___5_x_UnGd_Rkts__122_mm_S_13OF_Blast_Fragmentation = ( + 3, + Weapons.B_13L___5_x_UnGd_Rkts__122_mm_S_13OF_Blast_Fragmentation, + ) + UPK_23_250___2_x_23mm__GSh_23L_Autocannon_Pod = ( + 3, + Weapons.UPK_23_250___2_x_23mm__GSh_23L_Autocannon_Pod, + ) + KMGU_2___96_x_AO_2_5RT_Dispenser__CBU__HE_Frag = ( + 3, + Weapons.KMGU_2___96_x_AO_2_5RT_Dispenser__CBU__HE_Frag, + ) + KMGU_2___96_x_PTAB_2_5KO_Dispenser__CBU__HEAT_AP = ( + 3, + Weapons.KMGU_2___96_x_PTAB_2_5KO_Dispenser__CBU__HEAT_AP, + ) + FAB_250___250kg_GP_Bomb_LD = (3, Weapons.FAB_250___250kg_GP_Bomb_LD) + FAB_250_M62___250_kg_GP_Bomb_LD = (3, Weapons.FAB_250_M62___250_kg_GP_Bomb_LD) + FAB_500_M_62___500kg_GP_Bomb_LD = (3, Weapons.FAB_500_M_62___500kg_GP_Bomb_LD) + Fuel_tank_PTB_450 = (3, Weapons.Fuel_tank_PTB_450) + APU_6___6_x_9M127_Vikhr___ATGM__LOSBR__Tandem_HEAT_Frag = ( + 3, + Weapons.APU_6___6_x_9M127_Vikhr___ATGM__LOSBR__Tandem_HEAT_Frag, + ) + _6_x_9M120_Ataka__AT_9_Spiral_2____ATGM__SACLOS__Tandem_HEAT = ( + 3, + Weapons._6_x_9M120_Ataka__AT_9_Spiral_2____ATGM__SACLOS__Tandem_HEAT, + ) + _6_x_9M120F_Ataka__AT_9_Spiral_2____AGM__SACLOS__HE = ( + 3, + Weapons._6_x_9M120F_Ataka__AT_9_Spiral_2____AGM__SACLOS__HE, + ) + Kh_35U = (3, Weapons.Kh_35U) + Kh_38MA = (3, Weapons.Kh_38MA) + Kh_31A = (3, Weapons.Kh_31A) + + class Pylon4: + B_8V20A_CM = (4, Weapons.B_8V20A_CM) + B_8V20A_OFP2 = (4, Weapons.B_8V20A_OFP2) + B_8V20A_OM = (4, Weapons.B_8V20A_OM) + Kh_25ML__AS_10_Karen____300kg__ASM__Semi_Act_Laser_ = ( + 4, + Weapons.Kh_25ML__AS_10_Karen____300kg__ASM__Semi_Act_Laser_, + ) + B_8V20A___20_x_UnGd_Rkts__80_mm_S_8KOM_HEAT_Frag = ( + 4, + Weapons.B_8V20A___20_x_UnGd_Rkts__80_mm_S_8KOM_HEAT_Frag, + ) + B_13L___5_x_UnGd_Rkts__122_mm_S_13OF_Blast_Fragmentation = ( + 4, + Weapons.B_13L___5_x_UnGd_Rkts__122_mm_S_13OF_Blast_Fragmentation, + ) + UPK_23_250___2_x_23mm__GSh_23L_Autocannon_Pod = ( + 4, + Weapons.UPK_23_250___2_x_23mm__GSh_23L_Autocannon_Pod, + ) + KMGU_2___96_x_AO_2_5RT_Dispenser__CBU__HE_Frag = ( + 4, + Weapons.KMGU_2___96_x_AO_2_5RT_Dispenser__CBU__HE_Frag, + ) + KMGU_2___96_x_PTAB_2_5KO_Dispenser__CBU__HEAT_AP = ( + 4, + Weapons.KMGU_2___96_x_PTAB_2_5KO_Dispenser__CBU__HEAT_AP, + ) + FAB_250___250kg_GP_Bomb_LD = (4, Weapons.FAB_250___250kg_GP_Bomb_LD) + FAB_250_M62___250_kg_GP_Bomb_LD = (4, Weapons.FAB_250_M62___250_kg_GP_Bomb_LD) + FAB_500_M_62___500kg_GP_Bomb_LD = (4, Weapons.FAB_500_M_62___500kg_GP_Bomb_LD) + Fuel_tank_PTB_450 = (4, Weapons.Fuel_tank_PTB_450) + APU_6___6_x_9M127_Vikhr___ATGM__LOSBR__Tandem_HEAT_Frag = ( + 4, + Weapons.APU_6___6_x_9M127_Vikhr___ATGM__LOSBR__Tandem_HEAT_Frag, + ) + _6_x_9M120_Ataka__AT_9_Spiral_2____ATGM__SACLOS__Tandem_HEAT = ( + 4, + Weapons._6_x_9M120_Ataka__AT_9_Spiral_2____ATGM__SACLOS__Tandem_HEAT, + ) + _6_x_9M120F_Ataka__AT_9_Spiral_2____AGM__SACLOS__HE = ( + 4, + Weapons._6_x_9M120F_Ataka__AT_9_Spiral_2____AGM__SACLOS__HE, + ) + + pylons: Set[int] = {1, 2, 3, 4} + + tasks = [ + task.CAS, + task.GroundAttack, + task.Escort, + task.AFAC, + task.AntishipStrike, + task.Transport, + task.Reconnaissance, + ] + task_default = task.AntishipStrike + + +@helicoptermod +class CH_Ka52(HelicopterType): + id = "CH_Ka52" + height = 5.6 + width = 14.4 + length = 15.84 + fuel_max = 1450 + max_speed = 350 + chaff = 32 + flare = 96 + charge_total = 128 + chaff_charge_size = 1 + flare_charge_size = 1 + radio_frequency = 124 + + livery_name = "CH_KA52" # from type + + class Pylon1: + B_8V20A_CM = (1, Weapons.B_8V20A_CM) + B_8V20A_OFP2 = (1, Weapons.B_8V20A_OFP2) + B_8V20A_OM = (1, Weapons.B_8V20A_OM) + Kh_25ML__AS_10_Karen____300kg__ASM__Semi_Act_Laser_ = ( + 1, + Weapons.Kh_25ML__AS_10_Karen____300kg__ASM__Semi_Act_Laser_, + ) + B_8V20A___20_x_UnGd_Rkts__80_mm_S_8KOM_HEAT_Frag = ( + 1, + Weapons.B_8V20A___20_x_UnGd_Rkts__80_mm_S_8KOM_HEAT_Frag, + ) + B_13L___5_x_UnGd_Rkts__122_mm_S_13OF_Blast_Fragmentation = ( + 1, + Weapons.B_13L___5_x_UnGd_Rkts__122_mm_S_13OF_Blast_Fragmentation, + ) + UPK_23_250___2_x_23mm__GSh_23L_Autocannon_Pod = ( + 1, + Weapons.UPK_23_250___2_x_23mm__GSh_23L_Autocannon_Pod, + ) + KMGU_2___96_x_AO_2_5RT_Dispenser__CBU__HE_Frag = ( + 1, + Weapons.KMGU_2___96_x_AO_2_5RT_Dispenser__CBU__HE_Frag, + ) + KMGU_2___96_x_PTAB_2_5KO_Dispenser__CBU__HEAT_AP = ( + 1, + Weapons.KMGU_2___96_x_PTAB_2_5KO_Dispenser__CBU__HEAT_AP, + ) + FAB_250___250kg_GP_Bomb_LD = (1, Weapons.FAB_250___250kg_GP_Bomb_LD) + FAB_250_M62___250_kg_GP_Bomb_LD = (1, Weapons.FAB_250_M62___250_kg_GP_Bomb_LD) + FAB_500_M_62___500kg_GP_Bomb_LD = (1, Weapons.FAB_500_M_62___500kg_GP_Bomb_LD) + Fuel_tank_PTB_450 = (1, Weapons.Fuel_tank_PTB_450) + APU_6___6_x_9M127_Vikhr___ATGM__LOSBR__Tandem_HEAT_Frag = ( + 1, + Weapons.APU_6___6_x_9M127_Vikhr___ATGM__LOSBR__Tandem_HEAT_Frag, + ) + _6_x_9M120_Ataka__AT_9_Spiral_2____ATGM__SACLOS__Tandem_HEAT = ( + 1, + Weapons._6_x_9M120_Ataka__AT_9_Spiral_2____ATGM__SACLOS__Tandem_HEAT, + ) + _6_x_9M120F_Ataka__AT_9_Spiral_2____AGM__SACLOS__HE = ( + 1, + Weapons._6_x_9M120F_Ataka__AT_9_Spiral_2____AGM__SACLOS__HE, + ) + + class Pylon2: + B_8V20A_CM = (2, Weapons.B_8V20A_CM) + B_8V20A_OFP2 = (2, Weapons.B_8V20A_OFP2) + B_8V20A_OM = (2, Weapons.B_8V20A_OM) + B_8V20A___20_x_UnGd_Rkts__80_mm_S_8KOM_HEAT_Frag = ( + 2, + Weapons.B_8V20A___20_x_UnGd_Rkts__80_mm_S_8KOM_HEAT_Frag, + ) + B_13L___5_x_UnGd_Rkts__122_mm_S_13OF_Blast_Fragmentation = ( + 2, + Weapons.B_13L___5_x_UnGd_Rkts__122_mm_S_13OF_Blast_Fragmentation, + ) + UPK_23_250___2_x_23mm__GSh_23L_Autocannon_Pod = ( + 2, + Weapons.UPK_23_250___2_x_23mm__GSh_23L_Autocannon_Pod, + ) + KMGU_2___96_x_AO_2_5RT_Dispenser__CBU__HE_Frag = ( + 2, + Weapons.KMGU_2___96_x_AO_2_5RT_Dispenser__CBU__HE_Frag, + ) + KMGU_2___96_x_PTAB_2_5KO_Dispenser__CBU__HEAT_AP = ( + 2, + Weapons.KMGU_2___96_x_PTAB_2_5KO_Dispenser__CBU__HEAT_AP, + ) + FAB_250___250kg_GP_Bomb_LD = (2, Weapons.FAB_250___250kg_GP_Bomb_LD) + FAB_250_M62___250_kg_GP_Bomb_LD = (2, Weapons.FAB_250_M62___250_kg_GP_Bomb_LD) + FAB_500_M_62___500kg_GP_Bomb_LD = (2, Weapons.FAB_500_M_62___500kg_GP_Bomb_LD) + Fuel_tank_PTB_450 = (2, Weapons.Fuel_tank_PTB_450) + + class Pylon3: + B_8V20A_CM = (3, Weapons.B_8V20A_CM) + B_8V20A_OFP2 = (3, Weapons.B_8V20A_OFP2) + B_8V20A_OM = (3, Weapons.B_8V20A_OM) + B_8V20A___20_x_UnGd_Rkts__80_mm_S_8KOM_HEAT_Frag = ( + 3, + Weapons.B_8V20A___20_x_UnGd_Rkts__80_mm_S_8KOM_HEAT_Frag, + ) + B_13L___5_x_UnGd_Rkts__122_mm_S_13OF_Blast_Fragmentation = ( + 3, + Weapons.B_13L___5_x_UnGd_Rkts__122_mm_S_13OF_Blast_Fragmentation, + ) + UPK_23_250___2_x_23mm__GSh_23L_Autocannon_Pod = ( + 3, + Weapons.UPK_23_250___2_x_23mm__GSh_23L_Autocannon_Pod, + ) + KMGU_2___96_x_AO_2_5RT_Dispenser__CBU__HE_Frag = ( + 3, + Weapons.KMGU_2___96_x_AO_2_5RT_Dispenser__CBU__HE_Frag, + ) + KMGU_2___96_x_PTAB_2_5KO_Dispenser__CBU__HEAT_AP = ( + 3, + Weapons.KMGU_2___96_x_PTAB_2_5KO_Dispenser__CBU__HEAT_AP, + ) + FAB_250___250kg_GP_Bomb_LD = (3, Weapons.FAB_250___250kg_GP_Bomb_LD) + FAB_250_M62___250_kg_GP_Bomb_LD = (3, Weapons.FAB_250_M62___250_kg_GP_Bomb_LD) + FAB_500_M_62___500kg_GP_Bomb_LD = (3, Weapons.FAB_500_M_62___500kg_GP_Bomb_LD) + Fuel_tank_PTB_450 = (3, Weapons.Fuel_tank_PTB_450) + + class Pylon4: + B_8V20A_CM = (4, Weapons.B_8V20A_CM) + B_8V20A_OFP2 = (4, Weapons.B_8V20A_OFP2) + B_8V20A_OM = (4, Weapons.B_8V20A_OM) + Kh_25ML__AS_10_Karen____300kg__ASM__Semi_Act_Laser_ = ( + 4, + Weapons.Kh_25ML__AS_10_Karen____300kg__ASM__Semi_Act_Laser_, + ) + B_8V20A___20_x_UnGd_Rkts__80_mm_S_8KOM_HEAT_Frag = ( + 4, + Weapons.B_8V20A___20_x_UnGd_Rkts__80_mm_S_8KOM_HEAT_Frag, + ) + B_13L___5_x_UnGd_Rkts__122_mm_S_13OF_Blast_Fragmentation = ( + 4, + Weapons.B_13L___5_x_UnGd_Rkts__122_mm_S_13OF_Blast_Fragmentation, + ) + UPK_23_250___2_x_23mm__GSh_23L_Autocannon_Pod = ( + 4, + Weapons.UPK_23_250___2_x_23mm__GSh_23L_Autocannon_Pod, + ) + KMGU_2___96_x_AO_2_5RT_Dispenser__CBU__HE_Frag = ( + 4, + Weapons.KMGU_2___96_x_AO_2_5RT_Dispenser__CBU__HE_Frag, + ) + KMGU_2___96_x_PTAB_2_5KO_Dispenser__CBU__HEAT_AP = ( + 4, + Weapons.KMGU_2___96_x_PTAB_2_5KO_Dispenser__CBU__HEAT_AP, + ) + FAB_250___250kg_GP_Bomb_LD = (4, Weapons.FAB_250___250kg_GP_Bomb_LD) + FAB_250_M62___250_kg_GP_Bomb_LD = (4, Weapons.FAB_250_M62___250_kg_GP_Bomb_LD) + FAB_500_M_62___500kg_GP_Bomb_LD = (4, Weapons.FAB_500_M_62___500kg_GP_Bomb_LD) + Fuel_tank_PTB_450 = (4, Weapons.Fuel_tank_PTB_450) + APU_6___6_x_9M127_Vikhr___ATGM__LOSBR__Tandem_HEAT_Frag = ( + 4, + Weapons.APU_6___6_x_9M127_Vikhr___ATGM__LOSBR__Tandem_HEAT_Frag, + ) + _6_x_9M120_Ataka__AT_9_Spiral_2____ATGM__SACLOS__Tandem_HEAT = ( + 4, + Weapons._6_x_9M120_Ataka__AT_9_Spiral_2____ATGM__SACLOS__Tandem_HEAT, + ) + _6_x_9M120F_Ataka__AT_9_Spiral_2____AGM__SACLOS__HE = ( + 4, + Weapons._6_x_9M120F_Ataka__AT_9_Spiral_2____AGM__SACLOS__HE, + ) + + class Pylon5: + _9S846_Strelets___2_x_9M39_Igla = (5, Weapons._9S846_Strelets___2_x_9M39_Igla) + + # ERRR + + class Pylon6: + _9S846_Strelets___2_x_9M39_Igla = (6, Weapons._9S846_Strelets___2_x_9M39_Igla) + + # ERRR + + pylons: Set[int] = {1, 2, 3, 4, 5, 6} + + tasks = [ + task.CAS, + task.GroundAttack, + task.Escort, + task.AFAC, + task.AntishipStrike, + task.Transport, + task.Reconnaissance, + ] + task_default = task.CAS + + +@helicoptermod +class CH_Mi28N(HelicopterType): + id = "CH_Mi28N" + height = 5.087 + width = 17.2 + length = 17.87 + fuel_max = 1500 + max_speed = 365 + chaff = 0 + flare = 128 + charge_total = 128 + chaff_charge_size = 0 + flare_charge_size = 1 + eplrs = True + radio_frequency = 124 + + livery_name = "CH_MI28N" # from type + + class Pylon1: + B_8V20A_CM = (1, Weapons.B_8V20A_CM) + B_8V20A_OFP2 = (1, Weapons.B_8V20A_OFP2) + B_8V20A_OM = (1, Weapons.B_8V20A_OM) + B_8V20A___20_x_UnGd_Rkts__80_mm_S_8KOM_HEAT_Frag = ( + 1, + Weapons.B_8V20A___20_x_UnGd_Rkts__80_mm_S_8KOM_HEAT_Frag, + ) + B_13L___5_x_UnGd_Rkts__122_mm_S_13OF_Blast_Fragmentation = ( + 1, + Weapons.B_13L___5_x_UnGd_Rkts__122_mm_S_13OF_Blast_Fragmentation, + ) + KMGU_2___96_x_AO_2_5RT_Dispenser__CBU__HE_Frag = ( + 1, + Weapons.KMGU_2___96_x_AO_2_5RT_Dispenser__CBU__HE_Frag, + ) + KMGU_2___96_x_PTAB_2_5KO_Dispenser__CBU__HEAT_AP = ( + 1, + Weapons.KMGU_2___96_x_PTAB_2_5KO_Dispenser__CBU__HEAT_AP, + ) + FAB_250___250kg_GP_Bomb_LD = (1, Weapons.FAB_250___250kg_GP_Bomb_LD) + FAB_250_M62___250_kg_GP_Bomb_LD = (1, Weapons.FAB_250_M62___250_kg_GP_Bomb_LD) + FAB_500_M_62___500kg_GP_Bomb_LD = (1, Weapons.FAB_500_M_62___500kg_GP_Bomb_LD) + Fuel_tank_PTB_450 = (1, Weapons.Fuel_tank_PTB_450) + _6_x_9M120_Ataka__AT_9_Spiral_2____ATGM__SACLOS__Tandem_HEAT = ( + 1, + Weapons._6_x_9M120_Ataka__AT_9_Spiral_2____ATGM__SACLOS__Tandem_HEAT, + ) + _6_x_9M120F_Ataka__AT_9_Spiral_2____AGM__SACLOS__HE = ( + 1, + Weapons._6_x_9M120F_Ataka__AT_9_Spiral_2____AGM__SACLOS__HE, + ) + _9S846_Strelets___2_x_9M39_Igla = (1, Weapons._9S846_Strelets___2_x_9M39_Igla) + + class Pylon2: + B_8V20A_CM = (2, Weapons.B_8V20A_CM) + B_8V20A_OFP2 = (2, Weapons.B_8V20A_OFP2) + B_8V20A_OM = (2, Weapons.B_8V20A_OM) + B_8V20A___20_x_UnGd_Rkts__80_mm_S_8KOM_HEAT_Frag = ( + 2, + Weapons.B_8V20A___20_x_UnGd_Rkts__80_mm_S_8KOM_HEAT_Frag, + ) + B_13L___5_x_UnGd_Rkts__122_mm_S_13OF_Blast_Fragmentation = ( + 2, + Weapons.B_13L___5_x_UnGd_Rkts__122_mm_S_13OF_Blast_Fragmentation, + ) + UPK_23_250___2_x_23mm__GSh_23L_Autocannon_Pod = ( + 2, + Weapons.UPK_23_250___2_x_23mm__GSh_23L_Autocannon_Pod, + ) + KMGU_2___96_x_AO_2_5RT_Dispenser__CBU__HE_Frag = ( + 2, + Weapons.KMGU_2___96_x_AO_2_5RT_Dispenser__CBU__HE_Frag, + ) + KMGU_2___96_x_PTAB_2_5KO_Dispenser__CBU__HEAT_AP = ( + 2, + Weapons.KMGU_2___96_x_PTAB_2_5KO_Dispenser__CBU__HEAT_AP, + ) + FAB_250___250kg_GP_Bomb_LD = (2, Weapons.FAB_250___250kg_GP_Bomb_LD) + FAB_250_M62___250_kg_GP_Bomb_LD = (2, Weapons.FAB_250_M62___250_kg_GP_Bomb_LD) + FAB_500_M_62___500kg_GP_Bomb_LD = (2, Weapons.FAB_500_M_62___500kg_GP_Bomb_LD) + Fuel_tank_PTB_450 = (2, Weapons.Fuel_tank_PTB_450) + _6_x_9M120_Ataka__AT_9_Spiral_2____ATGM__SACLOS__Tandem_HEAT = ( + 2, + Weapons._6_x_9M120_Ataka__AT_9_Spiral_2____ATGM__SACLOS__Tandem_HEAT, + ) + _6_x_9M120F_Ataka__AT_9_Spiral_2____AGM__SACLOS__HE = ( + 2, + Weapons._6_x_9M120F_Ataka__AT_9_Spiral_2____AGM__SACLOS__HE, + ) + _9S846_Strelets___2_x_9M39_Igla = (2, Weapons._9S846_Strelets___2_x_9M39_Igla) + + class Pylon3: + B_8V20A_CM = (3, Weapons.B_8V20A_CM) + B_8V20A_OFP2 = (3, Weapons.B_8V20A_OFP2) + B_8V20A_OM = (3, Weapons.B_8V20A_OM) + B_8V20A___20_x_UnGd_Rkts__80_mm_S_8KOM_HEAT_Frag = ( + 3, + Weapons.B_8V20A___20_x_UnGd_Rkts__80_mm_S_8KOM_HEAT_Frag, + ) + B_13L___5_x_UnGd_Rkts__122_mm_S_13OF_Blast_Fragmentation = ( + 3, + Weapons.B_13L___5_x_UnGd_Rkts__122_mm_S_13OF_Blast_Fragmentation, + ) + UPK_23_250___2_x_23mm__GSh_23L_Autocannon_Pod = ( + 3, + Weapons.UPK_23_250___2_x_23mm__GSh_23L_Autocannon_Pod, + ) + KMGU_2___96_x_AO_2_5RT_Dispenser__CBU__HE_Frag = ( + 3, + Weapons.KMGU_2___96_x_AO_2_5RT_Dispenser__CBU__HE_Frag, + ) + KMGU_2___96_x_PTAB_2_5KO_Dispenser__CBU__HEAT_AP = ( + 3, + Weapons.KMGU_2___96_x_PTAB_2_5KO_Dispenser__CBU__HEAT_AP, + ) + FAB_250___250kg_GP_Bomb_LD = (3, Weapons.FAB_250___250kg_GP_Bomb_LD) + FAB_250_M62___250_kg_GP_Bomb_LD = (3, Weapons.FAB_250_M62___250_kg_GP_Bomb_LD) + FAB_500_M_62___500kg_GP_Bomb_LD = (3, Weapons.FAB_500_M_62___500kg_GP_Bomb_LD) + Fuel_tank_PTB_450 = (3, Weapons.Fuel_tank_PTB_450) + _6_x_9M120_Ataka__AT_9_Spiral_2____ATGM__SACLOS__Tandem_HEAT = ( + 3, + Weapons._6_x_9M120_Ataka__AT_9_Spiral_2____ATGM__SACLOS__Tandem_HEAT, + ) + _6_x_9M120F_Ataka__AT_9_Spiral_2____AGM__SACLOS__HE = ( + 3, + Weapons._6_x_9M120F_Ataka__AT_9_Spiral_2____AGM__SACLOS__HE, + ) + _9S846_Strelets___2_x_9M39_Igla = (3, Weapons._9S846_Strelets___2_x_9M39_Igla) + + class Pylon4: + B_8V20A_CM = (4, Weapons.B_8V20A_CM) + B_8V20A_OFP2 = (4, Weapons.B_8V20A_OFP2) + B_8V20A_OM = (4, Weapons.B_8V20A_OM) + B_8V20A___20_x_UnGd_Rkts__80_mm_S_8KOM_HEAT_Frag = ( + 4, + Weapons.B_8V20A___20_x_UnGd_Rkts__80_mm_S_8KOM_HEAT_Frag, + ) + B_13L___5_x_UnGd_Rkts__122_mm_S_13OF_Blast_Fragmentation = ( + 4, + Weapons.B_13L___5_x_UnGd_Rkts__122_mm_S_13OF_Blast_Fragmentation, + ) + KMGU_2___96_x_AO_2_5RT_Dispenser__CBU__HE_Frag = ( + 4, + Weapons.KMGU_2___96_x_AO_2_5RT_Dispenser__CBU__HE_Frag, + ) + KMGU_2___96_x_PTAB_2_5KO_Dispenser__CBU__HEAT_AP = ( + 4, + Weapons.KMGU_2___96_x_PTAB_2_5KO_Dispenser__CBU__HEAT_AP, + ) + FAB_250___250kg_GP_Bomb_LD = (4, Weapons.FAB_250___250kg_GP_Bomb_LD) + FAB_250_M62___250_kg_GP_Bomb_LD = (4, Weapons.FAB_250_M62___250_kg_GP_Bomb_LD) + FAB_500_M_62___500kg_GP_Bomb_LD = (4, Weapons.FAB_500_M_62___500kg_GP_Bomb_LD) + Fuel_tank_PTB_450 = (4, Weapons.Fuel_tank_PTB_450) + _6_x_9M120_Ataka__AT_9_Spiral_2____ATGM__SACLOS__Tandem_HEAT = ( + 4, + Weapons._6_x_9M120_Ataka__AT_9_Spiral_2____ATGM__SACLOS__Tandem_HEAT, + ) + _6_x_9M120F_Ataka__AT_9_Spiral_2____AGM__SACLOS__HE = ( + 4, + Weapons._6_x_9M120F_Ataka__AT_9_Spiral_2____AGM__SACLOS__HE, + ) + _9S846_Strelets___2_x_9M39_Igla = (4, Weapons._9S846_Strelets___2_x_9M39_Igla) + + pylons: Set[int] = {1, 2, 3, 4} + + tasks = [ + task.CAS, + task.GroundAttack, + task.Escort, + task.AFAC, + task.AntishipStrike, + task.Transport, + task.Reconnaissance, + ] + task_default = task.CAS + + +# Planes +@planemod +class CH_Tu_95MSM(PlaneType): + id = "CH_Tu-95MSM" + large_parking_slot = True + height = 13.3 + width = 50.04 + length = 49.13 + fuel_max = 87000 + max_speed = 919.8 + chaff = 48 + flare = 48 + charge_total = 96 + chaff_charge_size = 1 + flare_charge_size = 1 + eplrs = True + + property_defaults: Dict[str, Any] = {} + + livery_name = "CH_TU-95MSM" # from type + + class Pylon1: + Kh_101_ALCM = (1, Weapons.Kh_101_ALCM) + Kh_555_ALCM = (1, Weapons.Kh_555_ALCM) + + # ERRR + + class Pylon2: + Kh_101_ALCM = (2, Weapons.Kh_101_ALCM) + Kh_555_ALCM = (2, Weapons.Kh_555_ALCM) + + class Pylon3: + Kh_101_ALCM = (3, Weapons.Kh_101_ALCM) + Kh_555_ALCM = (3, Weapons.Kh_555_ALCM) + + # ERRR + + class Pylon4: + Kh_101_ALCM = (4, Weapons.Kh_101_ALCM) + Kh_555_ALCM = (4, Weapons.Kh_555_ALCM) + + class Pylon5: + Kh_101_ALCM = (5, Weapons.Kh_101_ALCM) + Kh_555_ALCM = (5, Weapons.Kh_555_ALCM) + + # ERRR + + class Pylon6: + Kh_101_ALCM = (6, Weapons.Kh_101_ALCM) + Kh_555_ALCM = (6, Weapons.Kh_555_ALCM) + + class Pylon7: + Kh_101_ALCM = (7, Weapons.Kh_101_ALCM) + Kh_555_ALCM = (7, Weapons.Kh_555_ALCM) + + # ERRR + + class Pylon8: + Kh_101_ALCM = (8, Weapons.Kh_101_ALCM) + Kh_555_ALCM = (8, Weapons.Kh_555_ALCM) + + class Pylon9: + _6_x_Kh_555_ALCM = (9, Weapons._6_x_Kh_555_ALCM) + + pylons: Set[int] = {1, 2, 3, 4, 5, 6, 7, 8, 9} + + tasks = [ + task.Reconnaissance, + task.GroundAttack, + task.CAS, + task.AFAC, + task.RunwayAttack, + task.AntishipStrike, + task.PinpointStrike, + task.SEAD, + ] + task_default = task.GroundAttack + + +@planemod +class CH_Tu_160M2(PlaneType): + id = "CH_Tu-160M2" + large_parking_slot = True + height = 13.25 + width = 55.7 + length = 54.1 + fuel_max = 148000 + max_speed = 2199.6 + chaff = 72 + flare = 72 + charge_total = 144 + chaff_charge_size = 1 + flare_charge_size = 1 + eplrs = True + + property_defaults: Dict[str, Any] = {} + + livery_name = "CH_TU-160M2" # from type + + class Pylon1: + _6_x_Kh_101_ALCM = (1, Weapons._6_x_Kh_101_ALCM) + _6_x_Kh_555_ALCM = (1, Weapons._6_x_Kh_555_ALCM) + + class Pylon2: + _6_x_Kh_101_ALCM = (2, Weapons._6_x_Kh_101_ALCM) + _6_x_Kh_555_ALCM = (2, Weapons._6_x_Kh_555_ALCM) + + pylons: Set[int] = {1, 2} + + tasks = [ + task.Reconnaissance, + task.GroundAttack, + task.CAS, + task.AFAC, + task.RunwayAttack, + task.AntishipStrike, + task.PinpointStrike, + task.SEAD, + ] + task_default = task.GroundAttack + + +# Cargo +@cargomod +class BMD4_cargo(unittype.StaticType): + id = "BMD4_cargo" + name = "[CH] BMD-4 IFV" + shape_name = "CH_BMD-4" + category = "Cargos" + rate = 100 + can_cargo = True diff --git a/qt_ui/uiconstants.py b/qt_ui/uiconstants.py index 63bfe1bb..c9d19378 100644 --- a/qt_ui/uiconstants.py +++ b/qt_ui/uiconstants.py @@ -222,6 +222,11 @@ def load_aircraft_icons(): AIRCRAFT_ICONS["F-5E-3_FC"] = AIRCRAFT_ICONS["F-5E-3"] AIRCRAFT_ICONS["F-86F_FC"] = AIRCRAFT_ICONS["F-86F Sabre"] AIRCRAFT_ICONS["MiG-15bis_FC"] = AIRCRAFT_ICONS["MiG-15bis"] + AIRCRAFT_ICONS["CH_Ka52"] = AIRCRAFT_ICONS["CH_K"] + AIRCRAFT_ICONS["CH_Ka52K"] = AIRCRAFT_ICONS["CH_Ka"] + AIRCRAFT_ICONS["CH_Mi28N"] = AIRCRAFT_ICONS["CH_Mi"] + AIRCRAFT_ICONS["CH_Tu-95MSM"] = AIRCRAFT_ICONS["CH_Tu-95"] + AIRCRAFT_ICONS["CH_Tu-160M2"] = AIRCRAFT_ICONS["CH_Tu-16"] def load_vehicle_icons(): diff --git a/qt_ui/windows/newgame/QNewGameWizard.py b/qt_ui/windows/newgame/QNewGameWizard.py index d70549cf..7e235d00 100644 --- a/qt_ui/windows/newgame/QNewGameWizard.py +++ b/qt_ui/windows/newgame/QNewGameWizard.py @@ -125,6 +125,7 @@ class NewGameWizard(QtWidgets.QWizard): SWPack=self.field("SWPack"), vietnamwarvessels=self.field("vietnamwarvessels"), chinesemilitaryassetspack=self.field("chinesemilitaryassetspack"), + russianmilitaryassetspack=self.field("russianmilitaryassetspack"), ) blue_faction = self.faction_selection_page.selected_blue_faction diff --git a/qt_ui/windows/newgame/WizardPages/QGeneratorSettings.py b/qt_ui/windows/newgame/WizardPages/QGeneratorSettings.py index 1b6e7d8e..4dd68ccc 100644 --- a/qt_ui/windows/newgame/WizardPages/QGeneratorSettings.py +++ b/qt_ui/windows/newgame/WizardPages/QGeneratorSettings.py @@ -162,6 +162,8 @@ class GeneratorOptions(QtWidgets.QWizardPage): self.registerField("vietnamwarvessels", self.vietnamwarvessels) self.chinesemilitaryassetspack = QtWidgets.QCheckBox() self.registerField("chinesemilitaryassetspack", self.chinesemilitaryassetspack) + self.russianmilitaryassetspack = QtWidgets.QCheckBox() + self.registerField("russianmilitaryassetspack", self.russianmilitaryassetspack) modHelpText = QtWidgets.QLabel( "

Select the mods you have installed. If your chosen factions support them, you'll be able to use these mods in your campaign.

" @@ -181,6 +183,10 @@ class GeneratorOptions(QtWidgets.QWizardPage): "CurrentHill Chinese Military Assets pack (1.1.4)", self.chinesemilitaryassetspack, ), + ( + "CurrentHill Russian Military Assets pack (1.2.1)", + self.russianmilitaryassetspack, + ), ( "CurrentHill Swedish Military Assets pack (1.10)", self.swedishmilitaryassetspack, @@ -286,3 +292,6 @@ class GeneratorOptions(QtWidgets.QWizardPage): self.chinesemilitaryassetspack.setChecked( s.get("chinesemilitaryassetspack", False) ) + self.russianmilitaryassetspack.setChecked( + s.get("russianmilitaryassetspack", False) + ) diff --git a/resources/customized_payloads/CH_Ka52.lua b/resources/customized_payloads/CH_Ka52.lua new file mode 100644 index 00000000..afd8de2f --- /dev/null +++ b/resources/customized_payloads/CH_Ka52.lua @@ -0,0 +1,158 @@ +local unitPayloads = { + ["name"] = "CH_Ka52", + ["payloads"] = { + [1] = { + ["displayName"] = "Retribution CAS", + ["name"] = "Retribution CAS", + ["pylons"] = { + [1] = { + ["CLSID"] = "{9S846_2xIGLA}", + ["num"] = 6, + }, + [2] = { + ["CLSID"] = "{9S846_2xIGLA}", + ["num"] = 5, + }, + [3] = { + ["CLSID"] = "{6DADF342-D4BA-4D8A-B081-BA928C4AF86D}", + ["num"] = 4, + }, + [4] = { + ["CLSID"] = "{FC56DF80-9B09-44C5-8976-DCFAFF219062}", + ["num"] = 3, + }, + [5] = { + ["CLSID"] = "{6DADF342-D4BA-4D8A-B081-BA928C4AF86D}", + ["num"] = 1, + }, + [6] = { + ["CLSID"] = "{FC56DF80-9B09-44C5-8976-DCFAFF219062}", + ["num"] = 2, + }, + }, + ["tasks"] = { + [1] = 31, + }, + }, + [2] = { + ["displayName"] = "Retribution BAI", + ["name"] = "Retribution BAI", + ["pylons"] = { + [1] = { + ["CLSID"] = "{9S846_2xIGLA}", + ["num"] = 6, + }, + [2] = { + ["CLSID"] = "{9S846_2xIGLA}", + ["num"] = 5, + }, + [3] = { + ["CLSID"] = "{6DADF342-D4BA-4D8A-B081-BA928C4AF86D}", + ["num"] = 4, + }, + [4] = { + ["CLSID"] = "{6A4B9E69-64FE-439a-9163-3A87FB6A4D81}", + ["num"] = 3, + }, + [5] = { + ["CLSID"] = "{6DADF342-D4BA-4D8A-B081-BA928C4AF86D}", + ["num"] = 1, + }, + [6] = { + ["CLSID"] = "{6A4B9E69-64FE-439a-9163-3A87FB6A4D81}", + ["num"] = 2, + }, + }, + ["tasks"] = { + [1] = 31, + }, + }, + [3] = { + ["displayName"] = "Retribution DEAD", + ["name"] = "Retribution DEAD", + ["pylons"] = { + [1] = { + ["CLSID"] = "{9S846_2xIGLA}", + ["num"] = 6, + }, + [2] = { + ["CLSID"] = "{9S846_2xIGLA}", + ["num"] = 5, + }, + [3] = { + ["CLSID"] = "{6DADF342-D4BA-4D8A-B081-BA928C4AF86D}", + ["num"] = 4, + }, + [4] = { + ["CLSID"] = "{6DADF342-D4BA-4D8A-B081-BA928C4AF86D}", + ["num"] = 1, + }, + }, + ["tasks"] = { + [1] = 31, + }, + }, + [4] = { + ["displayName"] = "Retribution Escort", + ["name"] = "Retribution Escort", + ["pylons"] = { + [1] = { + ["CLSID"] = "{9S846_2xIGLA}", + ["num"] = 6, + }, + [2] = { + ["CLSID"] = "{9S846_2xIGLA}", + ["num"] = 5, + }, + [3] = { + ["CLSID"] = "{6DADF342-D4BA-4D8A-B081-BA928C4AF86D}", + ["num"] = 4, + }, + [4] = { + ["CLSID"] = "{6DADF342-D4BA-4D8A-B081-BA928C4AF86D}", + ["num"] = 1, + }, + }, + ["tasks"] = { + [1] = 31, + }, + }, + [5] = { + ["displayName"] = "Retribution OCA/Aircraft", + ["name"] = "Retribution OCA/Aircraft", + ["pylons"] = { + [1] = { + ["CLSID"] = "{9S846_2xIGLA}", + ["num"] = 6, + }, + [2] = { + ["CLSID"] = "{9S846_2xIGLA}", + ["num"] = 5, + }, + [3] = { + ["CLSID"] = "{6DADF342-D4BA-4D8A-B081-BA928C4AF86D}", + ["num"] = 4, + }, + [4] = { + ["CLSID"] = "{6DADF342-D4BA-4D8A-B081-BA928C4AF86D}", + ["num"] = 1, + }, + [5] = { + ["CLSID"] = "B_8V20A_OFP2", + ["num"] = 3, + }, + [6] = { + ["CLSID"] = "B_8V20A_OFP2", + ["num"] = 2, + }, + }, + ["tasks"] = { + [1] = 31, + }, + }, + }, + ["tasks"] = { + }, + ["unitType"] = "CH_Ka52", +} +return unitPayloads diff --git a/resources/customized_payloads/CH_Ka52K.lua b/resources/customized_payloads/CH_Ka52K.lua new file mode 100644 index 00000000..ab64bbce --- /dev/null +++ b/resources/customized_payloads/CH_Ka52K.lua @@ -0,0 +1,151 @@ +local unitPayloads = { + ["name"] = "CH_Ka52K", + ["payloads"] = { + [1] = { + ["displayName"] = "Retribution CAS", + ["name"] = "Retribution CAS", + ["pylons"] = { + [1] = { + ["CLSID"] = "{6DADF342-D4BA-4D8A-B081-BA928C4AF86D}", + ["num"] = 4, + }, + [2] = { + ["CLSID"] = "{6DADF342-D4BA-4D8A-B081-BA928C4AF86D}", + ["num"] = 1, + }, + [3] = { + ["CLSID"] = "{Ka52_9M120_6}", + ["num"] = 3, + }, + [4] = { + ["CLSID"] = "{Ka52_9M120_6}", + ["num"] = 2, + }, + }, + ["tasks"] = { + [1] = 30, + }, + }, + [2] = { + ["displayName"] = "Retribution Anti-ship", + ["name"] = "Retribution Anti-ship", + ["pylons"] = { + [1] = { + ["CLSID"] = "{Ka52_Kh38MA}", + ["num"] = 3, + }, + [2] = { + ["CLSID"] = "{Ka52_Kh38MA}", + ["num"] = 2, + }, + }, + ["tasks"] = { + [1] = 30, + }, + }, + [3] = { + ["displayName"] = "Retribution DEAD", + ["name"] = "Retribution DEAD", + ["pylons"] = { + [1] = { + ["CLSID"] = "{6DADF342-D4BA-4D8A-B081-BA928C4AF86D}", + ["num"] = 4, + }, + [2] = { + ["CLSID"] = "{6DADF342-D4BA-4D8A-B081-BA928C4AF86D}", + ["num"] = 1, + }, + [3] = { + ["CLSID"] = "{6DADF342-D4BA-4D8A-B081-BA928C4AF86D}", + ["num"] = 3, + }, + [4] = { + ["CLSID"] = "{6DADF342-D4BA-4D8A-B081-BA928C4AF86D}", + ["num"] = 2, + }, + }, + ["tasks"] = { + [1] = 30, + }, + }, + [4] = { + ["displayName"] = "Retribution BAI", + ["name"] = "Retribution BAI", + ["pylons"] = { + [1] = { + ["CLSID"] = "{6DADF342-D4BA-4D8A-B081-BA928C4AF86D}", + ["num"] = 4, + }, + [2] = { + ["CLSID"] = "{6DADF342-D4BA-4D8A-B081-BA928C4AF86D}", + ["num"] = 1, + }, + [3] = { + ["CLSID"] = "{Ka52_9M120_6}", + ["num"] = 3, + }, + [4] = { + ["CLSID"] = "{Ka52_9M120_6}", + ["num"] = 2, + }, + }, + ["tasks"] = { + [1] = 30, + }, + }, + [5] = { + ["displayName"] = "Retribution Escort", + ["name"] = "Retribution Escort", + ["pylons"] = { + [1] = { + ["CLSID"] = "{6DADF342-D4BA-4D8A-B081-BA928C4AF86D}", + ["num"] = 4, + }, + [2] = { + ["CLSID"] = "{6DADF342-D4BA-4D8A-B081-BA928C4AF86D}", + ["num"] = 1, + }, + [3] = { + ["CLSID"] = "{6DADF342-D4BA-4D8A-B081-BA928C4AF86D}", + ["num"] = 3, + }, + [4] = { + ["CLSID"] = "{6DADF342-D4BA-4D8A-B081-BA928C4AF86D}", + ["num"] = 2, + }, + }, + ["tasks"] = { + [1] = 30, + }, + }, + [6] = { + ["displayName"] = "Retribution OCA/Aircraft", + ["name"] = "Retribution OCA/Aircraft", + ["pylons"] = { + [1] = { + ["CLSID"] = "{6DADF342-D4BA-4D8A-B081-BA928C4AF86D}", + ["num"] = 4, + }, + [2] = { + ["CLSID"] = "{6DADF342-D4BA-4D8A-B081-BA928C4AF86D}", + ["num"] = 1, + }, + [3] = { + ["CLSID"] = "{Ka52_9M120F_6}", + ["num"] = 3, + }, + [4] = { + ["CLSID"] = "{Ka52_9M120F_6}", + ["num"] = 2, + }, + }, + ["tasks"] = { + [1] = 30, + }, + }, + }, + ["tasks"] = { + }, + ["unitType"] = "CH_Ka52K", +} +return unitPayloads diff --git a/resources/customized_payloads/CH_Mi28N.lua b/resources/customized_payloads/CH_Mi28N.lua new file mode 100644 index 00000000..217384dc --- /dev/null +++ b/resources/customized_payloads/CH_Mi28N.lua @@ -0,0 +1,109 @@ +local unitPayloads = { + ["name"] = "CH_Mi28N", + ["payloads"] = { + [1] = { + ["displayName"] = "Retribution CAS", + ["name"] = "Retribution CAS", + ["pylons"] = { + [1] = { + ["CLSID"] = "{Ka52_9M120_6}", + ["num"] = 4, + }, + [2] = { + ["CLSID"] = "{Ka52_9M120_6}", + ["num"] = 3, + }, + [3] = { + ["CLSID"] = "{Ka52_9M120_6}", + ["num"] = 2, + }, + [4] = { + ["CLSID"] = "{Ka52_9M120_6}", + ["num"] = 1, + }, + }, + ["tasks"] = { + [1] = 31, + }, + }, + [2] = { + ["displayName"] = "Retribution BAI", + ["name"] = "Retribution BAI", + ["pylons"] = { + [1] = { + ["CLSID"] = "{Ka52_9M120_6}", + ["num"] = 4, + }, + [2] = { + ["CLSID"] = "{Ka52_9M120_6}", + ["num"] = 3, + }, + [3] = { + ["CLSID"] = "{Ka52_9M120_6}", + ["num"] = 2, + }, + [4] = { + ["CLSID"] = "{Ka52_9M120_6}", + ["num"] = 1, + }, + }, + ["tasks"] = { + [1] = 31, + }, + }, + [3] = { + ["displayName"] = "Retribution Escort", + ["name"] = "Retribution Escort", + ["pylons"] = { + [1] = { + ["CLSID"] = "{9S846_2xIGLA}", + ["num"] = 4, + }, + [2] = { + ["CLSID"] = "{Ka52_9M120_6}", + ["num"] = 3, + }, + [3] = { + ["CLSID"] = "{Ka52_9M120_6}", + ["num"] = 2, + }, + [4] = { + ["CLSID"] = "{9S846_2xIGLA}", + ["num"] = 1, + }, + }, + ["tasks"] = { + [1] = 31, + }, + }, + [4] = { + ["displayName"] = "Retribution OCA/Aircraft", + ["name"] = "Retribution OCA/Aircraft", + ["pylons"] = { + [1] = { + ["CLSID"] = "{Ka52_9M120F_6}", + ["num"] = 4, + }, + [2] = { + ["CLSID"] = "{Ka52_9M120F_6}", + ["num"] = 3, + }, + [3] = { + ["CLSID"] = "{Ka52_9M120F_6}", + ["num"] = 2, + }, + [4] = { + ["CLSID"] = "{Ka52_9M120F_6}", + ["num"] = 1, + }, + }, + ["tasks"] = { + [1] = 31, + }, + }, + }, + ["tasks"] = { + }, + ["unitType"] = "CH_Mi28N", +} +return unitPayloads diff --git a/resources/customized_payloads/CH_Tu-160M2.lua b/resources/customized_payloads/CH_Tu-160M2.lua new file mode 100644 index 00000000..6dc60b7e --- /dev/null +++ b/resources/customized_payloads/CH_Tu-160M2.lua @@ -0,0 +1,60 @@ +local unitPayloads = { + ["name"] = "CH_Tu-160M2", + ["payloads"] = { + [1] = { + ["displayName"] = "Retribution Strike", + ["name"] = "Retribution Strike", + ["pylons"] = { + [1] = { + ["CLSID"] = "{Tu160M2_Kh101x6}", + ["num"] = 2, + }, + [2] = { + ["CLSID"] = "{Tu160M2_Kh101x6}", + ["num"] = 1, + }, + }, + ["tasks"] = { + [1] = 32, + }, + }, + [2] = { + ["displayName"] = "Retribution Anti-ship", + ["name"] = "Retribution Anti-ship", + ["pylons"] = { + [1] = { + ["CLSID"] = "{Tu160M2_Kh101x6}", + ["num"] = 2, + }, + [2] = { + ["CLSID"] = "{Tu160M2_Kh101x6}", + ["num"] = 1, + }, + }, + ["tasks"] = { + [1] = 32, + }, + }, + [3] = { + ["displayName"] = "BAI", + ["name"] = "BAI", + ["pylons"] = { + [1] = { + ["CLSID"] = "{Tu160M2_Kh101x6}", + ["num"] = 2, + }, + [2] = { + ["CLSID"] = "{Tu160M2_Kh101x6}", + ["num"] = 1, + }, + }, + ["tasks"] = { + [1] = 31, + }, + }, + }, + ["tasks"] = { + }, + ["unitType"] = "CH_Tu-160M2", +} +return unitPayloads diff --git a/resources/customized_payloads/CH_Tu-95MSM.lua b/resources/customized_payloads/CH_Tu-95MSM.lua new file mode 100644 index 00000000..882d449d --- /dev/null +++ b/resources/customized_payloads/CH_Tu-95MSM.lua @@ -0,0 +1,140 @@ +local unitPayloads = { + ["name"] = "CH_Tu-95MSM", + ["payloads"] = { + [1] = { + ["displayName"] = "Retribution Strike", + ["name"] = "Retribution Strike", + ["pylons"] = { + [1] = { + ["CLSID"] = "{CH_Kh555}", + ["num"] = 4, + }, + [2] = { + ["CLSID"] = "{CH_Kh555}", + ["num"] = 5, + }, + [3] = { + ["CLSID"] = "{CH_Kh555}", + ["num"] = 1, + }, + [4] = { + ["CLSID"] = "{CH_Kh555}", + ["num"] = 3, + }, + [5] = { + ["CLSID"] = "{CH_Kh555}", + ["num"] = 2, + }, + [6] = { + ["CLSID"] = "{CH_Kh555}", + ["num"] = 6, + }, + [7] = { + ["CLSID"] = "{CH_Kh555}", + ["num"] = 7, + }, + [8] = { + ["CLSID"] = "{CH_Kh555}", + ["num"] = 8, + }, + }, + ["tasks"] = { + [1] = 32, + }, + }, + [2] = { + ["displayName"] = "Retribution Anti-ship", + ["name"] = "Retribution Anti-ship", + ["pylons"] = { + [1] = { + ["CLSID"] = "{CH_Kh555}", + ["num"] = 4, + }, + [2] = { + ["CLSID"] = "{CH_Kh555}", + ["num"] = 5, + }, + [3] = { + ["CLSID"] = "{CH_Kh555}", + ["num"] = 1, + }, + [4] = { + ["CLSID"] = "{CH_Kh555}", + ["num"] = 3, + }, + [5] = { + ["CLSID"] = "{CH_Kh555}", + ["num"] = 2, + }, + [6] = { + ["CLSID"] = "{CH_Kh555}", + ["num"] = 6, + }, + [7] = { + ["CLSID"] = "{CH_Kh555}", + ["num"] = 7, + }, + [8] = { + ["CLSID"] = "{CH_Kh555}", + ["num"] = 8, + }, + [9] = { + ["CLSID"] = "{CH_Kh555x6}", + ["num"] = 9, + }, + }, + ["tasks"] = { + [1] = 32, + }, + }, + [2] = { + ["displayName"] = "BAI", + ["name"] = "BAI", + ["pylons"] = { + [1] = { + ["CLSID"] = "{CH_Kh555}", + ["num"] = 4, + }, + [2] = { + ["CLSID"] = "{CH_Kh555}", + ["num"] = 5, + }, + [3] = { + ["CLSID"] = "{CH_Kh555}", + ["num"] = 1, + }, + [4] = { + ["CLSID"] = "{CH_Kh555}", + ["num"] = 3, + }, + [5] = { + ["CLSID"] = "{CH_Kh555}", + ["num"] = 2, + }, + [6] = { + ["CLSID"] = "{CH_Kh555}", + ["num"] = 6, + }, + [7] = { + ["CLSID"] = "{CH_Kh555}", + ["num"] = 7, + }, + [8] = { + ["CLSID"] = "{CH_Kh555}", + ["num"] = 8, + }, + [9] = { + ["CLSID"] = "{CH_Kh555x6}", + ["num"] = 9, + }, + }, + ["tasks"] = { + [1] = 31, + }, + }, + }, + ["tasks"] = { + }, + ["unitType"] = "CH_Tu-95MSM", +} +return unitPayloads diff --git a/resources/factions/CH_russia_2020.json b/resources/factions/CH_russia_2020.json new file mode 100644 index 00000000..8d9ef32d --- /dev/null +++ b/resources/factions/CH_russia_2020.json @@ -0,0 +1,120 @@ +{ + "country": "Russia", + "name": "[CH] Russia 2020", + "authors": "Eclipse", + "description": "

Russia in 2020, using the CurrentHill Russian Assets Pack.

", + "locales": [ + "ru_RU" + ], + "aircrafts": [ + "IL-76MD", + "Ka-50 Hokum III", + "[CH] Ka-52", + "[CH] Ka-52K", + "[CH] Mi-28N AH", + "L-39ZA Albatros", + "Mi-24V Hind-E", + "Mi-24P Hind-F", + "Mi-28N Havoc", + "Mi-8MTV2 Hip", + "MiG-29S Fulcrum-C", + "MiG-31 Foxhound", + "Su-24M Fencer-D", + "Su-25 Frogfoot", + "Su-25T Frogfoot", + "Su-27 Flanker-B", + "Su-30 Flanker-C", + "Su-30MKA Flanker-H", + "Su-30MKI Flanker-H", + "Su-30MKM Flanker-H", + "Su-30SM Flanker-H", + "Su-30MKA Flanker-H (A-G)", + "Su-30MKI Flanker-H (A-G)", + "Su-30MKM Flanker-H (A-G)", + "Su-30SM Flanker-H (A-G)", + "Su-33 Flanker-D", + "Su-34 Fullback", + "Tu-142 Bear-F", + "Tu-22M3 Backfire-C", + "[CH] Tu-160M2", + "[CH] Tu-95MSM" + ], + "awacs": [ + "A-50" + ], + "tankers": [ + "IL-78M" + ], + "frontline_units": [ + "[CH] T-14 MBT", + "[CH] T-90M MBT", + "[CH] Tigr-M", + "[CH] T-90A MBT", + "[CH] T-80BVM MBT", + "[CH] BMD-4 IFV" + ], + "artillery_units": [ + "[CH] 2S35 SPG", + "[CH] TOS-1A MRL" + ], + "logistics_units": [ + "LUV UAZ-469 Jeep", + "Truck Ural-375" + ], + "infantry_units": [ + "Infantry AK-74 Rus", + "MANPADS SA-18 Igla-S \"Grouse\"", + "Paratrooper AKS", + "Paratrooper RPG-16", + "[CH] DShK HMG", + "[CH] 9M133 ATGM Soldier", + "[CH] Kord HMG Soldier" + ], + "missiles": [ + "[CH] Iskander-M SRBM", + "[CH] Iskander-K GLCM" + ], + "preset_groups": [ + "BAL LBASM", + "Bastion-P LBASM", + "BUK M3", + "[CH] Russian Navy", + "SA-10/S-300PS", + "SA-10B/S-300PS", + "SA-11", + "S-350" + ], + "naval_units": [ + "[CH] Project 22160 Patrol Ship", + "[CH] Project 22350 Admiral Gorshkov Frigate", + "CV 1143.5 Admiral Kuznetsov", + "[CH] Project 11356R Admiral Grigorovich Frigate (AShM)", + "[CH] Project 11356R Admiral Grigorovich Frigate (LACM)", + "[CH] Project 22800 Karakurt Corvette AShM", + "[CH] Project 22800 Karakurt Corvette LACM", + "[CH] Project 20381 Steregushchiy Corvette", + "[CH] Project 20385 Gremyashchiy Corvette (AShM)", + "[CH] Project 20385 Gremyashchiy Corvette (LACM)" + ], + "air_defense_units": [ + "[CH] 2S38 SPAAG (LG-HE)", + "[CH] 2S38 SPAAG", + "[CH] Pantsir-S1 SPAAGM", + "[CH] Pantsir-S2 SPAAGM", + "[CH] Tor M2K SHORAD", + "[CH] Tor M2 SHORAD", + "[CH] Tor M2M SHORAD", + "AAA ZU-23 Closed Emplacement", + "ZU-23 on Ural-375", + "ZSU-23-4 Shilka" + ], + "helicopter_carrier_names": [], + "requirements": { + "CurrentHill Russian Assets Pack": "https://www.currenthill.com/russia" + }, + "carrier_names": [ + "Admiral Kuznetsov" + ], + "has_jtac": true, + "jtac_unit": "MQ-9 Reaper" +} \ No newline at end of file diff --git a/resources/groups/BAL_LBASM.yaml b/resources/groups/BAL_LBASM.yaml new file mode 100644 index 00000000..09a19082 --- /dev/null +++ b/resources/groups/BAL_LBASM.yaml @@ -0,0 +1,8 @@ +name: BAL LBASM +tasks: + - Coastal +units: + - "[CH] Bal LBASM TEL" + - "[CH] Monolit-B LBASM STR" +layouts: + - Bastion-P LBASM \ No newline at end of file diff --git a/resources/groups/BUK_M3.yaml b/resources/groups/BUK_M3.yaml new file mode 100644 index 00000000..f50fac65 --- /dev/null +++ b/resources/groups/BUK_M3.yaml @@ -0,0 +1,11 @@ +name: BUK M3 +tasks: + - MERAD +units: + - "[CH] Buk M3 9S18M1-3 SR" + - "[CH] Buk M3 9S36M TR" + - "[CH] Buk M3 9S510M CP" + - "[CH] Buk M3 9A317M TELAR" + - "[CH] Buk M3 9A317MA TELAR" +layouts: + - BUK M3 Site \ No newline at end of file diff --git a/resources/groups/Bastion-P_LBASM.yaml b/resources/groups/Bastion-P_LBASM.yaml new file mode 100644 index 00000000..6269358f --- /dev/null +++ b/resources/groups/Bastion-P_LBASM.yaml @@ -0,0 +1,8 @@ +name: Bastion-P LBASM +tasks: + - Coastal +units: + - "[CH] Bastion-P LBASM TEL" + - "[CH] Monolit-B LBASM STR" +layouts: + - Bastion-P LBASM \ No newline at end of file diff --git a/resources/groups/CH_Russian-Navy.yaml b/resources/groups/CH_Russian-Navy.yaml new file mode 100644 index 00000000..fd20018c --- /dev/null +++ b/resources/groups/CH_Russian-Navy.yaml @@ -0,0 +1,11 @@ +name: "[CH] Russian Navy" +tasks: + - Navy +units: + - "[CH] Project 20385 Gremyashchiy Corvette (AShM)" + - "[CH] Project 22800 Karakurt Corvette LACM" + - "[CH] Project 22350 Admiral Gorshkov Frigate" + - "[CH] Project 11356R Admiral Grigorovich Frigate (AShM)" + - Cruiser 1164 Moskva +layouts: + - Naval Group \ No newline at end of file diff --git a/resources/groups/S-350.yaml b/resources/groups/S-350.yaml new file mode 100644 index 00000000..e9433358 --- /dev/null +++ b/resources/groups/S-350.yaml @@ -0,0 +1,11 @@ +name: S-350 +tasks: + - MERAD +units: + - "[CH] S-350 96L6 SR" + - "[CH] S-350 50N6 STR" + - "[CH] S-350 50K6 CP" + - "[CH] S-350 50P6 9M96D LN" + - "[CH] S-350 50P6 9M100 LN" +layouts: + - S-350 Site \ No newline at end of file diff --git a/resources/layouts/anti_air/BUK_M3_Site.yaml b/resources/layouts/anti_air/BUK_M3_Site.yaml new file mode 100644 index 00000000..b5b08deb --- /dev/null +++ b/resources/layouts/anti_air/BUK_M3_Site.yaml @@ -0,0 +1,61 @@ +name: BUK M3 Site +tasks: + - MERAD +groups: + - S-300: + - name: S-300 Site SR1 + unit_count: + - 1 + unit_types: + - CH_BukM3_9S18M13 + - name: S-300 Site SR2 + unit_count: + - 1 + unit_types: + - CH_BukM3_9S18M13 + - name: S-300 Site CP + unit_count: + - 1 + unit_types: + - CH_BukM3_9S510M + - name: S-300 Site TR + unit_count: + - 1 + unit_types: + - CH_BukM3_9S36M + - name: S-300 Site LN1 + unit_count: + - 3 + unit_types: + - CH_BukM3_9A317M + - name: S-300 Site LN2 + unit_count: + - 3 + unit_types: + - CH_BukM3_9A317MA + - PD: + - name: S-300 Site SHORAD1 + optional: true + sub_task: PointDefense + unit_count: + - 0 + - 2 + unit_classes: + - SHORAD + - name: S-300 Site SHORAD2 + optional: true + sub_task: PointDefense + unit_count: + - 0 + - 1 + unit_types: + - TorM2M + - name: S-300 Site AAA + sub_task: AAA + optional: true + unit_count: + - 1 + - 2 + unit_classes: + - AAA +layout_file: resources/layouts/anti_air/S-300_Site.miz \ No newline at end of file diff --git a/resources/layouts/anti_air/S-350_Site.yaml b/resources/layouts/anti_air/S-350_Site.yaml new file mode 100644 index 00000000..15cffc71 --- /dev/null +++ b/resources/layouts/anti_air/S-350_Site.yaml @@ -0,0 +1,58 @@ +name: S-350 Site +tasks: + - MERAD +groups: + - S-300: + - name: S-300 Site SR1 + unit_count: + - 1 + unit_types: + - CH_S350_96L6 + - name: S-300 Site SR2 + unit_count: + - 1 + unit_types: + - CH_S350_50N6 + - name: S-300 Site CP + unit_count: + - 1 + unit_types: + - CH_S350_50K6 + - name: S-300 Site TR + unit_count: + - 1 + unit_types: + - CH_S350_50N6 + - name: S-300 Site LN1 + unit_count: + - 3 + unit_types: + - CH_S350_50P6_9M100 + - name: S-300 Site LN2 + unit_count: + - 3 + unit_types: + - CH_S350_50P6_9M96D + - PD: + - name: S-300 Site SHORAD1 + optional: true + sub_task: PointDefense + unit_count: + - 0 + unit_classes: + - SHORAD + - name: S-300 Site SHORAD2 + optional: true + sub_task: PointDefense + unit_count: + - 0 + unit_types: + - Tor 9A331 + - name: S-300 Site AAA + sub_task: AAA + optional: true + unit_count: + - 1 + unit_classes: + - AAA +layout_file: resources/layouts/anti_air/S-300_Site.miz \ No newline at end of file diff --git a/resources/layouts/defenses/Bastion-P_LBASM.yaml b/resources/layouts/defenses/Bastion-P_LBASM.yaml new file mode 100644 index 00000000..66317439 --- /dev/null +++ b/resources/layouts/defenses/Bastion-P_LBASM.yaml @@ -0,0 +1,37 @@ +name: Bastion-P LBASM +tasks: + - Coastal +groups: + - Silkworm: + - name: SilkwormGenerator 0 + unit_count: + - 1 + unit_types: + - MonolitB + - name: SilkwormGenerator 1 + unit_count: + - 5 + unit_classes: + - AntiShipMissile + - name: SilkwormGenerator 2 + optional: true + unit_count: + - 1 + - 2 + unit_classes: + - Logistics + - name: SilkwormGenerator 3 + optional: true + unit_count: + - 1 + - 2 + unit_classes: + - AAA + - name: SilkwormGenerator 4 + optional: true + unit_count: + - 0 + - 1 + unit_classes: + - SHORAD +layout_file: resources/layouts/defenses/Silkworm.miz \ No newline at end of file diff --git a/resources/ui/units/aircrafts/banners/CH_Ka52.jpg b/resources/ui/units/aircrafts/banners/CH_Ka52.jpg new file mode 100644 index 00000000..21928e2c Binary files /dev/null and b/resources/ui/units/aircrafts/banners/CH_Ka52.jpg differ diff --git a/resources/ui/units/aircrafts/banners/CH_Ka52K.jpg b/resources/ui/units/aircrafts/banners/CH_Ka52K.jpg new file mode 100644 index 00000000..726f8d80 Binary files /dev/null and b/resources/ui/units/aircrafts/banners/CH_Ka52K.jpg differ diff --git a/resources/ui/units/aircrafts/banners/CH_Mi28N.jpg b/resources/ui/units/aircrafts/banners/CH_Mi28N.jpg new file mode 100644 index 00000000..88eb3bcb Binary files /dev/null and b/resources/ui/units/aircrafts/banners/CH_Mi28N.jpg differ diff --git a/resources/ui/units/aircrafts/banners/CH_Tu-160M2.jpg b/resources/ui/units/aircrafts/banners/CH_Tu-160M2.jpg new file mode 100644 index 00000000..f0d13b4c Binary files /dev/null and b/resources/ui/units/aircrafts/banners/CH_Tu-160M2.jpg differ diff --git a/resources/ui/units/aircrafts/banners/CH_Tu-95MSM.jpg b/resources/ui/units/aircrafts/banners/CH_Tu-95MSM.jpg new file mode 100644 index 00000000..280d365d Binary files /dev/null and b/resources/ui/units/aircrafts/banners/CH_Tu-95MSM.jpg differ diff --git a/resources/ui/units/aircrafts/icons/CH_Ka52.jpg b/resources/ui/units/aircrafts/icons/CH_Ka52.jpg new file mode 100644 index 00000000..12345e34 Binary files /dev/null and b/resources/ui/units/aircrafts/icons/CH_Ka52.jpg differ diff --git a/resources/ui/units/aircrafts/icons/CH_Ka52K.jpg b/resources/ui/units/aircrafts/icons/CH_Ka52K.jpg new file mode 100644 index 00000000..db452566 Binary files /dev/null and b/resources/ui/units/aircrafts/icons/CH_Ka52K.jpg differ diff --git a/resources/ui/units/aircrafts/icons/CH_Mi28N.jpg b/resources/ui/units/aircrafts/icons/CH_Mi28N.jpg new file mode 100644 index 00000000..c4bfb957 Binary files /dev/null and b/resources/ui/units/aircrafts/icons/CH_Mi28N.jpg differ diff --git a/resources/ui/units/aircrafts/icons/CH_Tu-160M2.jpg b/resources/ui/units/aircrafts/icons/CH_Tu-160M2.jpg new file mode 100644 index 00000000..2d857fd5 Binary files /dev/null and b/resources/ui/units/aircrafts/icons/CH_Tu-160M2.jpg differ diff --git a/resources/ui/units/aircrafts/icons/CH_Tu-95MSM.jpg b/resources/ui/units/aircrafts/icons/CH_Tu-95MSM.jpg new file mode 100644 index 00000000..bef230ba Binary files /dev/null and b/resources/ui/units/aircrafts/icons/CH_Tu-95MSM.jpg differ diff --git a/resources/units/aircraft/CH_Ka52.yaml b/resources/units/aircraft/CH_Ka52.yaml new file mode 100644 index 00000000..9ceca3c8 --- /dev/null +++ b/resources/units/aircraft/CH_Ka52.yaml @@ -0,0 +1,31 @@ +class: Helicopter +always_keeps_gun: true +carrier_capable: true +description: + In the early 1980s, while comparative tests of the V-80 (Ka-50 prototype) and the Mi-28 were being conducted, + the Kamov design team came up with a proposal to develop a dedicated helicopter to conduct battlefield + reconnaissance, provide target designation, support and coordinate group attack helicopter operations based on + the Ka-60. However, the economic hardships that hit the nation in the late 1980s hampered this new development + program. This prompted Kamov's Designer General to choose a modified version of Ka-50 on which to install the + reconnaissance and target designation system. The modified "Black Shark" required a second crew member to + operate the optotronics/radar reconnaissance suite. Kamov decided to use side-by-side seating arrangement, + due to the verified improvements in co-operation between the crew members. This twin-seat version was + designated Ka-52. +introduced: 2008 +lha_capable: true +cabin_size: 0 # Can not transport troops +can_carry_crates: true +manufacturer: Kamov +origin: USSR/Russia +price: 20 +role: Attack +default_livery: CH_KA52 +variants: + "[CH] Ka-52": {} +kneeboard_units: "metric" +tasks: + BAI: 440 + CAS: 440 + DEAD: 113 + Escort: 100 + OCA/Aircraft: 440 diff --git a/resources/units/aircraft/CH_Ka52K.yaml b/resources/units/aircraft/CH_Ka52K.yaml new file mode 100644 index 00000000..fcc6486e --- /dev/null +++ b/resources/units/aircraft/CH_Ka52K.yaml @@ -0,0 +1,32 @@ +class: Helicopter +always_keeps_gun: true +carrier_capable: true +description: + In the early 1980s, while comparative tests of the V-80 (Ka-50 prototype) and the Mi-28 were being conducted, + the Kamov design team came up with a proposal to develop a dedicated helicopter to conduct battlefield + reconnaissance, provide target designation, support and coordinate group attack helicopter operations based on + the Ka-60. However, the economic hardships that hit the nation in the late 1980s hampered this new development + program. This prompted Kamov's Designer General to choose a modified version of Ka-50 on which to install the + reconnaissance and target designation system. The modified "Black Shark" required a second crew member to + operate the optotronics/radar reconnaissance suite. Kamov decided to use side-by-side seating arrangement, + due to the verified improvements in co-operation between the crew members. This twin-seat version was + designated Ka-52. +introduced: 2008 +lha_capable: true +cabin_size: 0 # Can not transport troops +can_carry_crates: true +manufacturer: Kamov +origin: USSR/Russia +price: 20 +role: Attack +default_livery: CH_KA52K +variants: + "[CH] Ka-52K": {} +kneeboard_units: "metric" +tasks: + Anti-ship: 500 + BAI: 440 + CAS: 440 + DEAD: 113 + Escort: 100 + OCA/Aircraft: 440 diff --git a/resources/units/aircraft/CH_Mi28N.yaml b/resources/units/aircraft/CH_Mi28N.yaml new file mode 100644 index 00000000..1bda45e6 --- /dev/null +++ b/resources/units/aircraft/CH_Mi28N.yaml @@ -0,0 +1,22 @@ +class: Helicopter +cabin_size: 0 +can_carry_crates: false +always_keeps_gun: true +description: + The Mil Mi-28 (NATO reporting name 'Havoc') is a Russian all-weather, + day-night, military tandem, two-seat anti-armor attack helicopter. It is an attack + helicopter with no intended secondary transport capability, better optimized than + the Mil Mi-24 gunship for the role. It carries a single gun in an undernose barbette, + plus external loads carried on pylons beneath stub wings. +introduced: 2009 +manufacturer: Mil +origin: USSR/Russia +price: 16 +role: Attack +variants: + "[CH] Mi-28N AH": {} +tasks: + BAI: 420 + CAS: 420 + Escort: 100 + OCA/Aircraft: 420 diff --git a/resources/units/aircraft/CH_Tu-160M2.yaml b/resources/units/aircraft/CH_Tu-160M2.yaml new file mode 100644 index 00000000..41ff0225 --- /dev/null +++ b/resources/units/aircraft/CH_Tu-160M2.yaml @@ -0,0 +1,23 @@ +description: + "The Tupolev Tu-160 (Russian: \u0422\u0443\u043F\u043E\u043B\u0435\u0432\ + \ \u0422\u0443-160 \u0411\u0435\u043B\u044B\u0439 \u043B\u0435\u0431\u0435\u0434\ + \u044C, romanized: Belyj Lebe\u010F, lit.\u2009'White Swan'; NATO reporting name:\ + \ Blackjack) is a supersonic, variable-sweep wing heavy strategic bomber designed\ + \ by the Tupolev Design Bureau in the Soviet Union in the 1970s. It is the largest\ + \ and heaviest Mach 2+ supersonic military aircraft ever built and next to the experimental\ + \ XB-70 Valkyrie in overall length. As of 2021, it is the largest and heaviest combat\ + \ aircraft, the fastest bomber in use and the largest and heaviest variable-sweep\ + \ wing airplane ever flown." +introduced: 2021 +manufacturer: Tupolev +origin: USSR/Russia +price: 45 +role: Supersonic Strategic Bomber +max_range: 2000 +variants: + "[CH] Tu-160M2": {} +tasks: + Anti-ship: 100 + BAI: 370 + DEAD: 210 + Strike: 680 diff --git a/resources/units/aircraft/CH_Tu-95MSM.yaml b/resources/units/aircraft/CH_Tu-95MSM.yaml new file mode 100644 index 00000000..29e5890b --- /dev/null +++ b/resources/units/aircraft/CH_Tu-95MSM.yaml @@ -0,0 +1,23 @@ +description: + "The Tupolev Tu-95 (Russian: \u0422\u0443\u043F\u043E\u043B\u0435\u0432\ + \ \u0422\u0443-95; NATO reporting name: \"Bear\") is a large, four-engine turboprop-powered\ + \ strategic bomber and missile platform. First flown in 1952, the Tu-95 entered\ + \ service with the Long-Range Aviation of the Soviet Air Forces in 1956 and is expected\ + \ to serve the Russian Aerospace Forces until at least 2040. A development of the\ + \ bomber for maritime patrol is designated Tu-142, while a passenger airliner derivative\ + \ was called Tu-114. The aircraft has four Kuznetsov NK-12 engines with contra-rotating\ + \ propellers. It is the only propeller-powered strategic bomber still in operational\ + \ use today. The Tu-95 is one of the loudest military aircraft, particularly because\ + \ the tips of the propeller blades move faster than the speed of sound" +introduced: 2019 +manufacturer: Tupolev +origin: USSR/Russia +price: 35 +role: Strategic Bomber +variants: + "[CH] Tu-95MSM": {} +tasks: + Anti-ship: 100 + BAI: 370 + DEAD: 210 + Strike: 670 diff --git a/resources/units/ground_units/CH_2S35.yaml b/resources/units/ground_units/CH_2S35.yaml new file mode 100644 index 00000000..c190bf60 --- /dev/null +++ b/resources/units/ground_units/CH_2S35.yaml @@ -0,0 +1,13 @@ +class: Artillery +description: "The 2S35 Koalitsiya-SV (Russian: 2C35 \xD0\x9A\xD0\xBE\xD0\xB0\xD0\xBB\xD0\xB8\xD1\x86\xD0\xB8\xD1\x8F\x2D\xD0\xA1\xD0\x92, + lit. Coalition-SV) is a Russian self-propelled gun first seen in public + (initially with its turret covered) in 2015 during rehearsals for the Moscow Victory + Day Parade. The 2S35 is expected to supplement and eventually replace the 2S19 Msta in + the Russian Ground Forces." +introduced: 2023 +manufacturer: Burevestnik Central Scientific Research Institute +origin: Russia +price: 25 +role: Self-Propelled Gun +variants: + "[CH] 2S35 SPG": {} \ No newline at end of file diff --git a/resources/units/ground_units/CH_2S38.yaml b/resources/units/ground_units/CH_2S38.yaml new file mode 100644 index 00000000..7a223e49 --- /dev/null +++ b/resources/units/ground_units/CH_2S38.yaml @@ -0,0 +1,13 @@ +class: AAA +description: "Self-propelled air defense vehicle based on BMP-3 chassis fitted with a 57 mm autocannon + and passive reconnaissance and target tracking equipment. It is designed to shoot down unmanned aerial + vehicles (UAVs), cruise missiles, air-to-surface missiles, aircraft, helicopters, and MLRS rockets. + 2S38 is equipped with a TV/thermal-imaging system with automatic target lock-on and tracking capabilities, + a laser rangefinder and a laser guidance system." +introduced: 2022 +manufacturer: Kurganmashzavod +origin: Russia +price: 15 +role: Self-Propelled Anti-Aircraft Gun +variants: + "[CH] 2S38 SPAAG": {} \ No newline at end of file diff --git a/resources/units/ground_units/CH_2S38_LG.yaml b/resources/units/ground_units/CH_2S38_LG.yaml new file mode 100644 index 00000000..81bb451c --- /dev/null +++ b/resources/units/ground_units/CH_2S38_LG.yaml @@ -0,0 +1,13 @@ +class: AAA +description: "Self-propelled air defense vehicle based on BMP-3 chassis fitted with a 57 mm autocannon + and passive reconnaissance and target tracking equipment. It is designed to shoot down unmanned aerial + vehicles (UAVs), cruise missiles, air-to-surface missiles, aircraft, helicopters, and MLRS rockets. + 2S38 is equipped with a TV/thermal-imaging system with automatic target lock-on and tracking capabilities, + a laser rangefinder and a laser guidance system." +introduced: 2022 +manufacturer: Kurganmashzavod +origin: Russia +price: 15 +role: Self-Propelled Anti-Aircraft Gun +variants: + "[CH] 2S38 SPAAG (LG-HE)": {} \ No newline at end of file diff --git a/resources/units/ground_units/CH_3K60_BAL.yaml b/resources/units/ground_units/CH_3K60_BAL.yaml new file mode 100644 index 00000000..b9163f66 --- /dev/null +++ b/resources/units/ground_units/CH_3K60_BAL.yaml @@ -0,0 +1,4 @@ +class: AntiShipMissile +price: 0 +variants: + "[CH] Bal LBASM TEL": null \ No newline at end of file diff --git a/resources/units/ground_units/CH_9M133.yaml b/resources/units/ground_units/CH_9M133.yaml new file mode 100644 index 00000000..5eb823ee --- /dev/null +++ b/resources/units/ground_units/CH_9M133.yaml @@ -0,0 +1,5 @@ +class: Infantry +price: 0 +spawn_weight: 1 +variants: + "[CH] 9M133 ATGM Soldier": null diff --git a/resources/units/ground_units/CH_BMD4.yaml b/resources/units/ground_units/CH_BMD4.yaml new file mode 100644 index 00000000..38b1565f --- /dev/null +++ b/resources/units/ground_units/CH_BMD4.yaml @@ -0,0 +1,15 @@ +class: IFV +description: "The BMD-4 (Russian: \xD0\x91\xD0\xBE\xD0\xB5\xD0\xB2\xD0\xB0\xD1\x8F\x20\xD0\x9C\xD0\xB0\xD1\x88\xD0\xB8\xD0\xBD\xD0\xB0\x20\xD0\x94\xD0\xB5\xD1\x81\xD0\xB0\xD0\xBD\xD1\x82\xD0\xB0\x2D\x34, + romanized: Boyevaya Mashina Desanta-4, English: Combat Vehicle of the Airborne) is an amphibious infantry + fighting vehicle (IFV) originating from post-Cold War Russia. Originally designated as the BMD-3M, the chassis + of the BMD-4 is the same as that of the BMD-3 because it was developed on the same basis. + This armored fighting vehicle is one of the lightest in its class, possessing a substantial amount of + firepower. The vehicle was designed to transport Russian Airborne Troops (VDV), increasing its mobility, + armament, and protection on the battlefield" +introduced: 2004 +manufacturer: Kurganmashzavod +origin: Russia +price: 12 +role: Infantry Fighting Vehicle +variants: + "[CH] BMD-4 IFV": null diff --git a/resources/units/ground_units/CH_BukM3_9A317M.yaml b/resources/units/ground_units/CH_BukM3_9A317M.yaml new file mode 100644 index 00000000..75d37910 --- /dev/null +++ b/resources/units/ground_units/CH_BukM3_9A317M.yaml @@ -0,0 +1,4 @@ +class: TELAR +price: 40 +variants: + "[CH] Buk M3 9A317M TELAR": null \ No newline at end of file diff --git a/resources/units/ground_units/CH_BukM3_9A317MA.yaml b/resources/units/ground_units/CH_BukM3_9A317MA.yaml new file mode 100644 index 00000000..6dfe692a --- /dev/null +++ b/resources/units/ground_units/CH_BukM3_9A317MA.yaml @@ -0,0 +1,4 @@ +class: TELAR +price: 40 +variants: + "[CH] Buk M3 9A317MA TELAR": null \ No newline at end of file diff --git a/resources/units/ground_units/CH_BukM3_9S18M13.yaml b/resources/units/ground_units/CH_BukM3_9S18M13.yaml new file mode 100644 index 00000000..aae8c80f --- /dev/null +++ b/resources/units/ground_units/CH_BukM3_9S18M13.yaml @@ -0,0 +1,19 @@ +class: SearchRadar +description: "The 9K317M 'Buk-M3' (9K37M3) is the latest production version, based on new hardware. + It has 36 target channels and features advanced electronic components. Specifications include a maximum + target speed of 3,000 m/s (11,000 km/h; 6,700 mph; Mach 8.8), an altitude range of 0.015-35 km (49-114,829 ft) + and a distance range of 2.5-70 km (1.6-43.5 mi). Extensive trials began in 2015, with the first deliveries + planned for 2016." +introduced: 2016 +manufacturer: Almaz-Antey +origin: Russia +price: 40 +variants: + "[CH] Buk M3 9S18M1-3 SR": {} +skynet_properties: # Override skynet default properties + can_engage_harm: true + # can_engage_air_weapon: true # https://github.com/walder/Skynet-IADS/tree/develop#engage-air-weapons + go_live_range_in_percent: 100 + harm_detection_chance: 90 + engagement_zone: SkynetIADSAbstractRadarElement.GO_LIVE_WHEN_IN_KILL_ZONE # https://github.com/walder/Skynet-IADS/tree/develop#engagement-zone + autonomous_behaviour: SkynetIADSAbstractRadarElement.AUTONOMOUS_STATE_DCS_AI # https://github.com/walder/Skynet-IADS/tree/develop#autonomous-mode-behaviour diff --git a/resources/units/ground_units/CH_BukM3_9S36M.yaml b/resources/units/ground_units/CH_BukM3_9S36M.yaml new file mode 100644 index 00000000..862097fc --- /dev/null +++ b/resources/units/ground_units/CH_BukM3_9S36M.yaml @@ -0,0 +1,12 @@ +class: TrackRadar +description: "The 9K317M 'Buk-M3' (9K37M3) is the latest production version, based on new hardware. + It has 36 target channels and features advanced electronic components. Specifications include a maximum + target speed of 3,000 m/s (11,000 km/h; 6,700 mph; Mach 8.8), an altitude range of 0.015-35 km (49-114,829 ft) + and a distance range of 2.5-70 km (1.6-43.5 mi). Extensive trials began in 2015, with the first deliveries + planned for 2016." +introduced: 2016 +manufacturer: Almaz-Antey +origin: Russia +price: 24 +variants: + "[CH] Buk M3 9S36M TR": null diff --git a/resources/units/ground_units/CH_BukM3_9S510M.yaml b/resources/units/ground_units/CH_BukM3_9S510M.yaml new file mode 100644 index 00000000..786d974e --- /dev/null +++ b/resources/units/ground_units/CH_BukM3_9S510M.yaml @@ -0,0 +1,4 @@ +class: CommandPost +price: 18 +variants: + "[CH] Buk M3 9S510M CP": null \ No newline at end of file diff --git a/resources/units/ground_units/CH_DSHK_HMG_RUS.yaml b/resources/units/ground_units/CH_DSHK_HMG_RUS.yaml new file mode 100644 index 00000000..74a06fc8 --- /dev/null +++ b/resources/units/ground_units/CH_DSHK_HMG_RUS.yaml @@ -0,0 +1,5 @@ +class: Infantry +price: 0 +spawn_weight: 3 +variants: + "[CH] DShK HMG": null diff --git a/resources/units/ground_units/CH_DSHK_HMG_UKR.yaml b/resources/units/ground_units/CH_DSHK_HMG_UKR.yaml new file mode 100644 index 00000000..74a06fc8 --- /dev/null +++ b/resources/units/ground_units/CH_DSHK_HMG_UKR.yaml @@ -0,0 +1,5 @@ +class: Infantry +price: 0 +spawn_weight: 3 +variants: + "[CH] DShK HMG": null diff --git a/resources/units/ground_units/CH_IskanderK.yaml b/resources/units/ground_units/CH_IskanderK.yaml new file mode 100644 index 00000000..cf815465 --- /dev/null +++ b/resources/units/ground_units/CH_IskanderK.yaml @@ -0,0 +1,11 @@ +class: Missile +description: "The 9K720 Iskander (Russian: \xD0\x98\xD1\x81\xD0\xBA\xD0\xB0\xD0\xBD\xD0\xB4\xD0\xB5\xD1\x80; + NATO reporting name SS-26 Stone) is a Russian mobile short-range ballistic missile system. It has a range of + 500 kilometres (270 nmi; 310 mi). It was intended to replace the OTR-21 Tochka in the Russian military by + 2020." +introduced: 2006 +manufacturer: Votkinsk Plant State Production Association +origin: Russia +price: 0 +variants: + "[CH] Iskander-K GLCM": null \ No newline at end of file diff --git a/resources/units/ground_units/CH_IskanderM.yaml b/resources/units/ground_units/CH_IskanderM.yaml new file mode 100644 index 00000000..307c649d --- /dev/null +++ b/resources/units/ground_units/CH_IskanderM.yaml @@ -0,0 +1,11 @@ +class: Missile +description: "The 9K720 Iskander (Russian: \xD0\x98\xD1\x81\xD0\xBA\xD0\xB0\xD0\xBD\xD0\xB4\xD0\xB5\xD1\x80; + NATO reporting name SS-26 Stone) is a Russian mobile short-range ballistic missile system. It has a range of + 500 kilometres (270 nmi; 310 mi). It was intended to replace the OTR-21 Tochka in the Russian military by + 2020." +introduced: 2006 +manufacturer: Votkinsk Plant State Production Association +origin: Russia +price: 0 +variants: + "[CH] Iskander-M SRBM": null \ No newline at end of file diff --git a/resources/units/ground_units/CH_RussianInfantry_Kord.yaml b/resources/units/ground_units/CH_RussianInfantry_Kord.yaml new file mode 100644 index 00000000..00f080a8 --- /dev/null +++ b/resources/units/ground_units/CH_RussianInfantry_Kord.yaml @@ -0,0 +1,5 @@ +class: Infantry +price: 0 +spawn_weight: 3 +variants: + "[CH] Kord HMG Soldier": null diff --git a/resources/units/ground_units/CH_S350_50K6.yaml b/resources/units/ground_units/CH_S350_50K6.yaml new file mode 100644 index 00000000..fcde6888 --- /dev/null +++ b/resources/units/ground_units/CH_S350_50K6.yaml @@ -0,0 +1,4 @@ +class: CommandPost +price: 18 +variants: + "[CH] S-350 50K6 CP": null \ No newline at end of file diff --git a/resources/units/ground_units/CH_S350_50N6.yaml b/resources/units/ground_units/CH_S350_50N6.yaml new file mode 100644 index 00000000..73a3dc4e --- /dev/null +++ b/resources/units/ground_units/CH_S350_50N6.yaml @@ -0,0 +1,18 @@ +class: SearchTrackRadar +description: "The S-350 Vityaz (Russian: C-350 \xD0\x92\xD0\xB8\xD1\x82\xD1\x8F\xD0\xB7\xD1\x8C) is a Russian + medium-range surface-to-air missile system developed by GSKB Almaz-Antey. Its purpose is to replace + the S-300PS. The system design traces its roots from the joint South Korean-Russian KM-SAM project + and uses the same 9M96 missile as the S-400 missile system." +introduced: 2019 +manufacturer: Almaz-Antey +origin: Russia +price: 30 +variants: + "[CH] S-350 50N6 STR": {} +skynet_properties: # Override skynet default properties + can_engage_harm: true + # can_engage_air_weapon: true # https://github.com/walder/Skynet-IADS/tree/develop#engage-air-weapons + go_live_range_in_percent: 100 + harm_detection_chance: 90 + engagement_zone: SkynetIADSAbstractRadarElement.GO_LIVE_WHEN_IN_KILL_ZONE # https://github.com/walder/Skynet-IADS/tree/develop#engagement-zone + autonomous_behaviour: SkynetIADSAbstractRadarElement.AUTONOMOUS_STATE_DCS_AI # https://github.com/walder/Skynet-IADS/tree/develop#autonomous-mode-behaviour diff --git a/resources/units/ground_units/CH_S350_50P6_9M100.yaml b/resources/units/ground_units/CH_S350_50P6_9M100.yaml new file mode 100644 index 00000000..f3ee96ef --- /dev/null +++ b/resources/units/ground_units/CH_S350_50P6_9M100.yaml @@ -0,0 +1,11 @@ +class: TELAR +description: "The S-350 Vityaz (Russian: C-350 \xD0\x92\xD0\xB8\xD1\x82\xD1\x8F\xD0\xB7\xD1\x8C) is a Russian + medium-range surface-to-air missile system developed by GSKB Almaz-Antey. Its purpose is to replace + the S-300PS. The system design traces its roots from the joint South Korean-Russian KM-SAM project + and uses the same 9M96 missile as the S-400 missile system." +introduced: 2019 +manufacturer: Almaz-Antey +origin: Russia +price: 20 +variants: + "[CH] S-350 50P6 9M100 LN": {} diff --git a/resources/units/ground_units/CH_S350_50P6_9M96D.yaml b/resources/units/ground_units/CH_S350_50P6_9M96D.yaml new file mode 100644 index 00000000..e141f61d --- /dev/null +++ b/resources/units/ground_units/CH_S350_50P6_9M96D.yaml @@ -0,0 +1,11 @@ +class: TELAR +description: "The S-350 Vityaz (Russian: C-350 \xD0\x92\xD0\xB8\xD1\x82\xD1\x8F\xD0\xB7\xD1\x8C) is a Russian + medium-range surface-to-air missile system developed by GSKB Almaz-Antey. Its purpose is to replace + the S-300PS. The system design traces its roots from the joint South Korean-Russian KM-SAM project + and uses the same 9M96 missile as the S-400 missile system." +introduced: 2019 +manufacturer: Almaz-Antey +origin: Russia +price: 20 +variants: + "[CH] S-350 50P6 9M96D LN": {} diff --git a/resources/units/ground_units/CH_S350_96L6.yaml b/resources/units/ground_units/CH_S350_96L6.yaml new file mode 100644 index 00000000..ae4d80ae --- /dev/null +++ b/resources/units/ground_units/CH_S350_96L6.yaml @@ -0,0 +1,18 @@ +class: SearchRadar +description: "The S-350 Vityaz (Russian: C-350 \xD0\x92\xD0\xB8\xD1\x82\xD1\x8F\xD0\xB7\xD1\x8C) is a Russian + medium-range surface-to-air missile system developed by GSKB Almaz-Antey. Its purpose is to replace + the S-300PS. The system design traces its roots from the joint South Korean-Russian KM-SAM project + and uses the same 9M96 missile as the S-400 missile system." +introduced: 2019 +manufacturer: Almaz-Antey +origin: Russia +price: 40 +variants: + "[CH] S-350 96L6 SR": {} +skynet_properties: # Override skynet default properties + can_engage_harm: true + # can_engage_air_weapon: true # https://github.com/walder/Skynet-IADS/tree/develop#engage-air-weapons + go_live_range_in_percent: 100 + harm_detection_chance: 90 + engagement_zone: SkynetIADSAbstractRadarElement.GO_LIVE_WHEN_IN_KILL_ZONE # https://github.com/walder/Skynet-IADS/tree/develop#engagement-zone + autonomous_behaviour: SkynetIADSAbstractRadarElement.AUTONOMOUS_STATE_DCS_AI # https://github.com/walder/Skynet-IADS/tree/develop#autonomous-mode-behaviour diff --git a/resources/units/ground_units/CH_T14.yaml b/resources/units/ground_units/CH_T14.yaml new file mode 100644 index 00000000..35aee715 --- /dev/null +++ b/resources/units/ground_units/CH_T14.yaml @@ -0,0 +1,11 @@ +class: Tank +description: "The T-14 Armata (Russian: T-14 \xD0\x90\xD1\x80\xD0\xBC\xD0\xB0\xD1\x82\xD0\xB0; industrial + designation Russian: \xD0\x9E\xD0\xB1\xD1\x8A\xD0\xB5\xD0\xBA\xD1\x82 148, romanized: Obyekt 148, lit. 'Object + 148') is a Russian fourth-generation main battle tank (MBT) based on the Armata Universal Combat Platform." +introduced: 2014 +manufacturer: Uralvagonzavod +origin: Russia +price: 20 +role: Main Battle Tank +variants: + "[CH] T-14 MBT": {} diff --git a/resources/units/ground_units/CH_T80BVM.yaml b/resources/units/ground_units/CH_T80BVM.yaml new file mode 100644 index 00000000..da2920cb --- /dev/null +++ b/resources/units/ground_units/CH_T80BVM.yaml @@ -0,0 +1,12 @@ +class: Tank +description: "The T-80 is a main battle tank (MBT) that was designed and manufactured in the former Soviet Union + and manufactured in Russia. The T-80 is based on the T-64, while incorporating features from the later T-72 + and changing the engine to a gas turbine. When it entered service in 1976, it was the first production tank to + be powered solely by turbine" +introduced: 2017 +manufacturer: LKZ and Omsk Transmash +origin: Russia +price: 25 +role: Main Battle Tank +variants: + "[CH] T-80BVM MBT": {} diff --git a/resources/units/ground_units/CH_T90A.yaml b/resources/units/ground_units/CH_T90A.yaml new file mode 100644 index 00000000..b6dfea04 --- /dev/null +++ b/resources/units/ground_units/CH_T90A.yaml @@ -0,0 +1,13 @@ +class: Tank +description: "The T-90 is a third-generation Russian main battle tank developed from, and designed to replace + the T-72. It uses a 125 mm 2A46 smoothbore main gun, the 1A45T fire-control system, an upgraded engine, + and gunner's thermal sight. Standard protective measures include a blend of steel and composite armour, + smoke grenade dischargers, Kontakt-5 explosive reactive armour (ERA) and the Shtora infrared anti-tank + guided missile (ATGM) jamming system." +introduced: 2004 +manufacturer: Uralvagonzavod +origin: Russia +price: 20 +role: Main Battle Tank +variants: + "[CH] T-90A MBT": {} diff --git a/resources/units/ground_units/CH_T90M.yaml b/resources/units/ground_units/CH_T90M.yaml new file mode 100644 index 00000000..eb6a837b --- /dev/null +++ b/resources/units/ground_units/CH_T90M.yaml @@ -0,0 +1,13 @@ +class: Tank +description: "The T-90 is a third-generation Russian main battle tank developed from, and designed to replace + the T-72. It uses a 125 mm 2A46 smoothbore main gun, the 1A45T fire-control system, an upgraded engine, + and gunner's thermal sight. Standard protective measures include a blend of steel and composite armour, + smoke grenade dischargers, Kontakt-5 explosive reactive armour (ERA) and the Shtora infrared anti-tank + guided missile (ATGM) jamming system." +introduced: 2019 +manufacturer: Uralvagonzavod +origin: Russia +price: 25 +role: Main Battle Tank +variants: + "[CH] T-90M MBT": {} diff --git a/resources/units/ground_units/CH_TOS1A.yaml b/resources/units/ground_units/CH_TOS1A.yaml new file mode 100644 index 00000000..30ebc41a --- /dev/null +++ b/resources/units/ground_units/CH_TOS1A.yaml @@ -0,0 +1,14 @@ +class: Artillery +description: "TOS-1 Buratino (Russian: \xD1\x82\xD1\x8F\xD0\xB6\xD1\x91\xD0\xBB\xD0\xB0\xD1\x8F\x20\xD0\xBE\xD0\xB3\xD0\xBD\xD0\xB5\xD0\xBC\xD1\x91\xD1\x82\xD0\xBD\xD0\xB0\xD1\x8F\x20\xD1\x81\xD0\xB8\xD1\x81\xD1\x82\xD0\xB5\xD0\xBC\xD0\xB0\x20\x5B\xD0\xA2\xD0\x9E\xD0\xA1\x2D\x31\x5D, + romanized: Tyazhyelaya ognemyetnaya sistema [TOS-1], Heavy Flamethrower System) is a Soviet 220 mm + 30-barrel (original system, Object 634 or TOS-1M) or 24-barrel (Object 634B or TOS-1A Solntsepyok) + multiple rocket launcher capable of using thermobaric warheads, mounted on a T-72 / T-90 tank chassis. + TOS-1 was designed to attack enemy fortified positions and lightly armored vehicles and transports, + particularly in open terrain." +introduced: 2003 +manufacturer: Uralvagonzavod +origin: USSR/Russia +price: 45 +role: Multiple-Launch Rocket System +variants: + "[CH] TOS-1A MRL": {} diff --git a/resources/units/ground_units/CH_TigrM.yaml b/resources/units/ground_units/CH_TigrM.yaml new file mode 100644 index 00000000..1556c39b --- /dev/null +++ b/resources/units/ground_units/CH_TigrM.yaml @@ -0,0 +1,4 @@ +class: IFV +price: 5 +variants: + "[CH] Tigr-M": null \ No newline at end of file diff --git a/resources/units/ground_units/K300P.yaml b/resources/units/ground_units/K300P.yaml new file mode 100644 index 00000000..d21f0797 --- /dev/null +++ b/resources/units/ground_units/K300P.yaml @@ -0,0 +1,4 @@ +class: AntiShipMissile +price: 0 +variants: + "[CH] Bastion-P LBASM TEL": null \ No newline at end of file diff --git a/resources/units/ground_units/MonolitB.yaml b/resources/units/ground_units/MonolitB.yaml new file mode 100644 index 00000000..d3738b8f --- /dev/null +++ b/resources/units/ground_units/MonolitB.yaml @@ -0,0 +1,4 @@ +class: SearchTrackRadar +price: 0 +variants: + "[CH] Monolit-B LBASM STR": null \ No newline at end of file diff --git a/resources/units/ground_units/PantsirS1.yaml b/resources/units/ground_units/PantsirS1.yaml new file mode 100644 index 00000000..1e445272 --- /dev/null +++ b/resources/units/ground_units/PantsirS1.yaml @@ -0,0 +1,14 @@ +class: SHORAD +description: "The Pantsir (Russian: \xD0\x9F\xD0\xB0\xD0\xBD\xD1\x86\xD0\xB8\xD1\x80\xD1\x8C, lit. '[body] + armour') missile system is a family of self-propelled, medium-range surface-to-air missile and + anti-aircraft artillery systems. Three types of vehicles make up one system: a missile launcher, + a radar truck and a command post. Starting with the Pantsir-S1 (Russian: \xD0\x9F\xD0\xB0\xD0\xBD\xD1\x86\xD0\xB8\xD1\x80\xD1\x8C\x2D\xD0\xA1\x31, + NATO reporting name SA-22 Greyhound) as the first version, it is produced by KBP Instrument Design + Bureau of Tula, Russia, and is the successor to the Tunguska M1." +introduced: 2012 +manufacturer: Ulyanovsk Mechanical Plant +origin: Russia +price: 40 +role: Self-Propelled Surface-to-Air Missile Launcher +variants: + "[CH] Pantsir-S1 SPAAGM": {} \ No newline at end of file diff --git a/resources/units/ground_units/PantsirS2.yaml b/resources/units/ground_units/PantsirS2.yaml new file mode 100644 index 00000000..d613624a --- /dev/null +++ b/resources/units/ground_units/PantsirS2.yaml @@ -0,0 +1,14 @@ +class: SHORAD +description: "The Pantsir (Russian: \xD0\x9F\xD0\xB0\xD0\xBD\xD1\x86\xD0\xB8\xD1\x80\xD1\x8C, lit. '[body] + armour') missile system is a family of self-propelled, medium-range surface-to-air missile and + anti-aircraft artillery systems. Three types of vehicles make up one system: a missile launcher, + a radar truck and a command post. Starting with the Pantsir-S1 (Russian: \xD0\x9F\xD0\xB0\xD0\xBD\xD1\x86\xD0\xB8\xD1\x80\xD1\x8C\x2D\xD0\xA1\x31, + NATO reporting name SA-22 Greyhound) as the first version, it is produced by KBP Instrument Design + Bureau of Tula, Russia, and is the successor to the Tunguska M1." +introduced: 2012 +manufacturer: Ulyanovsk Mechanical Plant +origin: Russia +price: 50 +role: Self-Propelled Surface-to-Air Missile Launcher +variants: + "[CH] Pantsir-S2 SPAAGM": {} \ No newline at end of file diff --git a/resources/units/ground_units/TorM2.yaml b/resources/units/ground_units/TorM2.yaml new file mode 100644 index 00000000..a831fae3 --- /dev/null +++ b/resources/units/ground_units/TorM2.yaml @@ -0,0 +1,13 @@ +class: SHORAD +description: "The Tor (Russian: \xD0\xA2\xD0\xBE\xD1\x80; English: torus) is an all-weather, low-to + medium-altitude, short-range surface-to-air missile system designed for destroying airplanes, helicopters, + cruise missiles, unmanned aerial vehicles and short-range ballistic threats (anti-munitions). Originally + developed by the Soviet Union under the GRAU designation 9K330 Tor, the system is commonly known by its + NATO reporting name, SA-15 Gauntlet." +introduced: 2007 +manufacturer: Almaz-Antey +origin: Russia +price: 40 +role: Self-Propelled Anti-Aircraft System +variants: + "[CH] Tor M2 SHORAD": {} \ No newline at end of file diff --git a/resources/units/ground_units/TorM2K.yaml b/resources/units/ground_units/TorM2K.yaml new file mode 100644 index 00000000..438815a2 --- /dev/null +++ b/resources/units/ground_units/TorM2K.yaml @@ -0,0 +1,13 @@ +class: SHORAD +description: "The Tor (Russian: \xD0\xA2\xD0\xBE\xD1\x80; English: torus) is an all-weather, low-to + medium-altitude, short-range surface-to-air missile system designed for destroying airplanes, helicopters, + cruise missiles, unmanned aerial vehicles and short-range ballistic threats (anti-munitions). Originally + developed by the Soviet Union under the GRAU designation 9K330 Tor, the system is commonly known by its + NATO reporting name, SA-15 Gauntlet." +introduced: 2007 +manufacturer: Almaz-Antey +origin: Russia +price: 40 +role: Self-Propelled Anti-Aircraft System +variants: + "[CH] Tor M2K SHORAD": {} \ No newline at end of file diff --git a/resources/units/ground_units/TorM2M.yaml b/resources/units/ground_units/TorM2M.yaml new file mode 100644 index 00000000..9ceb7f6e --- /dev/null +++ b/resources/units/ground_units/TorM2M.yaml @@ -0,0 +1,13 @@ +class: SHORAD +description: "The Tor (Russian: \xD0\xA2\xD0\xBE\xD1\x80; English: torus) is an all-weather, low-to + medium-altitude, short-range surface-to-air missile system designed for destroying airplanes, helicopters, + cruise missiles, unmanned aerial vehicles and short-range ballistic threats (anti-munitions). Originally + developed by the Soviet Union under the GRAU designation 9K330 Tor, the system is commonly known by its + NATO reporting name, SA-15 Gauntlet." +introduced: 2007 +manufacturer: Almaz-Antey +origin: Russia +price: 40 +role: Self-Propelled Anti-Aircraft System +variants: + "[CH] Tor M2M SHORAD": {} \ No newline at end of file diff --git a/resources/units/ships/Admiral_Gorshkov.yaml b/resources/units/ships/Admiral_Gorshkov.yaml new file mode 100644 index 00000000..c9e85621 --- /dev/null +++ b/resources/units/ships/Admiral_Gorshkov.yaml @@ -0,0 +1,4 @@ +class: Frigate +price: 0 +variants: + "[CH] Project 22350 Admiral Gorshkov Frigate": null \ No newline at end of file diff --git a/resources/units/ships/CH_Gremyashchiy_AShM.yaml b/resources/units/ships/CH_Gremyashchiy_AShM.yaml new file mode 100644 index 00000000..580194a9 --- /dev/null +++ b/resources/units/ships/CH_Gremyashchiy_AShM.yaml @@ -0,0 +1,4 @@ +class: Destroyer +price: 0 +variants: + "[CH] Project 20385 Gremyashchiy Corvette (AShM)": null \ No newline at end of file diff --git a/resources/units/ships/CH_Gremyashchiy_LACM.yaml b/resources/units/ships/CH_Gremyashchiy_LACM.yaml new file mode 100644 index 00000000..ceaa4267 --- /dev/null +++ b/resources/units/ships/CH_Gremyashchiy_LACM.yaml @@ -0,0 +1,4 @@ +class: Destroyer +price: 0 +variants: + "[CH] Project 20385 Gremyashchiy Corvette (LACM)": null \ No newline at end of file diff --git a/resources/units/ships/CH_Grigorovich_AShM.yaml b/resources/units/ships/CH_Grigorovich_AShM.yaml new file mode 100644 index 00000000..657b98cf --- /dev/null +++ b/resources/units/ships/CH_Grigorovich_AShM.yaml @@ -0,0 +1,4 @@ +class: Frigate +price: 0 +variants: + "[CH] Project 11356R Admiral Grigorovich Frigate (AShM)": null \ No newline at end of file diff --git a/resources/units/ships/CH_Grigorovich_LACM.yaml b/resources/units/ships/CH_Grigorovich_LACM.yaml new file mode 100644 index 00000000..3829b95e --- /dev/null +++ b/resources/units/ships/CH_Grigorovich_LACM.yaml @@ -0,0 +1,4 @@ +class: Frigate +price: 0 +variants: + "[CH] Project 11356R Admiral Grigorovich Frigate (LACM)": null \ No newline at end of file diff --git a/resources/units/ships/CH_Project22160.yaml b/resources/units/ships/CH_Project22160.yaml new file mode 100644 index 00000000..f5e719dc --- /dev/null +++ b/resources/units/ships/CH_Project22160.yaml @@ -0,0 +1,4 @@ +class: Destroyer +price: 0 +variants: + "[CH] Project 22160 Patrol Ship": null \ No newline at end of file diff --git a/resources/units/ships/CH_Steregushchiy.yaml b/resources/units/ships/CH_Steregushchiy.yaml new file mode 100644 index 00000000..cc9871b6 --- /dev/null +++ b/resources/units/ships/CH_Steregushchiy.yaml @@ -0,0 +1,4 @@ +class: Destroyer +price: 0 +variants: + "[CH] Project 20381 Steregushchiy Corvette": null \ No newline at end of file diff --git a/resources/units/ships/Karakurt_AShM.yaml b/resources/units/ships/Karakurt_AShM.yaml new file mode 100644 index 00000000..8bb508d2 --- /dev/null +++ b/resources/units/ships/Karakurt_AShM.yaml @@ -0,0 +1,4 @@ +class: Destroyer +price: 0 +variants: + "[CH] Project 22800 Karakurt Corvette AShM": null \ No newline at end of file diff --git a/resources/units/ships/Karakurt_LACM.yaml b/resources/units/ships/Karakurt_LACM.yaml new file mode 100644 index 00000000..bed9e531 --- /dev/null +++ b/resources/units/ships/Karakurt_LACM.yaml @@ -0,0 +1,4 @@ +class: Destroyer +price: 0 +variants: + "[CH] Project 22800 Karakurt Corvette LACM": null \ No newline at end of file