From 5db82f733f742b161a62b7df6baaef8b0e397a16 Mon Sep 17 00:00:00 2001 From: Dan Albert Date: Wed, 21 Dec 2022 13:21:08 -0800 Subject: [PATCH] Revert "Fix for orbit's broken stop condition" ED fixed the bug. This reverts commit 73ee2ba4c0308f5dc00be27a1c1586c4696fda71. --- .../aircraft/waypoints/_helper.py | 25 ------------------- .../aircraft/waypoints/holdpoint.py | 9 +++---- .../aircraft/waypoints/racetrack.py | 7 +----- 3 files changed, 4 insertions(+), 37 deletions(-) delete mode 100644 game/missiongenerator/aircraft/waypoints/_helper.py diff --git a/game/missiongenerator/aircraft/waypoints/_helper.py b/game/missiongenerator/aircraft/waypoints/_helper.py deleted file mode 100644 index b0800bf0..00000000 --- a/game/missiongenerator/aircraft/waypoints/_helper.py +++ /dev/null @@ -1,25 +0,0 @@ -from dcs import Mission -from dcs.action import SetFlag -from dcs.condition import TimeAfter -from dcs.task import ControlledTask -from dcs.triggers import TriggerOnce, Event - -from game.ato import Package - - -def create_stop_orbit_trigger( - orbit: ControlledTask, package: Package, mission: Mission, elapsed: int -) -> None: - orbit.stop_if_user_flag(id(package), True) - orbits = [ - x - for x in mission.triggerrules.triggers - if x.comment == f"StopOrbit{id(package)}" - ] - if not any(orbits): - stop_trigger = TriggerOnce(Event.NoEvent, f"StopOrbit{id(package)}") - stop_condition = TimeAfter(elapsed) - stop_action = SetFlag(id(package)) - stop_trigger.add_condition(stop_condition) - stop_trigger.add_action(stop_action) - mission.triggerrules.triggers.append(stop_trigger) diff --git a/game/missiongenerator/aircraft/waypoints/holdpoint.py b/game/missiongenerator/aircraft/waypoints/holdpoint.py index 04ad44ef..3e116c92 100644 --- a/game/missiongenerator/aircraft/waypoints/holdpoint.py +++ b/game/missiongenerator/aircraft/waypoints/holdpoint.py @@ -4,7 +4,6 @@ from dcs.point import MovingPoint from dcs.task import ControlledTask, OptFormation, OrbitAction from game.ato.flightplans.loiter import LoiterFlightPlan -from ._helper import create_stop_orbit_trigger from .pydcswaypointbuilder import PydcsWaypointBuilder @@ -23,10 +22,8 @@ class HoldPointBuilder(PydcsWaypointBuilder): return push_time = self.flight.flight_plan.push_time self.waypoint.departure_time = push_time - elapsed = int((push_time - self.elapsed_mission_time).total_seconds()) - loiter.stop_after_time(elapsed) - # What follows is some code to cope with the broken 'stop after time' condition - create_stop_orbit_trigger(loiter, self.package, self.mission, elapsed) - # end of hotfix + loiter.stop_after_time( + int((push_time - self.elapsed_mission_time).total_seconds()) + ) waypoint.add_task(loiter) waypoint.add_task(OptFormation.finger_four_close()) diff --git a/game/missiongenerator/aircraft/waypoints/racetrack.py b/game/missiongenerator/aircraft/waypoints/racetrack.py index e38c3734..2013e0ec 100644 --- a/game/missiongenerator/aircraft/waypoints/racetrack.py +++ b/game/missiongenerator/aircraft/waypoints/racetrack.py @@ -12,7 +12,6 @@ from dcs.task import ( from game.ato import FlightType from game.ato.flightplans.patrolling import PatrollingFlightPlan -from ._helper import create_stop_orbit_trigger from .pydcswaypointbuilder import PydcsWaypointBuilder @@ -58,11 +57,7 @@ class RaceTrackBuilder(PydcsWaypointBuilder): racetrack = ControlledTask(orbit) self.set_waypoint_tot(waypoint, flight_plan.patrol_start_time) loiter_duration = flight_plan.patrol_end_time - self.elapsed_mission_time - elapsed = int(loiter_duration.total_seconds()) - racetrack.stop_after_time(elapsed) - # What follows is some code to cope with the broken 'stop after time' condition - create_stop_orbit_trigger(racetrack, self.package, self.mission, elapsed) - # end of hotfix + racetrack.stop_after_time(int(loiter_duration.total_seconds())) waypoint.add_task(racetrack) def configure_refueling_actions(self, waypoint: MovingPoint) -> None: