Add route profile patrol selection
This commit is contained in:
@@ -2,6 +2,7 @@ import math
|
||||
import time
|
||||
|
||||
from hardware_control import hw_ctrl
|
||||
from route_profile import normalize_route_list
|
||||
|
||||
|
||||
class DeathManager:
|
||||
@@ -13,16 +14,19 @@ class DeathManager:
|
||||
resurrection_waypoints_path=None,
|
||||
resurrection_route_a_path=None,
|
||||
resurrection_route_b_path=None,
|
||||
resurrection_routes=None,
|
||||
release_spirit_key='9',
|
||||
resurrect_key='0',
|
||||
):
|
||||
self.patrol_system = patrol_system
|
||||
self.release_spirit_key = str(release_spirit_key).strip() or '9'
|
||||
self.resurrect_key = str(resurrect_key).strip() or '0'
|
||||
self.resurrection_route_a = self._load_waypoints(
|
||||
resurrection_route_a_path or resurrection_waypoints_path
|
||||
self.resurrection_routes = self._load_resurrection_routes(
|
||||
resurrection_routes,
|
||||
resurrection_waypoints_path=resurrection_waypoints_path,
|
||||
resurrection_route_a_path=resurrection_route_a_path,
|
||||
resurrection_route_b_path=resurrection_route_b_path,
|
||||
)
|
||||
self.resurrection_route_b = self._load_waypoints(resurrection_route_b_path)
|
||||
|
||||
self.corpse_pos = None
|
||||
self.graveyard_pos = None
|
||||
@@ -53,6 +57,29 @@ class DeathManager:
|
||||
pass
|
||||
return None
|
||||
|
||||
def _load_resurrection_routes(
|
||||
self,
|
||||
resurrection_routes=None,
|
||||
resurrection_waypoints_path=None,
|
||||
resurrection_route_a_path=None,
|
||||
resurrection_route_b_path=None,
|
||||
):
|
||||
routes = []
|
||||
for route in normalize_route_list(resurrection_routes, "复活路线"):
|
||||
routes.append((route["name"], route["points"]))
|
||||
if routes:
|
||||
return routes
|
||||
|
||||
legacy_routes = [
|
||||
("A", resurrection_route_a_path or resurrection_waypoints_path),
|
||||
("B", resurrection_route_b_path),
|
||||
]
|
||||
for name, path in legacy_routes:
|
||||
points = self._load_waypoints(path)
|
||||
if points:
|
||||
routes.append((name, points))
|
||||
return routes
|
||||
|
||||
def _clear_death_run_state(self):
|
||||
self.graveyard_pos = None
|
||||
self.selected_resurrection_route = None
|
||||
@@ -61,12 +88,7 @@ class DeathManager:
|
||||
self._resurrection_completed = False
|
||||
|
||||
def _build_resurrection_route_candidates(self):
|
||||
candidates = []
|
||||
if self.resurrection_route_a:
|
||||
candidates.append(("A", self.resurrection_route_a))
|
||||
if self.resurrection_route_b:
|
||||
candidates.append(("B", self.resurrection_route_b))
|
||||
return candidates
|
||||
return list(self.resurrection_routes)
|
||||
|
||||
def _record_graveyard_pos(self, state):
|
||||
if self.graveyard_pos is not None:
|
||||
|
||||
Reference in New Issue
Block a user