mirror of
https://github.com/dcs-retribution/dcs-retribution.git
synced 2025-11-10 15:41:24 +00:00
384 lines
14 KiB
Python
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
|