diff --git a/changelog.md b/changelog.md index d587aa85..2116f320 100644 --- a/changelog.md +++ b/changelog.md @@ -34,6 +34,7 @@ Saves from 2.3 are not compatible with 2.4. * **[Factions]** Added Greece 2005 faction. * **[Factions]** Added Iran 1988 faction. * **[Units]** Support for E-2 Hawkeye, SH-60B Seahawk, S-3B Viking (thanks to awinterquest) and SpGH Dana - these are now being used by appropriate factions. +* **[Culling]** Missile sites are no longer culled. * **[Campaigns]** Added campaign "Black Sea Lite" by Starfire * **[Campaigns]** Added campaign "Exercise Vegas Nerve" by Starfire * **[New game Wizard]** The theater page is now the first page of the campaign wizard, recommended factions will be selected automatically on the faction selection page diff --git a/game/game.py b/game/game.py index a4212d9f..59bca268 100644 --- a/game/game.py +++ b/game/game.py @@ -31,7 +31,8 @@ from .infos.information import Information from .navmesh import NavMesh from .procurement import ProcurementAi from .settings import Settings -from .theater import ConflictTheater, ControlPoint +from .theater import ConflictTheater, ControlPoint, TheaterGroundObject +from game.theater.theatergroundobject import MissileSiteGroundObject from .threatzones import ThreatZones from .unitmap import UnitMap from .weather import Conditions, TimeOfDay @@ -388,9 +389,14 @@ class Game: points.append(front_line.control_point_a.position) points.append(front_line.control_point_b.position) - # If do_not_cull_carrier is enabled, add carriers as culling point - if self.settings.perf_do_not_cull_carrier: - for cp in self.theater.controlpoints: + for cp in self.theater.controlpoints: + # Don't cull missile sites - their range is long enough to make them + # easily culled despite being a threat. + for tgo in cp.ground_objects: + if isinstance(tgo, MissileSiteGroundObject): + points.append(cp.position) + # If do_not_cull_carrier is enabled, add carriers as culling point + if self.settings.perf_do_not_cull_carrier: if cp.is_carrier or cp.is_lha: points.append(cp.position)