diff --git a/changelog.md b/changelog.md index 15856865..2235cd6b 100644 --- a/changelog.md +++ b/changelog.md @@ -8,6 +8,8 @@ * **[Squadrons]** Ability to define a livery-set for each squadron from which Retribution will randomly choose during mission generation * **[Modding]** Updated support for F/A-18E/F/G mod version 2.2.5 * **[Modding]** Added VSN F-106 Delta Dart mod support (v2.9.4.101) +* **[Modding]** Added VSN EA-6B Prowler mod support (v2.9.4.102) +* **[Modding]** Added tripod3 Cold War assets mod support (v1.0) * **[Campaign Setup]** Allow adjustments to naval TGOs (except carriers) on turn 0 * **[Campaign Design]** Ability to configure specific carrier names & types in campaign's yaml file * **[Mission Generation]** Ability to inject custom kneeboards diff --git a/game/factions/faction.py b/game/factions/faction.py index 227face3..54fee4c3 100644 --- a/game/factions/faction.py +++ b/game/factions/faction.py @@ -545,6 +545,12 @@ class Faction: self.remove_preset("LvS-103 Rb103A Mobile") self.remove_preset("LvS-103 Rb103B") self.remove_preset("LvS-103 Rb103B Mobile") + if not mod_settings.coldwarassets: + self.remove_aircraft("B_47") + self.remove_aircraft("Tu-4K") + self.remove_aircraft("Tu-16") + self.remove_aircraft("tu_22D") + self.remove_aircraft("tu_22KD") # SWPack if not mod_settings.SWPack: self.remove_aircraft("AWINGA") diff --git a/game/theater/start_generator.py b/game/theater/start_generator.py index ac78996c..d1b512b1 100644 --- a/game/theater/start_generator.py +++ b/game/theater/start_generator.py @@ -96,6 +96,7 @@ class ModSettings: ov10a_bronco: bool = False spanishnavypack: bool = False swedishmilitaryassetspack: bool = False + coldwarassets: bool = False SWPack: bool = False diff --git a/pydcs_extensions/__init__.py b/pydcs_extensions/__init__.py index 97a3235a..08731b9c 100644 --- a/pydcs_extensions/__init__.py +++ b/pydcs_extensions/__init__.py @@ -29,6 +29,7 @@ from .su15 import * from .su30 import * from .su57 import * from .swedishmilitaryassetspack import * +from .coldwarassets import * from .uh60l import * diff --git a/pydcs_extensions/coldwarassets/__init__.py b/pydcs_extensions/coldwarassets/__init__.py new file mode 100644 index 00000000..0193b8d0 --- /dev/null +++ b/pydcs_extensions/coldwarassets/__init__.py @@ -0,0 +1 @@ +from .coldwarassets import * diff --git a/pydcs_extensions/coldwarassets/coldwarassets.py b/pydcs_extensions/coldwarassets/coldwarassets.py new file mode 100644 index 00000000..463212c5 --- /dev/null +++ b/pydcs_extensions/coldwarassets/coldwarassets.py @@ -0,0 +1,374 @@ +# Requires Cold War assets mod (ex Tu-16) v1.0 by tripod3: +# https://forum.dcs.world/topic/350021-cold-war-assets-mod-ex-tu-16-v-10/ +# +from typing import Any, Dict, Set + +from dcs import task +from dcs.planes import PlaneType +from dcs.weapons_data import Weapons + +from game.modsupport import planemod +from pydcs_extensions.weapon_injector import inject_weapons + + +class WeaponsColdWarAssets: + B29_AN_M57_10 = { + "clsid": "B29_AN_M57_10", + "name": "10 x AN-M57 - 250lb GP Bombs LD", + "weight": 1185.462692, + } + B29_AN_M57_20 = { + "clsid": "B29_AN_M57_20", + "name": "20 x AN-M57 - 250lb GP Bombs LD", + "weight": 2370.925384, + } + B29_AN_M64_4 = { + "clsid": "B29_AN_M64_4", + "name": "4 x AN-M64 - 500lb GP Bombs LD", + "weight": 995.52557792, + } + B29_AN_M64_5 = { + "clsid": "B29_AN_M64_5", + "name": "5 x AN-M64 - 500lb GP Bombs LD", + "weight": 1244.4069724, + } + B29_AN_M64_6 = { + "clsid": "B29_AN_M64_6", + "name": "6 x AN-M64 - 500lb GP Bombs LD", + "weight": 1493.28836688, + } + B29_AN_M64_8 = { + "clsid": "B29_AN_M64_8", + "name": "8 x AN-M64 - 500lb GP Bombs LD", + "weight": 1991.05115584, + } + B29_AN_M65_2 = { + "clsid": "B29_AN_M65_2", + "name": "2 x AN-M65 - 1000lb GP Bombs LD", + "weight": 965.243776, + } + B29_AN_M65_3 = { + "clsid": "B29_AN_M65_3", + "name": "3 x AN-M65 - 1000lb GP Bombs LD", + "weight": 1447.865664, + } + B29_AN_M65_4 = { + "clsid": "B29_AN_M65_4", + "name": "4 x AN-M65 - 1000lb GP Bombs LD", + "weight": 1930.487552, + } + B29_AN_M65_6 = { + "clsid": "B29_AN_M65_6", + "name": "6 x AN-M65 - 1000lb GP Bombs LD", + "weight": 2895.731328, + } + B29_AN_M66_1 = { + "clsid": "B29_AN_M66_1", + "name": "1 x AN-M66 - 2000lb GP Bombs LD", + "weight": 958.5306144, + } + B29_AN_M66_2 = { + "clsid": "B29_AN_M66_2", + "name": "2 x AN-M66 - 2000lb GP Bombs LD", + "weight": 1917.0612288, + } + B29_M19_10 = { + "clsid": "B29_M19_10", + "name": "10 x M19 - 38 x AN-M69, 500lb CBU with incendiary submunitions", + "weight": 1973.1252, + } + B29_M19_6 = { + "clsid": "B29_M19_6", + "name": "6 x M19 - 38 x AN-M69, 500lb CBU with incendiary submunitions", + "weight": 1183.87512, + } + FAB_3000_M54 = {"clsid": "{FAB_3000_tu_22}", "name": "FAB-3000 M54", "weight": 9400} + FAB_9000_M54 = {"clsid": "{FAB_9000_tu_22}", "name": "FAB-9000 M54", "weight": 9400} + GAM_63_RASCAL = { + "clsid": "{B_29_RASCALARM}", + "name": "GAM-63 RASCAL", + "weight": 2400, + } + Kh_22MA = {"clsid": "{Tu_22_Kh22PSI}", "name": "Kh-22MA", "weight": 2400} + Kh_22P__Passive_seeker_ = { + "clsid": "{TU_22_KH22P}", + "name": "Kh-22P (Passive seeker)", + "weight": 1450, + } + KSR5P__Passive_seeker_ = { + "clsid": "{TU_16_KSR5ARM}", + "name": "KSR5P (Passive seeker)", + "weight": 1450, + } + KSR_2 = {"clsid": "{TU_16_KSR2}", "name": "KSR-2", "weight": 1160} + KSR_2_086__Passive_seeker_ = { + "clsid": "{TU_16_KSR2ARM}", + "name": "KSR-2.086 (Passive seeker)", + "weight": 1450, + } + KSR_5 = {"clsid": "{TU_16_KSR5}", "name": "KSR-5", "weight": 1450} + KS_1 = {"clsid": "{Tu4_KS_1}", "name": "KS-1", "weight": 1160} + KS_1_late = {"clsid": "{Tu16_KS_1}", "name": "KS-1 late", "weight": 1160} + + +inject_weapons(WeaponsColdWarAssets) + + +@planemod +class B_47(PlaneType): + id = "B_47" + height = 10.36 + width = 33 + length = 34.8 + fuel_max = 25000 + max_speed = 1044 + chaff = 120 + flare = 120 + charge_total = 240 + chaff_charge_size = 1 + flare_charge_size = 1 + eplrs = True + + property_defaults: Dict[str, Any] = {} + + livery_name = "B_47" # from type + + class Pylon1: + GAM_63_RASCAL = (1, WeaponsColdWarAssets.GAM_63_RASCAL) + + pylons: Set[int] = {1} + + tasks = [ + task.AntishipStrike, + task.GroundAttack, + task.PinpointStrike, + task.RunwayAttack, + task.SEAD, + task.CAS, + ] + task_default = task.AntishipStrike + + +@planemod +class Tu_4K(PlaneType): + id = "Tu-4K" + height = 8.46 + width = 43.1 + length = 30.18 + fuel_max = 22371 + max_speed = 558 + radio_frequency = 127.5 + + property_defaults: Dict[str, Any] = { + "Belly_Bay_Door": False, + } + + class Properties: + class Belly_Bay_Door: + id = "Belly Bay Door" + + livery_name = "TU-4K" # from type + + class Pylon1: + KS_1 = (1, WeaponsColdWarAssets.KS_1) + + class Pylon2: + KS_1 = (2, WeaponsColdWarAssets.KS_1) + + pylons: Set[int] = {1, 2} + + tasks = [task.GroundAttack, task.RunwayAttack, task.AntishipStrike] + task_default = task.RunwayAttack + + +@planemod +class Tu_16(PlaneType): + id = "Tu-16" + height = 10.36 + width = 33 + length = 34.8 + fuel_max = 25000 + max_speed = 1044 + chaff = 120 + flare = 120 + charge_total = 240 + chaff_charge_size = 1 + flare_charge_size = 1 + eplrs = True + + property_defaults: Dict[str, Any] = {} + + livery_name = "TU-16" # from type + + class Pylon1: + KS_1_late = (1, WeaponsColdWarAssets.KS_1_late) + KSR_2 = (1, WeaponsColdWarAssets.KSR_2) + KSR_2_086__Passive_seeker_ = ( + 1, + WeaponsColdWarAssets.KSR_2_086__Passive_seeker_, + ) + KSR5P__Passive_seeker_ = (1, WeaponsColdWarAssets.KSR5P__Passive_seeker_) + KSR_5 = (1, WeaponsColdWarAssets.KSR_5) + + class Pylon2: + FAB_3000_M54 = (2, WeaponsColdWarAssets.FAB_3000_M54) + FAB_9000_M54 = (2, WeaponsColdWarAssets.FAB_9000_M54) + + # ERRR + + class Pylon3: + _33_x_FAB_250___250kg_GP_Bombs_LD = ( + 3, + Weapons._33_x_FAB_250___250kg_GP_Bombs_LD, + ) + + # ERRR + + class Pylon4: + KS_1_late = (4, WeaponsColdWarAssets.KS_1_late) + KSR_2 = (4, WeaponsColdWarAssets.KSR_2) + KSR_2_086__Passive_seeker_ = ( + 4, + WeaponsColdWarAssets.KSR_2_086__Passive_seeker_, + ) + KSR5P__Passive_seeker_ = (4, WeaponsColdWarAssets.KSR5P__Passive_seeker_) + KSR_5 = (4, WeaponsColdWarAssets.KSR_5) + + pylons: Set[int] = {1, 2, 3, 4} + + tasks = [ + task.AntishipStrike, + task.GroundAttack, + task.PinpointStrike, + task.RunwayAttack, + task.SEAD, + task.CAS, + ] + task_default = task.AntishipStrike + + +@planemod +class tu_22D(PlaneType): + id = "tu_22D" + height = 10.13 + width = 23.17 + length = 41.6 + fuel_max = 42500 + max_speed = 1509.84 + chaff = 45 + flare = -0 + charge_total = 45 + chaff_charge_size = 1 + flare_charge_size = 1 + + livery_name = "TU_22D" # from type + + class Pylon1: + FAB_3000_M54 = (1, WeaponsColdWarAssets.FAB_3000_M54) + FAB_9000_M54 = (1, WeaponsColdWarAssets.FAB_9000_M54) + _6_x_FAB_1500_M_54___1500kg_GP_Bombs_LD = ( + 1, + Weapons._6_x_FAB_1500_M_54___1500kg_GP_Bombs_LD, + ) + MBD3_U2T_with_2_x_FAB_1500_M_54___1500kg_GP_Bombs_LD = ( + 1, + Weapons.MBD3_U2T_with_2_x_FAB_1500_M_54___1500kg_GP_Bombs_LD, + ) + MBD3_U6_68_with_6_x_FAB_500_M_62___500kg_GP_Bombs_LD = ( + 1, + Weapons.MBD3_U6_68_with_6_x_FAB_500_M_62___500kg_GP_Bombs_LD, + ) + RN_24___470kg__nuclear_bomb__free_fall = ( + 1, + Weapons.RN_24___470kg__nuclear_bomb__free_fall, + ) + RN_28___260_kg__nuclear_bomb__free_fall = ( + 1, + Weapons.RN_28___260_kg__nuclear_bomb__free_fall, + ) + + # ERRR + + class Pylon2: + _33_x_FAB_250___250kg_GP_Bombs_LD = ( + 2, + Weapons._33_x_FAB_250___250kg_GP_Bombs_LD, + ) + + # ERRR + + pylons: Set[int] = {1, 2} + + tasks = [ + task.Reconnaissance, + task.GroundAttack, + task.CAS, + task.RunwayAttack, + task.AntishipStrike, + task.PinpointStrike, + ] + task_default = task.GroundAttack + + +@planemod +class tu_22KD(PlaneType): + id = "tu_22KD" + height = 10.13 + width = 23.17 + length = 41.6 + fuel_max = 42500 + max_speed = 1509.84 + chaff = 45 + flare = -0 + charge_total = 45 + chaff_charge_size = 1 + flare_charge_size = 1 + + livery_name = "TU_22KD" # from type + + class Pylon1: + Kh_22__AS_4_Kitchen____1000kg__AShM__IN__Act_Pas_Rdr = ( + 1, + Weapons.Kh_22__AS_4_Kitchen____1000kg__AShM__IN__Act_Pas_Rdr, + ) + Kh_22MA = (1, WeaponsColdWarAssets.Kh_22MA) + Kh_22P__Passive_seeker_ = (1, WeaponsColdWarAssets.Kh_22P__Passive_seeker_) + + class Pylon2: + FAB_3000_M54 = (2, WeaponsColdWarAssets.FAB_3000_M54) + FAB_9000_M54 = (2, WeaponsColdWarAssets.FAB_9000_M54) + _6_x_FAB_1500_M_54___1500kg_GP_Bombs_LD = ( + 2, + Weapons._6_x_FAB_1500_M_54___1500kg_GP_Bombs_LD, + ) + MBD3_U2T_with_2_x_FAB_1500_M_54___1500kg_GP_Bombs_LD = ( + 2, + Weapons.MBD3_U2T_with_2_x_FAB_1500_M_54___1500kg_GP_Bombs_LD, + ) + MBD3_U6_68_with_6_x_FAB_500_M_62___500kg_GP_Bombs_LD = ( + 2, + Weapons.MBD3_U6_68_with_6_x_FAB_500_M_62___500kg_GP_Bombs_LD, + ) + + # ERRR + + class Pylon3: + _33_x_FAB_250___250kg_GP_Bombs_LD = ( + 3, + Weapons._33_x_FAB_250___250kg_GP_Bombs_LD, + ) + + # ERRR + + pylons: Set[int] = {1, 2, 3} + + tasks = [ + task.Reconnaissance, + task.GroundAttack, + task.CAS, + task.RunwayAttack, + task.AntishipStrike, + task.PinpointStrike, + task.SEAD, + ] + task_default = task.GroundAttack diff --git a/qt_ui/main.py b/qt_ui/main.py index bcf99a15..658c75dd 100644 --- a/qt_ui/main.py +++ b/qt_ui/main.py @@ -340,6 +340,7 @@ def create_game( su15_flagon=False, su30_flanker_h=False, su57_felon=False, + coldwarassets=False, frenchpack=False, high_digit_sams=False, ), diff --git a/qt_ui/windows/newgame/QNewGameWizard.py b/qt_ui/windows/newgame/QNewGameWizard.py index e4ee75a7..ce4e4599 100644 --- a/qt_ui/windows/newgame/QNewGameWizard.py +++ b/qt_ui/windows/newgame/QNewGameWizard.py @@ -119,6 +119,7 @@ class NewGameWizard(QtWidgets.QWizard): high_digit_sams=self.field("high_digit_sams"), spanishnavypack=self.field("spanishnavypack"), swedishmilitaryassetspack=self.field("swedishmilitaryassetspack"), + coldwarassets=self.field("coldwarassets"), SWPack=self.field("SWPack"), ) diff --git a/qt_ui/windows/newgame/WizardPages/QGeneratorSettings.py b/qt_ui/windows/newgame/WizardPages/QGeneratorSettings.py index cd648139..43306117 100644 --- a/qt_ui/windows/newgame/WizardPages/QGeneratorSettings.py +++ b/qt_ui/windows/newgame/WizardPages/QGeneratorSettings.py @@ -146,6 +146,8 @@ class GeneratorOptions(QtWidgets.QWizardPage): self.registerField("high_digit_sams", self.high_digit_sams) self.swedishmilitaryassetspack = QtWidgets.QCheckBox() self.registerField("swedishmilitaryassetspack", self.swedishmilitaryassetspack) + self.coldwarassets = QtWidgets.QCheckBox() + self.registerField("coldwarassets", self.coldwarassets) self.SWPack = QtWidgets.QCheckBox() self.registerField("SWPack", self.SWPack) self.spanishnavypack = QtWidgets.QCheckBox() @@ -180,6 +182,7 @@ class GeneratorOptions(QtWidgets.QWizardPage): ("F9F Panther (v2.8.7.101)", self.f9f_panther), ("F/A-18E/F Super Hornet AI Tanker (version 1.4)", self.fa18ef_tanker), ("F/A-18E/F/G Super Hornet (version 2.3.2)", self.fa_18efg), + ("Cold War Assets mod (v1.0)", self.coldwarassets), ("Frenchpack (v4.9.1)", self.frenchpack), ("High Digit SAMs", self.high_digit_sams), ("IDF Assets Pack (v1.1 by IDF Mods Project)", self.irondome), diff --git a/resources/customized_payloads/B_47.lua b/resources/customized_payloads/B_47.lua new file mode 100644 index 00000000..b77c8168 --- /dev/null +++ b/resources/customized_payloads/B_47.lua @@ -0,0 +1,57 @@ +local unitPayloads = { + ["name"] = "B_47", + ["payloads"] = { + [1] = { + ["name"] = "STRIKE", + ["pylons"] = { + [1] = { + ["CLSID"] = "{B_29_RASCALARM}", + ["num"] = 1, + }, + }, + ["tasks"] = { + [1] = 33, + }, + }, + [2] = { + ["name"] = "ANTISHIP", + ["pylons"] = { + [1] = { + ["CLSID"] = "{B_29_RASCALARM}", + ["num"] = 1, + }, + }, + ["tasks"] = { + [1] = 33, + }, + }, + [3] = { + ["name"] = "Retribution OCA/Runway", + ["pylons"] = { + [1] = { + ["CLSID"] = "{B_29_RASCALARM}", + ["num"] = 1, + }, + }, + ["tasks"] = { + [1] = 33, + }, + }, + [4] = { + ["name"] = "SEAD", + ["pylons"] = { + [1] = { + ["CLSID"] = "{B_29_RASCALARM}", + ["num"] = 1, + }, + }, + ["tasks"] = { + [1] = 33, + }, + }, + }, + ["tasks"] = { + }, + ["unitType"] = "B_47", +} +return unitPayloads diff --git a/resources/customized_payloads/Tu-16.lua b/resources/customized_payloads/Tu-16.lua new file mode 100644 index 00000000..77463c46 --- /dev/null +++ b/resources/customized_payloads/Tu-16.lua @@ -0,0 +1,82 @@ +local unitPayloads = { + ["name"] = "Tu-16", + ["payloads"] = { + [1] = { + ["name"] = "STRIKE", + ["pylons"] = { + [1] = { + ["CLSID"] = "{TU_16_KSR5}", + ["num"] = 1, + }, + [2] = { + ["CLSID"] = "{BDAD04AA-4D4A-4E51-B958-180A89F963CF}", + ["num"] = 3, + }, + [3] = { + ["CLSID"] = "{TU_16_KSR5}", + ["num"] = 4, + }, + }, + ["tasks"] = { + [1] = 33, + }, + }, + [2] = { + ["name"] = "ANTISHIP", + ["pylons"] = { + [1] = { + ["CLSID"] = "{TU_16_KSR5}", + ["num"] = 1, + }, + [2] = { + ["CLSID"] = "{TU_16_KSR5}", + ["num"] = 4, + }, + }, + ["tasks"] = { + [1] = 15, + }, + }, + [3] = { + ["displayName"] = "SEAD", + ["name"] = "SEAD", + ["pylons"] = { + [1] = { + ["CLSID"] = "{TU_16_KSR5ARM}", + ["num"] = 1, + }, + [2] = { + ["CLSID"] = "{TU_16_KSR5ARM}", + ["num"] = 4, + }, + }, + ["tasks"] = { + [1] = 15, + }, + }, + [4] = { + ["name"] = "CAS", + ["pylons"] = { + [1] = { + ["CLSID"] = "{TU_16_KSR5}", + ["num"] = 1, + }, + [2] = { + ["CLSID"] = "{BDAD04AA-4D4A-4E51-B958-180A89F963CF}", + ["num"] = 3, + }, + [3] = { + ["CLSID"] = "{TU_16_KSR5}", + ["num"] = 4, + }, + }, + ["tasks"] = { + [1] = 33, + }, + }, + }, + ["tasks"] = { + }, + ["unitType"] = "Tu-16", +} +return unitPayloads diff --git a/resources/customized_payloads/Tu-4K.lua b/resources/customized_payloads/Tu-4K.lua new file mode 100644 index 00000000..93108a7a --- /dev/null +++ b/resources/customized_payloads/Tu-4K.lua @@ -0,0 +1,57 @@ +local unitPayloads = { + ["name"] = "Tu-4K", + ["payloads"] = { + [1] = { + ["name"] = "STRIKE", + ["pylons"] = { + [1] = { + ["CLSID"] = "{Tu4_KS_1}", + ["num"] = 1, + }, + [2] = { + ["CLSID"] = "{Tu4_KS_1}", + ["num"] = 2, + }, + }, + ["tasks"] = { + [1] = 32, + }, + }, + [2] = { + ["name"] = "ANTISHIP", + ["pylons"] = { + [1] = { + ["CLSID"] = "{Tu4_KS_1}", + ["num"] = 1, + }, + [2] = { + ["CLSID"] = "{Tu4_KS_1}", + ["num"] = 2, + }, + }, + ["tasks"] = { + [1] = 33, + }, + }, + [3] = { + ["name"] = "Retribution OCA/Runway", + ["pylons"] = { + [1] = { + ["CLSID"] = "{Tu4_KS_1}", + ["num"] = 1, + }, + [2] = { + ["CLSID"] = "{Tu4_KS_1}", + ["num"] = 2, + }, + }, + ["tasks"] = { + [1] = 33, + }, + }, + }, + ["tasks"] = { + }, + ["unitType"] = "Tu-4K", +} +return unitPayloads diff --git a/resources/customized_payloads/tu_22D.lua b/resources/customized_payloads/tu_22D.lua new file mode 100644 index 00000000..35203af4 --- /dev/null +++ b/resources/customized_payloads/tu_22D.lua @@ -0,0 +1,41 @@ +local unitPayloads = { + ["name"] = "tu_22D", + ["payloads"] = { + [1] = { + ["name"] = "STRIKE", + ["pylons"] = { + [1] = { + ["CLSID"] = "{D9179118-E42F-47DE-A483-A6C2EA7B4F38}", + ["num"] = 1, + }, + [2] = { + ["CLSID"] = "", + ["num"] = 2, + }, + }, + ["tasks"] = { + [1] = 32, + }, + }, + [2] = { + ["name"] = "CAS", + ["pylons"] = { + [1] = { + ["CLSID"] = "", + ["num"] = 1, + }, + [2] = { + ["CLSID"] = "{BDAD04AA-4D4A-4E51-B958-180A89F963CF}", + ["num"] = 2, + }, + }, + ["tasks"] = { + [1] = 32, + }, + }, + }, + ["tasks"] = { + }, + ["unitType"] = "tu_22D", +} +return unitPayloads diff --git a/resources/customized_payloads/tu_22KD.lua b/resources/customized_payloads/tu_22KD.lua new file mode 100644 index 00000000..d2150681 --- /dev/null +++ b/resources/customized_payloads/tu_22KD.lua @@ -0,0 +1,111 @@ +local unitPayloads = { + ["name"] = "tu_22KD", + ["payloads"] = { + [1] = { + ["name"] = "STRIKE", + ["pylons"] = { + [1] = { + ["CLSID"] = "", + ["num"] = 1, + }, + [2] = { + ["CLSID"] = "{D9179118-E42F-47DE-A483-A6C2EA7B4F38}", + ["num"] = 2, + }, + [3] = { + ["CLSID"] = "", + ["num"] = 3, + }, + }, + ["tasks"] = { + [1] = 32, + }, + }, + [2] = { + ["displayName"] = "CAS", + ["name"] = "CAS", + ["pylons"] = { + [1] = { + ["CLSID"] = "", + ["num"] = 1, + }, + [2] = { + ["CLSID"] = "", + ["num"] = 2, + }, + [3] = { + ["CLSID"] = "{BDAD04AA-4D4A-4E51-B958-180A89F963CF}", + ["num"] = 3, + }, + }, + ["tasks"] = { + [1] = 32, + }, + }, + [3] = { + ["name"] = "SEAD", + ["pylons"] = { + [1] = { + ["CLSID"] = "{TU_22_KH22P}", + ["num"] = 1, + }, + [2] = { + ["CLSID"] = "", + ["num"] = 2, + }, + [3] = { + ["CLSID"] = "", + ["num"] = 3, + }, + }, + ["tasks"] = { + [1] = 32, + }, + }, + [4] = { + ["name"] = "ANTISHIP", + ["pylons"] = { + [1] = { + ["CLSID"] = "{12429ECF-03F0-4DF6-BCBD-5D38B6343DE1}", + ["num"] = 1, + }, + [2] = { + ["CLSID"] = "", + ["num"] = 2, + }, + [3] = { + ["CLSID"] = "", + ["num"] = 3, + }, + }, + ["tasks"] = { + [1] = 32, + }, + }, + [5] = { + ["displayName"] = "DEAD", + ["name"] = "DEAD", + ["pylons"] = { + [1] = { + ["CLSID"] = "", + ["num"] = 2, + }, + [2] = { + ["CLSID"] = "{Tu_22_Kh22PSI}", + ["num"] = 1, + }, + [3] = { + ["CLSID"] = "", + ["num"] = 3, + }, + }, + ["tasks"] = { + [1] = 32, + }, + }, + }, + ["tasks"] = { + }, + ["unitType"] = "tu_22KD", +} +return unitPayloads diff --git a/resources/factions/soviet_union_1965.json b/resources/factions/soviet_union_1965.json new file mode 100644 index 00000000..462fdad9 --- /dev/null +++ b/resources/factions/soviet_union_1965.json @@ -0,0 +1,69 @@ +{ + "country": "USSR", + "name": "Soviet Union 1965", + "authors": "Ghosti", + "description": "

Soviet armed forces in the 60s, unsing the Cold War Assets mod by tripod3.

", + "locales": [ + "ru_RU" + ], + "aircrafts": [ + "Mi-8MTV2 Hip", + "MiG-15bis Fagot", + "MiG-19P Farmer-B", + "MiG-21bis Fishbed-N", + "Tu-4K Bull", + "Tu-16 Badger-B", + "Tu-22D Blinder", + "Tu-22KD Blinder", + "Tu-95MS Bear-H" + ], + "awacs": [ + "A-50" + ], + "tankers": [ + "IL-78M" + ], + "frontline_units": [ + "BMD-1", + "BMP-1", + "BRDM-2", + "BTR-80", + "BTR-D", + "PT-76", + "S-60 57mm", + "T-55A", + "ZSU-57-2 'Sparka'", + "ZU-23 on Ural-375" + ], + "artillery_units": [ + "BM-21 Grad" + ], + "logistics_units": [ + "LUV UAZ-469 Jeep", + "Truck Ural-375" + ], + "infantry_units": [ + "Infantry AK-74 Rus", + "Infantry RPG" + ], + "missiles": [], + "preset_groups": [ + "SA-2/S-75", + "SA-3/S-125", + "Cold-War-Flak", + "KS-19/SON-9" + ], + "naval_units": [], + "air_defense_units": [ + "SAM P19 \"Flat Face\" SR (SA-2/3)", + "ZSU-57-2 'Sparka'", + "AAA ZU-23 Closed Emplacement", + "ZU-23 on Ural-375", + "ZSU-23-4 Shilka" + ], + "helicopter_carrier_names": [], + "requirements": {}, + "carrier_names": [], + "has_jtac": false, + "doctrine": "coldwar" +} \ No newline at end of file diff --git a/resources/ui/units/aircrafts/banners/B_47.jpg b/resources/ui/units/aircrafts/banners/B_47.jpg new file mode 100644 index 00000000..cdc4964a Binary files /dev/null and b/resources/ui/units/aircrafts/banners/B_47.jpg differ diff --git a/resources/ui/units/aircrafts/banners/Tu-16.jpg b/resources/ui/units/aircrafts/banners/Tu-16.jpg new file mode 100644 index 00000000..e4f99453 Binary files /dev/null and b/resources/ui/units/aircrafts/banners/Tu-16.jpg differ diff --git a/resources/ui/units/aircrafts/banners/Tu-4K.jpg b/resources/ui/units/aircrafts/banners/Tu-4K.jpg new file mode 100644 index 00000000..b0908ad1 Binary files /dev/null and b/resources/ui/units/aircrafts/banners/Tu-4K.jpg differ diff --git a/resources/ui/units/aircrafts/banners/tu_22D.jpg b/resources/ui/units/aircrafts/banners/tu_22D.jpg new file mode 100644 index 00000000..5c26a74d Binary files /dev/null and b/resources/ui/units/aircrafts/banners/tu_22D.jpg differ diff --git a/resources/ui/units/aircrafts/banners/tu_22KD.jpg b/resources/ui/units/aircrafts/banners/tu_22KD.jpg new file mode 100644 index 00000000..1af857e3 Binary files /dev/null and b/resources/ui/units/aircrafts/banners/tu_22KD.jpg differ diff --git a/resources/ui/units/aircrafts/icons/B_47_24.jpg b/resources/ui/units/aircrafts/icons/B_47_24.jpg new file mode 100644 index 00000000..0101f96d Binary files /dev/null and b/resources/ui/units/aircrafts/icons/B_47_24.jpg differ diff --git a/resources/ui/units/aircrafts/icons/Tu-16_24.jpg b/resources/ui/units/aircrafts/icons/Tu-16_24.jpg new file mode 100644 index 00000000..4485652d Binary files /dev/null and b/resources/ui/units/aircrafts/icons/Tu-16_24.jpg differ diff --git a/resources/ui/units/aircrafts/icons/Tu-4K_24.jpg b/resources/ui/units/aircrafts/icons/Tu-4K_24.jpg new file mode 100644 index 00000000..b46d92e4 Binary files /dev/null and b/resources/ui/units/aircrafts/icons/Tu-4K_24.jpg differ diff --git a/resources/ui/units/aircrafts/icons/tu_22D_24.jpg b/resources/ui/units/aircrafts/icons/tu_22D_24.jpg new file mode 100644 index 00000000..547731ef Binary files /dev/null and b/resources/ui/units/aircrafts/icons/tu_22D_24.jpg differ diff --git a/resources/ui/units/aircrafts/icons/tu_22KD_24.jpg b/resources/ui/units/aircrafts/icons/tu_22KD_24.jpg new file mode 100644 index 00000000..b3af5e78 Binary files /dev/null and b/resources/ui/units/aircrafts/icons/tu_22KD_24.jpg differ diff --git a/resources/units/aircraft/B_47.yaml b/resources/units/aircraft/B_47.yaml new file mode 100644 index 00000000..71c17273 --- /dev/null +++ b/resources/units/aircraft/B_47.yaml @@ -0,0 +1,20 @@ +description: + "The Boeing B-47 Stratojet is an American long-range, six-engined, turbojet-powered + strategic bomber designed to fly at high subsonic speed and at high altitude to + avoid enemy interceptor aircraft. The primary mission of the B-47 was as a nuclear + bomber capable of striking targets within the Soviet Union." +introduced: 1951 +manufacturer: Boeing +origin: USA +price: 30 +role: Strategic Bomber +max_range: 2000 +variants: + B-47 Stratojet: {} +tasks: + Anti-ship: 90 + DEAD: 200 + OCA/Runway: 610 + Strike: 610 + SEAD: 90 + SEAD Sweep: 90 \ No newline at end of file diff --git a/resources/units/aircraft/Tu-16.yaml b/resources/units/aircraft/Tu-16.yaml new file mode 100644 index 00000000..a4011ba8 --- /dev/null +++ b/resources/units/aircraft/Tu-16.yaml @@ -0,0 +1,23 @@ +description: + "The Tupolev Tu-16 (NATO reporting name: Badger) is a twin-engined + jet strategic heavy bomber used by the Soviet Union. + It has the capability to carry KS-1, KSR-2 and KSR-5 missiles. + This aircraft is part of the Cold War assets mod by tripod3." +introduced: 1954 +manufacturer: Tupolev +origin: USSR +price: 40 +role: Strategic bomber +max_range: 2000 +variants: + Tu-16 Badger-B: {} +# default_overrides: +# Belly_Bay_Door: false +tasks: + Anti-ship: 150 + BAI: 370 + CAS: 370 + DEAD: 170 + OCA/Aircraft: 370 + OCA/Runway: 630 + Strike: 640 diff --git a/resources/units/aircraft/Tu-4K.yaml b/resources/units/aircraft/Tu-4K.yaml new file mode 100644 index 00000000..f7bbae62 --- /dev/null +++ b/resources/units/aircraft/Tu-4K.yaml @@ -0,0 +1,16 @@ +description: + "The Tupolev Tu-4 (NATO reporting name: Bull) is a piston-engined + Soviet strategic bomber that served the Soviet Air Force from the + late 1940s to mid-1960s. It is a reverse-engineered copy of the + American B-29 Superfortress." +introduced: 1949 +manufacturer: Tupolev/Boeing +origin: USSR/USA +price: 20 +role: Heavy Bomber +variants: + Tu-4K Bull: {} +tasks: + OCA/Runway: 200 + Strike: 200 + Anti-ship: 200 \ No newline at end of file diff --git a/resources/units/aircraft/tu_22D.yaml b/resources/units/aircraft/tu_22D.yaml new file mode 100644 index 00000000..0f3a5e1d --- /dev/null +++ b/resources/units/aircraft/tu_22D.yaml @@ -0,0 +1,22 @@ +description: + "The Tupolev Tu-22 (NATO reporting name: Blinder) was the first + supersonic bomber to enter production in the Soviet Union. + This is the original free-fall bomber variant. + This aircraft is part of the Cold War assets mod by tripod3." +introduced: 1962 +manufacturer: Tupolev +origin: USSR +price: 40 +role: Medium bomber +variants: + Tu-22D Blinder: {} +# default_overrides: +# Belly_Bay_Door: false +tasks: + Anti-ship: 100 + BAI: 350 + CAS: 350 + DEAD: 150 + OCA/Aircraft: 350 + OCA/Runway: 600 + Strike: 600 diff --git a/resources/units/aircraft/tu_22KD.yaml b/resources/units/aircraft/tu_22KD.yaml new file mode 100644 index 00000000..4c0d6096 --- /dev/null +++ b/resources/units/aircraft/tu_22KD.yaml @@ -0,0 +1,25 @@ +description: + "The Tupolev Tu-22 (NATO reporting name: Blinder) was the first + supersonic bomber to enter production in the Soviet Union. + This is the missile-carrier version built from 1965, equipped + to launch the Raduga Kh-22 (AS-4 Kitchen) missile. + This aircraft is part of the Cold War assets mod by tripod3." +introduced: 1965 +manufacturer: Tupolev +origin: USSR +price: 45 +role: Medium bomber +variants: + Tu-22KD Blinder: {} +# default_overrides: +# Belly_Bay_Door: false +tasks: + Anti-ship: 100 + BAI: 350 + CAS: 350 + DEAD: 150 + OCA/Aircraft: 350 + OCA/Runway: 600 + Strike: 600 + SEAD: 30 + SEAD Sweep: 30 \ No newline at end of file