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>
@ -8,6 +8,7 @@
|
||||
* **[Squadrons]** Ability to define a livery-set for each squadron from which Retribution will randomly choose during mission generation
|
||||
* **[Modding]** Updated support for F/A-18E/F/G mod version 2.2.5
|
||||
* **[Modding]** Added VSN F-106 Delta Dart mod support (v2.9.4.101)
|
||||
* **[Modding]** Added OH-6 Cayuse (v1.2) mod support, including the Vietnam Asset Pack v1.0
|
||||
* **[Modding]** Added VSN EA-6B Prowler mod support (v2.9.4.102)
|
||||
* **[Modding]** Added tripod3 Cold War assets mod support (v1.0)
|
||||
* **[Campaign Setup]** Allow adjustments to naval TGOs (except carriers) on turn 0
|
||||
|
||||
@ -352,6 +352,45 @@ class Faction:
|
||||
self.remove_aircraft("A-4E-C")
|
||||
if not mod_settings.hercules:
|
||||
self.remove_aircraft("Hercules")
|
||||
if not mod_settings.oh_6:
|
||||
self.remove_aircraft("OH-6A")
|
||||
if not mod_settings.oh_6_vietnamassetpack:
|
||||
self.remove_vehicle("vap_mutt_gun")
|
||||
self.remove_vehicle("vap_type63_mlrs")
|
||||
self.remove_vehicle("vap_vc_bicycle_mortar")
|
||||
self.remove_vehicle("vap_zis_150_aa")
|
||||
self.remove_vehicle("vap_us_hooch_LP")
|
||||
self.remove_vehicle("vap_ammo_50cal_line")
|
||||
self.remove_vehicle("vap_ammo_50cal_pack")
|
||||
self.remove_vehicle("vap_barrels_line")
|
||||
self.remove_vehicle("vap_barrels")
|
||||
self.remove_vehicle("vap_ammo_box_pile")
|
||||
self.remove_vehicle("vap_ammo_box_wood_long")
|
||||
self.remove_vehicle("vap_ammo_box_wood_small")
|
||||
self.remove_vehicle("vap_barrel_red")
|
||||
self.remove_vehicle("vap_barrel_green")
|
||||
self.remove_vehicle("vap_mre_boxes")
|
||||
self.remove_vehicle("vap_mixed_cargo_1")
|
||||
self.remove_vehicle("vap_mixed_cargo_2")
|
||||
self.remove_vehicle("vap_watchtower")
|
||||
self.remove_vehicle("vap_house_high")
|
||||
self.remove_vehicle("vap_house_long")
|
||||
self.remove_vehicle("vap_house_small")
|
||||
self.remove_vehicle("vap_house_T")
|
||||
self.remove_vehicle("vap_house_tiny")
|
||||
self.remove_vehicle("vap_house1")
|
||||
self.remove_vehicle("vap_us_hooch_radio")
|
||||
self.remove_vehicle("vap_us_hooch_closed")
|
||||
self.remove_vehicle("vap_vc_bunker_single")
|
||||
self.remove_vehicle("vap_vc_mg_nest")
|
||||
self.remove_vehicle("vap_mule")
|
||||
self.remove_vehicle("vap_mutt")
|
||||
self.remove_vehicle("vap_m35_truck")
|
||||
self.remove_vehicle("vap_vc_zis")
|
||||
self.remove_vehicle("vap_vc_bicycle")
|
||||
self.remove_vehicle("vap_vc_zil")
|
||||
self.remove_vehicle("vap_vc_bicycle_ak")
|
||||
self.remove_ship("vap_us_seafloat")
|
||||
if not mod_settings.uh_60l:
|
||||
self.remove_aircraft("UH-60L")
|
||||
self.remove_aircraft("KC130J")
|
||||
|
||||
@ -392,23 +392,35 @@ class AircraftBehavior:
|
||||
|
||||
if preferred_task in flight.unit_type.dcs_unit_type.tasks:
|
||||
group.task = preferred_task.name
|
||||
elif fallback_tasks:
|
||||
return
|
||||
if fallback_tasks:
|
||||
for task in fallback_tasks:
|
||||
if task in flight.unit_type.dcs_unit_type.tasks:
|
||||
group.task = task.name
|
||||
return
|
||||
elif flight.unit_type.dcs_unit_type.task_default and preferred_task == Nothing:
|
||||
if flight.unit_type.dcs_unit_type.task_default and preferred_task == Nothing:
|
||||
group.task = flight.unit_type.dcs_unit_type.task_default.name
|
||||
logging.warning(
|
||||
f"{ac_type} is not capable of 'Nothing', using default task '{group.task}'"
|
||||
)
|
||||
else:
|
||||
fallback_part = (
|
||||
f" nor any of the following fall-back tasks: {[task.name for task in fallback_tasks]}"
|
||||
if fallback_tasks
|
||||
else ""
|
||||
return
|
||||
if flight.roster.members and flight.roster.members[0].is_player:
|
||||
group.task = (
|
||||
flight.unit_type.dcs_unit_type.task_default.name
|
||||
if flight.unit_type.dcs_unit_type.task_default
|
||||
else group.task # even if this is incompatible, if it's a client we don't really care...
|
||||
)
|
||||
raise RuntimeError(
|
||||
f"{ac_type} is neither capable of {preferred_task.name}"
|
||||
f"{fallback_part}. Can't generate {flight.flight_type} flight."
|
||||
logging.warning(
|
||||
f"Client override: {ac_type} is not capable of '{preferred_task}', using default task '{group.task}'"
|
||||
)
|
||||
return
|
||||
|
||||
fallback_part = (
|
||||
f" nor any of the following fall-back tasks: {[task.name for task in fallback_tasks]}"
|
||||
if fallback_tasks
|
||||
else ""
|
||||
)
|
||||
raise RuntimeError(
|
||||
f"{ac_type} is neither capable of {preferred_task.name}"
|
||||
f"{fallback_part}. Can't generate {flight.flight_type} flight."
|
||||
)
|
||||
|
||||
@ -84,6 +84,8 @@ class ModSettings:
|
||||
f106_deltadart: bool = False
|
||||
hercules: bool = False
|
||||
irondome: bool = False
|
||||
oh_6: bool = False
|
||||
oh_6_vietnamassetpack: bool = False
|
||||
uh_60l: bool = False
|
||||
jas39_gripen: bool = False
|
||||
sk_60: bool = False
|
||||
|
||||
@ -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
@ -0,0 +1 @@
|
||||
from .oh6 import *
|
||||
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
@ -0,0 +1 @@
|
||||
from .oh6_vietnamassetpack import *
|
||||
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
|
||||
@ -335,6 +335,9 @@ def create_game(
|
||||
f104_starfighter=False,
|
||||
f105_thunderchief=False,
|
||||
hercules=False,
|
||||
oh_6=False,
|
||||
oh_6_vietnamassetpack=False,
|
||||
uh_60l=False,
|
||||
jas39_gripen=False,
|
||||
sk60_saab105=False,
|
||||
su15_flagon=False,
|
||||
|
||||
@ -107,6 +107,8 @@ class NewGameWizard(QtWidgets.QWizard):
|
||||
f106_deltadart=self.field("f106_deltadart"),
|
||||
hercules=self.field("hercules"),
|
||||
irondome=self.field("irondome"),
|
||||
oh_6=self.field("oh_6"),
|
||||
oh_6_vietnamassetpack=self.field("oh_6_vietnamassetpack"),
|
||||
uh_60l=self.field("uh_60l"),
|
||||
jas39_gripen=self.field("jas39_gripen"),
|
||||
super_etendard=self.field("super_etendard"),
|
||||
|
||||
@ -98,6 +98,10 @@ class GeneratorOptions(QtWidgets.QWizardPage):
|
||||
self.registerField("ea6b_prowler", self.ea6b_prowler)
|
||||
self.hercules = QtWidgets.QCheckBox()
|
||||
self.registerField("hercules", self.hercules)
|
||||
self.oh_6 = QtWidgets.QCheckBox()
|
||||
self.registerField("oh_6", self.oh_6)
|
||||
self.oh_6_vietnamassetpack = QtWidgets.QCheckBox()
|
||||
self.registerField("oh_6_vietnamassetpack", self.oh_6_vietnamassetpack)
|
||||
self.uh_60l = QtWidgets.QCheckBox()
|
||||
self.registerField("uh_60l", self.uh_60l)
|
||||
self.f4bc_phantom = QtWidgets.QCheckBox()
|
||||
@ -196,6 +200,8 @@ class GeneratorOptions(QtWidgets.QWizardPage):
|
||||
("Su-57 Felon (build-04)", self.su57_felon),
|
||||
("Super Étendard (v2.5.5)", self.super_etendard),
|
||||
("Swedish Military Assets pack (1.10)", self.swedishmilitaryassetspack),
|
||||
("OH-6 Cayuse (v1.2)", self.oh_6),
|
||||
("OH-6 Vietnam Asset Pack (v1.0)", self.oh_6_vietnamassetpack),
|
||||
("UH-60L Black Hawk (v1.3.1)", self.uh_60l),
|
||||
]
|
||||
|
||||
|
||||
153
resources/customized_payloads/OH-6A.lua
Normal file
@ -0,0 +1,153 @@
|
||||
local unitPayloads = {
|
||||
["name"] = "OH-6A",
|
||||
["payloads"] = {
|
||||
[1] = {
|
||||
["displayName"] = "Retribution BAI",
|
||||
["name"] = "Retribution BAI",
|
||||
["pylons"] = {
|
||||
[1] = {
|
||||
["CLSID"] = "{OH-6_M60_Door}",
|
||||
["num"] = 11,
|
||||
},
|
||||
[2] = {
|
||||
["CLSID"] = "<CLEAN>",
|
||||
["num"] = 6,
|
||||
},
|
||||
[3] = {
|
||||
["CLSID"] = "<CLEAN>",
|
||||
["num"] = 7,
|
||||
},
|
||||
[4] = {
|
||||
["CLSID"] = "{OH-6_M134_Minigun}",
|
||||
["num"] = 8,
|
||||
},
|
||||
[5] = {
|
||||
["CLSID"] = "{OH6_FRAG}",
|
||||
["num"] = 5,
|
||||
},
|
||||
[6] = {
|
||||
["CLSID"] = "{OH6_SMOKE_BLUE}",
|
||||
["num"] = 4,
|
||||
},
|
||||
[7] = {
|
||||
["CLSID"] = "{OH6_SMOKE_GREEN}",
|
||||
["num"] = 3,
|
||||
},
|
||||
[8] = {
|
||||
["CLSID"] = "{OH6_SMOKE_RED}",
|
||||
["num"] = 2,
|
||||
},
|
||||
[9] = {
|
||||
["CLSID"] = "{OH6_SMOKE_YELLOW}",
|
||||
["num"] = 1,
|
||||
},
|
||||
},
|
||||
["tasks"] = {
|
||||
[1] = 17,
|
||||
[2] = 35,
|
||||
},
|
||||
},
|
||||
[2] = {
|
||||
["displayName"] = "Retribution OCA/Aircraft",
|
||||
["name"] = "Retribution OCA/Aircraft",
|
||||
["pylons"] = {
|
||||
[1] = {
|
||||
["CLSID"] = "{OH6_XM158}",
|
||||
["num"] = 10,
|
||||
},
|
||||
[2] = {
|
||||
["CLSID"] = "{OH6_XM158}",
|
||||
["num"] = 9,
|
||||
},
|
||||
[3] = {
|
||||
["CLSID"] = "{OH6_FRAG}",
|
||||
["num"] = 5,
|
||||
},
|
||||
[4] = {
|
||||
["CLSID"] = "{OH6_SMOKE_BLUE}",
|
||||
["num"] = 4,
|
||||
},
|
||||
[5] = {
|
||||
["CLSID"] = "<CLEAN>",
|
||||
["num"] = 6,
|
||||
},
|
||||
[6] = {
|
||||
["CLSID"] = "<CLEAN>",
|
||||
["num"] = 7,
|
||||
},
|
||||
[7] = {
|
||||
["CLSID"] = "{OH6_SMOKE_GREEN}",
|
||||
["num"] = 3,
|
||||
},
|
||||
[8] = {
|
||||
["CLSID"] = "{OH6_SMOKE_RED}",
|
||||
["num"] = 2,
|
||||
},
|
||||
[9] = {
|
||||
["CLSID"] = "{OH6_SMOKE_YELLOW}",
|
||||
["num"] = 1,
|
||||
},
|
||||
},
|
||||
["tasks"] = {
|
||||
[1] = 35,
|
||||
[2] = 17,
|
||||
[3] = 31,
|
||||
[4] = 15,
|
||||
},
|
||||
},
|
||||
[3] = {
|
||||
["displayName"] = "Retribution CAS",
|
||||
["name"] = "Retribution CAS",
|
||||
["pylons"] = {
|
||||
[1] = {
|
||||
["CLSID"] = "{OH-6 M60 Door}",
|
||||
["num"] = 11,
|
||||
},
|
||||
[2] = {
|
||||
["CLSID"] = "<CLEAN>",
|
||||
["num"] = 6,
|
||||
},
|
||||
[3] = {
|
||||
["CLSID"] = "<CLEAN>",
|
||||
["num"] = 7,
|
||||
},
|
||||
[4] = {
|
||||
["CLSID"] = "{OH-6 M134 Minigun}",
|
||||
["num"] = 8,
|
||||
},
|
||||
[5] = {
|
||||
["CLSID"] = "{OH6_FRAG}",
|
||||
["num"] = 5,
|
||||
},
|
||||
[6] = {
|
||||
["CLSID"] = "{OH6_SMOKE_BLUE}",
|
||||
["num"] = 4,
|
||||
},
|
||||
[7] = {
|
||||
["CLSID"] = "{OH6_SMOKE_GREEN}",
|
||||
["num"] = 3,
|
||||
},
|
||||
[8] = {
|
||||
["CLSID"] = "{OH6_SMOKE_RED}",
|
||||
["num"] = 2,
|
||||
},
|
||||
[9] = {
|
||||
["CLSID"] = "{OH6_SMOKE_YELLOW}",
|
||||
["num"] = 1,
|
||||
},
|
||||
},
|
||||
["tasks"] = {
|
||||
[1] = 17,
|
||||
[2] = 35,
|
||||
},
|
||||
},
|
||||
},
|
||||
["tasks"] = {
|
||||
[1] = 35,
|
||||
[2] = 17,
|
||||
[3] = 31,
|
||||
[4] = 15,
|
||||
},
|
||||
["unitType"] = "OH-6A",
|
||||
}
|
||||
return unitPayloads
|
||||
@ -7,6 +7,7 @@
|
||||
"aircrafts": [
|
||||
"CH-47D",
|
||||
"CH-53E",
|
||||
"OH-6A Cayuse",
|
||||
"UH-1H Iroquois",
|
||||
"AH-1W SuperCobra",
|
||||
"OV-10A Bronco",
|
||||
@ -38,7 +39,8 @@
|
||||
"frontline_units": [
|
||||
"M113",
|
||||
"M163 Vulcan Air Defense System",
|
||||
"M60A3 \"Patton\""
|
||||
"M60A3 \"Patton\"",
|
||||
"M151A1C MUTT w/ 106mm Recoilless Rifle"
|
||||
],
|
||||
"artillery_units": [
|
||||
"M109A6 Paladin"
|
||||
@ -48,7 +50,10 @@
|
||||
"Infantry M4 Georgia"
|
||||
],
|
||||
"logistics_units": [
|
||||
"Truck M818 6x6"
|
||||
"Truck M818 6x6",
|
||||
"VAP US M35 Truck",
|
||||
"M151 1/4-ton 4x4 utility truck",
|
||||
"M274 1/2-ton 4x4 utility truck"
|
||||
],
|
||||
"air_defense_units": [
|
||||
"SAM Hawk SR (AN/MPQ-50)",
|
||||
|
||||
@ -7,6 +7,7 @@
|
||||
"aircrafts": [
|
||||
"CH-47D",
|
||||
"CH-53E",
|
||||
"OH-6A Cayuse",
|
||||
"UH-1H Iroquois",
|
||||
"AH-1W SuperCobra",
|
||||
"OV-10A Bronco",
|
||||
@ -36,7 +37,8 @@
|
||||
"frontline_units": [
|
||||
"M113",
|
||||
"M163 Vulcan Air Defense System",
|
||||
"M60A3 \"Patton\""
|
||||
"M60A3 \"Patton\"",
|
||||
"M151A1C MUTT w/ 106mm Recoilless Rifle"
|
||||
],
|
||||
"artillery_units": [
|
||||
"M109A6 Paladin"
|
||||
@ -46,7 +48,10 @@
|
||||
"Infantry M4 Georgia"
|
||||
],
|
||||
"logistics_units": [
|
||||
"Truck M818 6x6"
|
||||
"Truck M818 6x6",
|
||||
"VAP US M35 Truck",
|
||||
"M151 1/4-ton 4x4 utility truck",
|
||||
"M274 1/2-ton 4x4 utility truck"
|
||||
],
|
||||
"air_defense_units": [
|
||||
"SAM Hawk SR (AN/MPQ-50)",
|
||||
|
||||
@ -23,6 +23,7 @@
|
||||
"F-105G Thunderchief",
|
||||
"F-106A Delta Dart",
|
||||
"F-106B Delta Dart",
|
||||
"OH-6A Cayuse",
|
||||
"UH-1H Iroquois"
|
||||
],
|
||||
"awacs": [
|
||||
|
||||
@ -20,6 +20,7 @@
|
||||
"C-47 Skytrain",
|
||||
"C-130",
|
||||
"C-130J-30 Super Hercules",
|
||||
"OH-6A Cayuse",
|
||||
"UH-1H Iroquois",
|
||||
"AH-1W SuperCobra",
|
||||
"OH-58D(R) Kiowa Warrior",
|
||||
|
||||
@ -27,6 +27,7 @@
|
||||
"F-106B Delta Dart",
|
||||
"S-3B Viking",
|
||||
"OV-10A Bronco",
|
||||
"OH-6A Cayuse",
|
||||
"UH-1H Iroquois"
|
||||
],
|
||||
"awacs": [
|
||||
|
||||
54
resources/factions/vietcong_1970.json
Normal file
@ -0,0 +1,54 @@
|
||||
{
|
||||
"country": "Vietnam",
|
||||
"name": "Viet Cong 1970",
|
||||
"authors": "Ghosti",
|
||||
"description": "<p>National Liberation Front of South Vietnam during the Vietnam War from 1965 to 1975. Includes air units of the PAVN/VPAF. Requires the OH-6 Vietnam Asset Pack.</p>",
|
||||
"locales": [
|
||||
"vi_Vn"
|
||||
],
|
||||
"aircrafts": [
|
||||
"Mi-8MTV2 Hip",
|
||||
"MiG-19P Farmer-B",
|
||||
"MiG-21bis Fishbed-N"
|
||||
],
|
||||
"awacs": [],
|
||||
"tankers": [],
|
||||
"frontline_units": [
|
||||
"PT-76",
|
||||
"VAP VC Zil 130 Armed",
|
||||
"VAP VC Bicycle AK",
|
||||
"VAP VC MG Nest",
|
||||
"VAP VC Bunker"
|
||||
],
|
||||
"artillery_units": [
|
||||
"VAP VC Type63 107mm MLRS"
|
||||
],
|
||||
"logistics_units": [
|
||||
"VAP VC Zis 150",
|
||||
"VAP VC Bicycle"
|
||||
],
|
||||
"infantry_units": [
|
||||
"Infantry AK-74 Rus",
|
||||
"VAP VC Bicycle Mortar"
|
||||
],
|
||||
"missiles": [],
|
||||
"preset_groups": [
|
||||
"KS-19/SON-9"
|
||||
],
|
||||
"naval_units": [
|
||||
"Boat Armed Hi-speed",
|
||||
"Boat Schnellboot type S130"
|
||||
],
|
||||
"air_defense_units": [
|
||||
"VAP VC Zis 150 AAA",
|
||||
"S-60 57mm",
|
||||
"ZSU-57-2 'Sparka'",
|
||||
"AAA ZU-23 Emplacement",
|
||||
"ZU-23 on Ural-375",
|
||||
"ZSU-23-4 Shilka"
|
||||
],
|
||||
"requirements": {
|
||||
"OH-6 Vietnam Asset Pack": "https://github.com/tobi-be/DCS-OH-6A"
|
||||
},
|
||||
"doctrine": "coldwar"
|
||||
}
|
||||
BIN
resources/ui/units/aircrafts/banners/OH-6A.jpg
Normal file
|
After Width: | Height: | Size: 336 KiB |
BIN
resources/ui/units/aircrafts/icons/OH-6A_24.jpg
Normal file
|
After Width: | Height: | Size: 7.6 KiB |
BIN
resources/ui/units/vehicles/icons/PT_76_24.jpg
Normal file
|
After Width: | Height: | Size: 7.4 KiB |
BIN
resources/ui/units/vehicles/icons/vap_m35_truck_24.jpg
Normal file
|
After Width: | Height: | Size: 7.4 KiB |
BIN
resources/ui/units/vehicles/icons/vap_mule_24.jpg
Normal file
|
After Width: | Height: | Size: 7.1 KiB |
BIN
resources/ui/units/vehicles/icons/vap_mutt_24.jpg
Normal file
|
After Width: | Height: | Size: 7.3 KiB |
BIN
resources/ui/units/vehicles/icons/vap_mutt_gun_24.jpg
Normal file
|
After Width: | Height: | Size: 7.3 KiB |
BIN
resources/ui/units/vehicles/icons/vap_type63_mlrs_24.jpg
Normal file
|
After Width: | Height: | Size: 7.4 KiB |
BIN
resources/ui/units/vehicles/icons/vap_vc_bicycle_24.jpg
Normal file
|
After Width: | Height: | Size: 7.1 KiB |
BIN
resources/ui/units/vehicles/icons/vap_vc_bicycle_ak_24.jpg
Normal file
|
After Width: | Height: | Size: 7.3 KiB |
BIN
resources/ui/units/vehicles/icons/vap_vc_bicycle_mortar_24.jpg
Normal file
|
After Width: | Height: | Size: 7.1 KiB |
BIN
resources/ui/units/vehicles/icons/vap_vc_bunker_single_24.jpg
Normal file
|
After Width: | Height: | Size: 7.6 KiB |
BIN
resources/ui/units/vehicles/icons/vap_vc_mg_nest_24.jpg
Normal file
|
After Width: | Height: | Size: 7.5 KiB |
BIN
resources/ui/units/vehicles/icons/vap_vc_zil_24.jpg
Normal file
|
After Width: | Height: | Size: 7.4 KiB |
BIN
resources/ui/units/vehicles/icons/vap_vc_zis_24.jpg
Normal file
|
After Width: | Height: | Size: 7.6 KiB |
BIN
resources/ui/units/vehicles/icons/vap_zis_150_aa_24.jpg
Normal file
|
After Width: | Height: | Size: 7.6 KiB |
20
resources/units/aircraft/OH-6A.yaml
Normal file
@ -0,0 +1,20 @@
|
||||
class: Helicopter
|
||||
carrier_capable: false
|
||||
description:
|
||||
The Hughes OH-6 Cayuse is a single-engine light helicopter designed and
|
||||
produced by the American aerospace company Hughes Helicopters.
|
||||
introduced: 1966
|
||||
lha_capable: false
|
||||
can_carry_crates: false
|
||||
manufacturer: Hughes Helicopters
|
||||
origin: USA
|
||||
price: 3
|
||||
role: Light Observation/Light Attack
|
||||
variants:
|
||||
OH-6A Cayuse: {}
|
||||
tasks:
|
||||
BAI: 0
|
||||
CAS: 0
|
||||
OCA/Aircraft: 0
|
||||
Air Assault: 50
|
||||
Transport: 50
|
||||
4
resources/units/ground_units/vap_m35_truck.yaml
Normal file
@ -0,0 +1,4 @@
|
||||
class: Logistics
|
||||
price: 3
|
||||
variants:
|
||||
VAP US M35 Truck: null
|
||||
5
resources/units/ground_units/vap_mule.yaml
Normal file
@ -0,0 +1,5 @@
|
||||
class: Logistics
|
||||
price: 3
|
||||
variants:
|
||||
VAP US Mule: {}
|
||||
M274 1/2-ton 4x4 utility truck: {}
|
||||
5
resources/units/ground_units/vap_mutt.yaml
Normal file
@ -0,0 +1,5 @@
|
||||
class: Logistics
|
||||
price: 3
|
||||
variants:
|
||||
VAP US MUTT: {}
|
||||
M151 1/4-ton 4x4 utility truck: {}
|
||||
6
resources/units/ground_units/vap_mutt_gun.yaml
Normal file
@ -0,0 +1,6 @@
|
||||
class: ATGM
|
||||
price: 10
|
||||
role: Self-Propelled Recoilless Rifle
|
||||
variants:
|
||||
VAP US MUTT Gun: {}
|
||||
M151A1C MUTT w/ 106mm Recoilless Rifle: {}
|
||||
5
resources/units/ground_units/vap_type63_mlrs.yaml
Normal file
@ -0,0 +1,5 @@
|
||||
class: Artillery
|
||||
price: 10
|
||||
role: Multiple-Launch Rocket System
|
||||
variants:
|
||||
VAP VC Type63 107mm MLRS: {}
|
||||
4
resources/units/ground_units/vap_vc_bicycle.yaml
Normal file
@ -0,0 +1,4 @@
|
||||
class: Logistics
|
||||
price: 2
|
||||
variants:
|
||||
VAP VC Bicycle: null
|
||||
5
resources/units/ground_units/vap_vc_bicycle_ak.yaml
Normal file
@ -0,0 +1,5 @@
|
||||
class: Recon
|
||||
price: 2
|
||||
role: Recon
|
||||
variants:
|
||||
VAP VC Bicycle AK: {}
|
||||
5
resources/units/ground_units/vap_vc_bicycle_mortar.yaml
Normal file
@ -0,0 +1,5 @@
|
||||
class: Infantry
|
||||
price: 0
|
||||
spawn_weight: 1
|
||||
variants:
|
||||
VAP VC Bicycle Mortar: null
|
||||
4
resources/units/ground_units/vap_vc_bunker_single.yaml
Normal file
@ -0,0 +1,4 @@
|
||||
class: IFV
|
||||
price: 4
|
||||
variants:
|
||||
VAP VC Bunker: null
|
||||
4
resources/units/ground_units/vap_vc_mg_nest.yaml
Normal file
@ -0,0 +1,4 @@
|
||||
class: APC
|
||||
price: 3
|
||||
variants:
|
||||
VAP VC MG Nest: null
|
||||
6
resources/units/ground_units/vap_vc_zil.yaml
Normal file
@ -0,0 +1,6 @@
|
||||
class: ATGM
|
||||
description:
|
||||
price: 7
|
||||
role: Armed Truck
|
||||
variants:
|
||||
VAP VC Zil 130 Armed: {}
|
||||
4
resources/units/ground_units/vap_vc_zis.yaml
Normal file
@ -0,0 +1,4 @@
|
||||
class: Logistics
|
||||
price: 3
|
||||
variants:
|
||||
VAP VC Zis 150: null
|
||||
6
resources/units/ground_units/vap_zis_150_aa.yaml
Normal file
@ -0,0 +1,6 @@
|
||||
class: AAA
|
||||
description:
|
||||
price: 7
|
||||
role: Self-Propelled Anti-Aircraft Gun
|
||||
variants:
|
||||
VAP VC Zis 150 AAA: {}
|
||||
4
resources/units/ships/vap_us_seafloat.yaml
Normal file
@ -0,0 +1,4 @@
|
||||
class: Boat
|
||||
price: 0
|
||||
variants:
|
||||
VAP - US Sea Float Barge: null
|
||||