diff --git a/game/theater/theatergroundobject.py b/game/theater/theatergroundobject.py index 2922089c..04c44f84 100644 --- a/game/theater/theatergroundobject.py +++ b/game/theater/theatergroundobject.py @@ -233,6 +233,11 @@ class TheaterGroundObject(MissionTarget): def is_factory(self) -> bool: return self.category == "factory" + @property + def is_control_point(self) -> bool: + """True if this TGO is the group for the control point itself (CVs and FOBs).""" + return False + class BuildingGroundObject(TheaterGroundObject): def __init__( @@ -354,7 +359,9 @@ class NavalGroundObject(TheaterGroundObject): class GenericCarrierGroundObject(NavalGroundObject): - pass + @property + def is_control_point(self) -> bool: + return True # TODO: Why is this both a CP and a TGO? diff --git a/qt_ui/widgets/map/mapmodel.py b/qt_ui/widgets/map/mapmodel.py index bffc61fd..b77788a4 100644 --- a/qt_ui/widgets/map/mapmodel.py +++ b/qt_ui/widgets/map/mapmodel.py @@ -517,6 +517,11 @@ class MapModel(QObject): continue seen.add(tgo.name) + if tgo.is_control_point: + # TGOs that are the CP (CV groups) are an implementation quirk that + # we don't need to expose to the UI. + continue + self._ground_objects.append(GroundObjectJs(tgo, self.game)) self.groundObjectsChanged.emit()