mirror of
https://github.com/dcs-retribution/dcs-retribution.git
synced 2025-11-10 15:41:24 +00:00
OH-6 Cayuse mod v1.2 support (#346)
Resolves #313 * Initial commit of OH-6 Modpack v1.2 + Vietnam Asset Pack v1 support. * Added OH-6 Mod loadouts by @Starfire13 * Modified pydcs_extensions/oh6_vietnamassetpack/oh6_vietnamassetpack.py Added resources/units/ground_units/vap_m35_truck.yaml Added resources/units/ground_units/vap_mule.yaml Added resources/units/ground_units/vap_mutt.yaml Added resources/units/ground_units/vap_mutt_gun.yaml Added resources/units/ground_units/vap_type63_mlrs.yaml Added resources/units/ground_units/vap_vc_bicycle_ak.yaml Added resources/units/ground_units/vap_vc_zis.yaml * Modified changelog.md Modified resources/factions/USA 1970 Vietnam War.json Modified resources/factions/USA 1971 Vietnam War.json Modified resources/units/ground_units/vap_mule.yaml Added resources/units/aircraft/OH-6A.yaml * Added the OH-6 to factions and implemented the mod selection in the new game wizard. Added an icon an a banner. * Modified resources/units/aircraft/OH-6A.yaml * Added icons for the Vietnam Asset Pack ground units. Also added an icon for the PT-76 since it was missing. Added a Viet Cong 1970s faction. * Added resources/units/ships/vap_us_seafloat.yaml * Adjust tasking for OH-6A OH-6A is only capable of Transport & Reconnaissance, but we can ignore this if the lead slot is a client. AI however will most likely not support this, but we can add Transport & Air Assault instead... * Fix bug in configure task + client override fallback --------- Co-authored-by: Raffson <Raffson@users.noreply.github.com>
This commit is contained in:
@@ -21,6 +21,8 @@ from .hercules import *
|
||||
from .highdigitsams import *
|
||||
from .irondome import *
|
||||
from .jas39 import *
|
||||
from .oh6 import *
|
||||
from .oh6_vietnamassetpack import *
|
||||
from .ov10a import *
|
||||
from .spanishnavypack import *
|
||||
from .super_etendard import *
|
||||
|
||||
1
pydcs_extensions/oh6/__init__.py
Normal file
1
pydcs_extensions/oh6/__init__.py
Normal file
@@ -0,0 +1 @@
|
||||
from .oh6 import *
|
||||
161
pydcs_extensions/oh6/oh6.py
Normal file
161
pydcs_extensions/oh6/oh6.py
Normal file
@@ -0,0 +1,161 @@
|
||||
from typing import Set
|
||||
|
||||
from dcs import task
|
||||
from dcs.helicopters import HelicopterType
|
||||
|
||||
from game.modsupport import helicoptermod
|
||||
from pydcs_extensions.weapon_injector import inject_weapons
|
||||
|
||||
|
||||
class WeaponsOH6:
|
||||
Camrig = {"clsid": "{OH-6_CAMRIG}", "name": "Camrig", "weight": 70}
|
||||
Frag_Grenade = {"clsid": "{OH6_FRAG}", "name": "Frag Grenade", "weight": 0}
|
||||
M134_Door_Minigun = {
|
||||
"clsid": "{OH-6_M134_Door}",
|
||||
"name": "M134 Door Minigun",
|
||||
"weight": 110,
|
||||
}
|
||||
M134_Minigun_ = {
|
||||
"clsid": "{OH-6_M134_Minigun}",
|
||||
"name": "M134 Minigun",
|
||||
"weight": 39,
|
||||
}
|
||||
M60_Doorgun = {"clsid": "{OH-6_M60_Door}", "name": "M60 Doorgun", "weight": 110}
|
||||
Searchlight = {"clsid": "{OH-6_Searchlight}", "name": "Searchlight", "weight": 70}
|
||||
SMOKE_Grenade_Blue = {
|
||||
"clsid": "{OH6_SMOKE_BLUE}",
|
||||
"name": "SMOKE Grenade Blue",
|
||||
"weight": 0,
|
||||
}
|
||||
SMOKE_Grenade_Green = {
|
||||
"clsid": "{OH6_SMOKE_GREEN}",
|
||||
"name": "SMOKE Grenade Green",
|
||||
"weight": 0,
|
||||
}
|
||||
SMOKE_Grenade_RED = {
|
||||
"clsid": "{OH6_SMOKE_RED}",
|
||||
"name": "SMOKE Grenade RED",
|
||||
"weight": 0,
|
||||
}
|
||||
SMOKE_Grenade_yellow = {
|
||||
"clsid": "{OH6_SMOKE_YELLOW}",
|
||||
"name": "SMOKE Grenade yellow",
|
||||
"weight": 0,
|
||||
}
|
||||
XM158_Weapon_System__4_ = {
|
||||
"clsid": "{OH6_XM158_4}",
|
||||
"name": "XM158 Weapon System (4)",
|
||||
"weight": 76.8,
|
||||
}
|
||||
XM158_Weapon_System__7_ = {
|
||||
"clsid": "{OH6_XM158}",
|
||||
"name": "XM158 Weapon System (7)",
|
||||
"weight": 99.9,
|
||||
}
|
||||
|
||||
|
||||
inject_weapons(WeaponsOH6)
|
||||
|
||||
|
||||
@helicoptermod
|
||||
class OH_6A(HelicopterType):
|
||||
id = "OH-6A"
|
||||
flyable = True
|
||||
height = 3
|
||||
width = 8.33
|
||||
length = 10
|
||||
fuel_max = 181
|
||||
max_speed = 217
|
||||
category = "Air" # Helicopter
|
||||
radio_frequency = 262
|
||||
|
||||
panel_radio = {
|
||||
1: {
|
||||
"channels": {
|
||||
1: 264,
|
||||
2: 265,
|
||||
4: 254,
|
||||
8: 258,
|
||||
16: 267,
|
||||
17: 251,
|
||||
9: 262,
|
||||
18: 253,
|
||||
5: 250,
|
||||
10: 259,
|
||||
20: 252,
|
||||
11: 268,
|
||||
3: 256,
|
||||
6: 270,
|
||||
12: 269,
|
||||
13: 260,
|
||||
7: 257,
|
||||
14: 263,
|
||||
19: 266,
|
||||
15: 261,
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
property_defaults = {
|
||||
"CableCutterEnables": False,
|
||||
}
|
||||
|
||||
class Properties:
|
||||
class CableCutterEnables:
|
||||
id = "CableCutterEnables"
|
||||
|
||||
livery_name = "OH-6A" # from type
|
||||
|
||||
class Pylon1:
|
||||
SMOKE_Grenade_RED = (1, WeaponsOH6.SMOKE_Grenade_RED)
|
||||
SMOKE_Grenade_Green = (1, WeaponsOH6.SMOKE_Grenade_Green)
|
||||
SMOKE_Grenade_Blue = (1, WeaponsOH6.SMOKE_Grenade_Blue)
|
||||
SMOKE_Grenade_yellow = (1, WeaponsOH6.SMOKE_Grenade_yellow)
|
||||
|
||||
class Pylon2:
|
||||
SMOKE_Grenade_RED = (2, WeaponsOH6.SMOKE_Grenade_RED)
|
||||
SMOKE_Grenade_Green = (2, WeaponsOH6.SMOKE_Grenade_Green)
|
||||
SMOKE_Grenade_Blue = (2, WeaponsOH6.SMOKE_Grenade_Blue)
|
||||
SMOKE_Grenade_yellow = (2, WeaponsOH6.SMOKE_Grenade_yellow)
|
||||
|
||||
class Pylon3:
|
||||
SMOKE_Grenade_RED = (3, WeaponsOH6.SMOKE_Grenade_RED)
|
||||
SMOKE_Grenade_Green = (3, WeaponsOH6.SMOKE_Grenade_Green)
|
||||
SMOKE_Grenade_Blue = (3, WeaponsOH6.SMOKE_Grenade_Blue)
|
||||
SMOKE_Grenade_yellow = (3, WeaponsOH6.SMOKE_Grenade_yellow)
|
||||
|
||||
class Pylon4:
|
||||
SMOKE_Grenade_RED = (4, WeaponsOH6.SMOKE_Grenade_RED)
|
||||
SMOKE_Grenade_Green = (4, WeaponsOH6.SMOKE_Grenade_Green)
|
||||
SMOKE_Grenade_Blue = (4, WeaponsOH6.SMOKE_Grenade_Blue)
|
||||
SMOKE_Grenade_yellow = (4, WeaponsOH6.SMOKE_Grenade_yellow)
|
||||
|
||||
class Pylon5:
|
||||
Frag_Grenade = (5, WeaponsOH6.Frag_Grenade)
|
||||
|
||||
# ERRR <CLEAN>
|
||||
# ERRR <CLEAN>
|
||||
|
||||
class Pylon8:
|
||||
M134_Minigun_ = (8, WeaponsOH6.M134_Minigun_)
|
||||
|
||||
class Pylon9:
|
||||
XM158_Weapon_System__7_ = (9, WeaponsOH6.XM158_Weapon_System__7_)
|
||||
XM158_Weapon_System__4_ = (9, WeaponsOH6.XM158_Weapon_System__4_)
|
||||
|
||||
class Pylon10:
|
||||
XM158_Weapon_System__7_ = (10, WeaponsOH6.XM158_Weapon_System__7_)
|
||||
XM158_Weapon_System__4_ = (10, WeaponsOH6.XM158_Weapon_System__4_)
|
||||
|
||||
class Pylon11:
|
||||
M60_Doorgun = (11, WeaponsOH6.M60_Doorgun)
|
||||
M134_Door_Minigun = (11, WeaponsOH6.M134_Door_Minigun)
|
||||
|
||||
class Pylon12:
|
||||
Camrig = (12, WeaponsOH6.Camrig)
|
||||
Searchlight = (12, WeaponsOH6.Searchlight)
|
||||
|
||||
pylons: Set[int] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}
|
||||
|
||||
tasks = [task.Transport, task.Reconnaissance]
|
||||
task_default = task.Reconnaissance
|
||||
1
pydcs_extensions/oh6_vietnamassetpack/__init__.py
Normal file
1
pydcs_extensions/oh6_vietnamassetpack/__init__.py
Normal file
@@ -0,0 +1 @@
|
||||
from .oh6_vietnamassetpack import *
|
||||
336
pydcs_extensions/oh6_vietnamassetpack/oh6_vietnamassetpack.py
Normal file
336
pydcs_extensions/oh6_vietnamassetpack/oh6_vietnamassetpack.py
Normal file
@@ -0,0 +1,336 @@
|
||||
# Requires OH-6 Vietnam Asset Pack:
|
||||
# https://github.com/tobi-be/DCS-OH-6A
|
||||
#
|
||||
|
||||
from typing import Set
|
||||
|
||||
from dcs import unittype, task
|
||||
from dcs.helicopters import HelicopterType
|
||||
|
||||
from game.modsupport import vehiclemod, shipmod, helicoptermod
|
||||
|
||||
|
||||
@vehiclemod
|
||||
class Vap_mutt_gun(unittype.VehicleType):
|
||||
id = "vap_mutt_gun"
|
||||
name = "VAP US MUTT Gun"
|
||||
detection_range = 0
|
||||
threat_range = 5000
|
||||
air_weapon_dist = 5000
|
||||
|
||||
|
||||
@vehiclemod
|
||||
class Vap_type63_mlrs(unittype.VehicleType):
|
||||
id = "vap_type63_mlrs"
|
||||
name = "VAP VC Type63 107mm MLRS"
|
||||
detection_range = 5000
|
||||
threat_range = 5000
|
||||
air_weapon_dist = 5000
|
||||
|
||||
|
||||
@vehiclemod
|
||||
class Vap_vc_bicycle_mortar(unittype.VehicleType):
|
||||
id = "vap_vc_bicycle_mortar"
|
||||
name = "VAP VC Bicycle Mortar"
|
||||
detection_range = 0
|
||||
threat_range = 7000
|
||||
air_weapon_dist = 7000
|
||||
|
||||
|
||||
@vehiclemod
|
||||
class Vap_zis_150_aa(unittype.VehicleType):
|
||||
id = "vap_zis_150_aa"
|
||||
name = "VAP VC Zis 150 AAA"
|
||||
detection_range = 5000
|
||||
threat_range = 7000
|
||||
air_weapon_dist = 7000
|
||||
|
||||
|
||||
@vehiclemod
|
||||
class Vap_us_hooch_LP(unittype.VehicleType):
|
||||
id = "vap_us_hooch_LP"
|
||||
name = "VAP US Hooch Low Poly"
|
||||
detection_range = 0
|
||||
threat_range = 0
|
||||
air_weapon_dist = 0
|
||||
|
||||
|
||||
@vehiclemod
|
||||
class Vap_ammo_50cal_line(unittype.VehicleType):
|
||||
id = "vap_ammo_50cal_line"
|
||||
name = "VAP US Ammo 50Cal Line"
|
||||
detection_range = 0
|
||||
threat_range = 0
|
||||
air_weapon_dist = 0
|
||||
|
||||
|
||||
@vehiclemod
|
||||
class Vap_ammo_50cal_pack(unittype.VehicleType):
|
||||
id = "vap_ammo_50cal_pack"
|
||||
name = "VAP US Ammo 50Cal Pack"
|
||||
detection_range = 0
|
||||
threat_range = 0
|
||||
air_weapon_dist = 0
|
||||
|
||||
|
||||
@vehiclemod
|
||||
class Vap_barrels_line(unittype.VehicleType):
|
||||
id = "vap_barrels_line"
|
||||
name = "VAP Barrels Line"
|
||||
detection_range = 0
|
||||
threat_range = 0
|
||||
air_weapon_dist = 0
|
||||
|
||||
|
||||
@vehiclemod
|
||||
class Vap_barrels(unittype.VehicleType):
|
||||
id = "vap_barrels"
|
||||
name = "VAP Barrels Pack"
|
||||
detection_range = 0
|
||||
threat_range = 0
|
||||
air_weapon_dist = 0
|
||||
|
||||
|
||||
@vehiclemod
|
||||
class Vap_ammo_box_pile(unittype.VehicleType):
|
||||
id = "vap_ammo_box_pile"
|
||||
name = "VAP Ammo Box Pile"
|
||||
detection_range = 0
|
||||
threat_range = 0
|
||||
air_weapon_dist = 0
|
||||
|
||||
|
||||
@vehiclemod
|
||||
class Vap_ammo_box_wood_long(unittype.VehicleType):
|
||||
id = "vap_ammo_box_wood_long"
|
||||
name = "VAP Ammo Box Long"
|
||||
detection_range = 0
|
||||
threat_range = 0
|
||||
air_weapon_dist = 0
|
||||
|
||||
|
||||
@vehiclemod
|
||||
class Vap_ammo_box_wood_small(unittype.VehicleType):
|
||||
id = "vap_ammo_box_wood_small"
|
||||
name = "VAP Ammo Box Small"
|
||||
detection_range = 0
|
||||
threat_range = 0
|
||||
air_weapon_dist = 0
|
||||
|
||||
|
||||
@vehiclemod
|
||||
class Vap_barrel_red(unittype.VehicleType):
|
||||
id = "vap_barrel_red"
|
||||
name = "VAP Barrel Red"
|
||||
detection_range = 0
|
||||
threat_range = 0
|
||||
air_weapon_dist = 0
|
||||
|
||||
|
||||
@vehiclemod
|
||||
class Vap_barrel_green(unittype.VehicleType):
|
||||
id = "vap_barrel_green"
|
||||
name = "VAP Barrel Green"
|
||||
detection_range = 0
|
||||
threat_range = 0
|
||||
air_weapon_dist = 0
|
||||
|
||||
|
||||
@vehiclemod
|
||||
class Vap_mre_boxes(unittype.VehicleType):
|
||||
id = "vap_mre_boxes"
|
||||
name = "VAP US MRE Boxes"
|
||||
detection_range = 0
|
||||
threat_range = 0
|
||||
air_weapon_dist = 0
|
||||
|
||||
|
||||
@vehiclemod
|
||||
class Vap_mixed_cargo_1(unittype.VehicleType):
|
||||
id = "vap_mixed_cargo_1"
|
||||
name = "VAP US Mixed Cargo 1"
|
||||
detection_range = 0
|
||||
threat_range = 0
|
||||
air_weapon_dist = 0
|
||||
|
||||
|
||||
@vehiclemod
|
||||
class Vap_mixed_cargo_2(unittype.VehicleType):
|
||||
id = "vap_mixed_cargo_2"
|
||||
name = "VAP US Mixed Cargo 2"
|
||||
detection_range = 0
|
||||
threat_range = 0
|
||||
air_weapon_dist = 0
|
||||
|
||||
|
||||
@vehiclemod
|
||||
class Vap_watchtower(unittype.VehicleType):
|
||||
id = "vap_watchtower"
|
||||
name = "VAP Vietcong Watchtower"
|
||||
detection_range = 0
|
||||
threat_range = 0
|
||||
air_weapon_dist = 0
|
||||
|
||||
|
||||
@vehiclemod
|
||||
class Vap_house_high(unittype.VehicleType):
|
||||
id = "vap_house_high"
|
||||
name = "VAP Bamboo House High"
|
||||
detection_range = 0
|
||||
threat_range = 0
|
||||
air_weapon_dist = 0
|
||||
|
||||
|
||||
@vehiclemod
|
||||
class Vap_house_long(unittype.VehicleType):
|
||||
id = "vap_house_long"
|
||||
name = "VAP Bamboo House Long"
|
||||
detection_range = 0
|
||||
threat_range = 0
|
||||
air_weapon_dist = 0
|
||||
|
||||
|
||||
@vehiclemod
|
||||
class Vap_house_small(unittype.VehicleType):
|
||||
id = "vap_house_small"
|
||||
name = "VAP Bamboo House Small"
|
||||
detection_range = 0
|
||||
threat_range = 0
|
||||
air_weapon_dist = 0
|
||||
|
||||
|
||||
@vehiclemod
|
||||
class Vap_house_T(unittype.VehicleType):
|
||||
id = "vap_house_T"
|
||||
name = "VAP Bamboo House T-Shape"
|
||||
detection_range = 0
|
||||
threat_range = 0
|
||||
air_weapon_dist = 0
|
||||
|
||||
|
||||
@vehiclemod
|
||||
class Vap_house_tiny(unittype.VehicleType):
|
||||
id = "vap_house_tiny"
|
||||
name = "VAP Bamboo House Tiny"
|
||||
detection_range = 0
|
||||
threat_range = 0
|
||||
air_weapon_dist = 0
|
||||
|
||||
|
||||
@vehiclemod
|
||||
class Vap_house1(unittype.VehicleType):
|
||||
id = "vap_house1"
|
||||
name = "VAP Bamboo House"
|
||||
detection_range = 0
|
||||
threat_range = 0
|
||||
air_weapon_dist = 0
|
||||
|
||||
|
||||
@vehiclemod
|
||||
class Vap_us_hooch_radio(unittype.VehicleType):
|
||||
id = "vap_us_hooch_radio"
|
||||
name = "VAP US Hooch Radio"
|
||||
detection_range = 0
|
||||
threat_range = 0
|
||||
air_weapon_dist = 0
|
||||
|
||||
|
||||
@vehiclemod
|
||||
class Vap_us_hooch_closed(unittype.VehicleType):
|
||||
id = "vap_us_hooch_closed"
|
||||
name = "VAP US Hooch"
|
||||
detection_range = 0
|
||||
threat_range = 0
|
||||
air_weapon_dist = 0
|
||||
|
||||
|
||||
@vehiclemod
|
||||
class Vap_vc_bunker_single(unittype.VehicleType):
|
||||
id = "vap_vc_bunker_single"
|
||||
name = "VAP VC Bunker"
|
||||
detection_range = 0
|
||||
threat_range = 800
|
||||
air_weapon_dist = 800
|
||||
|
||||
|
||||
@vehiclemod
|
||||
class Vap_vc_mg_nest(unittype.VehicleType):
|
||||
id = "vap_vc_mg_nest"
|
||||
name = "VAP VC MG Nest"
|
||||
detection_range = 1000
|
||||
threat_range = 500
|
||||
air_weapon_dist = 500
|
||||
|
||||
|
||||
@vehiclemod
|
||||
class Vap_mule(unittype.VehicleType):
|
||||
id = "vap_mule"
|
||||
name = "VAP US Mule"
|
||||
detection_range = 0
|
||||
threat_range = 0
|
||||
air_weapon_dist = 0
|
||||
|
||||
|
||||
@vehiclemod
|
||||
class Vap_mutt(unittype.VehicleType):
|
||||
id = "vap_mutt"
|
||||
name = "VAP US MUTT"
|
||||
detection_range = 0
|
||||
threat_range = 0
|
||||
air_weapon_dist = 0
|
||||
|
||||
|
||||
@vehiclemod
|
||||
class Vap_m35_truck(unittype.VehicleType):
|
||||
id = "vap_m35_truck"
|
||||
name = "VAP US M35 Truck"
|
||||
detection_range = 0
|
||||
threat_range = 0
|
||||
air_weapon_dist = 0
|
||||
|
||||
|
||||
@vehiclemod
|
||||
class Vap_vc_zis(unittype.VehicleType):
|
||||
id = "vap_vc_zis"
|
||||
name = "VAP VC Zis 150"
|
||||
detection_range = 0
|
||||
threat_range = 0
|
||||
air_weapon_dist = 0
|
||||
|
||||
|
||||
@vehiclemod
|
||||
class Vap_vc_bicycle(unittype.VehicleType):
|
||||
id = "vap_vc_bicycle"
|
||||
name = "VAP VC Bicycle"
|
||||
detection_range = 0
|
||||
threat_range = 0
|
||||
air_weapon_dist = 0
|
||||
|
||||
|
||||
@vehiclemod
|
||||
class Vap_vc_zil(unittype.VehicleType):
|
||||
id = "vap_vc_zil"
|
||||
name = "VAP VC Zil 130"
|
||||
detection_range = 5000
|
||||
threat_range = 500
|
||||
air_weapon_dist = 500
|
||||
|
||||
|
||||
@vehiclemod
|
||||
class Vap_vc_bicycle_ak(unittype.VehicleType):
|
||||
id = "vap_vc_bicycle_ak"
|
||||
name = "VAP VC Bicycle AK"
|
||||
detection_range = 5000
|
||||
threat_range = 500
|
||||
air_weapon_dist = 500
|
||||
|
||||
|
||||
@shipmod
|
||||
class Vap_us_seafloat(unittype.ShipType):
|
||||
id = "vap_us_seafloat"
|
||||
name = "VAP - US Sea Float Barge"
|
||||
helicopter_num = 4
|
||||
parking = 4
|
||||
detection_range = 0
|
||||
threat_range = 0
|
||||
air_weapon_dist = 0
|
||||
Reference in New Issue
Block a user