diff --git a/game/ato/ai_flight_planner_db.py b/game/ato/ai_flight_planner_db.py index 77c0c4e5..b40e7fd2 100644 --- a/game/ato/ai_flight_planner_db.py +++ b/game/ato/ai_flight_planner_db.py @@ -122,6 +122,7 @@ from dcs.unittype import FlyingType from game.dcs.aircrafttype import AircraftType from pydcs_extensions.a4ec.a4ec import A_4E_C from pydcs_extensions.f104.f104 import VSN_F104G, VSN_F104S, VSN_F104S_AG +from pydcs_extensions.f15d.f15d import F_15D from pydcs_extensions.f22a.f22a import F_22A from pydcs_extensions.hercules.hercules import Hercules from pydcs_extensions.jas39.jas39 import JAS39Gripen, JAS39Gripen_AG @@ -140,6 +141,7 @@ CAP_CAPABLE = [ Su_57, F_22A, F_15C, + F_15D, F_14B, F_14A_135_GR, F_14A, @@ -205,6 +207,7 @@ CAS_CAPABLE = [ Su_25TM, Su_25T, Su_25, + F_15D, F_15E, F_16C_50, FA_18C_hornet, @@ -341,6 +344,7 @@ STRIKE_CAPABLE = [ Tu_95MS, Tu_22M3, H_6J, + F_15D, F_15E, AJS37, Tornado_GR4, diff --git a/game/factions/faction.py b/game/factions/faction.py index d584dd89..c1037de2 100644 --- a/game/factions/faction.py +++ b/game/factions/faction.py @@ -291,6 +291,8 @@ class Faction: if not mod_settings.uh_60l: self.remove_aircraft("UH-60L") self.remove_aircraft("KC130J") + if not mod_settings.f15d_baz: + self.remove_aircraft("F-15D") if not mod_settings.f22_raptor: self.remove_aircraft("F-22A") if not mod_settings.f104_starfighter: diff --git a/game/scenery_group.py b/game/scenery_group.py index fafa7534..df6294e2 100644 --- a/game/scenery_group.py +++ b/game/scenery_group.py @@ -1,5 +1,4 @@ from __future__ import annotations - from typing import Iterable, List from dcs.triggers import TriggerZoneCircular diff --git a/game/theater/start_generator.py b/game/theater/start_generator.py index b84276d7..4d16abc6 100644 --- a/game/theater/start_generator.py +++ b/game/theater/start_generator.py @@ -55,6 +55,7 @@ class GeneratorSettings: @dataclass class ModSettings: a4_skyhawk: bool = False + f15d_baz: bool = False f22_raptor: bool = False f104_starfighter: bool = False hercules: bool = False diff --git a/pydcs_extensions/f15d/f15d.py b/pydcs_extensions/f15d/f15d.py new file mode 100644 index 00000000..2b629c4b --- /dev/null +++ b/pydcs_extensions/f15d/f15d.py @@ -0,0 +1,214 @@ +from typing import Set + +from dcs import task +from dcs.liveries_scanner import Liveries +from dcs.planes import PlaneType +from dcs.weapons_data import Weapons + +from game.modsupport import planemod +from pydcs_extensions.weapon_injector import inject_weapons + + +class WeaponsF15D: + Python_5 = {"clsid": "{Python 5}", "name": "Python 5", "weight": 103} + CFT_Fuel_left_750gal = { + "clsid": "{F-15D_cft_750gal_left}", + "name": "CFT Fuel left 750gal", + "weight": 2737.33, + } + CFT_Fuel_left_750gal_And_Tank = { + "clsid": "{F-15D_cft_750gal_left_And_Tank}", + "name": "CFT Fuel left 750gal And Tank", + "weight": 4963.69, + } + CFT_Fuel_Right_750gal = { + "clsid": "{F-15D_cft_750gal_Right}", + "name": "CFT Fuel Right 750gal", + "weight": 2737.33, + } + CFT_Fuel_Right_750gal_And_Tank = { + "clsid": "{F-15D_cft_750gal_Right_And_Tank}", + "name": "CFT Fuel Right 750gal And Tank", + "weight": 4963.69, + } + I_Derby_ER = {"clsid": "{I-Derby ER}", "name": "I-Derby ER", "weight": 118} + ELL___8222SB = {"clsid": "{ELL - 8222SB}", "name": "ELL - 8222SB", "weight": 100} + + +inject_weapons(WeaponsF15D) + + +@planemod +class F_15D(PlaneType): + id = "F-15D" + flyable = True + height = 5.63 + width = 13.05 + length = 19.43 + fuel_max = 6103 + max_speed = 2649.996 + 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 = "F-15D" # from type + Liveries = Liveries()[livery_name] + + class Pylon1: + AIM_120B_AMRAAM___Active_Rdr_AAM = (1, Weapons.AIM_120B_AMRAAM___Active_Rdr_AAM) + AIM_120C_5_AMRAAM___Active_Rdr_AAM = ( + 1, + Weapons.AIM_120C_5_AMRAAM___Active_Rdr_AAM, + ) + Smokewinder___red = (1, Weapons.Smokewinder___red) + Smokewinder___green = (1, Weapons.Smokewinder___green) + Smokewinder___blue = (1, Weapons.Smokewinder___blue) + Smokewinder___white = (1, Weapons.Smokewinder___white) + Smokewinder___yellow = (1, Weapons.Smokewinder___yellow) + Smokewinder___orange = (1, Weapons.Smokewinder___orange) + AN_ASQ_T50_TCTS_Pod___ACMI_Pod = (1, Weapons.AN_ASQ_T50_TCTS_Pod___ACMI_Pod) + Python_5 = (1, WeaponsF15D.Python_5) + AIM_9X_Sidewinder_IR_AAM = (1, Weapons.AIM_9X_Sidewinder_IR_AAM) + + class Pylon2: + Fuel_tank_610_gal = (2, Weapons.Fuel_tank_610_gal) + Mk_84___2000lb_GP_Bomb_LD = (2, Weapons.Mk_84___2000lb_GP_Bomb_LD) + GBU_31_V_1_B___JDAM__2000lb_GPS_Guided_Bomb = ( + 2, + Weapons.GBU_31_V_1_B___JDAM__2000lb_GPS_Guided_Bomb, + ) + CFT_Fuel_Right_750gal_And_Tank = (2, WeaponsF15D.CFT_Fuel_Right_750gal_And_Tank) + CFT_Fuel_Right_750gal = (2, WeaponsF15D.CFT_Fuel_Right_750gal) + + class Pylon3: + AIM_120B_AMRAAM___Active_Rdr_AAM = (3, Weapons.AIM_120B_AMRAAM___Active_Rdr_AAM) + AIM_120C_5_AMRAAM___Active_Rdr_AAM = ( + 3, + Weapons.AIM_120C_5_AMRAAM___Active_Rdr_AAM, + ) + Python_5 = (3, WeaponsF15D.Python_5) + I_Derby_ER = (3, WeaponsF15D.I_Derby_ER) + AIM_9X_Sidewinder_IR_AAM = (3, Weapons.AIM_9X_Sidewinder_IR_AAM) + + class Pylon4: + AIM_120B_AMRAAM___Active_Rdr_AAM = (4, Weapons.AIM_120B_AMRAAM___Active_Rdr_AAM) + AIM_120C_5_AMRAAM___Active_Rdr_AAM = ( + 4, + Weapons.AIM_120C_5_AMRAAM___Active_Rdr_AAM, + ) + AIM_7M_Sparrow_Semi_Active_Radar = (4, Weapons.AIM_7M_Sparrow_Semi_Active_Radar) + AIM_7F_Sparrow_Semi_Active_Radar = (4, Weapons.AIM_7F_Sparrow_Semi_Active_Radar) + AIM_7MH_Sparrow_Semi_Active_Radar = ( + 4, + Weapons.AIM_7MH_Sparrow_Semi_Active_Radar, + ) + AIM_7E_Sparrow_Semi_Active_Radar = (4, Weapons.AIM_7E_Sparrow_Semi_Active_Radar) + I_Derby_ER = (4, WeaponsF15D.I_Derby_ER) + + class Pylon5: + AIM_120B_AMRAAM___Active_Rdr_AAM = (5, Weapons.AIM_120B_AMRAAM___Active_Rdr_AAM) + AIM_120C_5_AMRAAM___Active_Rdr_AAM = ( + 5, + Weapons.AIM_120C_5_AMRAAM___Active_Rdr_AAM, + ) + AIM_7M_Sparrow_Semi_Active_Radar = (5, Weapons.AIM_7M_Sparrow_Semi_Active_Radar) + AIM_7F_Sparrow_Semi_Active_Radar = (5, Weapons.AIM_7F_Sparrow_Semi_Active_Radar) + AIM_7MH_Sparrow_Semi_Active_Radar = ( + 5, + Weapons.AIM_7MH_Sparrow_Semi_Active_Radar, + ) + AIM_7E_Sparrow_Semi_Active_Radar = (5, Weapons.AIM_7E_Sparrow_Semi_Active_Radar) + I_Derby_ER = (5, WeaponsF15D.I_Derby_ER) + ELL___8222SB = (5, WeaponsF15D.ELL___8222SB) + + class Pylon6: + Fuel_tank_610_gal = (6, Weapons.Fuel_tank_610_gal) + Mk_84___2000lb_GP_Bomb_LD = (6, Weapons.Mk_84___2000lb_GP_Bomb_LD) + + class Pylon7: + AIM_120B_AMRAAM___Active_Rdr_AAM = (7, Weapons.AIM_120B_AMRAAM___Active_Rdr_AAM) + AIM_120C_5_AMRAAM___Active_Rdr_AAM = ( + 7, + Weapons.AIM_120C_5_AMRAAM___Active_Rdr_AAM, + ) + AIM_7M_Sparrow_Semi_Active_Radar = (7, Weapons.AIM_7M_Sparrow_Semi_Active_Radar) + AIM_7F_Sparrow_Semi_Active_Radar = (7, Weapons.AIM_7F_Sparrow_Semi_Active_Radar) + AIM_7MH_Sparrow_Semi_Active_Radar = ( + 7, + Weapons.AIM_7MH_Sparrow_Semi_Active_Radar, + ) + AIM_7E_Sparrow_Semi_Active_Radar = (7, Weapons.AIM_7E_Sparrow_Semi_Active_Radar) + I_Derby_ER = (7, WeaponsF15D.I_Derby_ER) + + class Pylon8: + AIM_120B_AMRAAM___Active_Rdr_AAM = (8, Weapons.AIM_120B_AMRAAM___Active_Rdr_AAM) + AIM_120C_5_AMRAAM___Active_Rdr_AAM = ( + 8, + Weapons.AIM_120C_5_AMRAAM___Active_Rdr_AAM, + ) + AIM_7M_Sparrow_Semi_Active_Radar = (8, Weapons.AIM_7M_Sparrow_Semi_Active_Radar) + AIM_7F_Sparrow_Semi_Active_Radar = (8, Weapons.AIM_7F_Sparrow_Semi_Active_Radar) + AIM_7MH_Sparrow_Semi_Active_Radar = ( + 8, + Weapons.AIM_7MH_Sparrow_Semi_Active_Radar, + ) + AIM_7E_Sparrow_Semi_Active_Radar = (8, Weapons.AIM_7E_Sparrow_Semi_Active_Radar) + I_Derby_ER = (8, WeaponsF15D.I_Derby_ER) + + class Pylon9: + AIM_120B_AMRAAM___Active_Rdr_AAM = (9, Weapons.AIM_120B_AMRAAM___Active_Rdr_AAM) + AIM_120C_5_AMRAAM___Active_Rdr_AAM = ( + 9, + Weapons.AIM_120C_5_AMRAAM___Active_Rdr_AAM, + ) + Python_5 = (9, WeaponsF15D.Python_5) + I_Derby_ER = (9, WeaponsF15D.I_Derby_ER) + AIM_9X_Sidewinder_IR_AAM = (9, Weapons.AIM_9X_Sidewinder_IR_AAM) + + class Pylon10: + Fuel_tank_610_gal = (10, Weapons.Fuel_tank_610_gal) + Mk_84___2000lb_GP_Bomb_LD = (10, Weapons.Mk_84___2000lb_GP_Bomb_LD) + GBU_31_V_1_B___JDAM__2000lb_GPS_Guided_Bomb = ( + 10, + Weapons.GBU_31_V_1_B___JDAM__2000lb_GPS_Guided_Bomb, + ) + CFT_Fuel_left_750gal_And_Tank = (10, WeaponsF15D.CFT_Fuel_left_750gal_And_Tank) + CFT_Fuel_left_750gal = (10, WeaponsF15D.CFT_Fuel_left_750gal) + + class Pylon11: + AIM_120B_AMRAAM___Active_Rdr_AAM = ( + 11, + Weapons.AIM_120B_AMRAAM___Active_Rdr_AAM, + ) + AIM_120C_5_AMRAAM___Active_Rdr_AAM = ( + 11, + Weapons.AIM_120C_5_AMRAAM___Active_Rdr_AAM, + ) + Smokewinder___red = (11, Weapons.Smokewinder___red) + Smokewinder___green = (11, Weapons.Smokewinder___green) + Smokewinder___blue = (11, Weapons.Smokewinder___blue) + Smokewinder___white = (11, Weapons.Smokewinder___white) + Smokewinder___yellow = (11, Weapons.Smokewinder___yellow) + Smokewinder___orange = (11, Weapons.Smokewinder___orange) + AN_ASQ_T50_TCTS_Pod___ACMI_Pod = (11, Weapons.AN_ASQ_T50_TCTS_Pod___ACMI_Pod) + Python_5 = (11, WeaponsF15D.Python_5) + AIM_9X_Sidewinder_IR_AAM = (11, Weapons.AIM_9X_Sidewinder_IR_AAM) + + pylons: Set[int] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11} + + tasks = [ + task.CAP, + task.Escort, + task.FighterSweep, + task.Intercept, + task.Reconnaissance, + task.GroundAttack, + task.CAS, + task.AFAC, + task.RunwayAttack, + ] + task_default = task.CAS diff --git a/qt_ui/windows/newgame/QNewGameWizard.py b/qt_ui/windows/newgame/QNewGameWizard.py index 429fdb00..b05478be 100644 --- a/qt_ui/windows/newgame/QNewGameWizard.py +++ b/qt_ui/windows/newgame/QNewGameWizard.py @@ -158,6 +158,7 @@ class NewGameWizard(QtWidgets.QWizard): ) mod_settings = ModSettings( a4_skyhawk=self.field("a4_skyhawk"), + f15d_baz=self.field("f15d_baz"), f22_raptor=self.field("f22_raptor"), f104_starfighter=self.field("f104_starfighter"), hercules=self.field("hercules"), @@ -657,6 +658,8 @@ class GeneratorOptions(QtWidgets.QWizardPage): self.registerField("hercules", hercules) uh_60l = QtWidgets.QCheckBox() self.registerField("uh_60l", uh_60l) + f15d_baz = QtWidgets.QCheckBox() + self.registerField("f15d_baz", f15d_baz) f22_raptor = QtWidgets.QCheckBox() self.registerField("f22_raptor", f22_raptor) f104_starfighter = QtWidgets.QCheckBox() @@ -682,6 +685,9 @@ class GeneratorOptions(QtWidgets.QWizardPage): ) modLayout.addWidget(a4_skyhawk, modLayout_row, 1) modLayout_row += 1 + modLayout.addWidget(QtWidgets.QLabel("F-15D Baz (v1.0)"), modLayout_row, 0) + modLayout.addWidget(f15d_baz, modLayout_row, 1) + modLayout_row += 1 modLayout.addWidget(QtWidgets.QLabel("F-22A Raptor"), modLayout_row, 0) modLayout.addWidget(f22_raptor, modLayout_row, 1) modLayout_row += 1 diff --git a/resources/customized_payloads/F-15D.lua b/resources/customized_payloads/F-15D.lua new file mode 100644 index 00000000..e38c2b15 --- /dev/null +++ b/resources/customized_payloads/F-15D.lua @@ -0,0 +1,430 @@ +local unitPayloads = { + ["name"] = "F-15D", + ["payloads"] = { + [1] = { + ["displayName"] = "Liberation BARCAP", + ["name"] = "Liberation BARCAP", + ["pylons"] = { + [1] = { + ["CLSID"] = "{Python 5}", + ["num"] = 11, + }, + [2] = { + ["CLSID"] = "{F-15D_cft_750gal_left_And_Tank}", + ["num"] = 10, + }, + [3] = { + ["CLSID"] = "{I-Derby ER}", + ["num"] = 9, + }, + [4] = { + ["CLSID"] = "{I-Derby ER}", + ["num"] = 8, + }, + [5] = { + ["CLSID"] = "{I-Derby ER}", + ["num"] = 7, + }, + [6] = { + ["CLSID"] = "{ELL - 8222SB}", + ["num"] = 5, + }, + [7] = { + ["CLSID"] = "{I-Derby ER}", + ["num"] = 4, + }, + [8] = { + ["CLSID"] = "{I-Derby ER}", + ["num"] = 3, + }, + [9] = { + ["CLSID"] = "{F-15D_cft_750gal_Right_And_Tank}", + ["num"] = 2, + }, + [10] = { + ["CLSID"] = "{Python 5}", + ["num"] = 1, + }, + }, + ["tasks"] = { + [1] = 11, + [2] = 18, + [3] = 19, + [4] = 10, + }, + }, + [2] = { + ["name"] = "Liberation Strike", + ["pylons"] = { + [1] = { + ["CLSID"] = "{Python 5}", + ["num"] = 11, + }, + [2] = { + ["CLSID"] = "{GBU-31}", + ["num"] = 10, + }, + [3] = { + ["CLSID"] = "{GBU-31}", + ["num"] = 2, + }, + [4] = { + ["CLSID"] = "{I-Derby ER}", + ["num"] = 9, + }, + [5] = { + ["CLSID"] = "{I-Derby ER}", + ["num"] = 3, + }, + [6] = { + ["CLSID"] = "{Python 5}", + ["num"] = 1, + }, + [7] = { + ["CLSID"] = "{I-Derby ER}", + ["num"] = 4, + }, + [8] = { + ["CLSID"] = "{ELL - 8222SB}", + ["num"] = 5, + }, + [9] = { + ["CLSID"] = "{I-Derby ER}", + ["num"] = 8, + }, + [10] = { + ["CLSID"] = "{I-Derby ER}", + ["num"] = 7, + }, + [11] = { + ["CLSID"] = "{E1F29B21-F291-4589-9FD8-3272EEC69506}", + ["num"] = 6, + }, + }, + ["tasks"] = { + [1] = 31, + [2] = 32, + }, + }, + [3] = { + ["displayName"] = "Liberation CAS", + ["name"] = "Liberation CAS", + ["pylons"] = { + [1] = { + ["CLSID"] = "{Python 5}", + ["num"] = 11, + }, + [2] = { + ["CLSID"] = "{GBU-31}", + ["num"] = 10, + }, + [3] = { + ["CLSID"] = "{GBU-31}", + ["num"] = 2, + }, + [4] = { + ["CLSID"] = "{I-Derby ER}", + ["num"] = 9, + }, + [5] = { + ["CLSID"] = "{I-Derby ER}", + ["num"] = 3, + }, + [6] = { + ["CLSID"] = "{Python 5}", + ["num"] = 1, + }, + [7] = { + ["CLSID"] = "{I-Derby ER}", + ["num"] = 4, + }, + [8] = { + ["CLSID"] = "{ELL - 8222SB}", + ["num"] = 5, + }, + [9] = { + ["CLSID"] = "{I-Derby ER}", + ["num"] = 8, + }, + [10] = { + ["CLSID"] = "{I-Derby ER}", + ["num"] = 7, + }, + [11] = { + ["CLSID"] = "{E1F29B21-F291-4589-9FD8-3272EEC69506}", + ["num"] = 6, + }, + }, + ["tasks"] = { + [1] = 31, + [2] = 32, + }, + }, + [4] = { + ["displayName"] = "Liberation TARCAP", + ["name"] = "Liberation TARCAP", + ["pylons"] = { + [1] = { + ["CLSID"] = "{Python 5}", + ["num"] = 11, + }, + [2] = { + ["CLSID"] = "{F-15D_cft_750gal_left_And_Tank}", + ["num"] = 10, + }, + [3] = { + ["CLSID"] = "{I-Derby ER}", + ["num"] = 9, + }, + [4] = { + ["CLSID"] = "{I-Derby ER}", + ["num"] = 8, + }, + [5] = { + ["CLSID"] = "{I-Derby ER}", + ["num"] = 7, + }, + [6] = { + ["CLSID"] = "{ELL - 8222SB}", + ["num"] = 5, + }, + [7] = { + ["CLSID"] = "{I-Derby ER}", + ["num"] = 4, + }, + [8] = { + ["CLSID"] = "{I-Derby ER}", + ["num"] = 3, + }, + [9] = { + ["CLSID"] = "{F-15D_cft_750gal_Right_And_Tank}", + ["num"] = 2, + }, + [10] = { + ["CLSID"] = "{Python 5}", + ["num"] = 1, + }, + }, + ["tasks"] = { + [1] = 11, + [2] = 18, + [3] = 19, + [4] = 10, + }, + }, + [5] = { + ["displayName"] = "Liberation Escort", + ["name"] = "Liberation Escort", + ["pylons"] = { + [1] = { + ["CLSID"] = "{Python 5}", + ["num"] = 11, + }, + [2] = { + ["CLSID"] = "{F-15D_cft_750gal_left_And_Tank}", + ["num"] = 10, + }, + [3] = { + ["CLSID"] = "{I-Derby ER}", + ["num"] = 9, + }, + [4] = { + ["CLSID"] = "{I-Derby ER}", + ["num"] = 8, + }, + [5] = { + ["CLSID"] = "{I-Derby ER}", + ["num"] = 7, + }, + [6] = { + ["CLSID"] = "{ELL - 8222SB}", + ["num"] = 5, + }, + [7] = { + ["CLSID"] = "{I-Derby ER}", + ["num"] = 4, + }, + [8] = { + ["CLSID"] = "{I-Derby ER}", + ["num"] = 3, + }, + [9] = { + ["CLSID"] = "{F-15D_cft_750gal_Right_And_Tank}", + ["num"] = 2, + }, + [10] = { + ["CLSID"] = "{Python 5}", + ["num"] = 1, + }, + }, + ["tasks"] = { + [1] = 11, + [2] = 18, + [3] = 19, + [4] = 10, + }, + }, + [6] = { + ["displayName"] = "Liberation Fighter Sweep", + ["name"] = "Liberation Fighter Sweep", + ["pylons"] = { + [1] = { + ["CLSID"] = "{Python 5}", + ["num"] = 11, + }, + [2] = { + ["CLSID"] = "{F-15D_cft_750gal_left_And_Tank}", + ["num"] = 10, + }, + [3] = { + ["CLSID"] = "{I-Derby ER}", + ["num"] = 9, + }, + [4] = { + ["CLSID"] = "{I-Derby ER}", + ["num"] = 8, + }, + [5] = { + ["CLSID"] = "{I-Derby ER}", + ["num"] = 7, + }, + [6] = { + ["CLSID"] = "{ELL - 8222SB}", + ["num"] = 5, + }, + [7] = { + ["CLSID"] = "{I-Derby ER}", + ["num"] = 4, + }, + [8] = { + ["CLSID"] = "{I-Derby ER}", + ["num"] = 3, + }, + [9] = { + ["CLSID"] = "{F-15D_cft_750gal_Right_And_Tank}", + ["num"] = 2, + }, + [10] = { + ["CLSID"] = "{Python 5}", + ["num"] = 1, + }, + }, + ["tasks"] = { + [1] = 11, + [2] = 18, + [3] = 19, + [4] = 10, + }, + }, + [7] = { + ["displayName"] = "Liberation Intercept", + ["name"] = "Liberation Intercept", + ["pylons"] = { + [1] = { + ["CLSID"] = "{Python 5}", + ["num"] = 11, + }, + [2] = { + ["CLSID"] = "{F-15D_cft_750gal_left_And_Tank}", + ["num"] = 10, + }, + [3] = { + ["CLSID"] = "{I-Derby ER}", + ["num"] = 9, + }, + [4] = { + ["CLSID"] = "{I-Derby ER}", + ["num"] = 8, + }, + [5] = { + ["CLSID"] = "{I-Derby ER}", + ["num"] = 7, + }, + [6] = { + ["CLSID"] = "{ELL - 8222SB}", + ["num"] = 5, + }, + [7] = { + ["CLSID"] = "{I-Derby ER}", + ["num"] = 4, + }, + [8] = { + ["CLSID"] = "{I-Derby ER}", + ["num"] = 3, + }, + [9] = { + ["CLSID"] = "{F-15D_cft_750gal_Right_And_Tank}", + ["num"] = 2, + }, + [10] = { + ["CLSID"] = "{Python 5}", + ["num"] = 1, + }, + }, + ["tasks"] = { + [1] = 11, + [2] = 18, + [3] = 19, + [4] = 10, + }, + }, + [8] = { + ["displayName"] = "Liberation BAI", + ["name"] = "Liberation BAI", + ["pylons"] = { + [1] = { + ["CLSID"] = "{Python 5}", + ["num"] = 11, + }, + [2] = { + ["CLSID"] = "{GBU-31}", + ["num"] = 10, + }, + [3] = { + ["CLSID"] = "{GBU-31}", + ["num"] = 2, + }, + [4] = { + ["CLSID"] = "{I-Derby ER}", + ["num"] = 9, + }, + [5] = { + ["CLSID"] = "{I-Derby ER}", + ["num"] = 3, + }, + [6] = { + ["CLSID"] = "{Python 5}", + ["num"] = 1, + }, + [7] = { + ["CLSID"] = "{I-Derby ER}", + ["num"] = 4, + }, + [8] = { + ["CLSID"] = "{ELL - 8222SB}", + ["num"] = 5, + }, + [9] = { + ["CLSID"] = "{I-Derby ER}", + ["num"] = 8, + }, + [10] = { + ["CLSID"] = "{I-Derby ER}", + ["num"] = 7, + }, + [11] = { + ["CLSID"] = "{E1F29B21-F291-4589-9FD8-3272EEC69506}", + ["num"] = 6, + }, + }, + ["tasks"] = { + [1] = 31, + [2] = 32, + }, + }, + }, + ["tasks"] = { + }, + ["unitType"] = "F-15D", +} +return unitPayloads diff --git a/resources/factions/Israel-USN_2005_Allied_Sword.json b/resources/factions/Israel-USN_2005_Allied_Sword.json index ed7e2fc8..d26363ce 100644 --- a/resources/factions/Israel-USN_2005_Allied_Sword.json +++ b/resources/factions/Israel-USN_2005_Allied_Sword.json @@ -9,6 +9,7 @@ "aircrafts": [ "F-4E Phantom II", "F-15C Eagle", + "F-15D Baz", "F-15E Strike Eagle", "F-16CM Fighting Falcon (Block 50)", "F-14B Tomcat", diff --git a/resources/factions/bluefor_modern.json b/resources/factions/bluefor_modern.json index 9f760493..bdb3f938 100644 --- a/resources/factions/bluefor_modern.json +++ b/resources/factions/bluefor_modern.json @@ -17,6 +17,7 @@ "C-130J-30 Super Hercules", "F-14B Tomcat", "F-15C Eagle", + "F-15D Baz", "F-15E Strike Eagle", "F-16CM Fighting Falcon (Block 50)", "F-22A Raptor", diff --git a/resources/factions/israel_2000.json b/resources/factions/israel_2000.json index c81a3515..5b10395e 100644 --- a/resources/factions/israel_2000.json +++ b/resources/factions/israel_2000.json @@ -13,6 +13,7 @@ "C-130", "C-130J-30 Super Hercules", "F-15C Eagle", + "F-15D Baz", "F-15E Strike Eagle", "F-16CM Fighting Falcon (Block 50)", "F-4E Phantom II", diff --git a/resources/factions/israel_2012.json b/resources/factions/israel_2012.json index c8cc4160..05bdd7ba 100644 --- a/resources/factions/israel_2012.json +++ b/resources/factions/israel_2012.json @@ -13,6 +13,7 @@ "C-130", "C-130J-30 Super Hercules", "F-15C Eagle", + "F-15D Baz", "F-15E Strike Eagle", "F-16CM Fighting Falcon (Block 50)", "F/A-18C Hornet (Lot 20)", diff --git a/resources/ui/units/aircrafts/banners/F-15D_24.jpg b/resources/ui/units/aircrafts/banners/F-15D_24.jpg new file mode 100644 index 00000000..845afb8c Binary files /dev/null and b/resources/ui/units/aircrafts/banners/F-15D_24.jpg differ diff --git a/resources/ui/units/aircrafts/icons/F-15D_24.jpg b/resources/ui/units/aircrafts/icons/F-15D_24.jpg new file mode 100644 index 00000000..4b110c67 Binary files /dev/null and b/resources/ui/units/aircrafts/icons/F-15D_24.jpg differ diff --git a/resources/units/aircraft/F-15D.yaml b/resources/units/aircraft/F-15D.yaml new file mode 100644 index 00000000..c954a7aa --- /dev/null +++ b/resources/units/aircraft/F-15D.yaml @@ -0,0 +1,17 @@ +description: + The F-15 has often been labeled as the greatest U.S. fighter aircraft + from the 1970s until the early 21st century. The F-15C is a pure fighter with outstanding + performance and has scored over 100 air-to-air victories without suffering any confirmed + losses. + + The "Baz" is an Israeli modification of the F-15, allowing it to carry both Python missiles as well as + the I-Derby made by Rafael Defence Industries. It also allowed the F-15 to carry out strike missions, + effectively making it a multi-rule fighter. With the addition of CFTs, the Baz' operational range is also extended. +introduced: 1979 +manufacturer: McDonnell Douglas +origin: USA +price: 22 +role: Air-Superiority Fighter +max_range: 450 +variants: + F-15D Baz: {}