M Chimiste c947ac0ef1
Support for VSN F-106 Delta Dart (#319)
* Add Delta Dart

* Added Banners and Icons

* Add loadouts

* Update f106.py

* Update f106.py

* Update VSN_F106A.yaml

* Update VSN_F106B.yaml

* Added the F-106 Delta Dart to factions. Also, replaced the banner with one by datoneslav, used with permission. Includes the official VSN logo (also used with permission). Also tweaked the backgrounds of the icons to blue to match the other aircraft.

* Added changelog entry.

* Add files via upload

---------

Co-authored-by: MetalStormGhost <ghosti@smytky.org>
2024-05-21 23:03:53 +02:00

305 lines
10 KiB
Python

from typing import 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 WeaponsF106:
Fuel_Tank = {"clsid": "{VSN_F106L_PTB}", "name": "Fuel Tank", "weight": 1187}
Fuel_Tank_ = {"clsid": "{VSN_F106R_PTB}", "name": "Fuel Tank", "weight": 1187}
AIM_4D_Rear_aspect_advanced_heat_seeking_air_to_air_missile_ = {
"clsid": "{Hughes AIM-4D}",
"name": "AIM-4D Rear aspect advanced heat-seeking air-to-air missile.",
"weight": 60.8,
}
AIM_4F_Semi_active_radar_homing_air_to_air_missile_ = {
"clsid": "{Hughes AIM-4F}",
"name": "AIM-4F Semi active radar-homing air-to-air missile.",
"weight": 66,
}
AIM_4G_Rear_aspect_heat_seeking_air_to_air_missile_ = {
"clsid": "{Hughes AIM-4G}",
"name": "AIM-4G Rear aspect heat seeking air-to-air missile.",
"weight": 66,
}
AIR_2A_Genie_Nuclear_air_to_air_unguided_rocket_ = {
"clsid": "{AIR-2A}",
"name": "AIR-2A Genie Nuclear air-to-air unguided rocket.",
"weight": 66,
}
L005_Sorbtsiya_ECM_pod__left_ = {
"clsid": "{44EE8698-89F9-48EE-AF36-5FD31896A82F}",
"name": "L005 Sorbtsiya ECM pod (left)",
"weight": 150,
}
L005_Sorbtsiya_ECM_pod__right_ = {
"clsid": "{44EE8698-89F9-48EE-AF36-5FD31896A82A}",
"name": "L005 Sorbtsiya ECM pod (right)",
"weight": 150,
}
inject_weapons(WeaponsF106)
@planemod
class VSN_F106A(PlaneType):
id = "VSN_F106A"
flyable = True
height = 6.18
width = 11.67
length = 21.56
fuel_max = 4464
max_speed = 2452.032
chaff = 90
flare = 45
charge_total = 180
chaff_charge_size = 1
flare_charge_size = 2
category = "Interceptor" # {78EFB7A2-FD52-4b57-A6A6-3BF0E1D6555F}
radio_frequency = 127.5
livery_name = "VSN_F106A" # from type
class Pylon1:
Smokewinder___red = (1, Weapons.Smokewinder___red)
Smokewinder___green = (1, Weapons.Smokewinder___green)
Smokewinder___blue = (1, Weapons.Smokewinder___blue)
Smokewinder___white = (1, Weapons.Smokewinder___white)
Smokewinder___yellow = (1, Weapons.Smokewinder___yellow)
Weapons.Fuel_Tank = (1, Weapons.Fuel_Tank)
# ERRR <CLEAN>
class Pylon2:
Weapons.AIM_4D_Rear_aspect_advanced_heat_seeking_air_to_air_missile_ = (
2,
Weapons.AIM_4D_Rear_aspect_advanced_heat_seeking_air_to_air_missile_,
)
Weapons.AIM_4F_Semi_active_radar_homing_air_to_air_missile_ = (
2,
Weapons.AIM_4F_Semi_active_radar_homing_air_to_air_missile_,
)
Weapons.AIM_4G_Rear_aspect_heat_seeking_air_to_air_missile_ = (
2,
Weapons.AIM_4G_Rear_aspect_heat_seeking_air_to_air_missile_,
)
class Pylon3:
Weapons.AIM_4D_Rear_aspect_advanced_heat_seeking_air_to_air_missile_ = (
3,
Weapons.AIM_4D_Rear_aspect_advanced_heat_seeking_air_to_air_missile_,
)
Weapons.AIM_4F_Semi_active_radar_homing_air_to_air_missile_ = (
3,
Weapons.AIM_4F_Semi_active_radar_homing_air_to_air_missile_,
)
Weapons.AIM_4G_Rear_aspect_heat_seeking_air_to_air_missile_ = (
3,
Weapons.AIM_4G_Rear_aspect_heat_seeking_air_to_air_missile_,
)
class Pylon4:
Weapons.AIR_2A_Genie_Nuclear_air_to_air_unguided_rocket_ = (
4,
Weapons.AIR_2A_Genie_Nuclear_air_to_air_unguided_rocket_,
)
# ERRR <CLEAN>
class Pylon5:
Weapons.AIM_4D_Rear_aspect_advanced_heat_seeking_air_to_air_missile_ = (
5,
Weapons.AIM_4D_Rear_aspect_advanced_heat_seeking_air_to_air_missile_,
)
Weapons.AIM_4F_Semi_active_radar_homing_air_to_air_missile_ = (
5,
Weapons.AIM_4F_Semi_active_radar_homing_air_to_air_missile_,
)
Weapons.AIM_4G_Rear_aspect_heat_seeking_air_to_air_missile_ = (
5,
Weapons.AIM_4G_Rear_aspect_heat_seeking_air_to_air_missile_,
)
class Pylon6:
Weapons.AIM_4D_Rear_aspect_advanced_heat_seeking_air_to_air_missile_ = (
6,
Weapons.AIM_4D_Rear_aspect_advanced_heat_seeking_air_to_air_missile_,
)
Weapons.AIM_4F_Semi_active_radar_homing_air_to_air_missile_ = (
6,
Weapons.AIM_4F_Semi_active_radar_homing_air_to_air_missile_,
)
Weapons.AIM_4G_Rear_aspect_heat_seeking_air_to_air_missile_ = (
6,
Weapons.AIM_4G_Rear_aspect_heat_seeking_air_to_air_missile_,
)
class Pylon7:
Smokewinder___red = (7, Weapons.Smokewinder___red)
Smokewinder___green = (7, Weapons.Smokewinder___green)
Smokewinder___blue = (7, Weapons.Smokewinder___blue)
Smokewinder___white = (7, Weapons.Smokewinder___white)
Smokewinder___yellow = (7, Weapons.Smokewinder___yellow)
Weapons.Fuel_Tank_ = (7, Weapons.Fuel_Tank_)
# ERRR <CLEAN>
class Pylon8:
WeaponsF106.L005_Sorbtsiya_ECM_pod__left_ = (
8,
Weapons.L005_Sorbtsiya_ECM_pod__left_,
)
class Pylon9:
Smoke_Generator___red_ = (9, Weapons.Smoke_Generator___red_)
Smoke_Generator___green_ = (9, Weapons.Smoke_Generator___green_)
Smoke_Generator___blue_ = (9, Weapons.Smoke_Generator___blue_)
Smoke_Generator___white_ = (9, Weapons.Smoke_Generator___white_)
Smoke_Generator___yellow_ = (9, Weapons.Smoke_Generator___yellow_)
Smoke_Generator___orange_ = (9, Weapons.Smoke_Generator___orange_)
pylons: Set[int] = {1, 2, 3, 4, 5, 6, 7, 8, 9}
tasks = [
task.CAP,
task.Escort,
task.FighterSweep,
task.Intercept,
task.Reconnaissance,
]
task_default = task.FighterSweep
@planemod
class VSN_F106B(PlaneType):
id = "VSN_F106B"
flyable = True
height = 6.18
width = 11.67
length = 21.56
fuel_max = 4464
max_speed = 2452.032
chaff = 90
flare = 45
charge_total = 180
chaff_charge_size = 1
flare_charge_size = 2
category = "Interceptor" # {78EFB7A2-FD52-4b57-A6A6-3BF0E1D6555F}
radio_frequency = 127.5
livery_name = "VSN_F106B" # from type
class Pylon1:
Smokewinder___red = (1, Weapons.Smokewinder___red)
Smokewinder___green = (1, Weapons.Smokewinder___green)
Smokewinder___blue = (1, Weapons.Smokewinder___blue)
Smokewinder___white = (1, Weapons.Smokewinder___white)
Smokewinder___yellow = (1, Weapons.Smokewinder___yellow)
Fuel_Tank = (1, Weapons.Fuel_Tank)
# ERRR <CLEAN>
class Pylon2:
Weapons.AIM_4D_Rear_aspect_advanced_heat_seeking_air_to_air_missile_ = (
2,
Weapons.AIM_4D_Rear_aspect_advanced_heat_seeking_air_to_air_missile_,
)
Weapons.AIM_4F_Semi_active_radar_homing_air_to_air_missile_ = (
2,
Weapons.AIM_4F_Semi_active_radar_homing_air_to_air_missile_,
)
Weapons.AIM_4G_Rear_aspect_heat_seeking_air_to_air_missile_ = (
2,
Weapons.AIM_4G_Rear_aspect_heat_seeking_air_to_air_missile_,
)
class Pylon3:
Weapons.AIM_4D_Rear_aspect_advanced_heat_seeking_air_to_air_missile_ = (
3,
Weapons.AIM_4D_Rear_aspect_advanced_heat_seeking_air_to_air_missile_,
)
Weapons.AIM_4F_Semi_active_radar_homing_air_to_air_missile_ = (
3,
Weapons.AIM_4F_Semi_active_radar_homing_air_to_air_missile_,
)
Weapons.AIM_4G_Rear_aspect_heat_seeking_air_to_air_missile_ = (
3,
Weapons.AIM_4G_Rear_aspect_heat_seeking_air_to_air_missile_,
)
class Pylon4:
Weapons.AIR_2A_Genie_Nuclear_air_to_air_unguided_rocket_ = (
4,
Weapons.AIR_2A_Genie_Nuclear_air_to_air_unguided_rocket_,
)
# ERRR <CLEAN>
class Pylon5:
Weapons.AIM_4D_Rear_aspect_advanced_heat_seeking_air_to_air_missile_ = (
5,
Weapons.AIM_4D_Rear_aspect_advanced_heat_seeking_air_to_air_missile_,
)
Weapons.AIM_4F_Semi_active_radar_homing_air_to_air_missile_ = (
5,
Weapons.AIM_4F_Semi_active_radar_homing_air_to_air_missile_,
)
Weapons.AIM_4G_Rear_aspect_heat_seeking_air_to_air_missile_ = (
5,
Weapons.AIM_4G_Rear_aspect_heat_seeking_air_to_air_missile_,
)
class Pylon6:
Weapons.AIM_4D_Rear_aspect_advanced_heat_seeking_air_to_air_missile_ = (
6,
Weapons.AIM_4D_Rear_aspect_advanced_heat_seeking_air_to_air_missile_,
)
Weapons.AIM_4F_Semi_active_radar_homing_air_to_air_missile_ = (
6,
Weapons.AIM_4F_Semi_active_radar_homing_air_to_air_missile_,
)
Weapons.AIM_4G_Rear_aspect_heat_seeking_air_to_air_missile_ = (
6,
Weapons.AIM_4G_Rear_aspect_heat_seeking_air_to_air_missile_,
)
class Pylon7:
Smokewinder___red = (7, Weapons.Smokewinder___red)
Smokewinder___green = (7, Weapons.Smokewinder___green)
Smokewinder___blue = (7, Weapons.Smokewinder___blue)
Smokewinder___white = (7, Weapons.Smokewinder___white)
Smokewinder___yellow = (7, Weapons.Smokewinder___yellow)
Fuel_Tank_ = (7, Weapons.Fuel_Tank_)
# ERRR <CLEAN>
class Pylon8:
Weapons.L005_Sorbtsiya_ECM_pod__left_ = (
8,
Weapons.L005_Sorbtsiya_ECM_pod__left_,
)
class Pylon9:
Smoke_Generator___red_ = (9, Weapons.Smoke_Generator___red_)
Smoke_Generator___green_ = (9, Weapons.Smoke_Generator___green_)
Smoke_Generator___blue_ = (9, Weapons.Smoke_Generator___blue_)
Smoke_Generator___white_ = (9, Weapons.Smoke_Generator___white_)
Smoke_Generator___yellow_ = (9, Weapons.Smoke_Generator___yellow_)
Smoke_Generator___orange_ = (9, Weapons.Smoke_Generator___orange_)
pylons: Set[int] = {1, 2, 3, 4, 5, 6, 7, 8, 9}
tasks = [
task.CAP,
task.Escort,
task.FighterSweep,
task.Intercept,
task.Reconnaissance,
]
task_default = task.FighterSweep