diff --git a/game/squadrons.py b/game/squadrons.py index aa74704c..8e8e4d77 100644 --- a/game/squadrons.py +++ b/game/squadrons.py @@ -163,6 +163,9 @@ class Squadron: def _pilots_with_status(self, status: PilotStatus) -> list[Pilot]: return [p for p in self.pilots if p.status == status] + def _pilots_without_status(self, status: PilotStatus) -> list[Pilot]: + return [p for p in self.pilots if p.status != status] + @property def active_pilots(self) -> list[Pilot]: return self._pilots_with_status(PilotStatus.Active) @@ -172,8 +175,12 @@ class Squadron: return self._pilots_with_status(PilotStatus.OnLeave) @property - def size(self) -> int: - return len(self.active_pilots) + len(self.pilots_on_leave) + def number_of_pilots_including_dead(self) -> int: + return len(self.pilots) + + @property + def number_of_living_pilots(self) -> int: + return len(self._pilots_without_status(PilotStatus.Dead)) def pilot_at_index(self, index: int) -> Pilot: return self.pilots[index] diff --git a/qt_ui/models.py b/qt_ui/models.py index 9887aa05..ba85d7e2 100644 --- a/qt_ui/models.py +++ b/qt_ui/models.py @@ -424,7 +424,7 @@ class SquadronModel(QAbstractListModel): self.squadron = squadron def rowCount(self, parent: QModelIndex = QModelIndex()) -> int: - return self.squadron.size + return self.squadron.number_of_pilots_including_dead def data(self, index: QModelIndex, role: int = Qt.DisplayRole) -> Any: if not index.isValid(): diff --git a/qt_ui/windows/AirWingDialog.py b/qt_ui/windows/AirWingDialog.py index 05bdea5f..80c6443a 100644 --- a/qt_ui/windows/AirWingDialog.py +++ b/qt_ui/windows/AirWingDialog.py @@ -52,9 +52,10 @@ class SquadronDelegate(TwoColumnRowDelegate): return self.squadron(index).nickname elif (row, column) == (1, 1): squadron = self.squadron(index) + alive = squadron.number_of_living_pilots active = len(squadron.active_pilots) available = len(squadron.available_pilots) - return f"{squadron.size} pilots, {active} active, {available} unassigned" + return f"{alive} pilots, {active} active, {available} unassigned" return ""