diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 0bf8ec9f..91791655 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -1,6 +1,6 @@ repos: - repo: https://github.com/psf/black - rev: 22.6.0 + rev: 24.8.0 hooks: - id: black language_version: python3 \ No newline at end of file diff --git a/game/data/radar_db.py b/game/data/radar_db.py index d597c9d0..ba810b72 100644 --- a/game/data/radar_db.py +++ b/game/data/radar_db.py @@ -24,8 +24,10 @@ from dcs.ships import ( from dcs.vehicles import AirDefence from pydcs_extensions import highdigitsams as hds +from pydcs_extensions import vietnamwarvessels as vwv from pydcs_extensions import chinesemilitaryassetspack as cmap + TELARS = { AirDefence.x_2S6_Tunguska, AirDefence.SA_11_Buk_LN_9A310M1, @@ -146,6 +148,12 @@ UNITS_WITH_RADAR = { Type_054A, USS_Arleigh_Burke_IIa, VINSON, + vwv.Cva_31, + vwv.USS_Fletcher, + vwv.USS_Laffey, + vwv.USS_Maddox, + vwv.USS_Sumner, + vwv.USS_The_Sullivans, cmap.CH_Type022, cmap.Type052D, cmap.CH_Type054B, diff --git a/game/factions/faction.py b/game/factions/faction.py index 7420a66b..4003c2b9 100644 --- a/game/factions/faction.py +++ b/game/factions/faction.py @@ -653,6 +653,24 @@ class Faction: self.remove_vehicle("TR_TT") self.remove_vehicle("Gozanti") self.remove_ship("Destroyer_carrier") + # vietnamwarvessels + if not mod_settings.vietnamwarvessels: + self.remove_ship("PBR_MKII") + self.remove_ship("USS Sumner") + self.remove_ship("cva-31") + self.remove_ship("USS Fletcher") + self.remove_ship("USS Laffey") + self.remove_ship("USS Maddox") + self.remove_ship("USS The Sullivans") + self.remove_ship("P4") + self.remove_aircraft("vwv_a1_skyraider") + self.remove_aircraft("vwv_ra-5") + self.remove_aircraft("vwv_crusader") + self.remove_aircraft("vwv_mig17f") + self.remove_aircraft("vwv_mig21mf") + self.remove_aircraft("vwv_o-1") + self.remove_aircraft("vwv_sh2f") + self.remove_aircraft("vwv_hh2d") # Chinese Military Assets Pack if not mod_settings.chinesemilitaryassetspack: self.remove_vehicle("CH_PCL181_155") diff --git a/game/theater/controlpoint.py b/game/theater/controlpoint.py index efeae4d7..f52be7a7 100644 --- a/game/theater/controlpoint.py +++ b/game/theater/controlpoint.py @@ -41,6 +41,8 @@ from dcs.ships import ( Type_071, hms_invincible, ) +from pydcs_extensions.vietnamwarvessels import Cva_31 + from dcs.terrain.terrain import Airport, ParkingSlot from dcs.unitgroup import ShipGroup, StaticGroup from dcs.unittype import ShipType @@ -1419,6 +1421,7 @@ class NavalControlPoint( L52, L61, CV_1143_5, + Cva_31, # Vietnam War Vessels Mod CVN_71, CVN_72, CVN_73, diff --git a/game/theater/start_generator.py b/game/theater/start_generator.py index fd012104..ad41cc58 100644 --- a/game/theater/start_generator.py +++ b/game/theater/start_generator.py @@ -100,6 +100,7 @@ class ModSettings: swedishmilitaryassetspack: bool = False coldwarassets: bool = False SWPack: bool = False + vietnamwarvessels: bool = False chinesemilitaryassetspack: bool = False diff --git a/pydcs_extensions/__init__.py b/pydcs_extensions/__init__.py index 212615a0..7be91dcd 100644 --- a/pydcs_extensions/__init__.py +++ b/pydcs_extensions/__init__.py @@ -34,6 +34,7 @@ from .su57 import * from .swedishmilitaryassetspack import * from .coldwarassets import * from .uh60l import * +from .vietnamwarvessels import * from .chinesemilitaryassetspack import * diff --git a/pydcs_extensions/vietnamwarvessels/__init__.py b/pydcs_extensions/vietnamwarvessels/__init__.py new file mode 100644 index 00000000..87bfb5e5 --- /dev/null +++ b/pydcs_extensions/vietnamwarvessels/__init__.py @@ -0,0 +1 @@ +from .vietnamwarvessels import * diff --git a/pydcs_extensions/vietnamwarvessels/vietnamwarvessels.py b/pydcs_extensions/vietnamwarvessels/vietnamwarvessels.py new file mode 100644 index 00000000..3d060f47 --- /dev/null +++ b/pydcs_extensions/vietnamwarvessels/vietnamwarvessels.py @@ -0,0 +1,1271 @@ +# Requires Vietnam War Vessels for DCS by TeTeT: +# https://forum.dcs.world/topic/338387-tetets-vietnam-war-vessels/ +# https://github.com/tspindler-cms/tetet-vwv/releases + + +from typing import Set + +from dcs import unittype, task +from dcs.planes import PlaneType +from dcs.helicopters import HelicopterType +from dcs.weapons_data import Weapons + +from game.modsupport import shipmod, planemod, helicoptermod +from pydcs_extensions.weapon_injector import inject_weapons + + +class WeaponsVWV: + AN_M81___260lb_GP_Bomb_LD = { + "clsid": "{AN-M81}", + "name": "AN-M81 - 260lb GP Bomb LD", + "weight": 117.93392, # [kg] + } + AN_M88___220lb_GP_Bomb_LD = { + "clsid": "{AN-M88}", + "name": "AN-M88 - 220lb GP Bomb LD", + "weight": 98.0665904, + } + Fuel_Tank_150_gallons = { + "clsid": "{DFT-150gal}", + "name": "Fuel Tank 150 gallons", + "weight": 515.888512, + } + Fuel_Tank_150_gallons__EMPTY_ = { + "clsid": "{DFT-150gal_EMPTY}", + "name": "Fuel Tank 150 gallons (EMPTY)", + "weight": 515.888512, + } + Fuel_Tank_300_gallons = { + "clsid": "{DFT-300gal}", + "name": "Fuel Tank 300 gallons", + "weight": 991.407336, + } + Fuel_Tank_300_gallons_ = { + "clsid": "{DFT-300gal_LR}", + "name": "Fuel Tank 300 gallons", + "weight": 998.664808, + } + Fuel_Tank_300_gallons__EMPTY_ = { + "clsid": "{DFT-300gal_EMPTY}", + "name": "Fuel Tank 300 gallons (EMPTY)", + "weight": 991.407336, + } + Fuel_Tank_300_gallons__EMPTY__ = { + "clsid": "{DFT-300gal_LR_EMPTY}", + "name": "Fuel Tank 300 gallons (EMPTY)", + "weight": 998.664808, + } + BRU_41A_with_4_x_Mk_82___500lb_GP_Bomb_HD_Left = { + "clsid": "{Mk-82_IMER_4_L}", + "name": "4 x Mk-82 - 500 lbs GP Bomb HD (IMER)", + "weight": 1035.1, # BRU-41/A (IMER) = 282 lbs + } + BRU_41A_with_4_x_Mk_82_Snakeye___500lb_GP_Bomb_HD_Left = { + "clsid": "{Mk-82_Snakeye_IMER_4_L}", + "name": "4 x Mk-82 Snakeye - 500 lbs GP Bomb HD (IMER)", + "weight": 1035.1, # BRU-41/A (IMER) = 282 lbs + } + BRU_41A_with_4_x_Mk_82___500lb_GP_Bomb_HD_Right = { + "clsid": "{Mk-82_IMER_4_R}", + "name": "4 x Mk-82 - 500 lbs GP Bomb HD (IMER)", + "weight": 1035.1, # BRU-41/A (IMER) = 282 lbs + } + BRU_41A_with_4_x_Mk_82_Snakeye___500lb_GP_Bomb_HD_Right = { + "clsid": "{Mk-82_Snakeye_IMER_4_R}", + "name": "4 x Mk-82 Snakeye - 500 lbs GP Bomb HD (IMER)", + "weight": 1035.1, # BRU-41/A (IMER) = 282 lbs + } + AIM_9C_Sidewinder_SARH_AAM = { + "clsid": "{AIM-9C}", + "name": "AIM-9C Sidewinder SARH AAM", + "weight": 95, + } + AIM_9D_Sidewinder_IR_AAM = { + "clsid": "{AIM-9D}", + "name": "AIM-9D Sidewinder IR AAM", + "weight": 74, + } + # In October 1965, to highlight the dropping of the six millionth pound of ordnance, + # Commander Clarence J. Stoddard of VA-25, flying an A-1H, dropped a special, + # one-time-only object in addition to his other munitions – a toilet. (Wikipedia) + toilet_bomb = { + "clsid": "{toilet_bomb}", + "name": "Toilet", + "weight": 10, + } + Tiny_Tim = { + "clsid": "{Tiny_Tim}", + "name": "Tiny Tim air-to-ground Rocket", + "weight": 569, + } + ab_212_cable = { + "clsid": "{ab_212_cable}", + "name": "AB 212 Cable", + "weight": 5, + } + rescue_crew_sling = { + "clsid": "{rescue_crew_sling}", + "name": "Rescue Crew Sling", + "weight": 5, + } + uscg_stretcher = { + "clsid": "{uscg_stretcher}", + "name": "US Coast Guard Rescue Stretcher", + "weight": 10, + } + + +inject_weapons(WeaponsVWV) + + +## AIRPLANES + + +@planemod +class vwv_a1_skyraider(PlaneType): + id = "vwv_a1_skyraider" + height = 5.28 + width = 15.24 + length = 15.96 + fuel_max = 1036 + max_speed = 594 + chaff = 240 + flare = 240 + charge_total = 480 + chaff_charge_size = 1 + flare_charge_size = 1 + radio_frequency = 127.5 + + livery_name = "VWV_A1_SKYRAIDER" # from type + + class Pylon1: + AN_M30A1___100lb_GP_Bomb_LD = (1, Weapons.AN_M30A1___100lb_GP_Bomb_LD) + AN_M57___250lb_GP_Bomb_LD = (1, Weapons.AN_M57___250lb_GP_Bomb_LD) + AN_M81___260lb_GP_Bomb_LD = (1, WeaponsVWV.AN_M81___260lb_GP_Bomb_LD) + AN_M88___220lb_GP_Bomb_LD = (1, WeaponsVWV.AN_M88___220lb_GP_Bomb_LD) + AN_M64___500lb_GP_Bomb_LD = (1, Weapons.AN_M64___500lb_GP_Bomb_LD) + Mk_82___500lb_GP_Bomb_LD = (1, Weapons.Mk_82___500lb_GP_Bomb_LD) + Mk_20_Rockeye___490lbs_CBU__247_x_HEAT_Bomblets = ( + 1, + Weapons.Mk_20_Rockeye___490lbs_CBU__247_x_HEAT_Bomblets, + ) + LAU_68___7_x_UnGd_Rkts__70_mm_Hydra_70_M151_HE = ( + 1, + Weapons.LAU_68___7_x_UnGd_Rkts__70_mm_Hydra_70_M151_HE, + ) + LAU_61___19_x_UnGd_Rkts__70_mm_Hydra_70_M156_SM = ( + 1, + Weapons.LAU_61___19_x_UnGd_Rkts__70_mm_Hydra_70_M156_SM, + ) + _3_x_4_5_inch_M8_UnGd_Rocket = (1, Weapons._3_x_4_5_inch_M8_UnGd_Rocket) + SUU_25_x_8_LUU_2___Target_Marker_Flares = ( + 1, + Weapons.SUU_25_x_8_LUU_2___Target_Marker_Flares, + ) + HVAR__UnGd_Rkt = (1, Weapons.HVAR__UnGd_Rkt) + + class Pylon2: + AN_M30A1___100lb_GP_Bomb_LD = (2, Weapons.AN_M30A1___100lb_GP_Bomb_LD) + AN_M57___250lb_GP_Bomb_LD = (2, Weapons.AN_M57___250lb_GP_Bomb_LD) + AN_M81___260lb_GP_Bomb_LD = (2, WeaponsVWV.AN_M81___260lb_GP_Bomb_LD) + AN_M88___220lb_GP_Bomb_LD = (2, WeaponsVWV.AN_M88___220lb_GP_Bomb_LD) + AN_M64___500lb_GP_Bomb_LD = (2, Weapons.AN_M64___500lb_GP_Bomb_LD) + Mk_82___500lb_GP_Bomb_LD = (2, Weapons.Mk_82___500lb_GP_Bomb_LD) + Mk_20_Rockeye___490lbs_CBU__247_x_HEAT_Bomblets = ( + 2, + Weapons.Mk_20_Rockeye___490lbs_CBU__247_x_HEAT_Bomblets, + ) + LAU_68___7_x_UnGd_Rkts__70_mm_Hydra_70_M151_HE = ( + 2, + Weapons.LAU_68___7_x_UnGd_Rkts__70_mm_Hydra_70_M151_HE, + ) + LAU_61___19_x_UnGd_Rkts__70_mm_Hydra_70_M156_SM = ( + 2, + Weapons.LAU_61___19_x_UnGd_Rkts__70_mm_Hydra_70_M156_SM, + ) + _3_x_4_5_inch_M8_UnGd_Rocket = (2, Weapons._3_x_4_5_inch_M8_UnGd_Rocket) + SUU_25_x_8_LUU_2___Target_Marker_Flares = ( + 2, + Weapons.SUU_25_x_8_LUU_2___Target_Marker_Flares, + ) + HVAR__UnGd_Rkt = (2, Weapons.HVAR__UnGd_Rkt) + + class Pylon3: + AN_M30A1___100lb_GP_Bomb_LD = (3, Weapons.AN_M30A1___100lb_GP_Bomb_LD) + AN_M57___250lb_GP_Bomb_LD = (3, Weapons.AN_M57___250lb_GP_Bomb_LD) + AN_M81___260lb_GP_Bomb_LD = (3, WeaponsVWV.AN_M81___260lb_GP_Bomb_LD) + AN_M88___220lb_GP_Bomb_LD = (3, WeaponsVWV.AN_M88___220lb_GP_Bomb_LD) + AN_M64___500lb_GP_Bomb_LD = (3, Weapons.AN_M64___500lb_GP_Bomb_LD) + Mk_82___500lb_GP_Bomb_LD = (3, Weapons.Mk_82___500lb_GP_Bomb_LD) + Mk_20_Rockeye___490lbs_CBU__247_x_HEAT_Bomblets = ( + 3, + Weapons.Mk_20_Rockeye___490lbs_CBU__247_x_HEAT_Bomblets, + ) + LAU_68___7_x_UnGd_Rkts__70_mm_Hydra_70_M151_HE = ( + 3, + Weapons.LAU_68___7_x_UnGd_Rkts__70_mm_Hydra_70_M151_HE, + ) + LAU_61___19_x_UnGd_Rkts__70_mm_Hydra_70_M156_SM = ( + 3, + Weapons.LAU_61___19_x_UnGd_Rkts__70_mm_Hydra_70_M156_SM, + ) + _3_x_4_5_inch_M8_UnGd_Rocket = (3, Weapons._3_x_4_5_inch_M8_UnGd_Rocket) + SUU_25_x_8_LUU_2___Target_Marker_Flares = ( + 3, + Weapons.SUU_25_x_8_LUU_2___Target_Marker_Flares, + ) + HVAR__UnGd_Rkt = (3, Weapons.HVAR__UnGd_Rkt) + + class Pylon4: + AN_M30A1___100lb_GP_Bomb_LD = (4, Weapons.AN_M30A1___100lb_GP_Bomb_LD) + AN_M57___250lb_GP_Bomb_LD = (4, Weapons.AN_M57___250lb_GP_Bomb_LD) + AN_M81___260lb_GP_Bomb_LD = (4, WeaponsVWV.AN_M81___260lb_GP_Bomb_LD) + AN_M88___220lb_GP_Bomb_LD = (4, WeaponsVWV.AN_M88___220lb_GP_Bomb_LD) + AN_M64___500lb_GP_Bomb_LD = (4, Weapons.AN_M64___500lb_GP_Bomb_LD) + Mk_82___500lb_GP_Bomb_LD = (4, Weapons.Mk_82___500lb_GP_Bomb_LD) + Mk_20_Rockeye___490lbs_CBU__247_x_HEAT_Bomblets = ( + 4, + Weapons.Mk_20_Rockeye___490lbs_CBU__247_x_HEAT_Bomblets, + ) + LAU_68___7_x_UnGd_Rkts__70_mm_Hydra_70_M151_HE = ( + 4, + Weapons.LAU_68___7_x_UnGd_Rkts__70_mm_Hydra_70_M151_HE, + ) + LAU_61___19_x_UnGd_Rkts__70_mm_Hydra_70_M156_SM = ( + 4, + Weapons.LAU_61___19_x_UnGd_Rkts__70_mm_Hydra_70_M156_SM, + ) + _3_x_4_5_inch_M8_UnGd_Rocket = (4, Weapons._3_x_4_5_inch_M8_UnGd_Rocket) + SUU_25_x_8_LUU_2___Target_Marker_Flares = ( + 4, + Weapons.SUU_25_x_8_LUU_2___Target_Marker_Flares, + ) + HVAR__UnGd_Rkt = (4, Weapons.HVAR__UnGd_Rkt) + + class Pylon5: + AN_M30A1___100lb_GP_Bomb_LD = (5, Weapons.AN_M30A1___100lb_GP_Bomb_LD) + AN_M57___250lb_GP_Bomb_LD = (5, Weapons.AN_M57___250lb_GP_Bomb_LD) + AN_M81___260lb_GP_Bomb_LD = (5, WeaponsVWV.AN_M81___260lb_GP_Bomb_LD) + AN_M88___220lb_GP_Bomb_LD = (5, WeaponsVWV.AN_M88___220lb_GP_Bomb_LD) + AN_M64___500lb_GP_Bomb_LD = (5, Weapons.AN_M64___500lb_GP_Bomb_LD) + Mk_82___500lb_GP_Bomb_LD = (5, Weapons.Mk_82___500lb_GP_Bomb_LD) + Mk_20_Rockeye___490lbs_CBU__247_x_HEAT_Bomblets = ( + 5, + Weapons.Mk_20_Rockeye___490lbs_CBU__247_x_HEAT_Bomblets, + ) + LAU_68___7_x_UnGd_Rkts__70_mm_Hydra_70_M151_HE = ( + 5, + Weapons.LAU_68___7_x_UnGd_Rkts__70_mm_Hydra_70_M151_HE, + ) + LAU_61___19_x_UnGd_Rkts__70_mm_Hydra_70_M156_SM = ( + 5, + Weapons.LAU_61___19_x_UnGd_Rkts__70_mm_Hydra_70_M156_SM, + ) + _3_x_4_5_inch_M8_UnGd_Rocket = (5, Weapons._3_x_4_5_inch_M8_UnGd_Rocket) + SUU_25_x_8_LUU_2___Target_Marker_Flares = ( + 5, + Weapons.SUU_25_x_8_LUU_2___Target_Marker_Flares, + ) + HVAR__UnGd_Rkt = (5, Weapons.HVAR__UnGd_Rkt) + + class Pylon6: + AN_M30A1___100lb_GP_Bomb_LD = (6, Weapons.AN_M30A1___100lb_GP_Bomb_LD) + AN_M57___250lb_GP_Bomb_LD = (6, Weapons.AN_M57___250lb_GP_Bomb_LD) + AN_M81___260lb_GP_Bomb_LD = (6, WeaponsVWV.AN_M81___260lb_GP_Bomb_LD) + AN_M88___220lb_GP_Bomb_LD = (6, WeaponsVWV.AN_M88___220lb_GP_Bomb_LD) + AN_M64___500lb_GP_Bomb_LD = (6, Weapons.AN_M64___500lb_GP_Bomb_LD) + Mk_82___500lb_GP_Bomb_LD = (6, Weapons.Mk_82___500lb_GP_Bomb_LD) + Mk_20_Rockeye___490lbs_CBU__247_x_HEAT_Bomblets = ( + 6, + Weapons.Mk_20_Rockeye___490lbs_CBU__247_x_HEAT_Bomblets, + ) + LAU_68___7_x_UnGd_Rkts__70_mm_Hydra_70_M151_HE = ( + 6, + Weapons.LAU_68___7_x_UnGd_Rkts__70_mm_Hydra_70_M151_HE, + ) + LAU_61___19_x_UnGd_Rkts__70_mm_Hydra_70_M156_SM = ( + 6, + Weapons.LAU_61___19_x_UnGd_Rkts__70_mm_Hydra_70_M156_SM, + ) + _3_x_4_5_inch_M8_UnGd_Rocket = (6, Weapons._3_x_4_5_inch_M8_UnGd_Rocket) + SUU_25_x_8_LUU_2___Target_Marker_Flares = ( + 6, + Weapons.SUU_25_x_8_LUU_2___Target_Marker_Flares, + ) + HVAR__UnGd_Rkt = (6, Weapons.HVAR__UnGd_Rkt) + + class Pylon7: + AN_M30A1___100lb_GP_Bomb_LD = (7, Weapons.AN_M30A1___100lb_GP_Bomb_LD) + AN_M57___250lb_GP_Bomb_LD = (7, Weapons.AN_M57___250lb_GP_Bomb_LD) + AN_M64___500lb_GP_Bomb_LD = (7, Weapons.AN_M64___500lb_GP_Bomb_LD) + AN_M65___1000lb_GP_Bomb_LD = (7, Weapons.AN_M65___1000lb_GP_Bomb_LD) + AN_M81___260lb_GP_Bomb_LD = (7, WeaponsVWV.AN_M81___260lb_GP_Bomb_LD) + AN_M88___220lb_GP_Bomb_LD = (7, WeaponsVWV.AN_M88___220lb_GP_Bomb_LD) + M117___750lb_GP_Bomb_LD = (7, Weapons.M117___750lb_GP_Bomb_LD) + Mk_20_Rockeye___490lbs_CBU__247_x_HEAT_Bomblets = ( + 7, + Weapons.Mk_20_Rockeye___490lbs_CBU__247_x_HEAT_Bomblets, + ) + Mk_82___500lb_GP_Bomb_LD = (7, Weapons.Mk_82___500lb_GP_Bomb_LD) + Mk_83___1000lb_GP_Bomb_LD = (7, Weapons.Mk_83___1000lb_GP_Bomb_LD) + Mk_84___2000lb_GP_Bomb_LD = (7, Weapons.Mk_84___2000lb_GP_Bomb_LD) + SUU_25_x_8_LUU_2___Target_Marker_Flares = ( + 7, + Weapons.SUU_25_x_8_LUU_2___Target_Marker_Flares, + ) + AERO_1D_300_Gallons_Fuel_Tank_ = (7, Weapons.AERO_1D_300_Gallons_Fuel_Tank_) + Fuel_Tank_150_gallons = (7, WeaponsVWV.Fuel_Tank_150_gallons) + Fuel_Tank_150_gallons__EMPTY_ = (7, WeaponsVWV.Fuel_Tank_150_gallons__EMPTY_) + _3_x_4_5_inch_M8_UnGd_Rocket = (7, Weapons._3_x_4_5_inch_M8_UnGd_Rocket) + LAU_61___19_x_UnGd_Rkts__70_mm_Hydra_70_M156_SM = ( + 7, + Weapons.LAU_61___19_x_UnGd_Rkts__70_mm_Hydra_70_M156_SM, + ) + LAU_61___19_x_UnGd_Rkts__70_mm_Hydra_70_M151_HE_ = ( + 7, + Weapons.LAU_61___19_x_UnGd_Rkts__70_mm_Hydra_70_M151_HE_, + ) + LAU_10___4_x_UnGd_Rkts__127_mm_Zuni_Mk__24_Mod__1_HE = ( + 7, + Weapons.LAU_10___4_x_UnGd_Rkts__127_mm_Zuni_Mk__24_Mod__1_HE, + ) + Tiny_Tim = (7, WeaponsVWV.Tiny_Tim) + LTF_5b_Aerial_Torpedo = (7, Weapons.LTF_5b_Aerial_Torpedo) + DIS_mk46torp = (7, Weapons.DIS_mk46torp) + toilet_bomb = (7, WeaponsVWV.toilet_bomb) + + class Pylon8: + AN_M30A1___100lb_GP_Bomb_LD = (8, Weapons.AN_M30A1___100lb_GP_Bomb_LD) + AN_M57___250lb_GP_Bomb_LD = (8, Weapons.AN_M57___250lb_GP_Bomb_LD) + AN_M64___500lb_GP_Bomb_LD = (8, Weapons.AN_M64___500lb_GP_Bomb_LD) + AN_M65___1000lb_GP_Bomb_LD = (8, Weapons.AN_M65___1000lb_GP_Bomb_LD) + AN_M81___260lb_GP_Bomb_LD = (8, WeaponsVWV.AN_M81___260lb_GP_Bomb_LD) + AN_M88___220lb_GP_Bomb_LD = (8, WeaponsVWV.AN_M88___220lb_GP_Bomb_LD) + M117___750lb_GP_Bomb_LD = (8, Weapons.M117___750lb_GP_Bomb_LD) + Mk_20_Rockeye___490lbs_CBU__247_x_HEAT_Bomblets = ( + 8, + Weapons.Mk_20_Rockeye___490lbs_CBU__247_x_HEAT_Bomblets, + ) + Mk_82___500lb_GP_Bomb_LD = (8, Weapons.Mk_82___500lb_GP_Bomb_LD) + Mk_83___1000lb_GP_Bomb_LD = (8, Weapons.Mk_83___1000lb_GP_Bomb_LD) + Mk_84___2000lb_GP_Bomb_LD = (8, Weapons.Mk_84___2000lb_GP_Bomb_LD) + SUU_25_x_8_LUU_2___Target_Marker_Flares = ( + 8, + Weapons.SUU_25_x_8_LUU_2___Target_Marker_Flares, + ) + AERO_1D_300_Gallons_Fuel_Tank_ = (8, Weapons.AERO_1D_300_Gallons_Fuel_Tank_) + LTF_5b_Aerial_Torpedo = (8, Weapons.LTF_5b_Aerial_Torpedo) + DIS_mk46torp = (8, Weapons.DIS_mk46torp) + + class Pylon9: + AN_M30A1___100lb_GP_Bomb_LD = (9, Weapons.AN_M30A1___100lb_GP_Bomb_LD) + AN_M57___250lb_GP_Bomb_LD = (9, Weapons.AN_M57___250lb_GP_Bomb_LD) + AN_M64___500lb_GP_Bomb_LD = (9, Weapons.AN_M64___500lb_GP_Bomb_LD) + AN_M65___1000lb_GP_Bomb_LD = (9, Weapons.AN_M65___1000lb_GP_Bomb_LD) + AN_M81___260lb_GP_Bomb_LD = (9, WeaponsVWV.AN_M81___260lb_GP_Bomb_LD) + AN_M88___220lb_GP_Bomb_LD = (9, WeaponsVWV.AN_M88___220lb_GP_Bomb_LD) + M117___750lb_GP_Bomb_LD = (9, Weapons.M117___750lb_GP_Bomb_LD) + Mk_20_Rockeye___490lbs_CBU__247_x_HEAT_Bomblets = ( + 9, + Weapons.Mk_20_Rockeye___490lbs_CBU__247_x_HEAT_Bomblets, + ) + Mk_82___500lb_GP_Bomb_LD = (9, Weapons.Mk_82___500lb_GP_Bomb_LD) + Mk_83___1000lb_GP_Bomb_LD = (9, Weapons.Mk_83___1000lb_GP_Bomb_LD) + Mk_84___2000lb_GP_Bomb_LD = (9, Weapons.Mk_84___2000lb_GP_Bomb_LD) + SUU_25_x_8_LUU_2___Target_Marker_Flares = ( + 9, + Weapons.SUU_25_x_8_LUU_2___Target_Marker_Flares, + ) + AERO_1D_300_Gallons_Fuel_Tank_ = (9, Weapons.AERO_1D_300_Gallons_Fuel_Tank_) + Fuel_Tank_150_gallons = (9, WeaponsVWV.Fuel_Tank_150_gallons) + Fuel_Tank_150_gallons__EMPTY_ = (9, WeaponsVWV.Fuel_Tank_150_gallons__EMPTY_) + _3_x_4_5_inch_M8_UnGd_Rocket = (9, Weapons._3_x_4_5_inch_M8_UnGd_Rocket) + LAU_61___19_x_UnGd_Rkts__70_mm_Hydra_70_M156_SM = ( + 9, + Weapons.LAU_61___19_x_UnGd_Rkts__70_mm_Hydra_70_M156_SM, + ) + LAU_61___19_x_UnGd_Rkts__70_mm_Hydra_70_M151_HE_ = ( + 9, + Weapons.LAU_61___19_x_UnGd_Rkts__70_mm_Hydra_70_M151_HE_, + ) + LAU_10___4_x_UnGd_Rkts__127_mm_Zuni_Mk__24_Mod__1_HE = ( + 9, + Weapons.LAU_10___4_x_UnGd_Rkts__127_mm_Zuni_Mk__24_Mod__1_HE, + ) + Tiny_Tim = (9, WeaponsVWV.Tiny_Tim) + LTF_5b_Aerial_Torpedo = (9, Weapons.LTF_5b_Aerial_Torpedo) + DIS_mk46torp = (9, Weapons.DIS_mk46torp) + toilet_bomb = (9, WeaponsVWV.toilet_bomb) + + class Pylon10: + AN_M30A1___100lb_GP_Bomb_LD = (10, Weapons.AN_M30A1___100lb_GP_Bomb_LD) + AN_M57___250lb_GP_Bomb_LD = (10, Weapons.AN_M57___250lb_GP_Bomb_LD) + AN_M81___260lb_GP_Bomb_LD = (10, WeaponsVWV.AN_M81___260lb_GP_Bomb_LD) + AN_M88___220lb_GP_Bomb_LD = (10, WeaponsVWV.AN_M88___220lb_GP_Bomb_LD) + AN_M64___500lb_GP_Bomb_LD = (10, Weapons.AN_M64___500lb_GP_Bomb_LD) + Mk_82___500lb_GP_Bomb_LD = (10, Weapons.Mk_82___500lb_GP_Bomb_LD) + Mk_20_Rockeye___490lbs_CBU__247_x_HEAT_Bomblets = ( + 10, + Weapons.Mk_20_Rockeye___490lbs_CBU__247_x_HEAT_Bomblets, + ) + LAU_68___7_x_UnGd_Rkts__70_mm_Hydra_70_M151_HE = ( + 10, + Weapons.LAU_68___7_x_UnGd_Rkts__70_mm_Hydra_70_M151_HE, + ) + LAU_61___19_x_UnGd_Rkts__70_mm_Hydra_70_M156_SM = ( + 10, + Weapons.LAU_61___19_x_UnGd_Rkts__70_mm_Hydra_70_M156_SM, + ) + _3_x_4_5_inch_M8_UnGd_Rocket = (10, Weapons._3_x_4_5_inch_M8_UnGd_Rocket) + SUU_25_x_8_LUU_2___Target_Marker_Flares = ( + 10, + Weapons.SUU_25_x_8_LUU_2___Target_Marker_Flares, + ) + HVAR__UnGd_Rkt = (10, Weapons.HVAR__UnGd_Rkt) + + class Pylon11: + AN_M30A1___100lb_GP_Bomb_LD = (11, Weapons.AN_M30A1___100lb_GP_Bomb_LD) + AN_M57___250lb_GP_Bomb_LD = (11, Weapons.AN_M57___250lb_GP_Bomb_LD) + AN_M81___260lb_GP_Bomb_LD = (11, WeaponsVWV.AN_M81___260lb_GP_Bomb_LD) + AN_M88___220lb_GP_Bomb_LD = (11, WeaponsVWV.AN_M88___220lb_GP_Bomb_LD) + AN_M64___500lb_GP_Bomb_LD = (11, Weapons.AN_M64___500lb_GP_Bomb_LD) + Mk_82___500lb_GP_Bomb_LD = (11, Weapons.Mk_82___500lb_GP_Bomb_LD) + Mk_20_Rockeye___490lbs_CBU__247_x_HEAT_Bomblets = ( + 11, + Weapons.Mk_20_Rockeye___490lbs_CBU__247_x_HEAT_Bomblets, + ) + LAU_68___7_x_UnGd_Rkts__70_mm_Hydra_70_M151_HE = ( + 11, + Weapons.LAU_68___7_x_UnGd_Rkts__70_mm_Hydra_70_M151_HE, + ) + LAU_61___19_x_UnGd_Rkts__70_mm_Hydra_70_M156_SM = ( + 11, + Weapons.LAU_61___19_x_UnGd_Rkts__70_mm_Hydra_70_M156_SM, + ) + _3_x_4_5_inch_M8_UnGd_Rocket = (11, Weapons._3_x_4_5_inch_M8_UnGd_Rocket) + SUU_25_x_8_LUU_2___Target_Marker_Flares = ( + 11, + Weapons.SUU_25_x_8_LUU_2___Target_Marker_Flares, + ) + HVAR__UnGd_Rkt = (11, Weapons.HVAR__UnGd_Rkt) + + class Pylon12: + AN_M30A1___100lb_GP_Bomb_LD = (12, Weapons.AN_M30A1___100lb_GP_Bomb_LD) + AN_M57___250lb_GP_Bomb_LD = (12, Weapons.AN_M57___250lb_GP_Bomb_LD) + AN_M81___260lb_GP_Bomb_LD = (12, WeaponsVWV.AN_M81___260lb_GP_Bomb_LD) + AN_M88___220lb_GP_Bomb_LD = (12, WeaponsVWV.AN_M88___220lb_GP_Bomb_LD) + AN_M64___500lb_GP_Bomb_LD = (12, Weapons.AN_M64___500lb_GP_Bomb_LD) + Mk_82___500lb_GP_Bomb_LD = (12, Weapons.Mk_82___500lb_GP_Bomb_LD) + Mk_20_Rockeye___490lbs_CBU__247_x_HEAT_Bomblets = ( + 12, + Weapons.Mk_20_Rockeye___490lbs_CBU__247_x_HEAT_Bomblets, + ) + LAU_68___7_x_UnGd_Rkts__70_mm_Hydra_70_M151_HE = ( + 12, + Weapons.LAU_68___7_x_UnGd_Rkts__70_mm_Hydra_70_M151_HE, + ) + LAU_61___19_x_UnGd_Rkts__70_mm_Hydra_70_M156_SM = ( + 12, + Weapons.LAU_61___19_x_UnGd_Rkts__70_mm_Hydra_70_M156_SM, + ) + _3_x_4_5_inch_M8_UnGd_Rocket = (12, Weapons._3_x_4_5_inch_M8_UnGd_Rocket) + SUU_25_x_8_LUU_2___Target_Marker_Flares = ( + 12, + Weapons.SUU_25_x_8_LUU_2___Target_Marker_Flares, + ) + HVAR__UnGd_Rkt = (12, Weapons.HVAR__UnGd_Rkt) + + class Pylon13: + AN_M30A1___100lb_GP_Bomb_LD = (13, Weapons.AN_M30A1___100lb_GP_Bomb_LD) + AN_M57___250lb_GP_Bomb_LD = (13, Weapons.AN_M57___250lb_GP_Bomb_LD) + AN_M81___260lb_GP_Bomb_LD = (13, WeaponsVWV.AN_M81___260lb_GP_Bomb_LD) + AN_M88___220lb_GP_Bomb_LD = (13, WeaponsVWV.AN_M88___220lb_GP_Bomb_LD) + AN_M64___500lb_GP_Bomb_LD = (13, Weapons.AN_M64___500lb_GP_Bomb_LD) + Mk_82___500lb_GP_Bomb_LD = (13, Weapons.Mk_82___500lb_GP_Bomb_LD) + Mk_20_Rockeye___490lbs_CBU__247_x_HEAT_Bomblets = ( + 13, + Weapons.Mk_20_Rockeye___490lbs_CBU__247_x_HEAT_Bomblets, + ) + LAU_68___7_x_UnGd_Rkts__70_mm_Hydra_70_M151_HE = ( + 13, + Weapons.LAU_68___7_x_UnGd_Rkts__70_mm_Hydra_70_M151_HE, + ) + LAU_61___19_x_UnGd_Rkts__70_mm_Hydra_70_M156_SM = ( + 13, + Weapons.LAU_61___19_x_UnGd_Rkts__70_mm_Hydra_70_M156_SM, + ) + _3_x_4_5_inch_M8_UnGd_Rocket = (13, Weapons._3_x_4_5_inch_M8_UnGd_Rocket) + SUU_25_x_8_LUU_2___Target_Marker_Flares = ( + 13, + Weapons.SUU_25_x_8_LUU_2___Target_Marker_Flares, + ) + HVAR__UnGd_Rkt = (13, Weapons.HVAR__UnGd_Rkt) + + class Pylon14: + AN_M30A1___100lb_GP_Bomb_LD = (14, Weapons.AN_M30A1___100lb_GP_Bomb_LD) + AN_M57___250lb_GP_Bomb_LD = (14, Weapons.AN_M57___250lb_GP_Bomb_LD) + AN_M81___260lb_GP_Bomb_LD = (14, WeaponsVWV.AN_M81___260lb_GP_Bomb_LD) + AN_M88___220lb_GP_Bomb_LD = (14, WeaponsVWV.AN_M88___220lb_GP_Bomb_LD) + AN_M64___500lb_GP_Bomb_LD = (14, Weapons.AN_M64___500lb_GP_Bomb_LD) + Mk_82___500lb_GP_Bomb_LD = (14, Weapons.Mk_82___500lb_GP_Bomb_LD) + Mk_20_Rockeye___490lbs_CBU__247_x_HEAT_Bomblets = ( + 14, + Weapons.Mk_20_Rockeye___490lbs_CBU__247_x_HEAT_Bomblets, + ) + LAU_68___7_x_UnGd_Rkts__70_mm_Hydra_70_M151_HE = ( + 14, + Weapons.LAU_68___7_x_UnGd_Rkts__70_mm_Hydra_70_M151_HE, + ) + LAU_61___19_x_UnGd_Rkts__70_mm_Hydra_70_M156_SM = ( + 14, + Weapons.LAU_61___19_x_UnGd_Rkts__70_mm_Hydra_70_M156_SM, + ) + _3_x_4_5_inch_M8_UnGd_Rocket = (14, Weapons._3_x_4_5_inch_M8_UnGd_Rocket) + SUU_25_x_8_LUU_2___Target_Marker_Flares = ( + 14, + Weapons.SUU_25_x_8_LUU_2___Target_Marker_Flares, + ) + HVAR__UnGd_Rkt = (14, Weapons.HVAR__UnGd_Rkt) + + class Pylon15: + AN_M30A1___100lb_GP_Bomb_LD = (15, Weapons.AN_M30A1___100lb_GP_Bomb_LD) + AN_M57___250lb_GP_Bomb_LD = (15, Weapons.AN_M57___250lb_GP_Bomb_LD) + AN_M81___260lb_GP_Bomb_LD = (15, WeaponsVWV.AN_M81___260lb_GP_Bomb_LD) + AN_M88___220lb_GP_Bomb_LD = (15, WeaponsVWV.AN_M88___220lb_GP_Bomb_LD) + AN_M64___500lb_GP_Bomb_LD = (15, Weapons.AN_M64___500lb_GP_Bomb_LD) + Mk_82___500lb_GP_Bomb_LD = (15, Weapons.Mk_82___500lb_GP_Bomb_LD) + Mk_20_Rockeye___490lbs_CBU__247_x_HEAT_Bomblets = ( + 15, + Weapons.Mk_20_Rockeye___490lbs_CBU__247_x_HEAT_Bomblets, + ) + LAU_68___7_x_UnGd_Rkts__70_mm_Hydra_70_M151_HE = ( + 15, + Weapons.LAU_68___7_x_UnGd_Rkts__70_mm_Hydra_70_M151_HE, + ) + LAU_61___19_x_UnGd_Rkts__70_mm_Hydra_70_M156_SM = ( + 15, + Weapons.LAU_61___19_x_UnGd_Rkts__70_mm_Hydra_70_M156_SM, + ) + _3_x_4_5_inch_M8_UnGd_Rocket = (15, Weapons._3_x_4_5_inch_M8_UnGd_Rocket) + SUU_25_x_8_LUU_2___Target_Marker_Flares = ( + 15, + Weapons.SUU_25_x_8_LUU_2___Target_Marker_Flares, + ) + HVAR__UnGd_Rkt = (15, Weapons.HVAR__UnGd_Rkt) + + pylons: Set[int] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15} + + tasks = [ + task.GroundAttack, + task.CAS, + task.AFAC, + task.RunwayAttack, + task.AntishipStrike, + ] + task_default = task.CAS + + +@planemod +class vwv_ra_5(PlaneType): + id = "vwv_ra-5" + height = 5.91 + width = 16.16 + length = 23.32 + fuel_max = 10000 + max_speed = 2469.6 + + livery_name = "VWV_RA-5" # from type + + pylons: Set[int] = set() + + tasks = [ + task.Intercept, + task.Reconnaissance, + task.GroundAttack, + task.CAS, + ] + task_default = task.Reconnaissance + + +@planemod +class vwv_crusader(PlaneType): + id = "vwv_crusader" + # flyable = True # not available in current mod version + height = 4.8 + width = 10.72 + length = 16.61 + fuel_max = 4096 + max_speed = 1976.4 + chaff = 120 + flare = 120 + charge_total = 240 + chaff_charge_size = 1 + flare_charge_size = 1 + category = "Interceptor" # {78EFB7A2-FD52-4b57-A6A6-3BF0E1D6555F} + radio_frequency = 127.5 + + livery_name = "VWV_CRUSADER" # from type + + class Pylon1: + LAU3_HE151 = (1, Weapons.LAU3_HE151) + LAU3_HE5 = (1, Weapons.LAU3_HE5) + BRU_33_2_x_LAU_10___4_x_UnGd_Rkts__127_mm_Zuni_Mk__24_Mod__1_HE = ( + 1, + Weapons.BRU_33_2_x_LAU_10___4_x_UnGd_Rkts__127_mm_Zuni_Mk__24_Mod__1_HE, + ) + BRU_33_with_2_x_Mk_82___500lb_GP_Bomb_LD = ( + 1, + Weapons.BRU_33_with_2_x_Mk_82___500lb_GP_Bomb_LD, + ) + BRU_33_with_2_x_Mk_82_Snakeye___500lb_GP_Bomb_HD = ( + 1, + Weapons.BRU_33_with_2_x_Mk_82_Snakeye___500lb_GP_Bomb_HD, + ) + LAU_10___4_x_UnGd_Rkts__127_mm_Zuni_Mk__24_Mod__1_HE = ( + 1, + Weapons.LAU_10___4_x_UnGd_Rkts__127_mm_Zuni_Mk__24_Mod__1_HE, + ) + _2_Mk_82_Snakeye____ = (1, Weapons._2_Mk_82_Snakeye____) + _2_Mk_82____ = (1, Weapons._2_Mk_82____) + BRU_41A_with_4_x_Mk_82___500lb_GP_Bomb_HD_Left = ( + 1, + WeaponsVWV.BRU_41A_with_4_x_Mk_82___500lb_GP_Bomb_HD_Left, + ) + BRU_41A_with_4_x_Mk_82_Snakeye___500lb_GP_Bomb_HD_Left = ( + 1, + WeaponsVWV.BRU_41A_with_4_x_Mk_82_Snakeye___500lb_GP_Bomb_HD_Left, + ) + M117___750lb_GP_Bomb_LD = (1, Weapons.M117___750lb_GP_Bomb_LD) + Mk_84___2000lb_GP_Bomb_LD = (1, Weapons.Mk_84___2000lb_GP_Bomb_LD) + Fuel_Tank_300_gallons_ = (1, WeaponsVWV.Fuel_Tank_300_gallons_) + Fuel_Tank_300_gallons__EMPTY__ = (1, WeaponsVWV.Fuel_Tank_300_gallons__EMPTY__) + Fuel_Tank_150_gallons = (1, WeaponsVWV.Fuel_Tank_150_gallons) + Fuel_Tank_150_gallons__EMPTY_ = (1, WeaponsVWV.Fuel_Tank_150_gallons__EMPTY_) + + # ERRR + + class Pylon2: + AIM_9B_Sidewinder_IR_AAM = (2, Weapons.AIM_9B_Sidewinder_IR_AAM) + AIM_9C_Sidewinder_SARH_AAM = (2, WeaponsVWV.AIM_9C_Sidewinder_SARH_AAM) + AIM_9D_Sidewinder_IR_AAM = (2, WeaponsVWV.AIM_9D_Sidewinder_IR_AAM) + AIM_9J_Sidewinder_IR_AAM = (2, Weapons.AIM_9J_Sidewinder_IR_AAM) + LAU_10___4_x_UnGd_Rkts__127_mm_Zuni_Mk__24_Mod__1_HE = ( + 2, + Weapons.LAU_10___4_x_UnGd_Rkts__127_mm_Zuni_Mk__24_Mod__1_HE, + ) + + class Pylon3: + AIM_9B_Sidewinder_IR_AAM = (3, Weapons.AIM_9B_Sidewinder_IR_AAM) + AIM_9C_Sidewinder_SARH_AAM = (3, WeaponsVWV.AIM_9C_Sidewinder_SARH_AAM) + AIM_9D_Sidewinder_IR_AAM = (3, WeaponsVWV.AIM_9D_Sidewinder_IR_AAM) + AIM_9J_Sidewinder_IR_AAM = (3, Weapons.AIM_9J_Sidewinder_IR_AAM) + LAU_10___4_x_UnGd_Rkts__127_mm_Zuni_Mk__24_Mod__1_HE = ( + 3, + Weapons.LAU_10___4_x_UnGd_Rkts__127_mm_Zuni_Mk__24_Mod__1_HE, + ) + + class Pylon4: + AIM_9B_Sidewinder_IR_AAM = (4, Weapons.AIM_9B_Sidewinder_IR_AAM) + AIM_9C_Sidewinder_SARH_AAM = (4, WeaponsVWV.AIM_9C_Sidewinder_SARH_AAM) + AIM_9D_Sidewinder_IR_AAM = (4, WeaponsVWV.AIM_9D_Sidewinder_IR_AAM) + AIM_9J_Sidewinder_IR_AAM = (4, Weapons.AIM_9J_Sidewinder_IR_AAM) + LAU_10___4_x_UnGd_Rkts__127_mm_Zuni_Mk__24_Mod__1_HE = ( + 4, + Weapons.LAU_10___4_x_UnGd_Rkts__127_mm_Zuni_Mk__24_Mod__1_HE, + ) + + class Pylon5: + AIM_9B_Sidewinder_IR_AAM = (5, Weapons.AIM_9B_Sidewinder_IR_AAM) + AIM_9C_Sidewinder_SARH_AAM = (5, WeaponsVWV.AIM_9C_Sidewinder_SARH_AAM) + AIM_9D_Sidewinder_IR_AAM = (5, WeaponsVWV.AIM_9D_Sidewinder_IR_AAM) + AIM_9J_Sidewinder_IR_AAM = (5, Weapons.AIM_9J_Sidewinder_IR_AAM) + LAU_10___4_x_UnGd_Rkts__127_mm_Zuni_Mk__24_Mod__1_HE = ( + 5, + Weapons.LAU_10___4_x_UnGd_Rkts__127_mm_Zuni_Mk__24_Mod__1_HE, + ) + + class Pylon6: + LAU3_HE151 = (6, Weapons.LAU3_HE151) + LAU3_HE5 = (6, Weapons.LAU3_HE5) + BRU_33_2_x_LAU_10___4_x_UnGd_Rkts__127_mm_Zuni_Mk__24_Mod__1_HE = ( + 6, + Weapons.BRU_33_2_x_LAU_10___4_x_UnGd_Rkts__127_mm_Zuni_Mk__24_Mod__1_HE, + ) + BRU_33_with_2_x_Mk_82___500lb_GP_Bomb_LD = ( + 6, + Weapons.BRU_33_with_2_x_Mk_82___500lb_GP_Bomb_LD, + ) + BRU_33_with_2_x_Mk_82_Snakeye___500lb_GP_Bomb_HD = ( + 6, + Weapons.BRU_33_with_2_x_Mk_82_Snakeye___500lb_GP_Bomb_HD, + ) + LAU_10___4_x_UnGd_Rkts__127_mm_Zuni_Mk__24_Mod__1_HE = ( + 6, + Weapons.LAU_10___4_x_UnGd_Rkts__127_mm_Zuni_Mk__24_Mod__1_HE, + ) + _2_Mk_82_Snakeye_____ = (6, Weapons._2_Mk_82_Snakeye_____) + _2_Mk_82_____ = (6, Weapons._2_Mk_82_____) + BRU_41A_with_4_x_Mk_82___500lb_GP_Bomb_HD_Right = ( + 6, + WeaponsVWV.BRU_41A_with_4_x_Mk_82___500lb_GP_Bomb_HD_Right, + ) + BRU_41A_with_4_x_Mk_82_Snakeye___500lb_GP_Bomb_HD_Right = ( + 6, + WeaponsVWV.BRU_41A_with_4_x_Mk_82_Snakeye___500lb_GP_Bomb_HD_Right, + ) + M117___750lb_GP_Bomb_LD = (6, Weapons.M117___750lb_GP_Bomb_LD) + Mk_84___2000lb_GP_Bomb_LD = (6, Weapons.Mk_84___2000lb_GP_Bomb_LD) + Fuel_Tank_300_gallons_ = (6, WeaponsVWV.Fuel_Tank_300_gallons_) + Fuel_Tank_300_gallons__EMPTY__ = (6, WeaponsVWV.Fuel_Tank_300_gallons__EMPTY__) + Fuel_Tank_150_gallons = (6, WeaponsVWV.Fuel_Tank_150_gallons) + Fuel_Tank_150_gallons__EMPTY_ = (6, WeaponsVWV.Fuel_Tank_150_gallons__EMPTY_) + + # ERRR + + pylons: Set[int] = {1, 2, 3, 4, 5, 6} + + tasks = [ + task.CAP, + task.Escort, + task.FighterSweep, + task.Intercept, + task.Reconnaissance, + task.GroundAttack, + task.CAS, + task.AntishipStrike, + ] + task_default = task.CAP + + +# vwv_crusador_np not found in DCS ME + + +@planemod +class vwv_mig17f(PlaneType): + id = "vwv_mig17f" + # flyable = True # not available in current mod version + height = 3.8 + width = 9.628 + length = 11.09 + fuel_max = 1140 + max_speed = 1224 + chaff = 48 + flare = 48 + charge_total = 96 + chaff_charge_size = 1 + flare_charge_size = 1 + category = "Interceptor" # {78EFB7A2-FD52-4b57-A6A6-3BF0E1D6555F} + radio_frequency = 127.5 + + livery_name = "VWV_MIG17F" # from type + + class Pylon1: + FAB_50 = (1, Weapons.FAB_50) + FAB_250___250kg_GP_Bomb_LD = (1, Weapons.FAB_250___250kg_GP_Bomb_LD) + B_8V20A_CM = (1, Weapons.B_8V20A_CM) + B_8V20A_OM = (1, Weapons.B_8V20A_OM) + B_8M1___20_S_8OFP2 = (1, Weapons.B_8M1___20_S_8OFP2) + # ERRR B-8V20A - 20 S-8OFP2 + FAB_100M = (1, Weapons.FAB_100M) + UPK_23_250___2_x_23mm__GSh_23L_Autocannon_Pod = ( + 1, + Weapons.UPK_23_250___2_x_23mm__GSh_23L_Autocannon_Pod, + ) + + class Pylon2: + FAB_50 = (2, Weapons.FAB_50) + FAB_250___250kg_GP_Bomb_LD = (2, Weapons.FAB_250___250kg_GP_Bomb_LD) + B_8V20A_CM = (2, Weapons.B_8V20A_CM) + B_8V20A_OM = (2, Weapons.B_8V20A_OM) + B_8M1___20_S_8OFP2 = (2, Weapons.B_8M1___20_S_8OFP2) + # ERRR B-8V20A - 20 S-8OFP2 + FAB_100M = (2, Weapons.FAB_100M) + UPK_23_250___2_x_23mm__GSh_23L_Autocannon_Pod = ( + 2, + Weapons.UPK_23_250___2_x_23mm__GSh_23L_Autocannon_Pod, + ) + + class Pylon3: + PTB400_MIG15 = (3, Weapons.PTB400_MIG15) + + class Pylon4: + PTB400_MIG15 = (4, Weapons.PTB400_MIG15) + + pylons: Set[int] = {1, 2, 3, 4} + + tasks = [ + task.CAP, + task.Escort, + task.FighterSweep, + task.Intercept, + task.Reconnaissance, + task.GroundAttack, + task.CAS, + task.AFAC, + task.RunwayAttack, + task.AntishipStrike, + ] + task_default = task.CAP + + +@planemod +class vwv_mig21mf(PlaneType): + id = "vwv_mig21mf" + height = 4.16 + width = 7.15 + length = 14.5 + fuel_max = 2600 + max_speed = 2448 + chaff = 0 + flare = 0 + charge_total = 0 + chaff_charge_size = 0 + flare_charge_size = 0 + category = "Interceptor" # {78EFB7A2-FD52-4b57-A6A6-3BF0E1D6555F} + radio_frequency = 127.5 + + livery_name = "VWV_MIG21MF" # from type + + class Pylon1: + FAB_50 = (1, Weapons.FAB_50) + FAB_250___250kg_GP_Bomb_LD = (1, Weapons.FAB_250___250kg_GP_Bomb_LD) + B_8V20A_CM = (1, Weapons.B_8V20A_CM) + B_8V20A_OM = (1, Weapons.B_8V20A_OM) + B_8M1___20_S_8OFP2 = (1, Weapons.B_8M1___20_S_8OFP2) + # ERRR B-8V20A - 20 S-8OFP2 + FAB_100M = (1, Weapons.FAB_100M) + UPK_23_250___2_x_23mm__GSh_23L_Autocannon_Pod = ( + 1, + Weapons.UPK_23_250___2_x_23mm__GSh_23L_Autocannon_Pod, + ) + APU_13MT_with_R_13M__AA_2_Atoll_D____IR_AAM = ( + 1, + Weapons.APU_13MT_with_R_13M__AA_2_Atoll_D____IR_AAM, + ) + APU_13U_2_with_R_3R__AA_2_Atoll_C____Semi_Active_AAM = ( + 1, + Weapons.APU_13U_2_with_R_3R__AA_2_Atoll_C____Semi_Active_AAM, + ) + APU_13U_2_with_R_3S__AA_2_Atoll_B____IR_AAM = ( + 1, + Weapons.APU_13U_2_with_R_3S__AA_2_Atoll_B____IR_AAM, + ) + RS2US___AAM__beam_rider = (1, Weapons.RS2US___AAM__beam_rider) + + class Pylon2: + FAB_50 = (2, Weapons.FAB_50) + FAB_250___250kg_GP_Bomb_LD = (2, Weapons.FAB_250___250kg_GP_Bomb_LD) + B_8V20A_CM = (2, Weapons.B_8V20A_CM) + B_8V20A_OM = (2, Weapons.B_8V20A_OM) + B_8M1___20_S_8OFP2 = (2, Weapons.B_8M1___20_S_8OFP2) + # ERRR B-8V20A - 20 S-8OFP2 + FAB_100M = (2, Weapons.FAB_100M) + UPK_23_250___2_x_23mm__GSh_23L_Autocannon_Pod = ( + 2, + Weapons.UPK_23_250___2_x_23mm__GSh_23L_Autocannon_Pod, + ) + APU_13MT_with_R_13M__AA_2_Atoll_D____IR_AAM = ( + 2, + Weapons.APU_13MT_with_R_13M__AA_2_Atoll_D____IR_AAM, + ) + APU_13U_2_with_R_3R__AA_2_Atoll_C____Semi_Active_AAM = ( + 2, + Weapons.APU_13U_2_with_R_3R__AA_2_Atoll_C____Semi_Active_AAM, + ) + APU_13U_2_with_R_3S__AA_2_Atoll_B____IR_AAM = ( + 2, + Weapons.APU_13U_2_with_R_3S__AA_2_Atoll_B____IR_AAM, + ) + RS2US___AAM__beam_rider = (2, Weapons.RS2US___AAM__beam_rider) + + class Pylon3: + FAB_50 = (3, Weapons.FAB_50) + FAB_250___250kg_GP_Bomb_LD = (3, Weapons.FAB_250___250kg_GP_Bomb_LD) + B_8V20A_CM = (3, Weapons.B_8V20A_CM) + B_8V20A_OM = (3, Weapons.B_8V20A_OM) + B_8M1___20_S_8OFP2 = (3, Weapons.B_8M1___20_S_8OFP2) + # ERRR B-8V20A - 20 S-8OFP2 + FAB_100M = (3, Weapons.FAB_100M) + UPK_23_250___2_x_23mm__GSh_23L_Autocannon_Pod = ( + 3, + Weapons.UPK_23_250___2_x_23mm__GSh_23L_Autocannon_Pod, + ) + APU_13MT_with_R_13M__AA_2_Atoll_D____IR_AAM = ( + 3, + Weapons.APU_13MT_with_R_13M__AA_2_Atoll_D____IR_AAM, + ) + APU_13U_2_with_R_3R__AA_2_Atoll_C____Semi_Active_AAM = ( + 3, + Weapons.APU_13U_2_with_R_3R__AA_2_Atoll_C____Semi_Active_AAM, + ) + APU_13U_2_with_R_3S__AA_2_Atoll_B____IR_AAM = ( + 3, + Weapons.APU_13U_2_with_R_3S__AA_2_Atoll_B____IR_AAM, + ) + RS2US___AAM__beam_rider = (3, Weapons.RS2US___AAM__beam_rider) + + class Pylon4: + FAB_50 = (4, Weapons.FAB_50) + FAB_250___250kg_GP_Bomb_LD = (4, Weapons.FAB_250___250kg_GP_Bomb_LD) + B_8V20A_CM = (4, Weapons.B_8V20A_CM) + B_8V20A_OM = (4, Weapons.B_8V20A_OM) + B_8M1___20_S_8OFP2 = (4, Weapons.B_8M1___20_S_8OFP2) + # ERRR B-8V20A - 20 S-8OFP2 + FAB_100M = (4, Weapons.FAB_100M) + UPK_23_250___2_x_23mm__GSh_23L_Autocannon_Pod = ( + 4, + Weapons.UPK_23_250___2_x_23mm__GSh_23L_Autocannon_Pod, + ) + APU_13MT_with_R_13M__AA_2_Atoll_D____IR_AAM = ( + 4, + Weapons.APU_13MT_with_R_13M__AA_2_Atoll_D____IR_AAM, + ) + APU_13U_2_with_R_3R__AA_2_Atoll_C____Semi_Active_AAM = ( + 4, + Weapons.APU_13U_2_with_R_3R__AA_2_Atoll_C____Semi_Active_AAM, + ) + APU_13U_2_with_R_3S__AA_2_Atoll_B____IR_AAM = ( + 4, + Weapons.APU_13U_2_with_R_3S__AA_2_Atoll_B____IR_AAM, + ) + RS2US___AAM__beam_rider = (4, Weapons.RS2US___AAM__beam_rider) + + pylons: Set[int] = {1, 2, 3, 4} + + tasks = [ + task.CAP, + task.Escort, + task.FighterSweep, + task.Intercept, + task.GroundAttack, + task.CAS, + task.AntishipStrike, + ] + task_default = task.CAP + + +@planemod +class vwv_o_1(PlaneType): + id = "vwv_o-1" + height = 2.24 + width = 10.97 + length = 7.87 + fuel_max = 160 + max_speed = 648 + radio_frequency = 127.5 + + livery_name = "VWV_O-1" # from type + + class Pylon1: + _3_x_4_5_inch_M8_UnGd_Rocket = (1, Weapons._3_x_4_5_inch_M8_UnGd_Rocket) + SUU_25_x_8_LUU_2___Target_Marker_Flares = ( + 1, + Weapons.SUU_25_x_8_LUU_2___Target_Marker_Flares, + ) + LAU_68___7_x_UnGd_Rkts__70_mm_Mk_4_FFAR_M156_SM = ( + 1, + Weapons.LAU_68___7_x_UnGd_Rkts__70_mm_Mk_4_FFAR_M156_SM, + ) + LAU_68___7_x_UnGd_Rkts__70_mm_Mk_4_FFAR_Mk_1_HE = ( + 1, + Weapons.LAU_68___7_x_UnGd_Rkts__70_mm_Mk_4_FFAR_Mk_1_HE, + ) + LAU_68___7_x_UnGd_Rkts__70_mm_Mk_4_FFAR_Mk_5_HEAT = ( + 1, + Weapons.LAU_68___7_x_UnGd_Rkts__70_mm_Mk_4_FFAR_Mk_5_HEAT, + ) + Telson_8___8_x_UnGd_Rkts__68_mm_SNEB_Type_254_H1_SM_Red = ( + 1, + Weapons.Telson_8___8_x_UnGd_Rkts__68_mm_SNEB_Type_254_H1_SM_Red, + ) + Telson_8___8_x_UnGd_Rkts__68_mm_SNEB_Type_254_H1_SM_Yellow = ( + 1, + Weapons.Telson_8___8_x_UnGd_Rkts__68_mm_SNEB_Type_254_H1_SM_Yellow, + ) + Telson_8___8_x_UnGd_Rkts__68_mm_SNEB_Type_254_H1_SM_Green = ( + 1, + Weapons.Telson_8___8_x_UnGd_Rkts__68_mm_SNEB_Type_254_H1_SM_Green, + ) + Telson_8___8_x_UnGd_Rkts__68_mm_SNEB_Type_256_H1_HE_Frag = ( + 1, + Weapons.Telson_8___8_x_UnGd_Rkts__68_mm_SNEB_Type_256_H1_HE_Frag, + ) + + class Pylon2: + _3_x_4_5_inch_M8_UnGd_Rocket = (2, Weapons._3_x_4_5_inch_M8_UnGd_Rocket) + SUU_25_x_8_LUU_2___Target_Marker_Flares = ( + 2, + Weapons.SUU_25_x_8_LUU_2___Target_Marker_Flares, + ) + LAU_68___7_x_UnGd_Rkts__70_mm_Mk_4_FFAR_M156_SM = ( + 2, + Weapons.LAU_68___7_x_UnGd_Rkts__70_mm_Mk_4_FFAR_M156_SM, + ) + LAU_68___7_x_UnGd_Rkts__70_mm_Mk_4_FFAR_Mk_1_HE = ( + 2, + Weapons.LAU_68___7_x_UnGd_Rkts__70_mm_Mk_4_FFAR_Mk_1_HE, + ) + LAU_68___7_x_UnGd_Rkts__70_mm_Mk_4_FFAR_Mk_5_HEAT = ( + 2, + Weapons.LAU_68___7_x_UnGd_Rkts__70_mm_Mk_4_FFAR_Mk_5_HEAT, + ) + Telson_8___8_x_UnGd_Rkts__68_mm_SNEB_Type_254_H1_SM_Red = ( + 2, + Weapons.Telson_8___8_x_UnGd_Rkts__68_mm_SNEB_Type_254_H1_SM_Red, + ) + Telson_8___8_x_UnGd_Rkts__68_mm_SNEB_Type_254_H1_SM_Yellow = ( + 2, + Weapons.Telson_8___8_x_UnGd_Rkts__68_mm_SNEB_Type_254_H1_SM_Yellow, + ) + Telson_8___8_x_UnGd_Rkts__68_mm_SNEB_Type_254_H1_SM_Green = ( + 2, + Weapons.Telson_8___8_x_UnGd_Rkts__68_mm_SNEB_Type_254_H1_SM_Green, + ) + Telson_8___8_x_UnGd_Rkts__68_mm_SNEB_Type_256_H1_HE_Frag = ( + 2, + Weapons.Telson_8___8_x_UnGd_Rkts__68_mm_SNEB_Type_256_H1_HE_Frag, + ) + + class Pylon3: + _3_x_4_5_inch_M8_UnGd_Rocket = (3, Weapons._3_x_4_5_inch_M8_UnGd_Rocket) + SUU_25_x_8_LUU_2___Target_Marker_Flares = ( + 3, + Weapons.SUU_25_x_8_LUU_2___Target_Marker_Flares, + ) + LAU_68___7_x_UnGd_Rkts__70_mm_Mk_4_FFAR_M156_SM = ( + 3, + Weapons.LAU_68___7_x_UnGd_Rkts__70_mm_Mk_4_FFAR_M156_SM, + ) + LAU_68___7_x_UnGd_Rkts__70_mm_Mk_4_FFAR_Mk_1_HE = ( + 3, + Weapons.LAU_68___7_x_UnGd_Rkts__70_mm_Mk_4_FFAR_Mk_1_HE, + ) + LAU_68___7_x_UnGd_Rkts__70_mm_Mk_4_FFAR_Mk_5_HEAT = ( + 3, + Weapons.LAU_68___7_x_UnGd_Rkts__70_mm_Mk_4_FFAR_Mk_5_HEAT, + ) + Telson_8___8_x_UnGd_Rkts__68_mm_SNEB_Type_254_H1_SM_Red = ( + 3, + Weapons.Telson_8___8_x_UnGd_Rkts__68_mm_SNEB_Type_254_H1_SM_Red, + ) + Telson_8___8_x_UnGd_Rkts__68_mm_SNEB_Type_254_H1_SM_Yellow = ( + 3, + Weapons.Telson_8___8_x_UnGd_Rkts__68_mm_SNEB_Type_254_H1_SM_Yellow, + ) + Telson_8___8_x_UnGd_Rkts__68_mm_SNEB_Type_254_H1_SM_Green = ( + 3, + Weapons.Telson_8___8_x_UnGd_Rkts__68_mm_SNEB_Type_254_H1_SM_Green, + ) + Telson_8___8_x_UnGd_Rkts__68_mm_SNEB_Type_256_H1_HE_Frag = ( + 3, + Weapons.Telson_8___8_x_UnGd_Rkts__68_mm_SNEB_Type_256_H1_HE_Frag, + ) + + class Pylon4: + _3_x_4_5_inch_M8_UnGd_Rocket = (4, Weapons._3_x_4_5_inch_M8_UnGd_Rocket) + SUU_25_x_8_LUU_2___Target_Marker_Flares = ( + 4, + Weapons.SUU_25_x_8_LUU_2___Target_Marker_Flares, + ) + LAU_68___7_x_UnGd_Rkts__70_mm_Mk_4_FFAR_M156_SM = ( + 4, + Weapons.LAU_68___7_x_UnGd_Rkts__70_mm_Mk_4_FFAR_M156_SM, + ) + LAU_68___7_x_UnGd_Rkts__70_mm_Mk_4_FFAR_Mk_1_HE = ( + 4, + Weapons.LAU_68___7_x_UnGd_Rkts__70_mm_Mk_4_FFAR_Mk_1_HE, + ) + LAU_68___7_x_UnGd_Rkts__70_mm_Mk_4_FFAR_Mk_5_HEAT = ( + 4, + Weapons.LAU_68___7_x_UnGd_Rkts__70_mm_Mk_4_FFAR_Mk_5_HEAT, + ) + Telson_8___8_x_UnGd_Rkts__68_mm_SNEB_Type_254_H1_SM_Red = ( + 4, + Weapons.Telson_8___8_x_UnGd_Rkts__68_mm_SNEB_Type_254_H1_SM_Red, + ) + Telson_8___8_x_UnGd_Rkts__68_mm_SNEB_Type_254_H1_SM_Yellow = ( + 4, + Weapons.Telson_8___8_x_UnGd_Rkts__68_mm_SNEB_Type_254_H1_SM_Yellow, + ) + Telson_8___8_x_UnGd_Rkts__68_mm_SNEB_Type_254_H1_SM_Green = ( + 4, + Weapons.Telson_8___8_x_UnGd_Rkts__68_mm_SNEB_Type_254_H1_SM_Green, + ) + Telson_8___8_x_UnGd_Rkts__68_mm_SNEB_Type_256_H1_HE_Frag = ( + 4, + Weapons.Telson_8___8_x_UnGd_Rkts__68_mm_SNEB_Type_256_H1_HE_Frag, + ) + + pylons: Set[int] = {1, 2, 3, 4} + + tasks = [ + task.CAP, + task.CAS, + task.Escort, + task.FighterSweep, + task.GroundAttack, + task.Intercept, + ] + task_default = task.CAS + + +## SHIPS + + +@shipmod +class PBR_MKII(unittype.ShipType): + id = "PBR_MKII" + name = "Patrol Boat, River MkII" + detection_range = 40000 + threat_range = 5200 + air_weapon_dist = 5200 + + +@shipmod +class USS_Sumner(unittype.ShipType): + id = "USS Sumner" + name = "USS Allen M. Sumner (DD-692)" + plane_num = 0 + helicopter_num = 1 + parking = 1 + detection_range = 45000 + threat_range = 18650 + air_weapon_dist = 18650 + + +@shipmod +class Cva_31(unittype.ShipType): + id = "cva-31" + name = "CVA-31 Bon Homme Richard" + plane_num = 8 + helicopter_num = 3 + parking = 2 + detection_range = 28000 + threat_range = 15000 + air_weapon_dist = 15000 + + +@shipmod +class USS_Fletcher(unittype.ShipType): + id = "USS Fletcher" + name = "USS Fletcher FRAM II Destroyer" + plane_num = 1 + helicopter_num = 1 + parking = 1 + detection_range = 45000 + threat_range = 18650 + air_weapon_dist = 18650 + + +@shipmod +class USS_Laffey(unittype.ShipType): + id = "USS Laffey" + name = "USS Laffey (DD-724)" + plane_num = 0 + helicopter_num = 1 + parking = 1 + detection_range = 45000 + threat_range = 18650 + air_weapon_dist = 18650 + + +@shipmod +class USS_Maddox(unittype.ShipType): + id = "USS Maddox" + name = "USS Maddox (DD-731)" + detection_range = 45000 + threat_range = 18650 + air_weapon_dist = 18650 + + +@shipmod +class USS_The_Sullivans(unittype.ShipType): + id = "USS The Sullivans" + name = "USS The Sullivans (DD-537)" + detection_range = 45000 + threat_range = 18650 + air_weapon_dist = 18650 + + +@shipmod +class P4(unittype.ShipType): + id = "P4" + name = "P 4 Torpedo Boat" + detection_range = 3000 + threat_range = 1000 + air_weapon_dist = 1000 + + +## HELICOPTERS + + +@helicoptermod +class vwv_sh2f(HelicopterType): + id = "vwv_sh2f" + height = 4.893 + width = 16.4 + length = 18.654 + fuel_max = 1100 + max_speed = 295 + category = "Air" # {828CEADE-3F1D-40aa-93CE-8CDB73FE2710} + + livery_name = "VWV_SH2F" # from type + + class Pylon1: + DIS_mk46torp = (1, Weapons.DIS_mk46torp) + + class Pylon4: + DIS_mk46torp = (4, Weapons.DIS_mk46torp) + + # ERRR CABLE_MH6 + # ERRR suspended_soldier + + pylons: Set[int] = {1, 4, 5} + + tasks = [ + task.CAP, + task.Escort, + task.Intercept, + task.FighterSweep, + task.GroundAttack, + task.CAS, + task.AFAC, + task.RunwayAttack, + task.AntishipStrike, + ] + task_default = task.AntishipStrike + + +@helicoptermod +class vwv_hh2d(HelicopterType): + id = "vwv_hh2d" + height = 4.893 + width = 16.4 + length = 18.654 + fuel_max = 1100 + max_speed = 295 + category = "Air" # {828CEADE-3F1D-40aa-93CE-8CDB73FE2710} + radio_frequency = 251 + + livery_name = "VWV_HH2D" # from type + + class Pylon1: + Fuel_Tank_150_gallons = (1, WeaponsVWV.Fuel_Tank_150_gallons) + _108_US_gal__Paper_Fuel_Tank = (1, Weapons._108_US_gal__Paper_Fuel_Tank) + + class Pylon4: + Fuel_Tank_150_gallons = (4, WeaponsVWV.Fuel_Tank_150_gallons) + _108_US_gal__Paper_Fuel_Tank = (4, Weapons._108_US_gal__Paper_Fuel_Tank) + + class Pylon5: + ab_212_cable = (5, WeaponsVWV.ab_212_cable) + rescue_crew_sling = (5, WeaponsVWV.rescue_crew_sling) + uscg_stretcher = (5, WeaponsVWV.uscg_stretcher) + + pylons: Set[int] = {1, 4, 5} + + tasks = [task.Escort, task.GroundAttack, task.CAS, task.AFAC, task.AntishipStrike] + task_default = task.AntishipStrike + + +## HUTS skipped diff --git a/qt_ui/windows/newgame/QNewGameWizard.py b/qt_ui/windows/newgame/QNewGameWizard.py index c23753a0..d70549cf 100644 --- a/qt_ui/windows/newgame/QNewGameWizard.py +++ b/qt_ui/windows/newgame/QNewGameWizard.py @@ -123,6 +123,7 @@ class NewGameWizard(QtWidgets.QWizard): swedishmilitaryassetspack=self.field("swedishmilitaryassetspack"), coldwarassets=self.field("coldwarassets"), SWPack=self.field("SWPack"), + vietnamwarvessels=self.field("vietnamwarvessels"), chinesemilitaryassetspack=self.field("chinesemilitaryassetspack"), ) diff --git a/qt_ui/windows/newgame/WizardPages/QGeneratorSettings.py b/qt_ui/windows/newgame/WizardPages/QGeneratorSettings.py index 350fb1c6..1b6e7d8e 100644 --- a/qt_ui/windows/newgame/WizardPages/QGeneratorSettings.py +++ b/qt_ui/windows/newgame/WizardPages/QGeneratorSettings.py @@ -158,6 +158,8 @@ class GeneratorOptions(QtWidgets.QWizardPage): self.registerField("spanishnavypack", self.spanishnavypack) self.irondome = QtWidgets.QCheckBox() self.registerField("irondome", self.irondome) + self.vietnamwarvessels = QtWidgets.QCheckBox() + self.registerField("vietnamwarvessels", self.vietnamwarvessels) self.chinesemilitaryassetspack = QtWidgets.QCheckBox() self.registerField("chinesemilitaryassetspack", self.chinesemilitaryassetspack) @@ -212,6 +214,7 @@ class GeneratorOptions(QtWidgets.QWizardPage): ("Su-57 Felon (build-04)", self.su57_felon), ("Super Étendard (v2.5.5)", self.super_etendard), ("UH-60L Black Hawk (v1.3.1)", self.uh_60l), + ("Vietnam War Vessels (v0.9.0 by TeTeT)", self.vietnamwarvessels), ] for i in range(len(mod_pairs)): @@ -279,6 +282,7 @@ class GeneratorOptions(QtWidgets.QWizardPage): self.swedishmilitaryassetspack.setChecked( s.get("swedishmilitaryassetspack", False) ) + self.vietnamwarvessels.setChecked(s.get("vietnamwarvessels", False)) self.chinesemilitaryassetspack.setChecked( s.get("chinesemilitaryassetspack", False) ) diff --git a/resources/customized_payloads/vwv_a1_skyraider.lua b/resources/customized_payloads/vwv_a1_skyraider.lua new file mode 100644 index 00000000..ea40f194 --- /dev/null +++ b/resources/customized_payloads/vwv_a1_skyraider.lua @@ -0,0 +1,863 @@ +local unitPayloads = { + ["name"]="vwv_a1_skyraider", + ["payloads"]= + { + [1]= + { + ["displayName"]="Retribution BAI", + ["name"]="Retribution BAI", + ["pylons"]= + { + [1]= + { + ["CLSID"]="", + ["num"]=1 + }, + [2]= + { + ["CLSID"]="", + ["num"]=2 + }, + [3]= + { + ["CLSID"]="{A021F29D-18AB-4d3e-985C-FC9C60E35E9E}", + ["num"]=3 + }, + [4]= + { + ["CLSID"]="{BCE4E030-38E9-423E-98ED-24BE3DA87C32}", + ["num"]=5 + }, + [5]= + { + ["CLSID"]="{BCE4E030-38E9-423E-98ED-24BE3DA87C32}", + ["num"]=6 + }, + [6]= + { + ["CLSID"]="", + ["num"]=8 + }, + [7]= + { + ["CLSID"]="{A021F29D-18AB-4d3e-985C-FC9C60E35E9E}", + ["num"]=12 + }, + [8]= + { + ["CLSID"]="", + ["num"]=14 + }, + [9]= + { + ["CLSID"]="{ADD3FAE1-EBF6-4EF9-8EFC-B36B5DDF1E6B}", + ["num"]=7 + }, + [10]= + { + ["CLSID"]="{ADD3FAE1-EBF6-4EF9-8EFC-B36B5DDF1E6B}", + ["num"]=9 + }, + [11]= + { + ["CLSID"]="{A021F29D-18AB-4d3e-985C-FC9C60E35E9E}", + ["num"]=4 + }, + [12]= + { + ["CLSID"]="{BCE4E030-38E9-423E-98ED-24BE3DA87C32}", + ["num"]=10 + }, + [13]= + { + ["CLSID"]="{BCE4E030-38E9-423E-98ED-24BE3DA87C32}", + ["num"]=11 + }, + [14]= + { + ["CLSID"]="{A021F29D-18AB-4d3e-985C-FC9C60E35E9E}", + ["num"]=13 + } + }, + ["tasks"]= + { + [1]=32, + [2]=33 + } + }, + [2]= + { + ["displayName"]="Retribution CAS", + ["name"]="Retribution CAS", + ["pylons"]= + { + [1]= + { + ["CLSID"]="", + ["num"]=1 + }, + [2]= + { + ["CLSID"]="{A021F29D-18AB-4d3e-985C-FC9C60E35E9E}", + ["num"]=2 + }, + [3]= + { + ["CLSID"]="", + ["num"]=3 + }, + [4]= + { + ["CLSID"]="", + ["num"]=5 + }, + [5]= + { + ["CLSID"]="{A021F29D-18AB-4d3e-985C-FC9C60E35E9E}", + ["num"]=6 + }, + [6]= + { + ["CLSID"]="", + ["num"]=8 + }, + [7]= + { + ["CLSID"]="{A021F29D-18AB-4d3e-985C-FC9C60E35E9E}", + ["num"]=12 + }, + [8]= + { + ["CLSID"]="{A021F29D-18AB-4d3e-985C-FC9C60E35E9E}", + ["num"]=14 + }, + [9]= + { + ["CLSID"]="{ADD3FAE1-EBF6-4EF9-8EFC-B36B5DDF1E6B}", + ["num"]=7 + }, + [10]= + { + ["CLSID"]="{ADD3FAE1-EBF6-4EF9-8EFC-B36B5DDF1E6B}", + ["num"]=9 + }, + [11]= + { + ["CLSID"]="{A021F29D-18AB-4d3e-985C-FC9C60E35E9E}", + ["num"]=4 + }, + [12]= + { + ["CLSID"]="{A021F29D-18AB-4d3e-985C-FC9C60E35E9E}", + ["num"]=10 + } + }, + ["tasks"]= + { + [1]=31 + } + }, + [3]= + { + ["displayName"]="Retribution DEAD", + ["name"]="Retribution DEAD", + ["pylons"]= + { + [1]= + { + ["CLSID"]="", + ["num"]=1 + }, + [2]= + { + ["CLSID"]="{A021F29D-18AB-4d3e-985C-FC9C60E35E9E}", + ["num"]=2 + }, + [3]= + { + ["CLSID"]="", + ["num"]=3 + }, + [4]= + { + ["CLSID"]="", + ["num"]=5 + }, + [5]= + { + ["CLSID"]="{A021F29D-18AB-4d3e-985C-FC9C60E35E9E}", + ["num"]=6 + }, + [6]= + { + ["CLSID"]="", + ["num"]=8 + }, + [7]= + { + ["CLSID"]="{A021F29D-18AB-4d3e-985C-FC9C60E35E9E}", + ["num"]=12 + }, + [8]= + { + ["CLSID"]="{A021F29D-18AB-4d3e-985C-FC9C60E35E9E}", + ["num"]=14 + }, + [9]= + { + ["CLSID"]="{ADD3FAE1-EBF6-4EF9-8EFC-B36B5DDF1E6B}", + ["num"]=7 + }, + [10]= + { + ["CLSID"]="{ADD3FAE1-EBF6-4EF9-8EFC-B36B5DDF1E6B}", + ["num"]=9 + }, + [11]= + { + ["CLSID"]="{A021F29D-18AB-4d3e-985C-FC9C60E35E9E}", + ["num"]=4 + }, + [12]= + { + ["CLSID"]="{A021F29D-18AB-4d3e-985C-FC9C60E35E9E}", + ["num"]=10 + } + }, + ["tasks"]= + { + [1]=33 + } + }, + [4]= + { + ["displayName"]="Retribution SEAD", + ["name"]="Retribution SEAD", + ["pylons"]= + { + [1]= + { + ["CLSID"]="", + ["num"]=1 + }, + [2]= + { + ["CLSID"]="{A021F29D-18AB-4d3e-985C-FC9C60E35E9E}", + ["num"]=2 + }, + [3]= + { + ["CLSID"]="", + ["num"]=3 + }, + [4]= + { + ["CLSID"]="", + ["num"]=5 + }, + [5]= + { + ["CLSID"]="{A021F29D-18AB-4d3e-985C-FC9C60E35E9E}", + ["num"]=6 + }, + [6]= + { + ["CLSID"]="", + ["num"]=8 + }, + [7]= + { + ["CLSID"]="{A021F29D-18AB-4d3e-985C-FC9C60E35E9E}", + ["num"]=12 + }, + [8]= + { + ["CLSID"]="{A021F29D-18AB-4d3e-985C-FC9C60E35E9E}", + ["num"]=14 + }, + [9]= + { + ["CLSID"]="", + ["num"]=7 + }, + [10]= + { + ["CLSID"]="", + ["num"]=9 + }, + [11]= + { + ["CLSID"]="{A021F29D-18AB-4d3e-985C-FC9C60E35E9E}", + ["num"]=4 + }, + [12]= + { + ["CLSID"]="{A021F29D-18AB-4d3e-985C-FC9C60E35E9E}", + ["num"]=10 + } + }, + ["tasks"]= + { + [1]=29 + } + }, + [5]= + { + ["displayName"]="Retribution Strike", + ["name"]="Retribution Strike", + ["pylons"]= + { + [1]= + { + ["CLSID"]="", + ["num"]=1 + }, + [2]= + { + ["CLSID"]="", + ["num"]=2 + }, + [3]= + { + ["CLSID"]="", + ["num"]=3 + }, + [4]= + { + ["CLSID"]="{BCE4E030-38E9-423E-98ED-24BE3DA87C32}", + ["num"]=5 + }, + [5]= + { + ["CLSID"]="{BCE4E030-38E9-423E-98ED-24BE3DA87C32}", + ["num"]=6 + }, + [6]= + { + ["CLSID"]="", + ["num"]=8 + }, + [7]= + { + ["CLSID"]="{BCE4E030-38E9-423E-98ED-24BE3DA87C32}", + ["num"]=12 + }, + [8]= + { + ["CLSID"]="", + ["num"]=14 + }, + [9]= + { + ["CLSID"]="{7A44FF09-527C-4B7E-B42B-3F111CFE50FB}", + ["num"]=7 + }, + [10]= + { + ["CLSID"]="{7A44FF09-527C-4B7E-B42B-3F111CFE50FB}", + ["num"]=9 + }, + [11]= + { + ["CLSID"]="{BCE4E030-38E9-423E-98ED-24BE3DA87C32}", + ["num"]=4 + }, + [12]= + { + ["CLSID"]="{BCE4E030-38E9-423E-98ED-24BE3DA87C32}", + ["num"]=10 + }, + [13]= + { + ["CLSID"]="{BCE4E030-38E9-423E-98ED-24BE3DA87C32}", + ["num"]=11 + }, + [14]= + { + ["CLSID"]="", + ["num"]=13 + } + }, + ["tasks"]= + { + [1]=33, + [2]=32 + } + }, + [6]= + { + ["displayName"]="Retribution Strike - Toilet", + ["name"]="Retribution Strike - Toilet", + ["pylons"]= + { + [1]= + { + ["CLSID"]="", + ["num"]=1 + }, + [2]= + { + ["CLSID"]="", + ["num"]=2 + }, + [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"]=6 + }, + [6]= + { + ["CLSID"]="", + ["num"]=8 + }, + [7]= + { + ["CLSID"]="{BCE4E030-38E9-423E-98ED-24BE3DA87C32}", + ["num"]=12 + }, + [8]= + { + ["CLSID"]="", + ["num"]=14 + }, + [9]= + { + ["CLSID"]="{toilet_bomb}", + ["num"]=7 + }, + [10]= + { + ["CLSID"]="{toilet_bomb}", + ["num"]=9 + }, + [11]= + { + ["CLSID"]="{BCE4E030-38E9-423E-98ED-24BE3DA87C32}", + ["num"]=4 + }, + [12]= + { + ["CLSID"]="{BCE4E030-38E9-423E-98ED-24BE3DA87C32}", + ["num"]=10 + }, + [13]= + { + ["CLSID"]="{BCE4E030-38E9-423E-98ED-24BE3DA87C32}", + ["num"]=11 + }, + [14]= + { + ["CLSID"]="{BCE4E030-38E9-423E-98ED-24BE3DA87C32}", + ["num"]=13 + } + }, + ["tasks"]= + { + [1]=33, + [2]=32 + } + }, + [7]= + { + ["displayName"]="Retribution Anti-ship", + ["name"]="Retribution Anti-ship", + ["pylons"]= + { + [1]= + { + ["CLSID"]="", + ["num"]=1 + }, + [2]= + { + ["CLSID"]="", + ["num"]=2 + }, + [3]= + { + ["CLSID"]="", + ["num"]=3 + }, + [4]= + { + ["CLSID"]="", + ["num"]=5 + }, + [5]= + { + ["CLSID"]="", + ["num"]=6 + }, + [6]= + { + ["CLSID"]="", + ["num"]=8 + }, + [7]= + { + ["CLSID"]="", + ["num"]=12 + }, + [8]= + { + ["CLSID"]="", + ["num"]=14 + }, + [9]= + { + ["CLSID"]="{LTF_5B}", + ["num"]=7 + }, + [10]= + { + ["CLSID"]="{LTF_5B}", + ["num"]=9 + }, + [11]= + { + ["CLSID"]="", + ["num"]=4 + }, + [12]= + { + ["CLSID"]="", + ["num"]=10 + } + }, + ["tasks"]= + { + [1]=30 + } + }, + [8]= + { + ["displayName"]="Retribution OCA/Aircraft", + ["name"]="Retribution OCA/Aircraft", + ["pylons"]= + { + [1]= + { + ["CLSID"]="", + ["num"]=1 + }, + [2]= + { + ["CLSID"]="{A021F29D-18AB-4d3e-985C-FC9C60E35E9E}", + ["num"]=2 + }, + [3]= + { + ["CLSID"]="", + ["num"]=3 + }, + [4]= + { + ["CLSID"]="", + ["num"]=5 + }, + [5]= + { + ["CLSID"]="{A021F29D-18AB-4d3e-985C-FC9C60E35E9E}", + ["num"]=6 + }, + [6]= + { + ["CLSID"]="", + ["num"]=8 + }, + [7]= + { + ["CLSID"]="{A021F29D-18AB-4d3e-985C-FC9C60E35E9E}", + ["num"]=12 + }, + [8]= + { + ["CLSID"]="{A021F29D-18AB-4d3e-985C-FC9C60E35E9E}", + ["num"]=14 + }, + [9]= + { + ["CLSID"]="{ADD3FAE1-EBF6-4EF9-8EFC-B36B5DDF1E6B}", + ["num"]=7 + }, + [10]= + { + ["CLSID"]="{ADD3FAE1-EBF6-4EF9-8EFC-B36B5DDF1E6B}", + ["num"]=9 + }, + [11]= + { + ["CLSID"]="{A021F29D-18AB-4d3e-985C-FC9C60E35E9E}", + ["num"]=4 + }, + [12]= + { + ["CLSID"]="{A021F29D-18AB-4d3e-985C-FC9C60E35E9E}", + ["num"]=10 + } + }, + ["tasks"]= + { + [1]=32, + [2]=33 + } + }, + [9]= + { + ["displayName"]="Retribution OCA/Runway", + ["name"]="Retribution OCA/Runway", + ["pylons"]= + { + [1]= + { + ["CLSID"]="", + ["num"]=1 + }, + [2]= + { + ["CLSID"]="", + ["num"]=2 + }, + [3]= + { + ["CLSID"]="", + ["num"]=3 + }, + [4]= + { + ["CLSID"]="{BCE4E030-38E9-423E-98ED-24BE3DA87C32}", + ["num"]=5 + }, + [5]= + { + ["CLSID"]="{BCE4E030-38E9-423E-98ED-24BE3DA87C32}", + ["num"]=6 + }, + [6]= + { + ["CLSID"]="", + ["num"]=8 + }, + [7]= + { + ["CLSID"]="{BCE4E030-38E9-423E-98ED-24BE3DA87C32}", + ["num"]=12 + }, + [8]= + { + ["CLSID"]="", + ["num"]=14 + }, + [9]= + { + ["CLSID"]="{7A44FF09-527C-4B7E-B42B-3F111CFE50FB}", + ["num"]=7 + }, + [10]= + { + ["CLSID"]="{7A44FF09-527C-4B7E-B42B-3F111CFE50FB}", + ["num"]=9 + }, + [11]= + { + ["CLSID"]="{BCE4E030-38E9-423E-98ED-24BE3DA87C32}", + ["num"]=4 + }, + [12]= + { + ["CLSID"]="{BCE4E030-38E9-423E-98ED-24BE3DA87C32}", + ["num"]=10 + }, + [13]= + { + ["CLSID"]="{BCE4E030-38E9-423E-98ED-24BE3DA87C32}", + ["num"]=11 + }, + [14]= + { + ["CLSID"]="", + ["num"]=13 + } + }, + ["tasks"]= + { + [1]=34 + } + }, + [10]= + { + ["displayName"]="Retribution SEAD Sweep", + ["name"]="Retribution SEAD Sweep", + ["pylons"]= + { + [1]= + { + ["CLSID"]="", + ["num"]=1 + }, + [2]= + { + ["CLSID"]="{A021F29D-18AB-4d3e-985C-FC9C60E35E9E}", + ["num"]=2 + }, + [3]= + { + ["CLSID"]="", + ["num"]=3 + }, + [4]= + { + ["CLSID"]="", + ["num"]=5 + }, + [5]= + { + ["CLSID"]="{A021F29D-18AB-4d3e-985C-FC9C60E35E9E}", + ["num"]=6 + }, + [6]= + { + ["CLSID"]="", + ["num"]=8 + }, + [7]= + { + ["CLSID"]="{A021F29D-18AB-4d3e-985C-FC9C60E35E9E}", + ["num"]=12 + }, + [8]= + { + ["CLSID"]="{A021F29D-18AB-4d3e-985C-FC9C60E35E9E}", + ["num"]=14 + }, + [9]= + { + ["CLSID"]="", + ["num"]=7 + }, + [10]= + { + ["CLSID"]="", + ["num"]=9 + }, + [11]= + { + ["CLSID"]="{A021F29D-18AB-4d3e-985C-FC9C60E35E9E}", + ["num"]=4 + }, + [12]= + { + ["CLSID"]="{A021F29D-18AB-4d3e-985C-FC9C60E35E9E}", + ["num"]=10 + } + }, + ["tasks"]= + { + [1]=29 + } + }, + [11]= + { + ["displayName"]="Retribution Armed Recon", + ["name"]="Retribution Armed Recon", + ["pylons"]= + { + [1]= + { + ["CLSID"]="", + ["num"]=1 + }, + [2]= + { + ["CLSID"]="{A021F29D-18AB-4d3e-985C-FC9C60E35E9E}", + ["num"]=2 + }, + [3]= + { + ["CLSID"]="", + ["num"]=3 + }, + [4]= + { + ["CLSID"]="", + ["num"]=5 + }, + [5]= + { + ["CLSID"]="{A021F29D-18AB-4d3e-985C-FC9C60E35E9E}", + ["num"]=6 + }, + [6]= + { + ["CLSID"]="", + ["num"]=8 + }, + [7]= + { + ["CLSID"]="{A021F29D-18AB-4d3e-985C-FC9C60E35E9E}", + ["num"]=12 + }, + [8]= + { + ["CLSID"]="{A021F29D-18AB-4d3e-985C-FC9C60E35E9E}", + ["num"]=14 + }, + [9]= + { + ["CLSID"]="", + ["num"]=7 + }, + [10]= + { + ["CLSID"]="", + ["num"]=9 + }, + [11]= + { + ["CLSID"]="{A021F29D-18AB-4d3e-985C-FC9C60E35E9E}", + ["num"]=4 + }, + [12]= + { + ["CLSID"]="{A021F29D-18AB-4d3e-985C-FC9C60E35E9E}", + ["num"]=10 + } + }, + ["tasks"]= + { + [1]=32, + [2]=33 + } + } + }, + ["unitType"]="vwv_a1_skyraider" +} +return unitPayloads + +-- from task.py -- +-- SEAD: id = 29 +-- CAS: id = 31 +-- GroundAttack: id = 32 +-- PinpointStrike: id = 33 +-- RunwayAttack: id = 34 +-- AntishipStrike: id = 30 +-- CAP: id = 11 +-- Intercept: id = 10 +-- FighterSweep: id = 19 +-- Escort: id = 18 +-- Reconnaissance: id = 17 +-- AFAC: id = 16 +-- AWACS: id = 14 +-- Transport: id = 35 +-- Refueling: id = 13 +-- Nothing: id = 15 \ No newline at end of file diff --git a/resources/customized_payloads/vwv_crusader.lua b/resources/customized_payloads/vwv_crusader.lua new file mode 100644 index 00000000..4d8a838e --- /dev/null +++ b/resources/customized_payloads/vwv_crusader.lua @@ -0,0 +1,255 @@ +-- VWV Crusader payloads (AIM-9D, Drop tanks) do not seem to work (from Retribution) +-- Reverting to AIM-9B +local unitPayloads = { + ["name"]="vwv_crusader", + ["payloads"]= + { + [1]= + { + ["displayName"]="Retribution Strike", + ["name"]="Retribution Strike", + ["pylons"]= + { + [1]= + { + ["CLSID"]="{Mk-82_IMER_4_L}", + ["num"]=1 + }, + [2]= + { + ["CLSID"]="{Mk-82_IMER_4_R}", + ["num"]=6 + }, + [3]= + { + ["CLSID"]="{AIM-9B}", + ["num"]=3 + }, + [4]= + { + ["CLSID"]="{AIM-9B}", + ["num"]=4 + } + }, + ["tasks"]= + { + [1]=32, + [2]=33 + } + }, + [2]= + { + ["displayName"]="Retribution BARCAP", + ["name"]="Retribution BARCAP", + ["pylons"]= + { + [1]= + { + ["CLSID"]="{DFT-150gal}", + ["num"]=1 + }, + [2]= + { + ["CLSID"]="{DFT-150gal}", + ["num"]=6 + }, + [3]= + { + ["CLSID"]="{AIM-9B}", + ["num"]=3 + }, + [4]= + { + ["CLSID"]="{AIM-9B}", + ["num"]=4 + }, + [5]= + { + ["CLSID"]="{AIM-9B}", + ["num"]=2 + }, + [6]= + { + ["CLSID"]="{AIM-9B}", + ["num"]=5 + } + }, + ["tasks"]= + { + [1]=11, + [2]=10 + } + }, + [3]= + { + ["displayName"]="Retribution TARCAP", + ["name"]="Retribution TARCAP", + ["pylons"]= + { + [1]= + { + ["CLSID"]="{DFT-150gal}", + ["num"]=1 + }, + [2]= + { + ["CLSID"]="{DFT-150gal}", + ["num"]=6 + }, + [3]= + { + ["CLSID"]="{AIM-9B}", + ["num"]=3 + }, + [4]= + { + ["CLSID"]="{AIM-9B}", + ["num"]=4 + }, + [5]= + { + ["CLSID"]="{AIM-9B}", + ["num"]=2 + }, + [6]= + { + ["CLSID"]="{AIM-9B}", + ["num"]=5 + } + }, + ["tasks"]= + { + [1]=11 + } + }, + [4]= + { + ["displayName"]="Retribution Escort", + ["name"]="Retribution Escort", + ["pylons"]= + { + [1]= + { + ["CLSID"]="{DFT-150gal}", + ["num"]=1 + }, + [2]= + { + ["CLSID"]="{DFT-150gal}", + ["num"]=6 + }, + [3]= + { + ["CLSID"]="{AIM-9B}", + ["num"]=3 + }, + [4]= + { + ["CLSID"]="{AIM-9B}", + ["num"]=4 + }, + [5]= + { + ["CLSID"]="{AIM-9B}", + ["num"]=2 + }, + [6]= + { + ["CLSID"]="{AIM-9B}", + ["num"]=5 + } + }, + ["tasks"]= + { + [1]=18 + } + }, + [5]= + { + ["displayName"]="Retribution Fighter sweep", + ["name"]="Retribution Fighter sweep", + ["pylons"]= + { + [1]= + { + ["CLSID"]="{DFT-150gal}", + ["num"]=1 + }, + [2]= + { + ["CLSID"]="{DFT-150gal}", + ["num"]=6 + }, + [3]= + { + ["CLSID"]="{AIM-9B}", + ["num"]=3 + }, + [4]= + { + ["CLSID"]="{AIM-9B}", + ["num"]=4 + }, + [5]= + { + ["CLSID"]="{AIM-9B}", + ["num"]=2 + }, + [6]= + { + ["CLSID"]="{AIM-9B}", + ["num"]=5 + } + }, + ["tasks"]= + { + [1]=19 + } + }, + [6]= + { + ["displayName"]="Retribution Armed Recon", + ["name"]="Retribution Armed Recon", + ["pylons"]= + { + [1]= + { + ["CLSID"]="{DFT-150gal}", + ["num"]=1 + }, + [2]= + { + ["CLSID"]="{DFT-150gal}", + ["num"]=6 + }, + [3]= + { + ["CLSID"]="{AIM-9B}", + ["num"]=3 + }, + [4]= + { + ["CLSID"]="{AIM-9B}", + ["num"]=4 + }, + [5]= + { + ["CLSID"]="{AIM-9B}", + ["num"]=2 + }, + [6]= + { + ["CLSID"]="{AIM-9B}", + ["num"]=5 + } + }, + ["tasks"]= + { + [1]=11, + [2]=10 + } + } + }, + ["unitType"]="vwv_crusader" +} +return unitPayloads \ No newline at end of file diff --git a/resources/customized_payloads/vwv_hh2d.lua b/resources/customized_payloads/vwv_hh2d.lua new file mode 100644 index 00000000..0d74f7f0 --- /dev/null +++ b/resources/customized_payloads/vwv_hh2d.lua @@ -0,0 +1,20 @@ +local unitPayloads = { + ["name"]="vwv_hh2d", + ["payloads"]= + { + [1]= + { + ["displayName"]="Retribution Transport", + ["name"]="Retribution Transport", + ["pylons"]= + { + }, + ["tasks"]= + { + [1]=35 + } + } + }, + ["unitType"]="vwv_hh2d" +} +return unitPayloads \ No newline at end of file diff --git a/resources/customized_payloads/vwv_mig17f.lua b/resources/customized_payloads/vwv_mig17f.lua new file mode 100644 index 00000000..5fefc60e --- /dev/null +++ b/resources/customized_payloads/vwv_mig17f.lua @@ -0,0 +1,206 @@ +local unitPayloads = { + ["name"]="vwv_mig17f", + ["payloads"]= + { + [1]= + { + ["displayName"]="Retribution BARCAP", + ["name"]="Retribution BARCAP", + ["pylons"]= + { + [1]= + { + ["CLSID"]="PTB400_MIG15", + ["num"]=3 + }, + [2]= + { + ["CLSID"]="PTB400_MIG15", + ["num"]=4 + } + }, + ["tasks"]= + { + [1]=11, + [2]=10 + } + }, + [2]= + { + ["displayName"]="Retribution Strike", + ["name"]="Retribution Strike", + ["pylons"]= + { + [1]= + { + ["CLSID"]="{3C612111-C7AD-476E-8A8E-2485812F4E5C}", + ["num"]=1 + }, + [2]= + { + ["CLSID"]="{3C612111-C7AD-476E-8A8E-2485812F4E5C}", + ["num"]=2 + } + }, + ["tasks"]= + { + [1]=32, + [2]=33 + } + }, + [3]= + { + ["displayName"]="Retribution CAS", + ["name"]="Retribution CAS", + ["pylons"]= + { + [1]= + { + ["CLSID"]="B-8M1 - 20 S-8OFP2", + ["num"]=1 + }, + [2]= + { + ["CLSID"]="B-8M1 - 20 S-8OFP2", + ["num"]=2 + } + }, + ["tasks"]= + { + [1]=31 + } + }, + [4]= + { + ["displayName"]="Retribution BAI", + ["name"]="Retribution BAI", + ["pylons"]= + { + [1]= + { + ["CLSID"]="B-8M1 - 20 S-8OFP2", + ["num"]=1 + }, + [2]= + { + ["CLSID"]="B-8M1 - 20 S-8OFP2", + ["num"]=2 + } + }, + ["tasks"]= + { + [1]=32, + [2]=33 + } + }, + [5]= + { + ["displayName"]="Retribution TARCAP", + ["name"]="Retribution TARCAP", + ["pylons"]= + { + [1]= + { + ["CLSID"]="PTB400_MIG15", + ["num"]=3 + }, + [2]= + { + ["CLSID"]="PTB400_MIG15", + ["num"]=4 + } + }, + ["tasks"]= + { + [1]=11 + } + }, + [6]= + { + ["displayName"]="Retribution Escort", + ["name"]="Retribution Escort", + ["pylons"]= + { + [1]= + { + ["CLSID"]="PTB400_MIG15", + ["num"]=3 + }, + [2]= + { + ["CLSID"]="PTB400_MIG15", + ["num"]=4 + } + }, + ["tasks"]= + { + [1]=18 + } + }, + [7]= + { + ["displayName"]="Retribution Fighter sweep", + ["name"]="Retribution Fighter sweep", + ["pylons"]= + { + [1]= + { + ["CLSID"]="PTB400_MIG15", + ["num"]=3 + }, + [2]= + { + ["CLSID"]="PTB400_MIG15", + ["num"]=4 + } + }, + ["tasks"]= + { + [1]=19 + } + }, + [8]= + { + ["displayName"]="Retribution Armed Recon", + ["name"]="Retribution Armed Recon", + ["pylons"]= + { + [1]= + { + ["CLSID"]="PTB400_MIG15", + ["num"]=3 + }, + [2]= + { + ["CLSID"]="PTB400_MIG15", + ["num"]=4 + } + }, + ["tasks"]= + { + [1]=11, + [2]=10 + } + } + }, + ["unitType"]="vwv_mig17f" +} +return unitPayloads +-- +-- from task.py -- +-- SEAD: id = 29 +-- CAS: id = 31 +-- GroundAttack: id = 32 +-- PinpointStrike: id = 33 +-- RunwayAttack: id = 34 +-- AntishipStrike: id = 30 +-- CAP: id = 11 +-- Intercept: id = 10 +-- FighterSweep: id = 19 +-- Escort: id = 18 +-- Reconnaissance: id = 17 +-- AFAC: id = 16 +-- AWACS: id = 14 +-- Transport: id = 35 +-- Refueling: id = 13 +-- Nothing: id = 15 \ No newline at end of file diff --git a/resources/customized_payloads/vwv_mig21mf.lua b/resources/customized_payloads/vwv_mig21mf.lua new file mode 100644 index 00000000..b9e2d754 --- /dev/null +++ b/resources/customized_payloads/vwv_mig21mf.lua @@ -0,0 +1,286 @@ +local unitPayloads = { + ["name"]="vwv_mig21mf", + ["payloads"]= + { + [1]= + { + ["displayName"]="Retribution BARCAP", + ["name"]="Retribution BARCAP", + ["pylons"]= + { + [1]= + { + ["CLSID"]="{R-3S}", + ["num"]=1 + }, + [2]= + { + ["CLSID"]="{R-3S}", + ["num"]=2 + }, + [3]= + { + ["CLSID"]="{R-3S}", + ["num"]=3 + }, + [4]= + { + ["CLSID"]="{R-3S}", + ["num"]=4 + } + }, + ["tasks"]= + { + [1]=11, + [2]=10 + } + }, + [2]= + { + ["displayName"]="Retribution CAS", + ["name"]="Retribution CAS", + ["pylons"]= + { + [1]= + { + ["CLSID"]="B-8M1 - 20 S-8OFP2", + ["num"]=1 + }, + [2]= + { + ["CLSID"]="B-8M1 - 20 S-8OFP2", + ["num"]=2 + }, + [3]= + { + ["CLSID"]="B-8M1 - 20 S-8OFP2", + ["num"]=3 + }, + [4]= + { + ["CLSID"]="B-8M1 - 20 S-8OFP2", + ["num"]=4 + } + }, + ["tasks"]= + { + [1]=31 + } + }, + [3]= + { + ["displayName"]="Retribution Strike", + ["name"]="Retribution Strike", + ["pylons"]= + { + [1]= + { + ["CLSID"]="{3C612111-C7AD-476E-8A8E-2485812F4E5C}", + ["num"]=1 + }, + [2]= + { + ["CLSID"]="{3C612111-C7AD-476E-8A8E-2485812F4E5C}", + ["num"]=2 + }, + [3]= + { + ["CLSID"]="{3C612111-C7AD-476E-8A8E-2485812F4E5C}", + ["num"]=3 + }, + [4]= + { + ["CLSID"]="{3C612111-C7AD-476E-8A8E-2485812F4E5C}", + ["num"]=4 + } + }, + ["tasks"]= + { + [1]=32, + [2]=33 + } + }, + [4]= + { + ["displayName"]="Retribution BAI", + ["name"]="Retribution BAI", + ["pylons"]= + { + [1]= + { + ["CLSID"]="FAB_100M", + ["num"]=1 + }, + [2]= + { + ["CLSID"]="B-8M1 - 20 S-8OFP2", + ["num"]=2 + }, + [3]= + { + ["CLSID"]="B-8M1 - 20 S-8OFP2", + ["num"]=3 + }, + [4]= + { + ["CLSID"]="FAB_100M", + ["num"]=4 + } + }, + ["tasks"]= + { + [1]=32, + [2]=33 + } + }, + [5]= + { + ["displayName"]="Retribution TARCAP", + ["name"]="Retribution TARCAP", + ["pylons"]= + { + [1]= + { + ["CLSID"]="{R-3S}", + ["num"]=1 + }, + [2]= + { + ["CLSID"]="{R-3S}", + ["num"]=2 + }, + [3]= + { + ["CLSID"]="{R-3S}", + ["num"]=3 + }, + [4]= + { + ["CLSID"]="{R-3S}", + ["num"]=4 + } + }, + ["tasks"]= + { + [1]=11 + } + }, + [6]= + { + ["displayName"]="Retribution Escort", + ["name"]="Retribution Escort", + ["pylons"]= + { + [1]= + { + ["CLSID"]="{R-3S}", + ["num"]=1 + }, + [2]= + { + ["CLSID"]="{R-3S}", + ["num"]=2 + }, + [3]= + { + ["CLSID"]="{R-3S}", + ["num"]=3 + }, + [4]= + { + ["CLSID"]="{R-3S}", + ["num"]=4 + } + }, + ["tasks"]= + { + [1]=18 + } + }, + [7]= + { + ["displayName"]="Retribution Fighter sweep", + ["name"]="Retribution Fighter sweep", + ["pylons"]= + { + [1]= + { + ["CLSID"]="{R-3S}", + ["num"]=1 + }, + [2]= + { + ["CLSID"]="{R-3S}", + ["num"]=2 + }, + [3]= + { + ["CLSID"]="{R-3S}", + ["num"]=3 + }, + [4]= + { + ["CLSID"]="{R-3S}", + ["num"]=4 + } + }, + ["tasks"]= + { + [1]=19 + } + }, + [8]= + { + ["displayName"]="Retribution Armed Recon", + ["name"]="Retribution Armed Recon", + ["pylons"]= + { + [1]= + { + ["CLSID"]="{R-3S}", + ["num"]=1 + }, + [2]= + { + ["CLSID"]="{R-3S}", + ["num"]=2 + }, + [3]= + { + ["CLSID"]="{R-3S}", + ["num"]=3 + }, + [4]= + { + ["CLSID"]="{R-3S}", + ["num"]=4 + } + }, + ["tasks"]= + { + [1]=11, + [2]=10 + } + } + }, + ["unitType"]="vwv_mig21mf" +} +return unitPayloads +-- +-- from task.py -- +-- SEAD: id = 29 +-- CAS: id = 31 +-- GroundAttack: id = 32 +-- PinpointStrike: id = 33 +-- RunwayAttack: id = 34 +-- AntishipStrike: id = 30 +-- CAP: id = 11 +-- Intercept: id = 10 +-- FighterSweep: id = 19 +-- Escort: id = 18 +-- Reconnaissance: id = 17 +-- AFAC: id = 16 +-- AWACS: id = 14 +-- Transport: id = 35 +-- Refueling: id = 13 +-- Nothing: id = 15 \ No newline at end of file diff --git a/resources/customized_payloads/vwv_o-1.lua b/resources/customized_payloads/vwv_o-1.lua new file mode 100644 index 00000000..0eeb7712 --- /dev/null +++ b/resources/customized_payloads/vwv_o-1.lua @@ -0,0 +1,139 @@ +local unitPayloads = { + ["name"]="vwv_o-1", + ["payloads"]= + { + [1]= + { + ["displayName"]="Retribution CAS", + ["name"]="Retribution CAS", + ["pylons"]= + { + [1]= + { + ["CLSID"]="{LAU68_FFAR_MK5HEAT}", + ["num"]=1 + }, + [2]= + { + ["CLSID"]="{LAU68_FFAR_MK5HEAT}", + ["num"]=4 + }, + [3]= + { + ["CLSID"]="{3xM8_ROCKETS_IN_TUBES}", + ["num"]=2 + }, + [4]= + { + ["CLSID"]="{3xM8_ROCKETS_IN_TUBES}", + ["num"]=3 + } + }, + ["tasks"]= + { + [1]=31 + } + }, + [2]= + { + ["displayName"]="Retribution BAI", + ["name"]="Retribution BAI", + ["pylons"]= + { + [1]= + { + ["CLSID"]="{LAU68_FFAR_MK5HEAT}", + ["num"]=1 + }, + [2]= + { + ["CLSID"]="{LAU68_FFAR_MK5HEAT}", + ["num"]=4 + }, + [3]= + { + ["CLSID"]="{3xM8_ROCKETS_IN_TUBES}", + ["num"]=2 + }, + [4]= + { + ["CLSID"]="{3xM8_ROCKETS_IN_TUBES}", + ["num"]=3 + } + }, + ["tasks"]= + { + [1]=32, + [2]=33 + } + }, + [3]= + { + ["displayName"]="Retribution Strike", + ["name"]="Retribution Strike", + ["pylons"]= + { + [1]= + { + ["CLSID"]="{LAU68_FFAR_MK5HEAT}", + ["num"]=1 + }, + [2]= + { + ["CLSID"]="{LAU68_FFAR_MK5HEAT}", + ["num"]=4 + }, + [3]= + { + ["CLSID"]="{3xM8_ROCKETS_IN_TUBES}", + ["num"]=2 + }, + [4]= + { + ["CLSID"]="{3xM8_ROCKETS_IN_TUBES}", + ["num"]=3 + } + }, + ["tasks"]= + { + [1]=32, + [2]=33 + } + }, + [4]= + { + ["displayName"]="Retribution Armed Recon", + ["name"]="Retribution Armed Recon", + ["pylons"]= + { + [1]= + { + ["CLSID"]="{LAU68_FFAR_MK5HEAT}", + ["num"]=1 + }, + [2]= + { + ["CLSID"]="{LAU68_FFAR_MK5HEAT}", + ["num"]=4 + }, + [3]= + { + ["CLSID"]="{3xM8_ROCKETS_IN_TUBES}", + ["num"]=2 + }, + [4]= + { + ["CLSID"]="{3xM8_ROCKETS_IN_TUBES}", + ["num"]=3 + } + }, + ["tasks"]= + { + [1]=32, + [2]=33 + } + } + }, + ["unitType"]="vwv_o-1" +} +return unitPayloads \ No newline at end of file diff --git a/resources/customized_payloads/vwv_ra-5.lua b/resources/customized_payloads/vwv_ra-5.lua new file mode 100644 index 00000000..8eed786b --- /dev/null +++ b/resources/customized_payloads/vwv_ra-5.lua @@ -0,0 +1,46 @@ +local unitPayloads = { + ["name"]="vwv_ra-5", + ["payloads"]= + { + [1]= + { + ["displayName"]="Retribution Armed Recon", + ["name"]="Retribution Armed Recon", + ["pylons"]= + { + }, + ["tasks"]= + { + [1]=17 + } + }, + [2]= + { + ["displayName"]="Retribution Strike", + ["name"]="Retribution Strike", + ["pylons"]= + { + }, + ["tasks"]= + { + [1]=31, + [2]=32, + [3]=33 + } + }, + [3]= + { + ["displayName"]="Retribution Intercept", + ["name"]="Retribution Intercept", + ["pylons"]= + { + }, + ["tasks"]= + { + [1]=10 + } + } + }, + ["unitType"]="vwv_ra-5" +} +return unitPayloads \ No newline at end of file diff --git a/resources/customized_payloads/vwv_sh2f.lua b/resources/customized_payloads/vwv_sh2f.lua new file mode 100644 index 00000000..c498b2db --- /dev/null +++ b/resources/customized_payloads/vwv_sh2f.lua @@ -0,0 +1,42 @@ +local unitPayloads = { + ["name"]="vwv_sh2f", + ["payloads"]= + { + [1]= + { + ["displayName"]="Retribution Air Assault", + ["name"]="Retribution Air Assault", + ["pylons"]= + { + }, + ["tasks"]= + { + [1]=35 + } + }, + [2]= + { + ["displayName"]="Retribution Anti-ship", + ["name"]="Retribution Anti-ship", + ["pylons"]= + { + [1]= + { + ["CLSID"]="DIS_mk46torp", + ["num"]=1 + }, + [2]= + { + ["CLSID"]="DIS_mk46torp", + ["num"]=4 + } + }, + ["tasks"]= + { + [1]=30 + } + } + }, + ["unitType"]="vwv_sh2f" +} +return unitPayloads \ No newline at end of file diff --git a/resources/factions/USA 1970 Vietnam War.json b/resources/factions/USA 1970 Vietnam War.json index 77edbce4..6f7f49d7 100644 --- a/resources/factions/USA 1970 Vietnam War.json +++ b/resources/factions/USA 1970 Vietnam War.json @@ -29,7 +29,13 @@ "F-105D Thunderchief", "F-105G Thunderchief", "B-52H Stratofortress", - "S-3B Viking" + "S-3B Viking", + "A-1H Skyraider", + "F-8E Crusader", + "O-1E Bird Dog", + "RA-5C Vigilante", + "SH-2F Seasprite", + "HH-2D Seasprite" ], "awacs": [ "E-2C Hawkeye" @@ -64,16 +70,22 @@ "M48 Chaparral" ], "missiles": [], - "requirements": {}, "preset_groups": [ "Hawk", "Cold-War-Flak" ], "naval_units": [ "DDG Arleigh Burke IIa", - "CV-59 Forrestal" + "CVA-31 Bon Homme Richard", + "CV-59 Forrestal", + "USS Allen M. Sumner (DD-692)", + "USS Fletcher FRAM II Destroyer", + "USS Laffey (DD-724)", + "USS Maddox (DD-731)", + "USS The Sullivans (DD-537)" ], "carrier_names": [ + "CVA-31 Bon Homme Richard", "CV-59 USS Forrestal", "CV-61 USS Ranger", "CV-60 USS Saratoga", @@ -81,6 +93,10 @@ ], "has_jtac": true, "jtac_unit": "OV-10A Bronco", + "requirements": { + "OV-10A Bronco": "https://forum.dcs.world/topic/307951-ov-10a-bronco-mod-by-split-air-teamand-more/", + "Vietnam War Vessels (v0.9.0)": "https://forum.dcs.world/topic/338387-tetets-vietnam-war-vessels/" + }, "doctrine": "coldwar", "liveries_overrides": { "CH-47D": [ diff --git a/resources/factions/nva_1970.json b/resources/factions/nva_1970.json index de0ed21a..66ed2e3e 100644 --- a/resources/factions/nva_1970.json +++ b/resources/factions/nva_1970.json @@ -8,7 +8,9 @@ ], "aircrafts": [ "Mi-8MTV2 Hip", + "MiG-17F Fresco-C", "MiG-19P Farmer-B", + "MiG-21MF Fishbed-J", "MiG-21bis Fishbed-N" ], "awacs": [], @@ -51,8 +53,8 @@ "ZSU-23-4 Shilka" ], "requirements": { - "WW2 Asset Pack": "https://www.digitalcombatsimulator.com/en/products/other/wwii_assets_pack/" + "WW2 Asset Pack": "https://www.digitalcombatsimulator.com/en/products/other/wwii_assets_pack/", + "Vietnam War Vessels (v0.9.0)": "https://forum.dcs.world/topic/338387-tetets-vietnam-war-vessels/" }, - "requirements": {}, "doctrine": "coldwar" } diff --git a/resources/factions/usa_1970.json b/resources/factions/usa_1970.json index cc85bd81..90329520 100644 --- a/resources/factions/usa_1970.json +++ b/resources/factions/usa_1970.json @@ -26,7 +26,13 @@ "OH-58D(R) Kiowa Warrior", "CH-47D", "CH-47F Block I", - "CH-53E" + "CH-53E", + "A-1H Skyraider", + "F-8E Crusader", + "O-1E Bird Dog", + "RA-5C Vigilante", + "SH-2F Seasprite", + "HH-2D Seasprite" ], "awacs": [ "E-2C Hawkeye" @@ -57,7 +63,13 @@ ], "naval_units": [ "FFG Oliver Hazard Perry", - "CV-59 Forrestal" + "CVA-31 Bon Homme Richard", + "CV-59 Forrestal", + "USS Allen M. Sumner (DD-692)", + "USS Fletcher FRAM II Destroyer", + "USS Laffey (DD-724)", + "USS Maddox (DD-731)", + "USS The Sullivans (DD-537)" ], "air_defense_units": [ "SAM Hawk SR (AN/MPQ-50)", @@ -65,11 +77,14 @@ "M48 Chaparral" ], "carrier_names": [ + "CVA-31 Bon Homme Richard", "CV-59 Forrestal", "CV-60 Saratoga", "CV-61 Ranger", "CV-62 Independence" ], - "requirements": {}, + "requirements": { + "Vietnam War Vessels (v0.9.0)": "https://forum.dcs.world/topic/338387-tetets-vietnam-war-vessels/" + }, "doctrine": "coldwar" } \ No newline at end of file diff --git a/resources/factions/vietnam_1970.json b/resources/factions/vietnam_1970.json index 0955ecbe..1334c6ca 100644 --- a/resources/factions/vietnam_1970.json +++ b/resources/factions/vietnam_1970.json @@ -5,8 +5,10 @@ "description": "

North Vietnamese armed forces as of 1970.

", "aircrafts": [ "MiG-15bis Fagot", + "MiG-17F Fresco-C", "MiG-19P Farmer-B", "MiG-21bis Fishbed-N", + "MiG-21MF Fishbed-J", "Mi-8MTV2 Hip", "An-26B", "An-30M" @@ -59,6 +61,9 @@ "P258 Leeds Castle", "LST Mk.II" ], + "requirements": { + "Vietnam War Vessels (v0.9.0)": "https://forum.dcs.world/topic/338387-tetets-vietnam-war-vessels/" + }, "doctrine": "coldwar", "liveries_overrides": { "MiG-15bis Fagot": [ diff --git a/resources/ui/units/aircrafts/banners/vwv_a1_skyraider.jpg b/resources/ui/units/aircrafts/banners/vwv_a1_skyraider.jpg new file mode 100644 index 00000000..cc2bc794 Binary files /dev/null and b/resources/ui/units/aircrafts/banners/vwv_a1_skyraider.jpg differ diff --git a/resources/ui/units/aircrafts/banners/vwv_crusader.jpg b/resources/ui/units/aircrafts/banners/vwv_crusader.jpg new file mode 100644 index 00000000..d33b302f Binary files /dev/null and b/resources/ui/units/aircrafts/banners/vwv_crusader.jpg differ diff --git a/resources/ui/units/aircrafts/banners/vwv_hh2d.jpg b/resources/ui/units/aircrafts/banners/vwv_hh2d.jpg new file mode 100644 index 00000000..cf3a3f98 Binary files /dev/null and b/resources/ui/units/aircrafts/banners/vwv_hh2d.jpg differ diff --git a/resources/ui/units/aircrafts/banners/vwv_mig17f.jpg b/resources/ui/units/aircrafts/banners/vwv_mig17f.jpg new file mode 100644 index 00000000..86fdf434 Binary files /dev/null and b/resources/ui/units/aircrafts/banners/vwv_mig17f.jpg differ diff --git a/resources/ui/units/aircrafts/banners/vwv_mig21mf.jpg b/resources/ui/units/aircrafts/banners/vwv_mig21mf.jpg new file mode 100644 index 00000000..54567702 Binary files /dev/null and b/resources/ui/units/aircrafts/banners/vwv_mig21mf.jpg differ diff --git a/resources/ui/units/aircrafts/banners/vwv_o-1.jpg b/resources/ui/units/aircrafts/banners/vwv_o-1.jpg new file mode 100644 index 00000000..4fab0a16 Binary files /dev/null and b/resources/ui/units/aircrafts/banners/vwv_o-1.jpg differ diff --git a/resources/ui/units/aircrafts/banners/vwv_ra-5.jpg b/resources/ui/units/aircrafts/banners/vwv_ra-5.jpg new file mode 100644 index 00000000..cac5cf60 Binary files /dev/null and b/resources/ui/units/aircrafts/banners/vwv_ra-5.jpg differ diff --git a/resources/ui/units/aircrafts/banners/vwv_sh2f.jpg b/resources/ui/units/aircrafts/banners/vwv_sh2f.jpg new file mode 100644 index 00000000..cfeaa62f Binary files /dev/null and b/resources/ui/units/aircrafts/banners/vwv_sh2f.jpg differ diff --git a/resources/ui/units/aircrafts/icons/vwv_a1_skyraider_24.jpg b/resources/ui/units/aircrafts/icons/vwv_a1_skyraider_24.jpg new file mode 100644 index 00000000..936c169d Binary files /dev/null and b/resources/ui/units/aircrafts/icons/vwv_a1_skyraider_24.jpg differ diff --git a/resources/ui/units/aircrafts/icons/vwv_crusader_24.jpg b/resources/ui/units/aircrafts/icons/vwv_crusader_24.jpg new file mode 100644 index 00000000..1c1cbb1a Binary files /dev/null and b/resources/ui/units/aircrafts/icons/vwv_crusader_24.jpg differ diff --git a/resources/ui/units/aircrafts/icons/vwv_hh2d_24.jpg b/resources/ui/units/aircrafts/icons/vwv_hh2d_24.jpg new file mode 100644 index 00000000..b5c47056 Binary files /dev/null and b/resources/ui/units/aircrafts/icons/vwv_hh2d_24.jpg differ diff --git a/resources/ui/units/aircrafts/icons/vwv_mig17f_24.jpg b/resources/ui/units/aircrafts/icons/vwv_mig17f_24.jpg new file mode 100644 index 00000000..0fdd2cd7 Binary files /dev/null and b/resources/ui/units/aircrafts/icons/vwv_mig17f_24.jpg differ diff --git a/resources/ui/units/aircrafts/icons/vwv_mig21mf_24.jpg b/resources/ui/units/aircrafts/icons/vwv_mig21mf_24.jpg new file mode 100644 index 00000000..682f7e68 Binary files /dev/null and b/resources/ui/units/aircrafts/icons/vwv_mig21mf_24.jpg differ diff --git a/resources/ui/units/aircrafts/icons/vwv_o-1_24.jpg b/resources/ui/units/aircrafts/icons/vwv_o-1_24.jpg new file mode 100644 index 00000000..6cd2b15c Binary files /dev/null and b/resources/ui/units/aircrafts/icons/vwv_o-1_24.jpg differ diff --git a/resources/ui/units/aircrafts/icons/vwv_ra-5_24.jpg b/resources/ui/units/aircrafts/icons/vwv_ra-5_24.jpg new file mode 100644 index 00000000..414fff90 Binary files /dev/null and b/resources/ui/units/aircrafts/icons/vwv_ra-5_24.jpg differ diff --git a/resources/ui/units/aircrafts/icons/vwv_sh2f_24.jpg b/resources/ui/units/aircrafts/icons/vwv_sh2f_24.jpg new file mode 100644 index 00000000..fe05dc52 Binary files /dev/null and b/resources/ui/units/aircrafts/icons/vwv_sh2f_24.jpg differ diff --git a/resources/ui/units/ships/P4.png b/resources/ui/units/ships/P4.png new file mode 100644 index 00000000..fee33751 Binary files /dev/null and b/resources/ui/units/ships/P4.png differ diff --git a/resources/ui/units/ships/PBR_MKII.png b/resources/ui/units/ships/PBR_MKII.png new file mode 100644 index 00000000..cc34374e Binary files /dev/null and b/resources/ui/units/ships/PBR_MKII.png differ diff --git a/resources/ui/units/ships/USS Fletcher.png b/resources/ui/units/ships/USS Fletcher.png new file mode 100644 index 00000000..f9acaf30 Binary files /dev/null and b/resources/ui/units/ships/USS Fletcher.png differ diff --git a/resources/ui/units/ships/USS Laffey.jpg b/resources/ui/units/ships/USS Laffey.jpg new file mode 100644 index 00000000..e3dcab9e Binary files /dev/null and b/resources/ui/units/ships/USS Laffey.jpg differ diff --git a/resources/ui/units/ships/USS Maddox.png b/resources/ui/units/ships/USS Maddox.png new file mode 100644 index 00000000..bb3e4e79 Binary files /dev/null and b/resources/ui/units/ships/USS Maddox.png differ diff --git a/resources/ui/units/ships/USS Sumner.jpg b/resources/ui/units/ships/USS Sumner.jpg new file mode 100644 index 00000000..5042c097 Binary files /dev/null and b/resources/ui/units/ships/USS Sumner.jpg differ diff --git a/resources/ui/units/ships/USS The Sullivans.png b/resources/ui/units/ships/USS The Sullivans.png new file mode 100644 index 00000000..04ed6793 Binary files /dev/null and b/resources/ui/units/ships/USS The Sullivans.png differ diff --git a/resources/ui/units/ships/cva-31.png b/resources/ui/units/ships/cva-31.png new file mode 100644 index 00000000..e529f459 Binary files /dev/null and b/resources/ui/units/ships/cva-31.png differ diff --git a/resources/units/aircraft/vwv_a1_skyraider.yaml b/resources/units/aircraft/vwv_a1_skyraider.yaml new file mode 100644 index 00000000..c1e6b730 --- /dev/null +++ b/resources/units/aircraft/vwv_a1_skyraider.yaml @@ -0,0 +1,30 @@ +carrier_capable: true +description: # from: https://en.wikipedia.org/wiki/Douglas_A-1_Skyraider + The Douglas A-1 Skyraider (formerly designated AD before the 1962 unification of + Navy and Air Force designations) is an American single-seat attack aircraft in service + from 1946 to the early 1980s, which served during the Korean War and Vietnam War. + The Skyraider had an unusually long career, remaining in frontline service well into + the Jet Age (when most piston-engine attack or fighter aircraft were replaced by + jet aircraft); thus becoming known by some as an "anachronism". The aircraft was + nicknamed "Spad", after the French World War I fighter. +introduced: 1946 # original type 1946, A-1H before 1964, USA retired 1973 +manufacturer: Douglas +origin: USA +price: 5 # reference: Skyhawk = 7, Bronco = 4 +role: Carrier-based Attack Aircraft +max_range: 1000 # combat range [nmi] +gunfighter: true +variants: + A-1H Skyraider: {} +tasks: # defined in flighttype.py + Anti-ship: 200 + BAI: 300 + CAS: 300 + SEAD: 100 + SEAD Sweep: 100 + DEAD: 100 + OCA/Aircraft: 200 + OCA/Runway: 200 + Strike: 300 + Armed Recon: 200 + \ No newline at end of file diff --git a/resources/units/aircraft/vwv_crusader.yaml b/resources/units/aircraft/vwv_crusader.yaml new file mode 100644 index 00000000..b5e04bce --- /dev/null +++ b/resources/units/aircraft/vwv_crusader.yaml @@ -0,0 +1,33 @@ +carrier_capable: true +description: # from: https://en.wikipedia.org/wiki/Vought_F-8_Crusader + The Vought F-8 Crusader (originally F8U) is a single-engine, supersonic, + carrier-based air superiority jet aircraft designed and produced by the American + aircraft manufacturer Vought. It was the last American fighter that had guns as + the primary weapon, earning it the title "The Last of the Gunfighters". + On 21 August 1956, U.S. Navy pilot R.W. Windsor attained a top speed of 1,015 mph; + in doing so, the F-8 became the first jet fighter in American service to reach + 1,000 mph. + During March 1957, the F-8 was introduced into regular operations with the US Navy. + In addition to the Navy, the type was also operated by the United States Marine Corps + (replacing the Vought F7U Cutlass), the French Navy, and the Philippine Air Force. + Early on, the type experienced an above-average mishap rate, being somewhat difficult + to pilot. American F-8s saw active combat during the Vietnam War, engaging in multiple + dogfights with MiG-17s of the Vietnam People's Air Force as well as performing ground + attack missions in the theatre. +introduced: 1963 # original type 1957, F-8E before 1964, USA retired 1976 +manufacturer: Vought +origin: USA +price: 9 # reference: Starfighter = 9, Thunderchief = 9 +role: Carrier-based Interceptor +max_range: 394 # combat range without droptanks [nmi] +gunfighter: true +variants: + F-8E Crusader: {} +tasks: # defined in flighttype.py + Strike: 100 + Escort: 300 + Fighter sweep: 300 + Intercept: 400 + TARCAP: 300 + BARCAP: 300 + Armed Recon: 200 diff --git a/resources/units/aircraft/vwv_hh2d.yaml b/resources/units/aircraft/vwv_hh2d.yaml new file mode 100644 index 00000000..f758af57 --- /dev/null +++ b/resources/units/aircraft/vwv_hh2d.yaml @@ -0,0 +1,31 @@ +class: Helicopter +carrier_capable: true +lha_capable: true +description: # from: https://en.wikipedia.org/wiki/Kaman_SH-2_Seasprite + The Kaman SH-2 Seasprite is a ship-based helicopter originally developed and + produced by American manufacturer Kaman Aircraft Corporation. It has been + typically used as a compact and fast-moving rotorcraft for utility and + anti-submarine warfare (ASW) missions. Early on it was modest sized + single-engined naval utility helicopter, and progressed to twin-engine ASW + and SAR, and the latest model served well into the 21st century, with G model + in active service in the 2020s with Egypt, New Zealand, Peru, and Poland. + In October 1970, the UH-2 was selected as the interim Light Airborne + Multi-Purpose System (LAMPS) helicopter. LAMPS evolved during the 1960s from + an urgent requirement to provide non-aviation ships with manned support and + ASW helicopters. The "LAMPS Mark I" suite included advanced sensors, + processors, and display capabilities. H-2s upgraded with LAMPS were called + SH-2Ds, and became mobile radar and sonar platforms that enhanced the + situational awareness of ships. The SH-2D first flew on 16 March 1971. + HH-2D was a search and rescue version. +introduced: 1971 # original type 1962, SH-2D 1971 +cabin_size: 12 # from: https://plane-encyclopedia.com/cold-war/kaman-sh-2f-seasprite/ +can_carry_crates: true +manufacturer: Kaman Aircraft Corporation +origin: USA +price: 4 # reference: UH-1H = 4, UH-60A = 4 +role: Search and Rescue +max_range: 367 # combat range [nmi] +variants: + HH-2D Seasprite: {} +tasks: # defined in flighttype.py + Transport: 100 diff --git a/resources/units/aircraft/vwv_mig17f.yaml b/resources/units/aircraft/vwv_mig17f.yaml new file mode 100644 index 00000000..e58e292b --- /dev/null +++ b/resources/units/aircraft/vwv_mig17f.yaml @@ -0,0 +1,38 @@ +carrier_capable: false +description: # from: https://en.wikipedia.org/wiki/Mikoyan-Gurevich_MiG-17 + The Mikoyan-Gurevich MiG-17 (NATO reporting name Fresco) is a high-subsonic fighter + aircraft produced in the Soviet Union from 1952 and was operated by air forces + internationally. The MiG-17 was license-built in China as the Shenyang J-5 and + Poland as the PZL-Mielec Lim-6. The MiG-17 is still being used by the North Korean + air force in the present day and has seen combat in the Middle East and Asia. + The MiG-17 was an advanced modification of the MiG-15 aircraft produced by the + Soviet Union during the Korean War. Production of the MiG-17 was too late for use + in that conflict and was first used in the Second Taiwan Strait Crisis in 1958. + While the MiG-17 was designed to shoot down slower American bombers, it showed + surprising success when used by North Vietnamese pilots to combat American + fighters and fighter-bombers during the Vietnam War, nearly a decade after its + initial design. This was due to the MiG-17 being more agile and maneuverable than + the American F-4 Phantom and F-105 Thunderchief, which were focused on speed and + long range combat, as well as the fact that MiG-17 was armed with guns, which + initial models of the F-4 Phantom lacked. +introduced: 1953 # original type 1952, MiG-17F 1953, USSR retired ? +manufacturer: Mikoyan-Gurevich +origin: Soviet Union +price: 9 # reference: MiG-15bis = 8, MiG-19P = 10 +role: Interceptor +max_range: 500 # combat range without droptanks [nmi] +gunfighter: true +variants: + MiG-17F Fresco-C: {} +tasks: # defined in flighttype.py + BAI: 100 + CAS: 100 + OCA/Aircraft: 100 + OCA/Runway: 100 + Strike: 100 + Escort: 300 + Fighter sweep: 300 + Intercept: 300 + TARCAP: 300 + BARCAP: 300 + Armed Recon: 200 \ No newline at end of file diff --git a/resources/units/aircraft/vwv_mig21mf.yaml b/resources/units/aircraft/vwv_mig21mf.yaml new file mode 100644 index 00000000..c4516962 --- /dev/null +++ b/resources/units/aircraft/vwv_mig21mf.yaml @@ -0,0 +1,39 @@ +carrier_capable: false +description: # from: https://en.wikipedia.org/wiki/Mikoyan-Gurevich_MiG-21 + The Mikoyan-Gurevich MiG-21 (NATO reporting name Fishbed) is a supersonic jet + fighter and interceptor aircraft, designed by the Mikoyan-Gurevich Design Bureau + in the Soviet Union. Its nicknames include "Balalaika", because its planform + resembles the stringed musical instrument of the same name; "Ołówek", Polish for + "pencil", due to the shape of its fuselage, and "Én Bạc", meaning "silver swallow", + in Vietnamese. + Approximately 60 countries across four continents have flown the MiG-21, and it + still serves many nations seven decades after its maiden flight. It set aviation + records, becoming the most-produced supersonic jet aircraft in aviation history, + the most-produced combat aircraft since the Korean War and, previously, the longest + production run of any combat aircraft. + The MiG-21 jet fighter was a continuation of Soviet jet fighters, starting with the + subsonic MiG-15 and MiG-17, and the supersonic MiG-19. A number of experimental + Mach 2 Soviet designs were based on nose intakes with either swept-back wings, + such as the Sukhoi Su-7, or tailed deltas, of which the MiG-21 would be the + most successful. +introduced: 1959 # original type 1959, MiG-21MF ?, USSR retired ? +manufacturer: Mikoyan-Gurevich +origin: Soviet Union +price: 12 # reference: MiG-21bis = 12 +role: Interceptor +max_range: 200 # combat range without droptanks [nmi] +gunfighter: true +variants: + MiG-21MF Fishbed-J: {} +tasks: # defined in flighttype.py + BAI: 100 + CAS: 100 + OCA/Aircraft: 100 + OCA/Runway: 100 + Strike: 100 + Escort: 300 + Fighter sweep: 300 + Intercept: 400 + TARCAP: 400 + BARCAP: 400 + Armed Recon: 300 \ No newline at end of file diff --git a/resources/units/aircraft/vwv_o-1.yaml b/resources/units/aircraft/vwv_o-1.yaml new file mode 100644 index 00000000..fc525533 --- /dev/null +++ b/resources/units/aircraft/vwv_o-1.yaml @@ -0,0 +1,26 @@ +carrier_capable: false +description: # from: https://en.wikipedia.org/wiki/Cessna_O-1_Bird_Dog + The Cessna O-1 Bird Dog is a liaison and observation aircraft that first flew on + December 14, 1949, and entered service in 1950 as the L-19 in the Korean War. + It went to serve in many branches of the U.S. Armed Forces, was not retired until + the 1970s in a number of variants, and also served in the Vietnam War. It was + also called the OE-1 and OE-2 in Navy service, flying with the Marine Corps, and + in the 1960s it was re-designated the O-1. It remains a civilian-flown warbird + aircraft, and there are examples in aviation museums. It was the first all-metal + fixed-wing aircraft ordered for and by the United States Army following the + Army Air Forces' separation from it in 1947. The Bird Dog had a lengthy career + in the U.S. military as well as in other countries, with over 3400 produced. +introduced: 1950 +manufacturer: Cessna +origin: USA +price: 2 # reference: Bronco = 4 +role: observation aircraft +max_range: 460 # combat range [nmi] +gunfighter: false +variants: + O-1E Bird Dog: {} +tasks: # defined in flighttype.py + BAI: 100 + CAS: 100 + Strike: 100 + Armed Recon: 100 diff --git a/resources/units/aircraft/vwv_ra-5.yaml b/resources/units/aircraft/vwv_ra-5.yaml new file mode 100644 index 00000000..cb139621 --- /dev/null +++ b/resources/units/aircraft/vwv_ra-5.yaml @@ -0,0 +1,37 @@ +carrier_capable: true +description: # from: https://en.wikipedia.org/wiki/North_American_A-5_Vigilante + The North American A-5 Vigilante is an American carrier-based supersonic bomber + designed and built by North American Aviation (NAA) for the United States Navy. + Development of the A-5 had started in 1954 as a private venture by NAA, who sought + to produce a capable supersonic long-distance bomber as a successor to the abortive + North American XA2J Super Savage. It was a large and complex aircraft that + incorporated several innovative features, such as being the first bomber to feature + a digital computer, while its ability to attain speeds of up to Mach 2 while + carrying a nuclear strike payload was also relatively ambitious for the era. + The US Navy saw the value of such a bomber, leading to a contract for its full + development and production being issued to the firm on 29 August 1956. The type + performed its first flight just over two years later, on 31 August 1958. + The Vigilante was introduced by the US Navy during June 1961; it succeeded the + Douglas A-3 Skywarrior as the Navy's primary nuclear strike aircraft, but its + service in this capacity was relatively brief due to the deemphasising of manned + bombers in American nuclear strategy. A far larger quantity of the RA-5C tactical + strike reconnaissance variant were also procured by the service, which saw + extensive service during the Vietnam War. It also established several world records + in both long-distance speed and altitude categories. During the mid-1970s, the + withdrawal of the type commenced after a relatively short service life, largely due + to the aircraft being expensive and complex to operate, as well being a victim of + post-Vietnam military cutbacks. +introduced: 1963 # original type 1961, RA-5C 1963, USA retired 1979 +manufacturer: North American Aviation +origin: USA +price: 15 # reference: +role: Carrier-based Reconnaissance and Tactical Strike +max_range: 1000 # combat range without droptanks [nmi] +gunfighter: false +variants: + RA-5C Vigilante: {} +tasks: # defined in flighttype.py + Armed Recon: 300 + Strike: 1 # current VWV version (v0.9.0) does not have any weapons for Vigilante + Intercept: 1 # current VWV version (v0.9.0) does not have any weapons for Vigilante + CAS: 1 # Retribution wants a fallback task diff --git a/resources/units/aircraft/vwv_sh2f.yaml b/resources/units/aircraft/vwv_sh2f.yaml new file mode 100644 index 00000000..6194e31b --- /dev/null +++ b/resources/units/aircraft/vwv_sh2f.yaml @@ -0,0 +1,32 @@ +class: Helicopter +carrier_capable: true +lha_capable: true +description: # from https://en.wikipedia.org/wiki/Kaman_SH-2_Seasprite + The Kaman SH-2 Seasprite is a ship-based helicopter originally developed and + produced by American manufacturer Kaman Aircraft Corporation. It has been + typically used as a compact and fast-moving rotorcraft for utility and + anti-submarine warfare (ASW) missions. Early on it was modest sized + single-engined naval utility helicopter, and progressed to twin-engine ASW + and SAR, and the latest model served well into the 21st century, with G model + in active service in the 2020s with Egypt, New Zealand, Peru, and Poland. + In the late-1960s, without further orders Kaman decided to terminate production + after completing the USN order of 184 H-2s. However, in 1971, production was + restarted for the improved SH-2F to operate from older frigates. This ability + meant it stayed in service to the end of the century, as even with the + introduction of the newer, larger and overall more capable Sikorsky SH-60 + Sea Hawk which entered service starting in the mid-1980s, but it could not + operate safety from the smaller flight decks like the smaller Seasprite. +introduced: 1973 # original type 1962, SH-2F 1973 +cabin_size: 12 # from: https://plane-encyclopedia.com/cold-war/kaman-sh-2f-seasprite/ +can_carry_crates: true +manufacturer: Kaman Aircraft Corporation +origin: USA +price: 4 # reference: UH-1H = 4, UH-60A = 4 +role: Transport, Anti-Submarine Warfare +max_range: 367 # combat range [nmi] +variants: + SH-2F Seasprite: {} +tasks: # defined in flighttype.py + Anti-ship: 300 + Air Assault: 100 + Transport: 100 diff --git a/resources/units/ships/P4.yaml b/resources/units/ships/P4.yaml new file mode 100644 index 00000000..1390ba4a --- /dev/null +++ b/resources/units/ships/P4.yaml @@ -0,0 +1,4 @@ +class: Boat +price: 0 +variants: + P 4 Torpedo Boat: null \ No newline at end of file diff --git a/resources/units/ships/PBR_MKII.yaml b/resources/units/ships/PBR_MKII.yaml new file mode 100644 index 00000000..1fd58c3b --- /dev/null +++ b/resources/units/ships/PBR_MKII.yaml @@ -0,0 +1,4 @@ +class: Boat +price: 0 +variants: + Patrol Boat, River MkII: null \ No newline at end of file diff --git a/resources/units/ships/USS Fletcher.yaml b/resources/units/ships/USS Fletcher.yaml new file mode 100644 index 00000000..7a660311 --- /dev/null +++ b/resources/units/ships/USS Fletcher.yaml @@ -0,0 +1,4 @@ +class: Destroyer +price: 0 +variants: + USS Fletcher FRAM II Destroyer: null \ No newline at end of file diff --git a/resources/units/ships/USS Laffey.yaml b/resources/units/ships/USS Laffey.yaml new file mode 100644 index 00000000..9a64402d --- /dev/null +++ b/resources/units/ships/USS Laffey.yaml @@ -0,0 +1,4 @@ +class: Destroyer +price: 0 +variants: + USS Laffey (DD-724): null \ No newline at end of file diff --git a/resources/units/ships/USS Maddox.yaml b/resources/units/ships/USS Maddox.yaml new file mode 100644 index 00000000..6751e03b --- /dev/null +++ b/resources/units/ships/USS Maddox.yaml @@ -0,0 +1,4 @@ +class: Destroyer +price: 0 +variants: + USS Maddox (DD-731): null \ No newline at end of file diff --git a/resources/units/ships/USS Sumner.yaml b/resources/units/ships/USS Sumner.yaml new file mode 100644 index 00000000..475fee8f --- /dev/null +++ b/resources/units/ships/USS Sumner.yaml @@ -0,0 +1,4 @@ +class: Destroyer +price: 0 +variants: + USS Allen M. Sumner (DD-692): null \ No newline at end of file diff --git a/resources/units/ships/USS The Sullivans.yaml b/resources/units/ships/USS The Sullivans.yaml new file mode 100644 index 00000000..bbaf726a --- /dev/null +++ b/resources/units/ships/USS The Sullivans.yaml @@ -0,0 +1,4 @@ +class: Destroyer +price: 0 +variants: + USS The Sullivans (DD-537): null \ No newline at end of file diff --git a/resources/units/ships/cva-31.yaml b/resources/units/ships/cva-31.yaml new file mode 100644 index 00000000..6e9228da --- /dev/null +++ b/resources/units/ships/cva-31.yaml @@ -0,0 +1,4 @@ +class: AircraftCarrier +price: 0 +variants: + CVA-31 Bon Homme Richard: null \ No newline at end of file