mirror of
https://github.com/dcs-retribution/dcs-retribution.git
synced 2025-11-10 15:41:24 +00:00
Add Tornado F3 ADV (1.0) mod support
This commit is contained in:
parent
23a7add2f1
commit
4412a0fa91
@ -7,6 +7,7 @@
|
||||
* **[Modding]** Update Grinelli Designs F-22A Mod to 2.0.0 (May 2025)
|
||||
* **[Campaign Design]** Added support for Germany Cold War terrain by Ugra Media
|
||||
* **[Options]** New option to control EPLRS-task injection in mission generator
|
||||
* **[Modding]** Add Tornado F3 ADV (v1.0, requires FC3 fix)
|
||||
|
||||
## Fixes
|
||||
* **[Flight Plans]** Fixed a bug when a package was created with only escort flights
|
||||
|
||||
@ -865,6 +865,9 @@ class Faction:
|
||||
# MiG-31BM
|
||||
if not mod_settings.mig31bm_foxhound:
|
||||
self.remove_aircraft("MiG-31BM")
|
||||
# Tornado f.3 ADV (1.0)
|
||||
if not mod_settings.tornado_adv:
|
||||
self.remove_aircraft("Tornado_ADV")
|
||||
|
||||
def remove_aircraft(self, name: str) -> None:
|
||||
for aircraft_set in [self.aircraft, self.awacs, self.tankers]:
|
||||
|
||||
@ -95,6 +95,7 @@ class ModSettings:
|
||||
su15_flagon: bool = False
|
||||
su30_flanker_h: bool = False
|
||||
su57_felon: bool = False
|
||||
tornado_adv: bool = False
|
||||
frenchpack: bool = False
|
||||
high_digit_sams: bool = False
|
||||
ov10a_bronco: bool = False
|
||||
|
||||
@ -41,6 +41,7 @@ from .chinesemilitaryassetspack import *
|
||||
from .russianmilitaryassetspack import *
|
||||
from .usamilitaryassetspack import *
|
||||
from .ukrainemilitaryassetspack import *
|
||||
from .tornado_adv import *
|
||||
|
||||
|
||||
def load_mods() -> None:
|
||||
|
||||
1
pydcs_extensions/tornado_adv/__init__.py
Normal file
1
pydcs_extensions/tornado_adv/__init__.py
Normal file
@ -0,0 +1 @@
|
||||
from .tornado_adv import *
|
||||
143
pydcs_extensions/tornado_adv/tornado_adv.py
Normal file
143
pydcs_extensions/tornado_adv/tornado_adv.py
Normal file
@ -0,0 +1,143 @@
|
||||
from typing import Dict, List, Set, Any
|
||||
|
||||
from dcs import task
|
||||
from dcs.planes import PlaneType
|
||||
from dcs.unitpropertydescription import UnitPropertyDescription
|
||||
from dcs.weapons_data import Weapons
|
||||
from dcs.unitpropertydescription import UnitPropertyDescription
|
||||
|
||||
|
||||
from game.modsupport import planemod
|
||||
from pydcs_extensions.weapon_injector import inject_weapons
|
||||
|
||||
|
||||
class WeaponsTORNADO_ADV:
|
||||
Skyflash__Semi_Active_Radar_AAM_ = {
|
||||
"clsid": "{Skflash1}",
|
||||
"name": "Skyflash (Semi-Active Radar AAM)",
|
||||
"weight": 194,
|
||||
}
|
||||
|
||||
|
||||
inject_weapons(WeaponsTORNADO_ADV)
|
||||
|
||||
|
||||
@planemod
|
||||
class Tornado_ADV(PlaneType):
|
||||
id = "Tornado_ADV"
|
||||
flyable = True
|
||||
height = 5.7
|
||||
width = 13.9
|
||||
length = 16.7
|
||||
fuel_max = 4660
|
||||
max_speed = 2649.996
|
||||
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 = "TORNADO_ADV" # from type
|
||||
|
||||
class Pylon1:
|
||||
AIM_9P_Sidewinder_IR_AAM = (1, Weapons.AIM_9P_Sidewinder_IR_AAM)
|
||||
AIM_9M_Sidewinder_IR_AAM = (1, Weapons.AIM_9M_Sidewinder_IR_AAM)
|
||||
# ERRR {JAS39_ASRAAM}
|
||||
AIM_9P5_Sidewinder_IR_AAM = (1, Weapons.AIM_9P5_Sidewinder_IR_AAM)
|
||||
AIM_9L_Sidewinder_IR_AAM = (1, Weapons.AIM_9L_Sidewinder_IR_AAM)
|
||||
|
||||
class Pylon2:
|
||||
Fuel_Tank_800_L__21_ = (2, Weapons.Fuel_Tank_800_L__21_)
|
||||
|
||||
class Pylon3:
|
||||
AIM_9P_Sidewinder_IR_AAM = (3, Weapons.AIM_9P_Sidewinder_IR_AAM)
|
||||
AIM_9M_Sidewinder_IR_AAM = (3, Weapons.AIM_9M_Sidewinder_IR_AAM)
|
||||
# ERRR {JAS39_ASRAAM}
|
||||
AIM_9P5_Sidewinder_IR_AAM = (3, Weapons.AIM_9P5_Sidewinder_IR_AAM)
|
||||
AIM_9L_Sidewinder_IR_AAM = (3, Weapons.AIM_9L_Sidewinder_IR_AAM)
|
||||
|
||||
class Pylon5:
|
||||
AIM_120B_AMRAAM___Active_Radar_AAM = (
|
||||
5,
|
||||
Weapons.AIM_120B_AMRAAM___Active_Radar_AAM,
|
||||
)
|
||||
AIM_120C_AMRAAM___Active_Radar_AAM = (
|
||||
5,
|
||||
Weapons.AIM_120C_AMRAAM___Active_Radar_AAM,
|
||||
)
|
||||
Skyflash__Semi_Active_Radar_AAM_ = (
|
||||
5,
|
||||
WeaponsTORNADO_ADV.Skyflash__Semi_Active_Radar_AAM_,
|
||||
)
|
||||
|
||||
class Pylon6:
|
||||
AIM_120B_AMRAAM___Active_Radar_AAM = (
|
||||
6,
|
||||
Weapons.AIM_120B_AMRAAM___Active_Radar_AAM,
|
||||
)
|
||||
AIM_120C_AMRAAM___Active_Radar_AAM = (
|
||||
6,
|
||||
Weapons.AIM_120C_AMRAAM___Active_Radar_AAM,
|
||||
)
|
||||
Skyflash__Semi_Active_Radar_AAM_ = (
|
||||
6,
|
||||
WeaponsTORNADO_ADV.Skyflash__Semi_Active_Radar_AAM_,
|
||||
)
|
||||
|
||||
class Pylon7:
|
||||
AIM_120B_AMRAAM___Active_Radar_AAM = (
|
||||
7,
|
||||
Weapons.AIM_120B_AMRAAM___Active_Radar_AAM,
|
||||
)
|
||||
AIM_120C_AMRAAM___Active_Radar_AAM = (
|
||||
7,
|
||||
Weapons.AIM_120C_AMRAAM___Active_Radar_AAM,
|
||||
)
|
||||
Skyflash__Semi_Active_Radar_AAM_ = (
|
||||
7,
|
||||
WeaponsTORNADO_ADV.Skyflash__Semi_Active_Radar_AAM_,
|
||||
)
|
||||
|
||||
class Pylon8:
|
||||
AIM_120B_AMRAAM___Active_Radar_AAM = (
|
||||
8,
|
||||
Weapons.AIM_120B_AMRAAM___Active_Radar_AAM,
|
||||
)
|
||||
AIM_120C_AMRAAM___Active_Radar_AAM = (
|
||||
8,
|
||||
Weapons.AIM_120C_AMRAAM___Active_Radar_AAM,
|
||||
)
|
||||
Skyflash__Semi_Active_Radar_AAM_ = (
|
||||
8,
|
||||
WeaponsTORNADO_ADV.Skyflash__Semi_Active_Radar_AAM_,
|
||||
)
|
||||
|
||||
class Pylon10:
|
||||
AIM_9P_Sidewinder_IR_AAM = (10, Weapons.AIM_9P_Sidewinder_IR_AAM)
|
||||
AIM_9M_Sidewinder_IR_AAM = (10, Weapons.AIM_9M_Sidewinder_IR_AAM)
|
||||
# ERRR {JAS39_ASRAAM}
|
||||
AIM_9P5_Sidewinder_IR_AAM = (10, Weapons.AIM_9P5_Sidewinder_IR_AAM)
|
||||
AIM_9L_Sidewinder_IR_AAM = (10, Weapons.AIM_9L_Sidewinder_IR_AAM)
|
||||
|
||||
class Pylon11:
|
||||
Fuel_Tank_800_L__21_ = (11, Weapons.Fuel_Tank_800_L__21_)
|
||||
|
||||
class Pylon12:
|
||||
AIM_9P_Sidewinder_IR_AAM = (12, Weapons.AIM_9P_Sidewinder_IR_AAM)
|
||||
AIM_9M_Sidewinder_IR_AAM = (12, Weapons.AIM_9M_Sidewinder_IR_AAM)
|
||||
# ERRR {JAS39_ASRAAM}
|
||||
AIM_9P5_Sidewinder_IR_AAM = (12, Weapons.AIM_9P5_Sidewinder_IR_AAM)
|
||||
AIM_9L_Sidewinder_IR_AAM = (12, Weapons.AIM_9L_Sidewinder_IR_AAM)
|
||||
|
||||
pylons: Set[int] = {1, 2, 3, 5, 6, 7, 8, 10, 11, 12}
|
||||
|
||||
tasks = [
|
||||
task.CAP,
|
||||
task.Escort,
|
||||
task.FighterSweep,
|
||||
task.Intercept,
|
||||
task.Reconnaissance,
|
||||
]
|
||||
task_default = task.CAP
|
||||
@ -131,6 +131,7 @@ class NewGameWizard(QtWidgets.QWizard):
|
||||
usamilitaryassetspack=self.field("usamilitaryassetspack"),
|
||||
ukrainemilitaryassetspack=self.field("ukrainemilitaryassetspack"),
|
||||
mig31bm_foxhound=self.field("mig31bm_foxhound"),
|
||||
tornado_adv=self.field("tornado_adv"),
|
||||
)
|
||||
|
||||
blue_faction = self.faction_selection_page.selected_blue_faction
|
||||
|
||||
@ -174,6 +174,8 @@ class GeneratorOptions(QtWidgets.QWizardPage):
|
||||
self.registerField("ukrainemilitaryassetspack", self.ukrainemilitaryassetspack)
|
||||
self.mig31bm_foxhound = QtWidgets.QCheckBox()
|
||||
self.registerField("mig31bm_foxhound", self.mig31bm_foxhound)
|
||||
self.tornado_adv = QtWidgets.QCheckBox()
|
||||
self.registerField("tornado_adv", self.tornado_adv)
|
||||
|
||||
modHelpText = QtWidgets.QLabel(
|
||||
"<p>Select the mods you have installed. If your chosen factions support them, you'll be able to use these mods in your campaign.</p>"
|
||||
@ -240,6 +242,7 @@ class GeneratorOptions(QtWidgets.QWizardPage):
|
||||
("Su-30 Flanker-H (V2.7.73b)", self.su30_flanker_h),
|
||||
("Su-57 Felon (build-04)", self.su57_felon),
|
||||
("Super Étendard (v2.5.5)", self.super_etendard),
|
||||
("Tornado F3 ADV (1.0)", self.tornado_adv),
|
||||
("UH-60L Black Hawk (v1.3.1)", self.uh_60l),
|
||||
("Vietnam War Vessels (v0.9.0 by TeTeT)", self.vietnamwarvessels),
|
||||
]
|
||||
@ -323,3 +326,4 @@ class GeneratorOptions(QtWidgets.QWizardPage):
|
||||
self.ukrainemilitaryassetspack.setChecked(
|
||||
s.get("ukrainemilitaryassetspack", False)
|
||||
)
|
||||
self.tornado_adv.setChecked(s.get("tornado_adv", False))
|
||||
|
||||
107
resources/customized_payloads/Tornado_ADV.lua
Normal file
107
resources/customized_payloads/Tornado_ADV.lua
Normal file
@ -0,0 +1,107 @@
|
||||
local unitPayloads = {
|
||||
["name"] = "Tornado_ADV",
|
||||
["payloads"] = {
|
||||
[1] = {
|
||||
["name"] = "Retribution Escort",
|
||||
["pylons"] = {
|
||||
[1] = {
|
||||
["CLSID"] = "{AIM-9P5}",
|
||||
["num"] = 1,
|
||||
},
|
||||
[2] = {
|
||||
["CLSID"] = "{PTB_800_MIG21}",
|
||||
["num"] = 2,
|
||||
},
|
||||
[3] = {
|
||||
["CLSID"] = "{AIM-9P5}",
|
||||
["num"] = 3,
|
||||
},
|
||||
[4] = {
|
||||
["CLSID"] = "{40EF17B7-F508-45de-8566-6FFECC0C1AB8}",
|
||||
["num"] = 5,
|
||||
},
|
||||
[5] = {
|
||||
["CLSID"] = "{40EF17B7-F508-45de-8566-6FFECC0C1AB8}",
|
||||
["num"] = 6,
|
||||
},
|
||||
[6] = {
|
||||
["CLSID"] = "{40EF17B7-F508-45de-8566-6FFECC0C1AB8}",
|
||||
["num"] = 7,
|
||||
},
|
||||
[7] = {
|
||||
["CLSID"] = "{40EF17B7-F508-45de-8566-6FFECC0C1AB8}",
|
||||
["num"] = 8,
|
||||
},
|
||||
[8] = {
|
||||
["CLSID"] = "{AIM-9P5}",
|
||||
["num"] = 10,
|
||||
},
|
||||
[9] = {
|
||||
["CLSID"] = "{PTB_800_MIG21}",
|
||||
["num"] = 11,
|
||||
},
|
||||
[10] = {
|
||||
["CLSID"] = "{AIM-9P5}",
|
||||
["num"] = 12,
|
||||
},
|
||||
},
|
||||
["tasks"] = {
|
||||
[1] = 18,
|
||||
[2] = 11,
|
||||
[3] = 10,
|
||||
},
|
||||
},
|
||||
[2] = {
|
||||
["name"] = "Retribution BARCAP",
|
||||
["pylons"] = {
|
||||
[1] = {
|
||||
["CLSID"] = "{AIM-9P5}",
|
||||
["num"] = 1,
|
||||
},
|
||||
[2] = {
|
||||
["CLSID"] = "{PTB_800_MIG21}",
|
||||
["num"] = 2,
|
||||
},
|
||||
[3] = {
|
||||
["CLSID"] = "{AIM-9P5}",
|
||||
["num"] = 3,
|
||||
},
|
||||
[4] = {
|
||||
["CLSID"] = "{40EF17B7-F508-45de-8566-6FFECC0C1AB8}",
|
||||
["num"] = 5,
|
||||
},
|
||||
[5] = {
|
||||
["CLSID"] = "{40EF17B7-F508-45de-8566-6FFECC0C1AB8}",
|
||||
["num"] = 6,
|
||||
},
|
||||
[6] = {
|
||||
["CLSID"] = "{40EF17B7-F508-45de-8566-6FFECC0C1AB8}",
|
||||
["num"] = 7,
|
||||
},
|
||||
[7] = {
|
||||
["CLSID"] = "{40EF17B7-F508-45de-8566-6FFECC0C1AB8}",
|
||||
["num"] = 8,
|
||||
},
|
||||
[8] = {
|
||||
["CLSID"] = "{AIM-9P5}",
|
||||
["num"] = 10,
|
||||
},
|
||||
[9] = {
|
||||
["CLSID"] = "{PTB_800_MIG21}",
|
||||
["num"] = 11,
|
||||
},
|
||||
[10] = {
|
||||
["CLSID"] = "{AIM-9P5}",
|
||||
["num"] = 12,
|
||||
},
|
||||
},
|
||||
["tasks"] = {
|
||||
[1] = 18,
|
||||
[2] = 11,
|
||||
[3] = 10,
|
||||
},
|
||||
},
|
||||
},
|
||||
["unitType"] = "Tornado_ADV",
|
||||
}
|
||||
return unitPayloads
|
||||
BIN
resources/ui/units/aircrafts/banners/Tornado_ADV.jpg
Normal file
BIN
resources/ui/units/aircrafts/banners/Tornado_ADV.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 42 KiB |
BIN
resources/ui/units/aircrafts/icons/Tornado_ADV_24.jpg
Normal file
BIN
resources/ui/units/aircrafts/icons/Tornado_ADV_24.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.4 KiB |
40
resources/units/aircraft/Tornado_ADV.yaml
Normal file
40
resources/units/aircraft/Tornado_ADV.yaml
Normal file
@ -0,0 +1,40 @@
|
||||
description:
|
||||
"The Tornado ADV (Air Defence Variant) is an advanced interceptor aircraft developed by British
|
||||
Aerospace, now part of BAE Systems. This aircraft was designed primarily for air defense and is
|
||||
equipped with sophisticated radar and missile systems to detect and engage enemy aircraft at
|
||||
long ranges. The Tornado ADV is equipped with the AI.24 Foxhunter radar, which provides long-range
|
||||
detection and tracking capabilities. It can carry a variety of air-to-air missiles,
|
||||
including the AMRAAM (Advanced Medium-Range Air-to-Air Missile) and the Skyflash missile. The
|
||||
aircraft is capable of high-speed intercepts and has excellent maneuverability, making it
|
||||
effective in air-to-air combat."
|
||||
introduced: 1985
|
||||
manufacturer: Panavia
|
||||
origin: UK/Italy/West Germany
|
||||
price: 17
|
||||
role: Interceptor
|
||||
max_range: 350
|
||||
fuel:
|
||||
# Parking 44 to RWY 06L at Anderson AFB.
|
||||
taxi: 200
|
||||
# AB takeoff to 350/0.75, reduce to MIL and maintain 350/0.75 to 25k ft.
|
||||
climb_ppm: 28.33
|
||||
# 0.85 mach for 100NM.
|
||||
cruise_ppm: 12
|
||||
# MIL for 100NM. Occasional AB use.
|
||||
combat_ppm: 26
|
||||
min_safe: 1000
|
||||
variants:
|
||||
Tornado F3 ADV: {}
|
||||
#radios:
|
||||
# intra_flight: AN/ARC-222
|
||||
# inter_flight: AN/ARC-164
|
||||
# channels:
|
||||
# type: common
|
||||
# namer: viper
|
||||
# # COM2 is the AN/ARC-222, which is the VHF radio we want to use for
|
||||
# # intra-flight communication to leave COM1 open for UHF inter-flight.
|
||||
# intra_flight_radio_index: 2
|
||||
# inter_flight_radio_index: 1
|
||||
tasks:
|
||||
BARCAP: 500
|
||||
Escort: 500
|
||||
Loading…
x
Reference in New Issue
Block a user