mirror of
https://github.com/dcs-retribution/dcs-retribution.git
synced 2025-11-10 15:41:24 +00:00
Sk 60 mod support (#360)
This commit is contained in:
parent
eb5062579f
commit
eb5cceff16
@ -22,6 +22,7 @@
|
||||
* **[UI/UX]** Allow changing conditions such as Time, Date & Weather
|
||||
* **[Modding]** Added support for Su-15 Flagon mod (v1.0)
|
||||
* **[Plugins]** Support for Carsten's Arty Spotter script
|
||||
* **[Modding]** Added support for SK-60 mod (v1.2.1)
|
||||
|
||||
## Fixes
|
||||
* **[UI/UX]** A-10A flights can be edited again
|
||||
|
||||
@ -410,6 +410,8 @@ class Faction:
|
||||
self.remove_aircraft("JAS39Gripen_AG")
|
||||
if not mod_settings.super_etendard:
|
||||
self.remove_aircraft("VSN_SEM")
|
||||
if not mod_settings.sk_60:
|
||||
self.remove_aircraft("SK-60")
|
||||
if not mod_settings.su15_flagon:
|
||||
self.remove_aircraft("Su_15")
|
||||
self.remove_aircraft("Su_15TM")
|
||||
|
||||
@ -86,6 +86,7 @@ class ModSettings:
|
||||
irondome: bool = False
|
||||
uh_60l: bool = False
|
||||
jas39_gripen: bool = False
|
||||
sk_60: bool = False
|
||||
super_etendard: bool = False
|
||||
su15_flagon: bool = False
|
||||
su30_flanker_h: bool = False
|
||||
|
||||
@ -24,6 +24,7 @@ from .jas39 import *
|
||||
from .ov10a import *
|
||||
from .spanishnavypack import *
|
||||
from .super_etendard import *
|
||||
from .sk60 import *
|
||||
from .su15 import *
|
||||
from .su30 import *
|
||||
from .su57 import *
|
||||
|
||||
1
pydcs_extensions/sk60/__init__.py
Normal file
1
pydcs_extensions/sk60/__init__.py
Normal file
@ -0,0 +1 @@
|
||||
from .sk60 import *
|
||||
101
pydcs_extensions/sk60/sk60.py
Normal file
101
pydcs_extensions/sk60/sk60.py
Normal file
@ -0,0 +1,101 @@
|
||||
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 WeaponsSK_60:
|
||||
_1x_13_5cm_HE_rocket = {
|
||||
"clsid": "{d694b359-e7a8-4909-88d4-7100b77afd13}",
|
||||
"name": "1x 13,5cm HE rocket",
|
||||
"weight": 50,
|
||||
}
|
||||
_1x_14_5cm_HEAT_rocket = {
|
||||
"clsid": "{d694b359-e7a8-4909-88d4-7100b77afd12}",
|
||||
"name": "1x 14,5cm HEAT rocket",
|
||||
"weight": 50,
|
||||
}
|
||||
_2x_13_5cm_HE_rocket = {
|
||||
"clsid": "{d694b359-e7a8-4909-88d4-7100b77afd11}",
|
||||
"name": "2x 13,5cm HE rocket",
|
||||
"weight": 95,
|
||||
}
|
||||
AKAN_m_55_Gunpod = {
|
||||
"clsid": "{5d5aa063-a002-4de8-8a89-6eda1e80ee7b}",
|
||||
"name": "AKAN m/55 Gunpod",
|
||||
"weight": 196,
|
||||
}
|
||||
|
||||
|
||||
inject_weapons(WeaponsSK_60)
|
||||
|
||||
|
||||
@planemod
|
||||
class SK_60(PlaneType):
|
||||
id = "SK-60"
|
||||
flyable = True
|
||||
height = 2.7
|
||||
width = 9.5
|
||||
length = 10.8
|
||||
fuel_max = 1640
|
||||
max_speed = 879.9984
|
||||
chaff = 0
|
||||
flare = 0
|
||||
charge_total = 0
|
||||
chaff_charge_size = 0
|
||||
flare_charge_size = 0
|
||||
eplrs = True
|
||||
category = "Interceptor" # {78EFB7A2-FD52-4b57-A6A6-3BF0E1D6555F}
|
||||
radio_frequency = 243
|
||||
|
||||
livery_name = "SK-60" # from type
|
||||
|
||||
class Pylon1:
|
||||
_2x_13_5cm_HE_rocket = (1, Weapons._2x_13_5cm_HE_rocket)
|
||||
_1x_14_5cm_HEAT_rocket = (1, Weapons._1x_14_5cm_HEAT_rocket)
|
||||
_1x_13_5cm_HE_rocket = (1, Weapons._1x_13_5cm_HE_rocket)
|
||||
|
||||
class Pylon2:
|
||||
AKAN_m_55_Gunpod = (2, Weapons.AKAN_m_55_Gunpod)
|
||||
_2x_13_5cm_HE_rocket = (2, Weapons._2x_13_5cm_HE_rocket)
|
||||
_1x_14_5cm_HEAT_rocket = (2, Weapons._1x_14_5cm_HEAT_rocket)
|
||||
_1x_13_5cm_HE_rocket = (2, Weapons._1x_13_5cm_HE_rocket)
|
||||
|
||||
class Pylon3:
|
||||
_2x_13_5cm_HE_rocket = (3, Weapons._2x_13_5cm_HE_rocket)
|
||||
_1x_14_5cm_HEAT_rocket = (3, Weapons._1x_14_5cm_HEAT_rocket)
|
||||
_1x_13_5cm_HE_rocket = (3, Weapons._1x_13_5cm_HE_rocket)
|
||||
|
||||
class Pylon4:
|
||||
_2x_13_5cm_HE_rocket = (4, Weapons._2x_13_5cm_HE_rocket)
|
||||
_1x_14_5cm_HEAT_rocket = (4, Weapons._1x_14_5cm_HEAT_rocket)
|
||||
_1x_13_5cm_HE_rocket = (4, Weapons._1x_13_5cm_HE_rocket)
|
||||
|
||||
class Pylon5:
|
||||
AKAN_m_55_Gunpod = (5, Weapons.AKAN_m_55_Gunpod)
|
||||
_2x_13_5cm_HE_rocket = (5, Weapons._2x_13_5cm_HE_rocket)
|
||||
_1x_14_5cm_HEAT_rocket = (5, Weapons._1x_14_5cm_HEAT_rocket)
|
||||
_1x_13_5cm_HE_rocket = (5, Weapons._1x_13_5cm_HE_rocket)
|
||||
|
||||
class Pylon6:
|
||||
_2x_13_5cm_HE_rocket = (6, Weapons._2x_13_5cm_HE_rocket)
|
||||
_1x_14_5cm_HEAT_rocket = (6, Weapons._1x_14_5cm_HEAT_rocket)
|
||||
_1x_13_5cm_HE_rocket = (6, Weapons._1x_13_5cm_HE_rocket)
|
||||
|
||||
pylons: Set[int] = {1, 2, 3, 4, 5, 6, 7, 8}
|
||||
|
||||
tasks = [
|
||||
task.GroundAttack,
|
||||
task.PinpointStrike,
|
||||
task.CAS,
|
||||
task.AFAC,
|
||||
task.RunwayAttack,
|
||||
task.SEAD,
|
||||
task.Escort,
|
||||
task.Reconnaissance,
|
||||
]
|
||||
task_default = task.GroundAttack
|
||||
@ -336,6 +336,7 @@ def create_game(
|
||||
f105_thunderchief=False,
|
||||
hercules=False,
|
||||
jas39_gripen=False,
|
||||
sk60_saab105=False,
|
||||
su15_flagon=False,
|
||||
su30_flanker_h=False,
|
||||
su57_felon=False,
|
||||
|
||||
@ -110,6 +110,7 @@ class NewGameWizard(QtWidgets.QWizard):
|
||||
uh_60l=self.field("uh_60l"),
|
||||
jas39_gripen=self.field("jas39_gripen"),
|
||||
super_etendard=self.field("super_etendard"),
|
||||
sk_60=self.field("sk_60"),
|
||||
su15_flagon=self.field("su15_flagon"),
|
||||
su30_flanker_h=self.field("su30_flanker_h"),
|
||||
su57_felon=self.field("su57_felon"),
|
||||
|
||||
@ -130,6 +130,8 @@ class GeneratorOptions(QtWidgets.QWizardPage):
|
||||
self.registerField("jas39_gripen", self.jas39_gripen)
|
||||
self.super_etendard = QtWidgets.QCheckBox()
|
||||
self.registerField("super_etendard", self.super_etendard)
|
||||
self.sk_60 = QtWidgets.QCheckBox()
|
||||
self.registerField("sk_60", self.sk_60)
|
||||
self.su15_flagon = QtWidgets.QCheckBox()
|
||||
self.registerField("su15_flagon", self.su15_flagon)
|
||||
self.su30_flanker_h = QtWidgets.QCheckBox()
|
||||
@ -185,6 +187,7 @@ class GeneratorOptions(QtWidgets.QWizardPage):
|
||||
("OV-10A Bronco", self.ov10a_bronco),
|
||||
("Spanish Naval Assets pack (desdemicabina 3.2.0)", self.spanishnavypack),
|
||||
("Star Wars Modpack 2.54+", self.SWPack),
|
||||
("Saab 105/SK-60B (v1.2.1)", self.sk_60),
|
||||
("Su-15 Flagon (v1.0)", self.su15_flagon),
|
||||
("Su-30 Flanker-H (V2.7.73b)", self.su30_flanker_h),
|
||||
("Su-57 Felon (build-04)", self.su57_felon),
|
||||
@ -246,6 +249,7 @@ class GeneratorOptions(QtWidgets.QWizardPage):
|
||||
self.f105_thunderchief.setChecked(s.get("f105_thunderchief", False))
|
||||
self.f106_deltadart.setChecked(s.get("f106_deltadart", False))
|
||||
self.jas39_gripen.setChecked(s.get("jas39_gripen", False))
|
||||
self.sk_60.setChecked(s.get("sk_60", False))
|
||||
self.super_etendard.setChecked(s.get("super_etendard", False))
|
||||
self.su30_flanker_h.setChecked(s.get("su30_flanker_h", False))
|
||||
self.su57_felon.setChecked(s.get("su57_felon", False))
|
||||
|
||||
192
resources/customized_payloads/SK-60.lua
Normal file
192
resources/customized_payloads/SK-60.lua
Normal file
@ -0,0 +1,192 @@
|
||||
local unitPayloads = {
|
||||
["name"] = "SK-60",
|
||||
["payloads"] = {
|
||||
[1] = {
|
||||
["name"] = "Retribution DEAD",
|
||||
["pylons"] = {
|
||||
[1] = {
|
||||
["CLSID"] = "{d694b359-e7a8-4909-88d4-7100b77afd12}",
|
||||
["num"] = 1,
|
||||
},
|
||||
[2] = {
|
||||
["CLSID"] = "{d694b359-e7a8-4909-88d4-7100b77afd12}",
|
||||
["num"] = 2,
|
||||
},
|
||||
[3] = {
|
||||
["CLSID"] = "{d694b359-e7a8-4909-88d4-7100b77afd12}",
|
||||
["num"] = 3,
|
||||
},
|
||||
[4] = {
|
||||
["CLSID"] = "{d694b359-e7a8-4909-88d4-7100b77afd12}",
|
||||
["num"] = 4,
|
||||
},
|
||||
[5] = {
|
||||
["CLSID"] = "{d694b359-e7a8-4909-88d4-7100b77afd12}",
|
||||
["num"] = 5,
|
||||
},
|
||||
[6] = {
|
||||
["CLSID"] = "{d694b359-e7a8-4909-88d4-7100b77afd12}",
|
||||
["num"] = 6,
|
||||
},
|
||||
},
|
||||
["tasks"] = {
|
||||
[1] = 15,
|
||||
},
|
||||
},
|
||||
[2] = {
|
||||
["name"] = "Retribution OCA/Aircraft",
|
||||
["pylons"] = {
|
||||
[1] = {
|
||||
["CLSID"] = "{d694b359-e7a8-4909-88d4-7100b77afd11}",
|
||||
["num"] = 1,
|
||||
},
|
||||
[2] = {
|
||||
["CLSID"] = "{d694b359-e7a8-4909-88d4-7100b77afd11}",
|
||||
["num"] = 2,
|
||||
},
|
||||
[3] = {
|
||||
["CLSID"] = "{d694b359-e7a8-4909-88d4-7100b77afd11}",
|
||||
["num"] = 3,
|
||||
},
|
||||
[4] = {
|
||||
["CLSID"] = "{d694b359-e7a8-4909-88d4-7100b77afd11}",
|
||||
["num"] = 4,
|
||||
},
|
||||
[5] = {
|
||||
["CLSID"] = "{d694b359-e7a8-4909-88d4-7100b77afd11}",
|
||||
["num"] = 5,
|
||||
},
|
||||
[6] = {
|
||||
["CLSID"] = "{d694b359-e7a8-4909-88d4-7100b77afd11}",
|
||||
["num"] = 6,
|
||||
},
|
||||
},
|
||||
["tasks"] = {
|
||||
[1] = 15,
|
||||
},
|
||||
},
|
||||
[3] = {
|
||||
["displayName"] = "Retribution Strike",
|
||||
["name"] = "Retribution Strike",
|
||||
["pylons"] = {
|
||||
[1] = {
|
||||
["CLSID"] = "{d694b359-e7a8-4909-88d4-7100b77afd12}",
|
||||
["num"] = 1,
|
||||
},
|
||||
[2] = {
|
||||
["CLSID"] = "{d694b359-e7a8-4909-88d4-7100b77afd12}",
|
||||
["num"] = 2,
|
||||
},
|
||||
[3] = {
|
||||
["CLSID"] = "{d694b359-e7a8-4909-88d4-7100b77afd12}",
|
||||
["num"] = 3,
|
||||
},
|
||||
[4] = {
|
||||
["CLSID"] = "{d694b359-e7a8-4909-88d4-7100b77afd12}",
|
||||
["num"] = 4,
|
||||
},
|
||||
[5] = {
|
||||
["CLSID"] = "{d694b359-e7a8-4909-88d4-7100b77afd12}",
|
||||
["num"] = 5,
|
||||
},
|
||||
[6] = {
|
||||
["CLSID"] = "{d694b359-e7a8-4909-88d4-7100b77afd12}",
|
||||
["num"] = 6,
|
||||
},
|
||||
},
|
||||
["tasks"] = {
|
||||
[1] = 15,
|
||||
},
|
||||
},
|
||||
[4] = {
|
||||
["displayName"] = "Retribution CAS",
|
||||
["name"] = "Retribution CAS",
|
||||
["pylons"] = {
|
||||
[1] = {
|
||||
["CLSID"] = "{d694b359-e7a8-4909-88d4-7100b77afd12}",
|
||||
["num"] = 1,
|
||||
},
|
||||
[2] = {
|
||||
["CLSID"] = "{d694b359-e7a8-4909-88d4-7100b77afd12}",
|
||||
["num"] = 2,
|
||||
},
|
||||
[3] = {
|
||||
["CLSID"] = "{d694b359-e7a8-4909-88d4-7100b77afd12}",
|
||||
["num"] = 3,
|
||||
},
|
||||
[4] = {
|
||||
["CLSID"] = "{d694b359-e7a8-4909-88d4-7100b77afd12}",
|
||||
["num"] = 4,
|
||||
},
|
||||
[5] = {
|
||||
["CLSID"] = "{d694b359-e7a8-4909-88d4-7100b77afd12}",
|
||||
["num"] = 5,
|
||||
},
|
||||
[6] = {
|
||||
["CLSID"] = "{d694b359-e7a8-4909-88d4-7100b77afd12}",
|
||||
["num"] = 6,
|
||||
},
|
||||
},
|
||||
["tasks"] = {
|
||||
[1] = 15,
|
||||
},
|
||||
},
|
||||
[5] = {
|
||||
["name"] = "Retribution BAI",
|
||||
["pylons"] = {
|
||||
[1] = {
|
||||
["CLSID"] = "{d694b359-e7a8-4909-88d4-7100b77afd11}",
|
||||
["num"] = 3,
|
||||
},
|
||||
[2] = {
|
||||
["CLSID"] = "{5d5aa063-a002-4de8-8a89-6eda1e80ee7b}",
|
||||
["num"] = 2,
|
||||
},
|
||||
[3] = {
|
||||
["CLSID"] = "{5d5aa063-a002-4de8-8a89-6eda1e80ee7b}",
|
||||
["num"] = 5,
|
||||
},
|
||||
},
|
||||
["tasks"] = {
|
||||
[1] = 15,
|
||||
},
|
||||
},
|
||||
[6] = {
|
||||
["displayName"] = "Retribution OCA/Runway",
|
||||
["name"] = "Retribution OCA/Runway",
|
||||
["pylons"] = {
|
||||
[1] = {
|
||||
["CLSID"] = "{d694b359-e7a8-4909-88d4-7100b77afd12}",
|
||||
["num"] = 1,
|
||||
},
|
||||
[2] = {
|
||||
["CLSID"] = "{d694b359-e7a8-4909-88d4-7100b77afd12}",
|
||||
["num"] = 2,
|
||||
},
|
||||
[3] = {
|
||||
["CLSID"] = "{d694b359-e7a8-4909-88d4-7100b77afd12}",
|
||||
["num"] = 3,
|
||||
},
|
||||
[4] = {
|
||||
["CLSID"] = "{d694b359-e7a8-4909-88d4-7100b77afd12}",
|
||||
["num"] = 4,
|
||||
},
|
||||
[5] = {
|
||||
["CLSID"] = "{d694b359-e7a8-4909-88d4-7100b77afd12}",
|
||||
["num"] = 5,
|
||||
},
|
||||
[6] = {
|
||||
["CLSID"] = "{d694b359-e7a8-4909-88d4-7100b77afd12}",
|
||||
["num"] = 6,
|
||||
},
|
||||
},
|
||||
["tasks"] = {
|
||||
[1] = 15,
|
||||
},
|
||||
},
|
||||
},
|
||||
["tasks"] = {
|
||||
},
|
||||
["unitType"] = "SK-60",
|
||||
}
|
||||
return unitPayloads
|
||||
51
resources/factions/sweden_1980.json
Normal file
51
resources/factions/sweden_1980.json
Normal file
@ -0,0 +1,51 @@
|
||||
{
|
||||
"country": "Sweden",
|
||||
"name": "Sweden 1980",
|
||||
"authors": "Turbolious",
|
||||
"description": "<p>Sweden in the 80s.</p><p>Note : Limited A2A capabilities.</p>",
|
||||
"locales": [
|
||||
"sv_SE"
|
||||
],
|
||||
"aircrafts": [
|
||||
"AJS-37 Viggen",
|
||||
"SK-60",
|
||||
"UH-1H Iroquois"
|
||||
],
|
||||
"awacs": [
|
||||
"E-3A"
|
||||
],
|
||||
"tankers": [
|
||||
"KC-130",
|
||||
"KC-135 Stratotanker"
|
||||
],
|
||||
"frontline_units": [
|
||||
"FV510 Warrior",
|
||||
"Leopard 2A4",
|
||||
"M1097 Heavy HMMWV Avenger",
|
||||
"M1126 Stryker ICV (M2 HMG)",
|
||||
"M48 Chaparral"
|
||||
],
|
||||
"artillery_units": [],
|
||||
"logistics_units": [
|
||||
"Truck M818 6x6"
|
||||
],
|
||||
"infantry_units": [
|
||||
"Infantry M249",
|
||||
"Infantry M4",
|
||||
"MANPADS Stinger"
|
||||
],
|
||||
"preset_groups": [
|
||||
"Hawk"
|
||||
],
|
||||
"naval_units": [
|
||||
"FFG Oliver Hazard Perry"
|
||||
],
|
||||
"missiles": [],
|
||||
"air_defense_units": [
|
||||
"SAM Hawk SR (AN/MPQ-50)",
|
||||
"M1097 Heavy HMMWV Avenger",
|
||||
"M48 Chaparral"
|
||||
],
|
||||
"has_jtac": true,
|
||||
"jtac_unit": "SK-60"
|
||||
}
|
||||
BIN
resources/ui/units/aircrafts/banners/SK-60.jpg
Normal file
BIN
resources/ui/units/aircrafts/banners/SK-60.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 90 KiB |
BIN
resources/ui/units/aircrafts/icons/SK-60_24.jpg
Normal file
BIN
resources/ui/units/aircrafts/icons/SK-60_24.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 5.5 KiB |
24
resources/units/aircraft/SK-60.yaml
Normal file
24
resources/units/aircraft/SK-60.yaml
Normal file
@ -0,0 +1,24 @@
|
||||
carrier_capable: false
|
||||
description:
|
||||
The Saab 105 is a Swedish high-wing, twinjet trainer aircraft developed in the early 1960s
|
||||
as a private venture by Saab AB.[2] The Swedish Air Force, which had opted to procure the type
|
||||
for various roles, issued the aircraft with the designation Sk 60. The Sk 60 entered service in 1967,
|
||||
replacing the ageing De Havilland Vampire fleet.
|
||||
SK-60B is a two-seat attack version for the Swedish Air Force, modified from Sk 60A with new weapons sight.
|
||||
This version entered service in 1968.
|
||||
|
||||
introduced: 1968
|
||||
manufacturer: Saab AB
|
||||
origin: Sweden
|
||||
price: 4
|
||||
role: COIN / FAC /Light Attack
|
||||
gunfighter: true
|
||||
variants:
|
||||
SK-60: {}
|
||||
tasks:
|
||||
BAI: 650
|
||||
CAS: 650
|
||||
DEAD: 60
|
||||
OCA/Aircraft: 650
|
||||
OCA/Runway: 330
|
||||
Strike: 330
|
||||
Loading…
x
Reference in New Issue
Block a user