From aafc832e244b1844abbf81ceb6d84ff30bdeb4fc Mon Sep 17 00:00:00 2001 From: MetalStormGhost Date: Mon, 3 Jul 2023 18:53:21 +0300 Subject: [PATCH] Settings option: Generate SCENERY REMOVE OBJECTS ZONE triggers at roadbase Implemented an option in settings to disable or enable the SCENERY REMOVE OBJECTS ZONE triggers generated at roadbases (at the first waypoint). --- changelog.md | 1 + game/missiongenerator/triggergenerator.py | 11 ++++++----- game/settings/settings.py | 10 ++++++++++ 3 files changed, 17 insertions(+), 5 deletions(-) diff --git a/changelog.md b/changelog.md index 77d98430..e750985d 100644 --- a/changelog.md +++ b/changelog.md @@ -5,6 +5,7 @@ * **[Campaign Design]** Ability to define almost all possible settings in the campaign's yaml file. * **[Campaign Design]** Ability to add roadbases and/or ground spawns to campaigns. * **[Campaign Design]** Ability to define SCENERY REMOVE OBJECTS ZONE triggers with the roadbase objects in campaign miz. This might not work reliably in multiplayer due to DCS issues. FARPs can be used to remove scenery objects in multiplayer. +* **[Options]** Implemented an option in settings to disable the above SCENERY REMOVE OBJECTS ZONE triggers. * **[Campaign Management]** Improved squadron retreat logic at longer ranges. * **[Options]** Ability to load & save your settings. * **[Options]** Added a separate Doctrine page in settings with the following new options: diff --git a/game/missiongenerator/triggergenerator.py b/game/missiongenerator/triggergenerator.py index a20ff1dd..cc31b4e5 100644 --- a/game/missiongenerator/triggergenerator.py +++ b/game/missiongenerator/triggergenerator.py @@ -250,11 +250,12 @@ class TriggerGenerator: self._set_allegiances(player_coalition, enemy_coalition) self._gen_markers() self._generate_capture_triggers(player_coalition, enemy_coalition) - try: - self._generate_clear_statics_trigger(self.game.scenery_clear_zones) - self.game.scenery_clear_zones.clear() - except AttributeError: - logging.info(f"Unable to create Clear Statics triggers") + if self.game.settings.ground_start_scenery_remove_triggers: + try: + self._generate_clear_statics_trigger(self.game.scenery_clear_zones) + self.game.scenery_clear_zones.clear() + except AttributeError: + logging.info(f"Unable to create Clear Statics triggers") @classmethod def get_capture_zone_flag(cls) -> int: diff --git a/game/settings/settings.py b/game/settings/settings.py index 24189737..995c7eef 100644 --- a/game/settings/settings.py +++ b/game/settings/settings.py @@ -668,6 +668,16 @@ class Settings: "AI will always air-start from these bases (due to DCS limitation)." ), ) + ground_start_scenery_remove_triggers: bool = boolean_option( + "Generate SCENERY REMOVE OBJECTS ZONE triggers at roadbase first waypoints", + MISSION_GENERATOR_PAGE, + GAMEPLAY_SECTION, + default=True, + detail=( + "Can be used to remove lightposts and other obstacles from roadbase runways." + "Might not work in DCS multiplayer." + ), + ) ground_start_trucks: bool = boolean_option( "Spawn trucks at ground spawns in airbases instead of FARP statics", MISSION_GENERATOR_PAGE,