mirror of
https://github.com/dcs-liberation/dcs_liberation.git
synced 2025-11-10 14:22:26 +00:00
Add OV-10A Bronco Mod
Adding the OV-10A Bronco Mod to develop.
This commit is contained in:
parent
9785cf9fe6
commit
4f9719abc4
@ -125,6 +125,7 @@ from pydcs_extensions.f22a.f22a import F_22A
|
||||
from pydcs_extensions.hercules.hercules import Hercules
|
||||
from pydcs_extensions.jas39.jas39 import JAS39Gripen, JAS39Gripen_AG
|
||||
from pydcs_extensions.su57.su57 import Su_57
|
||||
from pydcs_extensions.ov10a.ov10a import Bronco_OV_10A
|
||||
from pydcs_extensions.uh60l.uh60l import KC130J, UH_60L
|
||||
from .flighttype import FlightType
|
||||
|
||||
@ -214,6 +215,7 @@ CAS_CAPABLE = [
|
||||
A_10A,
|
||||
B_1B,
|
||||
A_4E_C,
|
||||
Bronco_OV_10A,
|
||||
F_14B,
|
||||
F_14A_135_GR,
|
||||
AJS37,
|
||||
@ -321,6 +323,7 @@ DEAD_CAPABLE = SEAD_CAPABLE + [
|
||||
P_47D_30,
|
||||
P_51D_30_NA,
|
||||
P_51D,
|
||||
Bronco_OV_10A,
|
||||
SpitfireLFMkIXCW,
|
||||
SpitfireLFMkIX,
|
||||
MosquitoFBMkVI,
|
||||
@ -368,6 +371,7 @@ STRIKE_CAPABLE = [
|
||||
A_10C,
|
||||
S_3B,
|
||||
A_4E_C,
|
||||
Bronco_OV_10A,
|
||||
M_2000C,
|
||||
Mirage_F1B,
|
||||
Mirage_F1BE,
|
||||
@ -469,6 +473,7 @@ RUNWAY_ATTACK_CAPABLE = [
|
||||
A_10C,
|
||||
S_3B,
|
||||
A_4E_C,
|
||||
Bronco_OV_10A,
|
||||
M_2000C,
|
||||
Mirage_F1B,
|
||||
Mirage_F1BE,
|
||||
|
||||
@ -302,6 +302,8 @@ class Faction:
|
||||
self.remove_aircraft("JAS39Gripen_AG")
|
||||
if not mod_settings.su57_felon:
|
||||
self.remove_aircraft("Su-57")
|
||||
if not mod_settings.ov10a_bronco:
|
||||
self.remove_aircraft("Bronco-OV-10A")
|
||||
# frenchpack
|
||||
if not mod_settings.frenchpack:
|
||||
self.remove_vehicle("AMX10RCR")
|
||||
|
||||
@ -60,6 +60,7 @@ class ModSettings:
|
||||
su57_felon: bool = False
|
||||
frenchpack: bool = False
|
||||
high_digit_sams: bool = False
|
||||
ov10a_bronco: bool = False
|
||||
|
||||
|
||||
class GameGenerator:
|
||||
|
||||
@ -7,6 +7,7 @@ from .highdigitsams import *
|
||||
from .jas39 import *
|
||||
from .su57 import *
|
||||
from .uh60l import *
|
||||
from .ov10a import *
|
||||
|
||||
|
||||
def load_mods() -> None:
|
||||
|
||||
174
pydcs_extensions/ov10a/ov10a.py
Normal file
174
pydcs_extensions/ov10a/ov10a.py
Normal file
@ -0,0 +1,174 @@
|
||||
from typing import Any, Dict, Set
|
||||
|
||||
from dcs import task
|
||||
from dcs.liveries_scanner import Liveries
|
||||
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 WeaponsOV10A:
|
||||
OV10_SMOKE = {"clsid": "{OV10_SMOKE}", "name": "OV10_SMOKE", "weight": 1}
|
||||
ParaTrooper = {"clsid": "{PARA}", "name": "ParaTrooper", "weight": 80}
|
||||
Fuel_Tank_150_gallons_ = {
|
||||
"clsid": "{150gal}",
|
||||
"name": "Fuel Tank 150 gallons",
|
||||
"weight": 499.5592,
|
||||
}
|
||||
|
||||
|
||||
inject_weapons(WeaponsOV10A)
|
||||
|
||||
|
||||
@planemod
|
||||
class Bronco_OV_10A(PlaneType):
|
||||
id = "Bronco-OV-10A"
|
||||
flyable = True
|
||||
height = 4.62
|
||||
width = 12.9
|
||||
length = 12.76
|
||||
fuel_max = 940
|
||||
max_speed = 684
|
||||
eplrs = True
|
||||
category = "Interceptor" # {78EFB7A2-FD52-4b57-A6A6-3BF0E1D6555F}
|
||||
radio_frequency = 127.5
|
||||
|
||||
panel_radio = {
|
||||
1: {
|
||||
"channels": {6: 41, 2: 31, 8: 50, 3: 32, 1: 30, 4: 33, 5: 40, 7: 42},
|
||||
},
|
||||
}
|
||||
|
||||
livery_name = "BRONCO-OV-10A" # from type
|
||||
Liveries = Liveries()[livery_name]
|
||||
|
||||
class Pylon1:
|
||||
LAU_7_with_AIM_9P_Sidewinder_IR_AAM = (
|
||||
1,
|
||||
Weapons.LAU_7_with_AIM_9P_Sidewinder_IR_AAM,
|
||||
)
|
||||
|
||||
# ERRR {MK-81}
|
||||
|
||||
class Pylon2:
|
||||
Mk_82___500lb_GP_Bomb_LD = (2, Weapons.Mk_82___500lb_GP_Bomb_LD)
|
||||
Mk_82_Snakeye___500lb_GP_Bomb_HD = (2, Weapons.Mk_82_Snakeye___500lb_GP_Bomb_HD)
|
||||
Mk_83___1000lb_GP_Bomb_LD = (2, Weapons.Mk_83___1000lb_GP_Bomb_LD)
|
||||
M117___750lb_GP_Bomb_LD = (2, Weapons.M117___750lb_GP_Bomb_LD)
|
||||
LAU3_WP156 = (2, Weapons.LAU3_WP156)
|
||||
LAU3_WP1B = (2, Weapons.LAU3_WP1B)
|
||||
LAU3_WP61 = (2, Weapons.LAU3_WP61)
|
||||
LAU3_HE5 = (2, Weapons.LAU3_HE5)
|
||||
LAU3_HE151 = (2, Weapons.LAU3_HE151)
|
||||
M260_HYDRA = (2, Weapons.M260_HYDRA)
|
||||
LAU_10R_pod___4_x_127mm_ZUNI__UnGd_Rkts_Mk71__HE_FRAG = (
|
||||
2,
|
||||
Weapons.LAU_10R_pod___4_x_127mm_ZUNI__UnGd_Rkts_Mk71__HE_FRAG,
|
||||
)
|
||||
LAU_10_pod___4_x_127mm_ZUNI__UnGd_Rkts_Mk71__HE_FRAG = (
|
||||
2,
|
||||
Weapons.LAU_10_pod___4_x_127mm_ZUNI__UnGd_Rkts_Mk71__HE_FRAG,
|
||||
)
|
||||
|
||||
# ERRR {MK-81}
|
||||
|
||||
class Pylon3:
|
||||
Mk_82___500lb_GP_Bomb_LD = (3, Weapons.Mk_82___500lb_GP_Bomb_LD)
|
||||
Mk_82_Snakeye___500lb_GP_Bomb_HD = (3, Weapons.Mk_82_Snakeye___500lb_GP_Bomb_HD)
|
||||
Mk_83___1000lb_GP_Bomb_LD = (3, Weapons.Mk_83___1000lb_GP_Bomb_LD)
|
||||
M117___750lb_GP_Bomb_LD = (3, Weapons.M117___750lb_GP_Bomb_LD)
|
||||
LAU3_WP156 = (3, Weapons.LAU3_WP156)
|
||||
LAU3_WP1B = (3, Weapons.LAU3_WP1B)
|
||||
LAU3_WP61 = (3, Weapons.LAU3_WP61)
|
||||
LAU3_HE5 = (3, Weapons.LAU3_HE5)
|
||||
LAU3_HE151 = (3, Weapons.LAU3_HE151)
|
||||
M260_HYDRA = (3, Weapons.M260_HYDRA)
|
||||
LAU_10R_pod___4_x_127mm_ZUNI__UnGd_Rkts_Mk71__HE_FRAG = (
|
||||
3,
|
||||
Weapons.LAU_10R_pod___4_x_127mm_ZUNI__UnGd_Rkts_Mk71__HE_FRAG,
|
||||
)
|
||||
LAU_10_pod___4_x_127mm_ZUNI__UnGd_Rkts_Mk71__HE_FRAG = (
|
||||
3,
|
||||
Weapons.LAU_10_pod___4_x_127mm_ZUNI__UnGd_Rkts_Mk71__HE_FRAG,
|
||||
)
|
||||
|
||||
class Pylon4:
|
||||
Fuel_Tank_150_gallons_ = (4, Weapons.Fuel_Tank_150_gallons_)
|
||||
# ERRR {MK-81}
|
||||
Mk_82___500lb_GP_Bomb_LD = (4, Weapons.Mk_82___500lb_GP_Bomb_LD)
|
||||
Mk_82_Snakeye___500lb_GP_Bomb_HD = (4, Weapons.Mk_82_Snakeye___500lb_GP_Bomb_HD)
|
||||
Mk_83___1000lb_GP_Bomb_LD = (4, Weapons.Mk_83___1000lb_GP_Bomb_LD)
|
||||
M117___750lb_GP_Bomb_LD = (4, Weapons.M117___750lb_GP_Bomb_LD)
|
||||
|
||||
# ERRR {MK-81}
|
||||
|
||||
class Pylon5:
|
||||
Mk_82___500lb_GP_Bomb_LD = (5, Weapons.Mk_82___500lb_GP_Bomb_LD)
|
||||
Mk_82_Snakeye___500lb_GP_Bomb_HD = (5, Weapons.Mk_82_Snakeye___500lb_GP_Bomb_HD)
|
||||
Mk_83___1000lb_GP_Bomb_LD = (5, Weapons.Mk_83___1000lb_GP_Bomb_LD)
|
||||
M117___750lb_GP_Bomb_LD = (5, Weapons.M117___750lb_GP_Bomb_LD)
|
||||
LAU3_WP156 = (5, Weapons.LAU3_WP156)
|
||||
LAU3_WP1B = (5, Weapons.LAU3_WP1B)
|
||||
LAU3_WP61 = (5, Weapons.LAU3_WP61)
|
||||
LAU3_HE5 = (5, Weapons.LAU3_HE5)
|
||||
LAU3_HE151 = (5, Weapons.LAU3_HE151)
|
||||
M260_HYDRA = (5, Weapons.M260_HYDRA)
|
||||
LAU_10R_pod___4_x_127mm_ZUNI__UnGd_Rkts_Mk71__HE_FRAG = (
|
||||
5,
|
||||
Weapons.LAU_10R_pod___4_x_127mm_ZUNI__UnGd_Rkts_Mk71__HE_FRAG,
|
||||
)
|
||||
LAU_10_pod___4_x_127mm_ZUNI__UnGd_Rkts_Mk71__HE_FRAG = (
|
||||
5,
|
||||
Weapons.LAU_10_pod___4_x_127mm_ZUNI__UnGd_Rkts_Mk71__HE_FRAG,
|
||||
)
|
||||
|
||||
# ERRR {MK-81}
|
||||
|
||||
class Pylon6:
|
||||
Mk_82___500lb_GP_Bomb_LD = (6, Weapons.Mk_82___500lb_GP_Bomb_LD)
|
||||
Mk_82_Snakeye___500lb_GP_Bomb_HD = (6, Weapons.Mk_82_Snakeye___500lb_GP_Bomb_HD)
|
||||
Mk_83___1000lb_GP_Bomb_LD = (6, Weapons.Mk_83___1000lb_GP_Bomb_LD)
|
||||
M117___750lb_GP_Bomb_LD = (6, Weapons.M117___750lb_GP_Bomb_LD)
|
||||
LAU3_WP156 = (6, Weapons.LAU3_WP156)
|
||||
LAU3_WP1B = (6, Weapons.LAU3_WP1B)
|
||||
LAU3_WP61 = (6, Weapons.LAU3_WP61)
|
||||
LAU3_HE5 = (6, Weapons.LAU3_HE5)
|
||||
LAU3_HE151 = (6, Weapons.LAU3_HE151)
|
||||
M260_HYDRA = (6, Weapons.M260_HYDRA)
|
||||
LAU_10R_pod___4_x_127mm_ZUNI__UnGd_Rkts_Mk71__HE_FRAG = (
|
||||
6,
|
||||
Weapons.LAU_10R_pod___4_x_127mm_ZUNI__UnGd_Rkts_Mk71__HE_FRAG,
|
||||
)
|
||||
LAU_10_pod___4_x_127mm_ZUNI__UnGd_Rkts_Mk71__HE_FRAG = (
|
||||
6,
|
||||
Weapons.LAU_10_pod___4_x_127mm_ZUNI__UnGd_Rkts_Mk71__HE_FRAG,
|
||||
)
|
||||
|
||||
class Pylon7:
|
||||
LAU_7_with_AIM_9P_Sidewinder_IR_AAM = (
|
||||
7,
|
||||
Weapons.LAU_7_with_AIM_9P_Sidewinder_IR_AAM,
|
||||
)
|
||||
|
||||
class Pylon8:
|
||||
ParaTrooper = (8, Weapons.ParaTrooper)
|
||||
|
||||
class Pylon9:
|
||||
OV10_SMOKE = (9, Weapons.OV10_SMOKE)
|
||||
|
||||
pylons: Set[int] = {1, 2, 3, 4, 5, 6, 7, 8, 9}
|
||||
|
||||
tasks = [
|
||||
task.GroundAttack,
|
||||
task.RunwayAttack,
|
||||
task.PinpointStrike,
|
||||
task.CAS,
|
||||
task.AFAC,
|
||||
task.CAP,
|
||||
task.Escort,
|
||||
task.FighterSweep,
|
||||
task.Intercept,
|
||||
]
|
||||
task_default = task.CAS
|
||||
@ -165,6 +165,7 @@ class NewGameWizard(QtWidgets.QWizard):
|
||||
uh_60l=self.field("uh_60l"),
|
||||
jas39_gripen=self.field("jas39_gripen"),
|
||||
su57_felon=self.field("su57_felon"),
|
||||
ov10a_bronco=self.field("ov10a_bronco"),
|
||||
frenchpack=self.field("frenchpack"),
|
||||
high_digit_sams=self.field("high_digit_sams"),
|
||||
)
|
||||
@ -663,6 +664,8 @@ class GeneratorOptions(QtWidgets.QWizardPage):
|
||||
self.registerField("jas39_gripen", jas39_gripen)
|
||||
su57_felon = QtWidgets.QCheckBox()
|
||||
self.registerField("su57_felon", su57_felon)
|
||||
ov10a_bronco = QtWidgets.QCheckBox()
|
||||
self.registerField("ov10a_bronco", ov10a_bronco)
|
||||
frenchpack = QtWidgets.QCheckBox()
|
||||
self.registerField("frenchpack", frenchpack)
|
||||
high_digit_sams = QtWidgets.QCheckBox()
|
||||
@ -707,6 +710,9 @@ class GeneratorOptions(QtWidgets.QWizardPage):
|
||||
modLayout.addWidget(QtWidgets.QLabel("Su-57 Felon"), modLayout_row, 0)
|
||||
modLayout.addWidget(su57_felon, modLayout_row, 1)
|
||||
modLayout_row += 1
|
||||
modLayout.addWidget(QtWidgets.QLabel("OV-10A Bronco"), modLayout_row, 0)
|
||||
modLayout.addWidget(ov10a_bronco, modLayout_row, 1)
|
||||
modLayout_row += 1
|
||||
modLayout.addWidget(QtWidgets.QLabel("Frenchpack"), modLayout_row, 0)
|
||||
modLayout.addWidget(frenchpack, modLayout_row, 1)
|
||||
modLayout_row += 1
|
||||
|
||||
173
resources/customized_payloads/Bronco-OV-10A.lua
Normal file
173
resources/customized_payloads/Bronco-OV-10A.lua
Normal file
@ -0,0 +1,173 @@
|
||||
local unitPayloads = {
|
||||
["name"] = "A-4E-C",
|
||||
["payloads"] = {
|
||||
[1] = {
|
||||
["name"] = "CAP",
|
||||
["pylons"] = {
|
||||
[1] = {
|
||||
["CLSID"] = "{AIM-9P-ON-ADAPTER}",
|
||||
["num"] = 1,
|
||||
},
|
||||
[2] = {
|
||||
["CLSID"] = "{AIM-9P-ON-ADAPTER}",
|
||||
["num"] = 7,
|
||||
},
|
||||
[3] = {
|
||||
["CLSID"] = "{150gal}",
|
||||
["num"] = 4,
|
||||
},
|
||||
},
|
||||
["tasks"] = {
|
||||
[1] = 31,
|
||||
},
|
||||
},
|
||||
[2] = {
|
||||
["name"] = "CAS",
|
||||
["pylons"] = {
|
||||
[1] = {
|
||||
["CLSID"] = "LAU3_HE5",
|
||||
["num"] = 2,
|
||||
},
|
||||
[2] = {
|
||||
["CLSID"] = "{AIM-9P-ON-ADAPTER}",
|
||||
["num"] = 1,
|
||||
},
|
||||
[3] = {
|
||||
["CLSID"] = "{F3EFE0AB-E91A-42D8-9CA2-B63C91ED570A}",
|
||||
["num"] = 3,
|
||||
},
|
||||
[4] = {
|
||||
["CLSID"] = "{F3EFE0AB-E91A-42D8-9CA2-B63C91ED570A}",
|
||||
["num"] = 5,
|
||||
},
|
||||
[5] = {
|
||||
["CLSID"] = "{150gal}",
|
||||
["num"] = 4,
|
||||
},
|
||||
[6] = {
|
||||
["CLSID"] = "{AIM-9P-ON-ADAPTER}",
|
||||
["num"] = 7,
|
||||
},
|
||||
[7] = {
|
||||
["CLSID"] = "LAU3_HE5",
|
||||
["num"] = 6,
|
||||
},
|
||||
},
|
||||
["tasks"] = {
|
||||
[1] = 31,
|
||||
},
|
||||
},
|
||||
[3] = {
|
||||
["name"] = "STRIKE",
|
||||
["pylons"] = {
|
||||
[1] = {
|
||||
["CLSID"] = "{BCE4E030-38E9-423E-98ED-24BE3DA87C32}",
|
||||
["num"] = 2,
|
||||
},
|
||||
[2] = {
|
||||
["CLSID"] = "{AIM-9P-ON-ADAPTER}",
|
||||
["num"] = 1,
|
||||
},
|
||||
[3] = {
|
||||
["CLSID"] = "{BCE4E030-38E9-423E-98ED-24BE3DA87C32}",
|
||||
["num"] = 3,
|
||||
},
|
||||
[4] = {
|
||||
["CLSID"] = "{BCE4E030-38E9-423E-98ED-24BE3DA87C32}",
|
||||
["num"] = 5,
|
||||
},
|
||||
[5] = {
|
||||
["CLSID"] = "{BCE4E030-38E9-423E-98ED-24BE3DA87C32}",
|
||||
["num"] = 4,
|
||||
},
|
||||
[6] = {
|
||||
["CLSID"] = "{AIM-9P-ON-ADAPTER}",
|
||||
["num"] = 7,
|
||||
},
|
||||
[7] = {
|
||||
["CLSID"] = "{BCE4E030-38E9-423E-98ED-24BE3DA87C32}",
|
||||
["num"] = 6,
|
||||
},
|
||||
},
|
||||
["tasks"] = {
|
||||
[1] = 31,
|
||||
},
|
||||
},
|
||||
[4] = {
|
||||
["name"] = "SEAD",
|
||||
["pylons"] = {
|
||||
[1] = {
|
||||
["CLSID"] = "LAU3_HE5",
|
||||
["num"] = 2,
|
||||
},
|
||||
[2] = {
|
||||
["CLSID"] = "{AIM-9P-ON-ADAPTER}",
|
||||
["num"] = 1,
|
||||
},
|
||||
[3] = {
|
||||
["CLSID"] = "{F3EFE0AB-E91A-42D8-9CA2-B63C91ED570A}",
|
||||
["num"] = 3,
|
||||
},
|
||||
[4] = {
|
||||
["CLSID"] = "{F3EFE0AB-E91A-42D8-9CA2-B63C91ED570A}",
|
||||
["num"] = 5,
|
||||
},
|
||||
[5] = {
|
||||
["CLSID"] = "{150gal}",
|
||||
["num"] = 4,
|
||||
},
|
||||
[6] = {
|
||||
["CLSID"] = "{AIM-9P-ON-ADAPTER}",
|
||||
["num"] = 7,
|
||||
},
|
||||
[7] = {
|
||||
["CLSID"] = "LAU3_HE5",
|
||||
["num"] = 6,
|
||||
},
|
||||
},
|
||||
["tasks"] = {
|
||||
[1] = 31,
|
||||
},
|
||||
},
|
||||
[5] = {
|
||||
["name"] = "ANTISHIP",
|
||||
["pylons"] = {
|
||||
[1] = {
|
||||
["CLSID"] = "LAU3_HE5",
|
||||
["num"] = 2,
|
||||
},
|
||||
[2] = {
|
||||
["CLSID"] = "{AIM-9P-ON-ADAPTER}",
|
||||
["num"] = 1,
|
||||
},
|
||||
[3] = {
|
||||
["CLSID"] = "{F3EFE0AB-E91A-42D8-9CA2-B63C91ED570A}",
|
||||
["num"] = 3,
|
||||
},
|
||||
[4] = {
|
||||
["CLSID"] = "{F3EFE0AB-E91A-42D8-9CA2-B63C91ED570A}",
|
||||
["num"] = 5,
|
||||
},
|
||||
[5] = {
|
||||
["CLSID"] = "{150gal}",
|
||||
["num"] = 4,
|
||||
},
|
||||
[6] = {
|
||||
["CLSID"] = "{AIM-9P-ON-ADAPTER}",
|
||||
["num"] = 7,
|
||||
},
|
||||
[7] = {
|
||||
["CLSID"] = "LAU3_HE5",
|
||||
["num"] = 6,
|
||||
},
|
||||
},
|
||||
["tasks"] = {
|
||||
[1] = 31,
|
||||
},
|
||||
},
|
||||
},
|
||||
["tasks"] = {
|
||||
},
|
||||
["unitType"] = "Bronco-OV-10A",
|
||||
}
|
||||
return unitPayloads
|
||||
@ -15,6 +15,7 @@
|
||||
"F-4E Phantom II",
|
||||
"F-5E Tiger II",
|
||||
"S-3B Viking",
|
||||
"OV-10A Bronco",
|
||||
"UH-1H Iroquois"
|
||||
],
|
||||
"awacs": [
|
||||
|
||||
BIN
resources/ui/units/aircrafts/banners/Bronco-OV-10A_24.jpg
Normal file
BIN
resources/ui/units/aircrafts/banners/Bronco-OV-10A_24.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 27 KiB |
BIN
resources/ui/units/aircrafts/icons/Bronco-OV-10A_24.jpg
Normal file
BIN
resources/ui/units/aircrafts/icons/Bronco-OV-10A_24.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.6 KiB |
14
resources/units/aircraft/Bronco-OV-10A.yaml
Normal file
14
resources/units/aircraft/Bronco-OV-10A.yaml
Normal file
@ -0,0 +1,14 @@
|
||||
carrier_capable: false
|
||||
description: The North American Rockwell OV-10 Bronco is an American twin-turboprop
|
||||
light attack and observation aircraft. It was developed in the 1960s as a special aircraft
|
||||
for counter-insurgency (COIN) combat, and one of its primary missions was as a forward air control (FAC) aircraft.
|
||||
It can carry up to 3,200 lb (1,450 kg) of external munitions and internal loads such as paratroopers or stretchers,
|
||||
and can loiter for three or more hours.
|
||||
introduced: 1969
|
||||
manufacturer: North American Rockwell
|
||||
origin: USA
|
||||
price: 4
|
||||
role: COIN / FAC /Light Attack
|
||||
gunfighter: true
|
||||
variants:
|
||||
OV-10A Bronco: {}
|
||||
Loading…
x
Reference in New Issue
Block a user