diff --git a/game/data/cap_capabilities_db.py b/game/data/cap_capabilities_db.py deleted file mode 100644 index 160faede..00000000 --- a/game/data/cap_capabilities_db.py +++ /dev/null @@ -1,51 +0,0 @@ -from dcs.planes import ( - Bf_109K_4, - C_101CC, - FW_190A8, - FW_190D9, - F_5E_3, - F_86F_Sabre, - I_16, - L_39ZA, - MiG_15bis, - MiG_19P, - MiG_21Bis, - P_47D_30, - P_47D_30bl1, - P_47D_40, - P_51D, - P_51D_30_NA, - SpitfireLFMkIX, - SpitfireLFMkIXCW, -) - -from pydcs_extensions.a4ec.a4ec import A_4E_C - -""" -This list contains the aircraft that do not use the guns as the last resort weapons, but as a main weapon -They'll RTB when they don't have gun ammo left -""" -GUNFIGHTERS = [ - # Cold War - MiG_15bis, - MiG_19P, - MiG_21Bis, - F_86F_Sabre, - A_4E_C, - F_5E_3, - # Trainers - C_101CC, - L_39ZA, - # WW2 - P_51D_30_NA, - P_51D, - P_47D_30, - P_47D_30bl1, - P_47D_40, - SpitfireLFMkIXCW, - SpitfireLFMkIX, - Bf_109K_4, - FW_190D9, - FW_190A8, - I_16, -] diff --git a/game/dcs/aircrafttype.py b/game/dcs/aircrafttype.py index 5d3ee09a..077b3f9b 100644 --- a/game/dcs/aircrafttype.py +++ b/game/dcs/aircrafttype.py @@ -110,6 +110,11 @@ class AircraftType(UnitType[FlyingType]): carrier_capable: bool lha_capable: bool always_keeps_gun: bool + + # If true, the aircraft does not use the guns as the last resort weapons, but as a main weapon. + # It'll RTB when it doesn't have gun ammo left. + gunfighter: bool + max_group_size: int patrol_altitude: Optional[Distance] patrol_speed: Optional[Speed] @@ -231,6 +236,7 @@ class AircraftType(UnitType[FlyingType]): carrier_capable=data.get("carrier_capable", False), lha_capable=data.get("lha_capable", False), always_keeps_gun=data.get("always_keeps_gun", False), + gunfighter=data.get("gunfighter", False), max_group_size=data.get("max_group_size", aircraft.group_size_max), patrol_altitude=patrol_config.altitude, patrol_speed=patrol_config.speed, diff --git a/gen/aircraft.py b/gen/aircraft.py index 3d871ab0..1f20ada0 100644 --- a/gen/aircraft.py +++ b/gen/aircraft.py @@ -66,7 +66,6 @@ from dcs.unitgroup import FlyingGroup, ShipGroup, StaticGroup from dcs.unittype import FlyingType from game import db -from game.data.cap_capabilities_db import GUNFIGHTERS from game.data.weapons import Pylon from game.dcs.aircrafttype import AircraftType from game.factions.faction import Faction @@ -840,7 +839,7 @@ class AircraftConflictGenerator: group.task = CAP.name self._setup_group(group, package, flight, dynamic_runways) - if flight.unit_type.dcs_unit_type not in GUNFIGHTERS: + if not flight.unit_type.gunfighter: ammo_type = OptRTBOnOutOfAmmo.Values.AAM else: ammo_type = OptRTBOnOutOfAmmo.Values.Cannon @@ -857,7 +856,7 @@ class AircraftConflictGenerator: group.task = FighterSweep.name self._setup_group(group, package, flight, dynamic_runways) - if flight.unit_type.dcs_unit_type not in GUNFIGHTERS: + if not flight.unit_type.gunfighter: ammo_type = OptRTBOnOutOfAmmo.Values.AAM else: ammo_type = OptRTBOnOutOfAmmo.Values.Cannon diff --git a/resources/units/aircraft/A-4E-C.yaml b/resources/units/aircraft/A-4E-C.yaml index e5dd1fae..4e639553 100644 --- a/resources/units/aircraft/A-4E-C.yaml +++ b/resources/units/aircraft/A-4E-C.yaml @@ -11,5 +11,6 @@ manufacturer: Douglas origin: USA price: 7 role: Carrier-based Attack/Light Fighter +gunfighter: true variants: A-4E Skyhawk: {} diff --git a/resources/units/aircraft/Bf-109K-4.yaml b/resources/units/aircraft/Bf-109K-4.yaml index 2bb67bc1..b4f54973 100644 --- a/resources/units/aircraft/Bf-109K-4.yaml +++ b/resources/units/aircraft/Bf-109K-4.yaml @@ -14,5 +14,6 @@ introduced: 1944 manufacturer: Messerschmitt price: 4 role: Fighter +gunfighter: true variants: "Bf 109 K-4 Kurf\xFCrst": {} diff --git a/resources/units/aircraft/C-101CC.yaml b/resources/units/aircraft/C-101CC.yaml index 263966d9..d03aa66d 100644 --- a/resources/units/aircraft/C-101CC.yaml +++ b/resources/units/aircraft/C-101CC.yaml @@ -7,5 +7,6 @@ manufacturer: CASA origin: Spain price: 8 role: Light Attack +gunfighter: true variants: C-101CC Aviojet: {} diff --git a/resources/units/aircraft/F-5E-3.yaml b/resources/units/aircraft/F-5E-3.yaml index 8f957a9a..d1fa2348 100644 --- a/resources/units/aircraft/F-5E-3.yaml +++ b/resources/units/aircraft/F-5E-3.yaml @@ -20,5 +20,6 @@ manufacturer: Northrop origin: USA price: 12 role: Light Fighter +gunfighter: true variants: F-5E Tiger II: {} diff --git a/resources/units/aircraft/F-86F Sabre.yaml b/resources/units/aircraft/F-86F Sabre.yaml index e0031770..cf529ea3 100644 --- a/resources/units/aircraft/F-86F Sabre.yaml +++ b/resources/units/aircraft/F-86F Sabre.yaml @@ -11,5 +11,6 @@ manufacturer: North American origin: USA price: 8 role: Fighter +gunfighter: true variants: F-86F Sabre: {} diff --git a/resources/units/aircraft/FW-190A8.yaml b/resources/units/aircraft/FW-190A8.yaml index b0e4fb4a..d9074fdb 100644 --- a/resources/units/aircraft/FW-190A8.yaml +++ b/resources/units/aircraft/FW-190A8.yaml @@ -25,5 +25,6 @@ manufacturer: Focke-Wulf origin: Germany price: 3 role: Fighter +gunfighter: true variants: Fw 190 A-8 Anton: {} diff --git a/resources/units/aircraft/FW-190D9.yaml b/resources/units/aircraft/FW-190D9.yaml index 9b63d889..ec23af0c 100644 --- a/resources/units/aircraft/FW-190D9.yaml +++ b/resources/units/aircraft/FW-190D9.yaml @@ -14,5 +14,6 @@ manufacturer: Focke-Wulf origin: Germany price: 5 role: Fighter +gunfighter: true variants: Fw 190 D-9 Dora: {} diff --git a/resources/units/aircraft/I-16.yaml b/resources/units/aircraft/I-16.yaml index a68fe733..796875fa 100644 --- a/resources/units/aircraft/I-16.yaml +++ b/resources/units/aircraft/I-16.yaml @@ -13,5 +13,6 @@ manufacturer: Polikarpov origin: USSR/Russia price: 2 role: Fighter +gunfighter: true variants: I-16 Ishak: {} diff --git a/resources/units/aircraft/L-39ZA.yaml b/resources/units/aircraft/L-39ZA.yaml index b5f0d778..d8b80fd9 100644 --- a/resources/units/aircraft/L-39ZA.yaml +++ b/resources/units/aircraft/L-39ZA.yaml @@ -9,5 +9,6 @@ manufacturer: Aero origin: Czechoslovakia price: 10 role: Light Attack +gunfighter: true variants: L-39ZA Albatros: {} diff --git a/resources/units/aircraft/MiG-15bis.yaml b/resources/units/aircraft/MiG-15bis.yaml index af72ffa7..82aaa9be 100644 --- a/resources/units/aircraft/MiG-15bis.yaml +++ b/resources/units/aircraft/MiG-15bis.yaml @@ -15,6 +15,7 @@ manufacturer: Mikoyan-Gurevich origin: USSR/Russia price: 8 role: Fighter +gunfighter: true variants: MiG-15bis Fagot: {} radios: diff --git a/resources/units/aircraft/MiG-19P.yaml b/resources/units/aircraft/MiG-19P.yaml index 3182c3bc..0187b492 100644 --- a/resources/units/aircraft/MiG-19P.yaml +++ b/resources/units/aircraft/MiG-19P.yaml @@ -14,6 +14,7 @@ manufacturer: Mikoyan-Gurevich origin: USSR/Russia price: 10 role: Fighter +gunfighter: true variants: J-6A: introduced: 1962 diff --git a/resources/units/aircraft/MiG-21Bis.yaml b/resources/units/aircraft/MiG-21Bis.yaml index 4b3faf28..0d9140d7 100644 --- a/resources/units/aircraft/MiG-21Bis.yaml +++ b/resources/units/aircraft/MiG-21Bis.yaml @@ -11,6 +11,7 @@ manufacturer: Mikoyan-Gurevich origin: USSR/Russia price: 12 role: Fighter +gunfighter: true variants: J-7B: introduced: 1992 diff --git a/resources/units/aircraft/P-47D-30.yaml b/resources/units/aircraft/P-47D-30.yaml index f1a25fd7..a5539e27 100644 --- a/resources/units/aircraft/P-47D-30.yaml +++ b/resources/units/aircraft/P-47D-30.yaml @@ -19,6 +19,7 @@ manufacturer: Republic origin: USA price: 5 role: Fighter-Bomber +gunfighter: true variants: P-47D-30 Thunderbolt (Late): {} Thunderbolt Mk.II (Mid): {} diff --git a/resources/units/aircraft/P-47D-30bl1.yaml b/resources/units/aircraft/P-47D-30bl1.yaml index d9849538..7211942e 100644 --- a/resources/units/aircraft/P-47D-30bl1.yaml +++ b/resources/units/aircraft/P-47D-30bl1.yaml @@ -19,6 +19,7 @@ manufacturer: Republic origin: USA price: 5 role: Fighter-Bomber +gunfighter: true variants: P-47D-30 Thunderbolt (Early): {} Thunderbolt Mk.II (Early): {} diff --git a/resources/units/aircraft/P-47D-40.yaml b/resources/units/aircraft/P-47D-40.yaml index 323b7ee9..b038fd3c 100644 --- a/resources/units/aircraft/P-47D-40.yaml +++ b/resources/units/aircraft/P-47D-40.yaml @@ -19,6 +19,7 @@ manufacturer: Republic origin: USA price: 6 role: Fighter-Bomber +gunfighter: true variants: P-47D-40 Thunderbolt: {} Thunderbolt Mk.II (Late): {} diff --git a/resources/units/aircraft/P-51D-30-NA.yaml b/resources/units/aircraft/P-51D-30-NA.yaml index 62921aa3..876689cd 100644 --- a/resources/units/aircraft/P-51D-30-NA.yaml +++ b/resources/units/aircraft/P-51D-30-NA.yaml @@ -20,6 +20,7 @@ manufacturer: North American origin: USA price: 5 role: Fighter +gunfighter: true variants: Mustang Mk.IV (Late): {} P-51D-30-NA Mustang: {} diff --git a/resources/units/aircraft/P-51D.yaml b/resources/units/aircraft/P-51D.yaml index 2eac353e..54e52abc 100644 --- a/resources/units/aircraft/P-51D.yaml +++ b/resources/units/aircraft/P-51D.yaml @@ -20,6 +20,7 @@ manufacturer: North American origin: USA price: 4 role: Fighter +gunfighter: true variants: Mustang Mk.IV (Early): {} P-51D-25-NA Mustang: {} diff --git a/resources/units/aircraft/SpitfireLFMkIX.yaml b/resources/units/aircraft/SpitfireLFMkIX.yaml index 662a9196..2bfc95ab 100644 --- a/resources/units/aircraft/SpitfireLFMkIX.yaml +++ b/resources/units/aircraft/SpitfireLFMkIX.yaml @@ -38,5 +38,6 @@ manufacturer: Supermarine origin: UK price: 3 role: Fighter +gunfighter: true variants: Spitfire LF Mk IX: {} diff --git a/resources/units/aircraft/SpitfireLFMkIXCW.yaml b/resources/units/aircraft/SpitfireLFMkIXCW.yaml index a47b7e22..1f94bd22 100644 --- a/resources/units/aircraft/SpitfireLFMkIXCW.yaml +++ b/resources/units/aircraft/SpitfireLFMkIXCW.yaml @@ -38,5 +38,6 @@ manufacturer: Supermarine origin: UK price: 3 role: Fighter +gunfighter: true variants: Spitfire LF Mk IX (Clipped Wings): {}