mirror of
https://github.com/dcs-retribution/dcs-retribution.git
synced 2025-11-10 15:41:24 +00:00
1253 lines
37 KiB
Python
1253 lines
37 KiB
Python
# 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,
|
|
)
|
|
OFAB_250_270___250_kg_GP_Bomb_LD = (1, Weapons.OFAB_250_270___250_kg_GP_Bomb_LD)
|
|
FAB_250M_62___250_kg_GP_Bomb_LD = (1, Weapons.FAB_250M_62___250_kg_GP_Bomb_LD)
|
|
FAB_500M_62___500_kg_GP_Bomb_LD = (1, Weapons.FAB_500M_62___500_kg_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,
|
|
)
|
|
OFAB_250_270___250_kg_GP_Bomb_LD = (2, Weapons.OFAB_250_270___250_kg_GP_Bomb_LD)
|
|
FAB_250M_62___250_kg_GP_Bomb_LD = (2, Weapons.FAB_250M_62___250_kg_GP_Bomb_LD)
|
|
FAB_500M_62___500_kg_GP_Bomb_LD = (2, Weapons.FAB_500M_62___500_kg_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,
|
|
)
|
|
OFAB_250_270___250_kg_GP_Bomb_LD = (3, Weapons.OFAB_250_270___250_kg_GP_Bomb_LD)
|
|
FAB_250M_62___250_kg_GP_Bomb_LD = (3, Weapons.FAB_250M_62___250_kg_GP_Bomb_LD)
|
|
FAB_500M_62___500_kg_GP_Bomb_LD = (3, Weapons.FAB_500M_62___500_kg_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,
|
|
)
|
|
OFAB_250_270___250_kg_GP_Bomb_LD = (4, Weapons.OFAB_250_270___250_kg_GP_Bomb_LD)
|
|
FAB_250M_62___250_kg_GP_Bomb_LD = (4, Weapons.FAB_250M_62___250_kg_GP_Bomb_LD)
|
|
FAB_500M_62___500_kg_GP_Bomb_LD = (4, Weapons.FAB_500M_62___500_kg_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,
|
|
)
|
|
OFAB_250_270___250_kg_GP_Bomb_LD = (1, Weapons.OFAB_250_270___250_kg_GP_Bomb_LD)
|
|
FAB_250M_62___250_kg_GP_Bomb_LD = (1, Weapons.FAB_250M_62___250_kg_GP_Bomb_LD)
|
|
FAB_500M_62___500_kg_GP_Bomb_LD = (1, Weapons.FAB_500M_62___500_kg_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,
|
|
)
|
|
OFAB_250_270___250_kg_GP_Bomb_LD = (2, Weapons.OFAB_250_270___250_kg_GP_Bomb_LD)
|
|
FAB_250M_62___250_kg_GP_Bomb_LD = (2, Weapons.FAB_250M_62___250_kg_GP_Bomb_LD)
|
|
FAB_500M_62___500_kg_GP_Bomb_LD = (2, Weapons.FAB_500M_62___500_kg_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,
|
|
)
|
|
OFAB_250_270___250_kg_GP_Bomb_LD = (3, Weapons.OFAB_250_270___250_kg_GP_Bomb_LD)
|
|
FAB_250M_62___250_kg_GP_Bomb_LD = (3, Weapons.FAB_250M_62___250_kg_GP_Bomb_LD)
|
|
FAB_500M_62___500_kg_GP_Bomb_LD = (3, Weapons.FAB_500M_62___500_kg_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,
|
|
)
|
|
OFAB_250_270___250_kg_GP_Bomb_LD = (4, Weapons.OFAB_250_270___250_kg_GP_Bomb_LD)
|
|
FAB_250M_62___250_kg_GP_Bomb_LD = (4, Weapons.FAB_250M_62___250_kg_GP_Bomb_LD)
|
|
FAB_500M_62___500_kg_GP_Bomb_LD = (4, Weapons.FAB_500M_62___500_kg_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 <CLEAN>
|
|
|
|
class Pylon6:
|
|
_9S846_Strelets___2_x_9M39_Igla = (6, Weapons._9S846_Strelets___2_x_9M39_Igla)
|
|
|
|
# ERRR <CLEAN>
|
|
|
|
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,
|
|
)
|
|
OFAB_250_270___250_kg_GP_Bomb_LD = (1, Weapons.OFAB_250_270___250_kg_GP_Bomb_LD)
|
|
FAB_250M_62___250_kg_GP_Bomb_LD = (1, Weapons.FAB_250M_62___250_kg_GP_Bomb_LD)
|
|
FAB_500M_62___500_kg_GP_Bomb_LD = (1, Weapons.FAB_500M_62___500_kg_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,
|
|
)
|
|
OFAB_250_270___250_kg_GP_Bomb_LD = (2, Weapons.OFAB_250_270___250_kg_GP_Bomb_LD)
|
|
FAB_250M_62___250_kg_GP_Bomb_LD = (2, Weapons.FAB_250M_62___250_kg_GP_Bomb_LD)
|
|
FAB_500M_62___500_kg_GP_Bomb_LD = (2, Weapons.FAB_500M_62___500_kg_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,
|
|
)
|
|
OFAB_250_270___250_kg_GP_Bomb_LD = (3, Weapons.OFAB_250_270___250_kg_GP_Bomb_LD)
|
|
FAB_250M_62___250_kg_GP_Bomb_LD = (3, Weapons.FAB_250M_62___250_kg_GP_Bomb_LD)
|
|
FAB_500M_62___500_kg_GP_Bomb_LD = (3, Weapons.FAB_500M_62___500_kg_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,
|
|
)
|
|
OFAB_250_270___250_kg_GP_Bomb_LD = (4, Weapons.OFAB_250_270___250_kg_GP_Bomb_LD)
|
|
FAB_250M_62___250_kg_GP_Bomb_LD = (4, Weapons.FAB_250M_62___250_kg_GP_Bomb_LD)
|
|
FAB_500M_62___500_kg_GP_Bomb_LD = (4, Weapons.FAB_500M_62___500_kg_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] = {}
|
|
|
|
properties = {}
|
|
|
|
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 <CLEAN>
|
|
|
|
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 <CLEAN>
|
|
|
|
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 <CLEAN>
|
|
|
|
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 <CLEAN>
|
|
|
|
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
|