384 lines
14 KiB
Python

from typing import Any, Dict, Set
from dcs import task
from dcs.planes import PlaneType
from dcs.weapons_data import Weapons
from game.modsupport import planemod
from pydcs_extensions.weapon_injector import inject_weapons
class F22AWeapons:
AIM_9XX = {"clsid": "{AIM-9XX}", "name": "AIM-9XX", "weight": 85}
AIM_120D = {"clsid": "{AIM-120D}", "name": "AIM-120D", "weight": 152}
AIM9X_BLKII_Sidewinder_IR_AAM = {
"clsid": "{AIM9X-BLKII}",
"name": "AIM9X-BLKII Sidewinder IR AAM",
"weight": 85.5,
}
LDTP_Fuel_tank_600_gal = {
"clsid": "{LDTP_FUEL_Tank}",
"name": "LDTP Fuel tank 600 gal",
"weight": 2045.8766885,
}
AIM_120C7___Active_Radar_AAM = {
"clsid": "{AIM-120C-7}",
"name": "AIM-120C7 - Active Radar AAM",
"weight": 161.48,
}
AIM_120C7___Active_Radar_AAM__IRST_POD = {
"clsid": "{AIM_120C-7_IRST_LEFT}",
"name": "AIM-120C7 - Active Radar AAM + IRST POD",
"weight": 266.48,
}
AIM_120C7___Active_Radar_AAM__IRST_POD_ = {
"clsid": "{AIM_120C-7_IRST_RIGHT}",
"name": "AIM-120C7 - Active Radar AAM + IRST POD",
"weight": 266.48,
}
AIM_120C8___Active_Radar_AAM = {
"clsid": "{AIM-120C-8}",
"name": "AIM-120C8 - Active Radar AAM",
"weight": 161.48,
}
AIM_120C8___Active_Radar_AAM__IRST_POD = {
"clsid": "{AIM_120C-8_IRST_LEFT}",
"name": "AIM-120C8 - Active Radar AAM + IRST POD",
"weight": 266.48,
}
AIM_120C8___Active_Radar_AAM__IRST_POD_ = {
"clsid": "{AIM_120C-8_IRST_RIGHT}",
"name": "AIM-120C8 - Active Radar AAM + IRST POD",
"weight": 266.48,
}
AIM_120D3___Active_Radar_AAM = {
"clsid": "{AIM-120D-3}",
"name": "AIM-120D3 - Active Radar AAM",
"weight": 165,
}
AIM_120D3___Active_Radar_AAM__IRST_POD = {
"clsid": "{AIM_120D-3_IRST_LEFT}",
"name": "AIM-120D3 - Active Radar AAM + IRST POD",
"weight": 270,
}
AIM_120D3___Active_Radar_AAM__IRST_POD_ = {
"clsid": "{AIM_120D-3_IRST_RIGHT}",
"name": "AIM-120D3 - Active Radar AAM + IRST POD",
"weight": 270,
}
AIM_260A___Active_Radar_AAM = {
"clsid": "{AIM-260A}",
"name": "AIM-260A - Active Radar AAM",
"weight": 160,
}
AIM_260A___Active_Radar_AAM__IRST_POD = {
"clsid": "{AIM_260A_IRST_LEFT}",
"name": "AIM-260A - Active Radar AAM + IRST POD",
"weight": 265,
}
AIM_260A___Active_Radar_AAM__IRST_POD_ = {
"clsid": "{AIM_260A_IRST_RIGHT}",
"name": "AIM-260A - Active Radar AAM + IRST POD",
"weight": 265,
}
_2x_AIM9X_BLKII_Sidewinder_IR_AAM = {
"clsid": "{LAU_115_2xAIM9X-II}",
"name": "2x AIM9X-BLKII Sidewinder IR AAM",
"weight": 221,
}
_2x_AIM_120C7___Active_Radar_AAM = {
"clsid": "{LAU_115_2xAIM-120C-7}",
"name": "2x AIM-120C7 - Active Radar AAM",
"weight": 372.96,
}
_2x_AIM_120C8___Active_Radar_AAM = {
"clsid": "{LAU_115_2xAIM-120C-8}",
"name": "2x AIM-120C8 - Active Radar AAM",
"weight": 372.96,
}
_2x_AIM_120D3___Active_Radar_AAM = {
"clsid": "{LAU_115_2xAIM-120D-3}",
"name": "2x AIM-120D3 - Active Radar AAM",
"weight": 380,
}
_2x_AIM_260A___Active_Radar_AAM = {
"clsid": "{LAU_115_2xAIM-260A}",
"name": "2x AIM-260A - Active Radar AAM",
"weight": 370,
}
IRST_Sensor_Pod = {
"clsid": "{IRST_SENSOR_Pod}",
"name": "IRST Sensor Pod",
"weight": 105,
}
Mako_Multi_Mission_Hypersonic_Missile___Active_Radar_AAM = {
"clsid": "{MAKO_A2A_C}",
"name": "Mako Multi-Mission Hypersonic Missile - Active Radar AAM",
"weight": 160,
}
inject_weapons(F22AWeapons)
@planemod
class F_22A(PlaneType):
id = "F-22A"
flyable = True
height = 4.88
width = 13.05
length = 19.1
fuel_max = 8200
max_speed = 2649.996
chaff = 120
flare = 120
charge_total = 240
chaff_charge_size = 1
flare_charge_size = 2
eplrs = True
category = "Interceptor" # {78EFB7A2-FD52-4b57-A6A6-3BF0E1D6555F}
radio_frequency = 127.5
property_defaults: Dict[str, Any] = {
"BAY_DOOR_OPTION": False,
}
class Properties:
class BAY_DOOR_OPTION:
id = "BAY_DOOR_OPTION"
livery_name = "F-22A" # from type
class Pylon1:
AIM_9X_Sidewinder_IR_AAM = (1, Weapons.AIM_9X_Sidewinder_IR_AAM)
AIM_9M_Sidewinder_IR_AAM = (1, Weapons.AIM_9M_Sidewinder_IR_AAM)
AIM9X_BLKII_Sidewinder_IR_AAM = (1, F22AWeapons.AIM9X_BLKII_Sidewinder_IR_AAM)
class Pylon2:
Fuel_tank_610_gal = (2, Weapons.Fuel_tank_610_gal)
LDTP_Fuel_tank_600_gal = (2, F22AWeapons.LDTP_Fuel_tank_600_gal)
AIM_9X_Sidewinder_IR_AAM = (2, Weapons.AIM_9X_Sidewinder_IR_AAM)
AIM_9M_Sidewinder_IR_AAM = (2, Weapons.AIM_9M_Sidewinder_IR_AAM)
AIM_120C_AMRAAM___Active_Radar_AAM = (
2,
Weapons.AIM_120C_AMRAAM___Active_Radar_AAM,
)
AIM_120B_AMRAAM___Active_Radar_AAM = (
2,
Weapons.AIM_120B_AMRAAM___Active_Radar_AAM,
)
AIM_120C7___Active_Radar_AAM = (2, F22AWeapons.AIM_120C7___Active_Radar_AAM)
AIM_120C8___Active_Radar_AAM = (2, F22AWeapons.AIM_120C8___Active_Radar_AAM)
AIM_120D3___Active_Radar_AAM = (2, F22AWeapons.AIM_120D3___Active_Radar_AAM)
# ERRR {LAU_115_2xAIM9X-II}}
_2x_AIM_120C7___Active_Radar_AAM = (
2,
F22AWeapons._2x_AIM_120C7___Active_Radar_AAM,
)
_2x_AIM_120C8___Active_Radar_AAM = (
2,
F22AWeapons._2x_AIM_120C8___Active_Radar_AAM,
)
_2x_AIM_120D3___Active_Radar_AAM = (
2,
F22AWeapons._2x_AIM_120D3___Active_Radar_AAM,
)
_2x_AIM_260A___Active_Radar_AAM = (
2,
F22AWeapons._2x_AIM_260A___Active_Radar_AAM,
)
class Pylon3:
AIM_120C_AMRAAM___Active_Radar_AAM = (
3,
Weapons.AIM_120C_AMRAAM___Active_Radar_AAM,
)
AIM_120B_AMRAAM___Active_Radar_AAM = (
3,
Weapons.AIM_120B_AMRAAM___Active_Radar_AAM,
)
AIM_120C7___Active_Radar_AAM = (3, F22AWeapons.AIM_120C7___Active_Radar_AAM)
AIM_120C8___Active_Radar_AAM = (3, F22AWeapons.AIM_120C8___Active_Radar_AAM)
AIM_120D3___Active_Radar_AAM = (3, F22AWeapons.AIM_120D3___Active_Radar_AAM)
AIM_260A___Active_Radar_AAM = (3, F22AWeapons.AIM_260A___Active_Radar_AAM)
class Pylon4:
IRST_Sensor_Pod = (4, F22AWeapons.IRST_Sensor_Pod)
AIM_120C_AMRAAM___Active_Radar_AAM = (
4,
Weapons.AIM_120C_AMRAAM___Active_Radar_AAM,
)
AIM_120B_AMRAAM___Active_Radar_AAM = (
4,
Weapons.AIM_120B_AMRAAM___Active_Radar_AAM,
)
AIM_120C7___Active_Radar_AAM = (4, F22AWeapons.AIM_120C7___Active_Radar_AAM)
AIM_120C8___Active_Radar_AAM = (4, F22AWeapons.AIM_120C8___Active_Radar_AAM)
AIM_120D3___Active_Radar_AAM = (4, F22AWeapons.AIM_120D3___Active_Radar_AAM)
AIM_260A___Active_Radar_AAM = (4, F22AWeapons.AIM_260A___Active_Radar_AAM)
Mako_Multi_Mission_Hypersonic_Missile___Active_Radar_AAM = (
4,
F22AWeapons.Mako_Multi_Mission_Hypersonic_Missile___Active_Radar_AAM,
)
AIM_120C7___Active_Radar_AAM__IRST_POD = (
4,
F22AWeapons.AIM_120C7___Active_Radar_AAM__IRST_POD,
)
AIM_120C8___Active_Radar_AAM__IRST_POD = (
4,
F22AWeapons.AIM_120C8___Active_Radar_AAM__IRST_POD,
)
AIM_120D3___Active_Radar_AAM__IRST_POD = (
4,
F22AWeapons.AIM_120D3___Active_Radar_AAM__IRST_POD,
)
AIM_260A___Active_Radar_AAM__IRST_POD = (
4,
F22AWeapons.AIM_260A___Active_Radar_AAM__IRST_POD,
)
class Pylon5:
AIM_120C_AMRAAM___Active_Radar_AAM = (
5,
Weapons.AIM_120C_AMRAAM___Active_Radar_AAM,
)
AIM_120B_AMRAAM___Active_Radar_AAM = (
5,
Weapons.AIM_120B_AMRAAM___Active_Radar_AAM,
)
AIM_120C7___Active_Radar_AAM = (5, F22AWeapons.AIM_120C7___Active_Radar_AAM)
AIM_120C8___Active_Radar_AAM = (5, F22AWeapons.AIM_120C8___Active_Radar_AAM)
AIM_120D3___Active_Radar_AAM = (5, F22AWeapons.AIM_120D3___Active_Radar_AAM)
AIM_260A___Active_Radar_AAM = (5, F22AWeapons.AIM_260A___Active_Radar_AAM)
Mako_Multi_Mission_Hypersonic_Missile___Active_Radar_AAM = (
5,
F22AWeapons.Mako_Multi_Mission_Hypersonic_Missile___Active_Radar_AAM,
)
class Pylon6:
Smokewinder___red = (6, Weapons.Smokewinder___red)
Smokewinder___green = (6, Weapons.Smokewinder___green)
Smokewinder___blue = (6, Weapons.Smokewinder___blue)
Smokewinder___white = (6, Weapons.Smokewinder___white)
Smokewinder___yellow = (6, Weapons.Smokewinder___yellow)
class Pylon7:
AIM_120C_AMRAAM___Active_Radar_AAM = (
7,
Weapons.AIM_120C_AMRAAM___Active_Radar_AAM,
)
AIM_120B_AMRAAM___Active_Radar_AAM = (
7,
Weapons.AIM_120B_AMRAAM___Active_Radar_AAM,
)
AIM_120C7___Active_Radar_AAM = (7, Weapons.AIM_120C7___Active_Radar_AAM)
AIM_120C8___Active_Radar_AAM = (7, Weapons.AIM_120C8___Active_Radar_AAM)
AIM_120D3___Active_Radar_AAM = (7, Weapons.AIM_120D3___Active_Radar_AAM)
AIM_260A___Active_Radar_AAM = (7, Weapons.AIM_260A___Active_Radar_AAM)
Mako_Multi_Mission_Hypersonic_Missile___Active_Radar_AAM = (
7,
Weapons.Mako_Multi_Mission_Hypersonic_Missile___Active_Radar_AAM,
)
class Pylon8:
IRST_Sensor_Pod = (8, F22AWeapons.IRST_Sensor_Pod)
AIM_120C_AMRAAM___Active_Radar_AAM = (
8,
Weapons.AIM_120C_AMRAAM___Active_Radar_AAM,
)
AIM_120B_AMRAAM___Active_Radar_AAM = (
8,
Weapons.AIM_120B_AMRAAM___Active_Radar_AAM,
)
AIM_120C7___Active_Radar_AAM = (8, Weapons.AIM_120C7___Active_Radar_AAM)
AIM_120C8___Active_Radar_AAM = (8, Weapons.AIM_120C8___Active_Radar_AAM)
AIM_120D3___Active_Radar_AAM = (8, Weapons.AIM_120D3___Active_Radar_AAM)
AIM_260A___Active_Radar_AAM = (8, Weapons.AIM_260A___Active_Radar_AAM)
Mako_Multi_Mission_Hypersonic_Missile___Active_Radar_AAM = (
8,
Weapons.Mako_Multi_Mission_Hypersonic_Missile___Active_Radar_AAM,
)
AIM_120C7___Active_Radar_AAM__IRST_POD_ = (
8,
Weapons.AIM_120C7___Active_Radar_AAM__IRST_POD_,
)
AIM_120C8___Active_Radar_AAM__IRST_POD_ = (
8,
Weapons.AIM_120C8___Active_Radar_AAM__IRST_POD_,
)
AIM_120D3___Active_Radar_AAM__IRST_POD_ = (
8,
Weapons.AIM_120D3___Active_Radar_AAM__IRST_POD_,
)
AIM_260A___Active_Radar_AAM__IRST_POD_ = (
8,
Weapons.AIM_260A___Active_Radar_AAM__IRST_POD_,
)
class Pylon9:
AIM_120C_AMRAAM___Active_Radar_AAM = (
9,
Weapons.AIM_120C_AMRAAM___Active_Radar_AAM,
)
AIM_120B_AMRAAM___Active_Radar_AAM = (
9,
Weapons.AIM_120B_AMRAAM___Active_Radar_AAM,
)
AIM_120C7___Active_Radar_AAM = (9, Weapons.AIM_120C7___Active_Radar_AAM)
AIM_120C8___Active_Radar_AAM = (9, Weapons.AIM_120C8___Active_Radar_AAM)
AIM_120D3___Active_Radar_AAM = (9, Weapons.AIM_120D3___Active_Radar_AAM)
AIM_260A___Active_Radar_AAM = (9, Weapons.AIM_260A___Active_Radar_AAM)
class Pylon10:
Fuel_tank_610_gal = (10, Weapons.Fuel_tank_610_gal)
LDTP_Fuel_tank_600_gal = (10, F22AWeapons.LDTP_Fuel_tank_600_gal)
AIM_9X_Sidewinder_IR_AAM = (10, Weapons.AIM_9X_Sidewinder_IR_AAM)
AIM_9M_Sidewinder_IR_AAM = (10, Weapons.AIM_9M_Sidewinder_IR_AAM)
AIM_120C_AMRAAM___Active_Radar_AAM = (
10,
Weapons.AIM_120C_AMRAAM___Active_Radar_AAM,
)
AIM_120B_AMRAAM___Active_Radar_AAM = (
10,
Weapons.AIM_120B_AMRAAM___Active_Radar_AAM,
)
AIM_120C7___Active_Radar_AAM = (10, Weapons.AIM_120C7___Active_Radar_AAM)
AIM_120C8___Active_Radar_AAM = (10, Weapons.AIM_120C8___Active_Radar_AAM)
AIM_120D3___Active_Radar_AAM = (10, Weapons.AIM_120D3___Active_Radar_AAM)
_2x_AIM9X_BLKII_Sidewinder_IR_AAM = (
10,
F22AWeapons._2x_AIM9X_BLKII_Sidewinder_IR_AAM,
)
_2x_AIM_120C7___Active_Radar_AAM = (
10,
F22AWeapons._2x_AIM_120C7___Active_Radar_AAM,
)
_2x_AIM_120C8___Active_Radar_AAM = (
10,
F22AWeapons._2x_AIM_120C8___Active_Radar_AAM,
)
_2x_AIM_120D3___Active_Radar_AAM = (
10,
F22AWeapons._2x_AIM_120D3___Active_Radar_AAM,
)
_2x_AIM_260A___Active_Radar_AAM = (
10,
F22AWeapons._2x_AIM_260A___Active_Radar_AAM,
)
class Pylon11:
AIM_9X_Sidewinder_IR_AAM = (11, Weapons.AIM_9X_Sidewinder_IR_AAM)
AIM_9M_Sidewinder_IR_AAM = (11, Weapons.AIM_9M_Sidewinder_IR_AAM)
AIM9X_BLKII_Sidewinder_IR_AAM = (11, F22AWeapons.AIM9X_BLKII_Sidewinder_IR_AAM)
pylons: Set[int] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11}
tasks = [
task.CAP,
task.Escort,
task.FighterSweep,
task.Intercept,
task.Reconnaissance,
]
task_default = task.CAP