mirror of
https://github.com/LmeSzinc/StarRailCopilot.git
synced 2024-11-16 06:25:24 +00:00
c581f427b5
for wrong spawn point detected
167 lines
7.4 KiB
Python
167 lines
7.4 KiB
Python
from module.logger import logger
|
|
from tasks.map.control.waypoint import Waypoint
|
|
from tasks.map.keywords.plane import Luofu_Cloudford
|
|
from tasks.rogue.route.base import RouteBase
|
|
|
|
|
|
class Route(RouteBase):
|
|
|
|
def Luofu_Cloudford_F1Rogue_X59Y405(self):
|
|
"""
|
|
| Waypoint | Position | Direction | Rotation |
|
|
| ------------ | ------------------------- | --------- | -------- |
|
|
| spawn | Waypoint((59.3, 405.6)), | 96.7 | 91 |
|
|
| item1 | Waypoint((96.9, 393.0)), | 87.7 | 84 |
|
|
| enemy1 | Waypoint((126.2, 402.5)), | 96.8 | 101 |
|
|
| node2 | Waypoint((142.9, 413.0)), | 96.8 | 101 |
|
|
| enemy2top | Waypoint((214.6, 432.8)), | 94.1 | 87 |
|
|
| enemy2bottom | Waypoint((211.4, 483.3)), | 191.8 | 174 |
|
|
| enemy3 | Waypoint((288.0, 452.2)), | 87.7 | 260 |
|
|
| exit_ | Waypoint((291.8, 454.4)), | 5.7 | 91 |
|
|
| exit1 | Waypoint((295.0, 451.4)), | 96.7 | 89 |
|
|
| exit2 | Waypoint((296.0, 460.2)), | 96.9 | 89 |
|
|
"""
|
|
self.map_init(plane=Luofu_Cloudford, floor="F1Rogue", position=(59.3, 405.6))
|
|
self.register_domain_exit(
|
|
Waypoint((291.8, 454.4)), end_rotation=91,
|
|
left_door=Waypoint((295.0, 451.4)), right_door=Waypoint((296.0, 460.2)))
|
|
item1 = Waypoint((96.9, 393.0))
|
|
enemy1 = Waypoint((126.2, 402.5))
|
|
node2 = Waypoint((142.9, 413.0))
|
|
enemy2top = Waypoint((214.6, 432.8))
|
|
enemy2bottom = Waypoint((211.4, 483.3))
|
|
enemy3 = Waypoint((288.0, 452.2))
|
|
# ===== End of generated waypoints =====
|
|
|
|
self.rotation_set(120)
|
|
self.minimap.lock_rotation(120)
|
|
# 1, ignore item1, which position may cause detection error
|
|
# self.clear_item(item1)
|
|
self.clear_enemy(enemy1)
|
|
# 2 moving enemy
|
|
# Ignore enemy2, it might be a pig, you can never catch it.
|
|
# self.clear_enemy(
|
|
# enemy2top,
|
|
# enemy2bottom.straight_run(),
|
|
# )
|
|
# 3
|
|
self.clear_enemy(
|
|
node2.set_threshold(3),
|
|
enemy3,
|
|
)
|
|
if self.minimap.position_diff(enemy3.position) > 60:
|
|
logger.info('Cleared an enemy but have not reached enemy3')
|
|
self.clear_enemy(enemy3)
|
|
|
|
def Luofu_Cloudford_F1Rogue_X49Y405(self):
|
|
"""
|
|
| Waypoint | Position | Direction | Rotation |
|
|
| ------------ | ------------------------- | --------- | -------- |
|
|
| spawn | Waypoint((59.3, 405.6)), | 96.7 | 91 |
|
|
| item1 | Waypoint((96.9, 393.0)), | 87.7 | 84 |
|
|
| enemy1 | Waypoint((126.2, 402.5)), | 96.8 | 101 |
|
|
| node2 | Waypoint((142.9, 413.0)), | 96.8 | 101 |
|
|
| enemy2top | Waypoint((214.6, 432.8)), | 94.1 | 87 |
|
|
| enemy2bottom | Waypoint((211.4, 483.3)), | 191.8 | 174 |
|
|
| enemy3 | Waypoint((288.0, 452.2)), | 87.7 | 260 |
|
|
| exit_ | Waypoint((291.8, 454.4)), | 5.7 | 91 |
|
|
| exit1 | Waypoint((295.0, 451.4)), | 96.7 | 89 |
|
|
| exit2 | Waypoint((296.0, 460.2)), | 96.9 | 89 |
|
|
"""
|
|
self.map_init(plane=Luofu_Cloudford, floor="F1Rogue", position=(49.3, 405.6))
|
|
self.register_domain_exit(
|
|
Waypoint((291.8, 454.4)), end_rotation=91,
|
|
left_door=Waypoint((295.0, 451.4)), right_door=Waypoint((296.0, 460.2)))
|
|
item1 = Waypoint((96.9, 393.0))
|
|
enemy1 = Waypoint((126.2, 402.5))
|
|
node2 = Waypoint((142.9, 413.0))
|
|
enemy2top = Waypoint((214.6, 432.8))
|
|
enemy2bottom = Waypoint((211.4, 483.3))
|
|
enemy3 = Waypoint((288.0, 452.2))
|
|
# ===== End of generated waypoints =====
|
|
|
|
self.rotation_set(120)
|
|
self.minimap.lock_rotation(120)
|
|
# 1, ignore item1, which position may cause detection error
|
|
# self.clear_item(item1)
|
|
self.clear_enemy(enemy1)
|
|
# 2 moving enemy
|
|
# Ignore enemy2, it might be a pig, you can never catch it.
|
|
# self.clear_enemy(
|
|
# enemy2top,
|
|
# enemy2bottom.straight_run(),
|
|
# )
|
|
# 3
|
|
self.clear_enemy(
|
|
node2.set_threshold(3),
|
|
enemy3,
|
|
)
|
|
if self.minimap.position_diff(enemy3.position) > 60:
|
|
logger.info('Cleared an enemy but have not reached enemy3')
|
|
self.clear_enemy(enemy3)
|
|
|
|
"""
|
|
Notes
|
|
Luofu_Cloudford_F1Rogue_X49Y405 is the same as Luofu_Cloudford_F1Rogue_X59Y405
|
|
but for wrong spawn point detected
|
|
"""
|
|
|
|
def Luofu_Cloudford_F1Rogue_X44Y405(self):
|
|
"""
|
|
| Waypoint | Position | Direction | Rotation |
|
|
| ------------ | ------------------------- | --------- | -------- |
|
|
| spawn | Waypoint((59.3, 405.6)), | 96.7 | 91 |
|
|
| item1 | Waypoint((96.9, 393.0)), | 87.7 | 84 |
|
|
| enemy1 | Waypoint((126.2, 402.5)), | 96.8 | 101 |
|
|
| node2 | Waypoint((142.9, 413.0)), | 96.8 | 101 |
|
|
| enemy2top | Waypoint((214.6, 432.8)), | 94.1 | 87 |
|
|
| enemy2bottom | Waypoint((211.4, 483.3)), | 191.8 | 174 |
|
|
| enemy3 | Waypoint((288.0, 452.2)), | 87.7 | 260 |
|
|
| exit_ | Waypoint((291.8, 454.4)), | 5.7 | 91 |
|
|
| exit1 | Waypoint((295.0, 451.4)), | 96.7 | 89 |
|
|
| exit2 | Waypoint((296.0, 460.2)), | 96.9 | 89 |
|
|
"""
|
|
self.map_init(plane=Luofu_Cloudford, floor="F1Rogue", position=(43.8, 405.0))
|
|
self.register_domain_exit(
|
|
Waypoint((291.8, 454.4)), end_rotation=91,
|
|
left_door=Waypoint((295.0, 451.4)), right_door=Waypoint((296.0, 460.2)))
|
|
item1 = Waypoint((96.9, 393.0))
|
|
enemy1 = Waypoint((126.2, 402.5))
|
|
node2 = Waypoint((142.9, 413.0))
|
|
enemy2top = Waypoint((214.6, 432.8))
|
|
enemy2bottom = Waypoint((211.4, 483.3))
|
|
enemy3 = Waypoint((288.0, 452.2))
|
|
# ===== End of generated waypoints =====
|
|
|
|
self.rotation_set(120)
|
|
self.minimap.lock_rotation(120)
|
|
# 1, ignore item1, which position may cause detection error
|
|
# self.clear_item(item1)
|
|
self.clear_enemy(enemy1)
|
|
# 2 moving enemy
|
|
# Ignore enemy2, it might be a pig, you can never catch it.
|
|
# self.clear_enemy(
|
|
# enemy2top,
|
|
# enemy2bottom.straight_run(),
|
|
# )
|
|
# 3
|
|
self.clear_enemy(
|
|
node2.set_threshold(3),
|
|
enemy3,
|
|
)
|
|
if self.minimap.position_diff(enemy3.position) > 60:
|
|
logger.info('Cleared an enemy but have not reached enemy3')
|
|
self.clear_enemy(enemy3)
|
|
|
|
"""
|
|
Notes
|
|
Luofu_Cloudford_F1Rogue_X44Y405 is the same as Luofu_Cloudford_F1Rogue_X59Y405
|
|
but for wrong spawn point detected
|
|
"""
|
|
# Best 3 predictions: [
|
|
# ('Combat_Luofu_Cloudford_F1Rogue_X59Y405', 0.349, (43.8, 405.0)),
|
|
# ('Combat_Luofu_Cloudford_F1Rogue_X49Y405', 0.349, (43.8, 405.0)),
|
|
# ('Combat_Herta_SupplyZone_F2_X594Y247', 0.262, (641.3, 250.5))
|
|
# ]
|
|
# Best 3 nearby predictions: [('Combat_Jarilo_RivetTown_F1_X181Y439', 0.109, (178.5, 435.4))]
|