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: