diff --git a/game/db.py b/game/db.py index 0a46473e..91b1c138 100644 --- a/game/db.py +++ b/game/db.py @@ -117,6 +117,7 @@ from dcs.planes import ( Yak_40, plane_map, I_16, + Tu_142, ) from dcs.ships import ( Boat_Armed_Hi_speed, @@ -456,6 +457,7 @@ PRICES = { Tu_160: 50, Tu_22M3: 40, Tu_95MS: 35, + Tu_142: 35, # special IL_76MD: 30, An_26B: 25, diff --git a/game/factions/faction.py b/game/factions/faction.py index b1cecc55..c72fa343 100644 --- a/game/factions/faction.py +++ b/game/factions/faction.py @@ -154,6 +154,8 @@ class Faction: faction.awacs = load_all_aircraft(json.get("awacs", [])) faction.tankers = load_all_aircraft(json.get("tankers", [])) + faction.aircrafts = list(set(faction.aircrafts + faction.awacs)) + faction.frontline_units = load_all_vehicles(json.get("frontline_units", [])) faction.artillery_units = load_all_vehicles(json.get("artillery_units", [])) faction.infantry_units = load_all_vehicles(json.get("infantry_units", [])) diff --git a/qt_ui/windows/basemenu/airfield/QAircraftRecruitmentMenu.py b/qt_ui/windows/basemenu/airfield/QAircraftRecruitmentMenu.py index 46128ca8..3dd2bb0e 100644 --- a/qt_ui/windows/basemenu/airfield/QAircraftRecruitmentMenu.py +++ b/qt_ui/windows/basemenu/airfield/QAircraftRecruitmentMenu.py @@ -52,23 +52,19 @@ class QAircraftRecruitmentMenu(QFrame, QRecruitBehaviour): row = 0 unit_types: Set[Type[FlyingType]] = set() - for task in tasks: - units = db.find_unittype(task, self.game_model.game.player_name) - if not units: + for unit_type in self.game_model.game.player_faction.aircrafts: + if not issubclass(unit_type, FlyingType): + raise RuntimeError(f"Non-flying aircraft found in faction: {unit_type}") + if self.cp.is_carrier and unit_type not in db.CARRIER_CAPABLE: continue - for unit in units: - if not issubclass(unit, FlyingType): - continue - if self.cp.is_carrier and unit not in db.CARRIER_CAPABLE: - continue - if self.cp.is_lha and unit not in db.LHA_CAPABLE: - continue - if ( - self.cp.cptype in [ControlPointType.FOB, ControlPointType.FARP] - and unit not in helicopter_map.values() - ): - continue - unit_types.add(unit) + if self.cp.is_lha and unit_type not in db.LHA_CAPABLE: + continue + if ( + self.cp.cptype in [ControlPointType.FOB, ControlPointType.FARP] + and unit_type not in helicopter_map.values() + ): + continue + unit_types.add(unit_type) sorted_units = sorted( unit_types,