Sk 60 mod support (#360)

This commit is contained in:
Turbolious 2024-07-07 12:47:07 -05:00 committed by GitHub
parent eb5062579f
commit eb5cceff16
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
14 changed files with 380 additions and 0 deletions

View File

@ -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

View File

@ -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")

View File

@ -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

View File

@ -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 *

View File

@ -0,0 +1 @@
from .sk60 import *

View 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

View File

@ -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,

View File

@ -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"),

View File

@ -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))

View 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

View 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"
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 90 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.5 KiB

View 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