Clean unused templates (#387)
|
Before Width: | Height: | Size: 7.2 KiB |
|
Before Width: | Height: | Size: 18 KiB |
|
Before Width: | Height: | Size: 102 KiB |
|
Before Width: | Height: | Size: 67 KiB |
|
Before Width: | Height: | Size: 81 KiB |
|
Before Width: | Height: | Size: 62 KiB |
|
Before Width: | Height: | Size: 40 KiB |
|
Before Width: | Height: | Size: 42 KiB |
|
Before Width: | Height: | Size: 56 KiB |
|
Before Width: | Height: | Size: 68 KiB |
|
Before Width: | Height: | Size: 136 KiB |
|
Before Width: | Height: | Size: 206 KiB |
|
Before Width: | Height: | Size: 83 KiB |
|
Before Width: | Height: | Size: 67 KiB |
@@ -86,7 +86,7 @@ item_width_min=20
|
||||
; pather
|
||||
reached_node_dist=100
|
||||
min_walk_dist=25
|
||||
max_walk_dist=177
|
||||
max_walk_dist=127
|
||||
|
||||
[ui_roi]
|
||||
; all rois are in [left, top, width, height] format
|
||||
|
||||
@@ -25,8 +25,7 @@ class A1(IAct):
|
||||
def can_heal(self) -> bool: return True
|
||||
def can_stash(self) -> bool: return True
|
||||
def can_trade_and_repair(self) -> bool: return True
|
||||
|
||||
|
||||
|
||||
def resurrect(self, curr_loc: Location) -> Union[Location, bool]:
|
||||
if not self._pather.traverse_nodes((curr_loc, Location.A1_KASHYA_CAIN), self._char, force_move=True):
|
||||
return False
|
||||
@@ -51,20 +50,20 @@ class A1(IAct):
|
||||
if success:
|
||||
return Location.A1_TOWN_START
|
||||
return False
|
||||
|
||||
|
||||
def identify(self, curr_loc: Location) -> Union[Location, bool]:
|
||||
if not self._pather.traverse_nodes((curr_loc, Location.A1_KASHYA_CAIN), self._char): return False
|
||||
if self._npc_manager.open_npc_menu(Npc.CAIN):
|
||||
self._npc_manager.press_npc_btn(Npc.CAIN, "identify")
|
||||
return Location.A1_KASHYA_CAIN
|
||||
return False
|
||||
|
||||
return False
|
||||
|
||||
def open_trade_menu(self, curr_loc: Location) -> Union[Location, bool]:
|
||||
if not self._pather.traverse_nodes((curr_loc, Location.A1_AKARA), self._char, force_move=True): return False
|
||||
self._npc_manager.open_npc_menu(Npc.AKARA)
|
||||
self._npc_manager.press_npc_btn(Npc.AKARA, "trade")
|
||||
return Location.A1_AKARA
|
||||
|
||||
return Location.A1_AKARA
|
||||
|
||||
def open_stash(self, curr_loc: Location) -> Union[Location, bool]:
|
||||
if not self._pather.traverse_nodes((curr_loc, Location.A1_STASH), self._char):
|
||||
return False
|
||||
@@ -76,15 +75,15 @@ class A1(IAct):
|
||||
return found
|
||||
if not self._char.select_by_template(["A1_TOWN_0"], stash_is_open_func):
|
||||
return False
|
||||
return Location.A1_STASH
|
||||
return Location.A1_STASH
|
||||
|
||||
def heal(self, curr_loc: Location) -> Union[Location, bool]:
|
||||
if not self._pather.traverse_nodes((curr_loc, Location.A1_AKARA), self._char, force_move=True): return False
|
||||
self._npc_manager.open_npc_menu(Npc.AKARA)
|
||||
return Location.A1_AKARA
|
||||
|
||||
|
||||
def open_trade_and_repair_menu(self, curr_loc: Location) -> Union[Location, bool]:
|
||||
if not self._pather.traverse_nodes((curr_loc, Location.A1_CHARSI), self._char): return False
|
||||
self._npc_manager.open_npc_menu(Npc.CHARSI)
|
||||
self._npc_manager.press_npc_btn(Npc.CHARSI, "trade_repair")
|
||||
return Location.A1_CHARSI
|
||||
return Location.A1_CHARSI
|
||||
|
||||
@@ -26,8 +26,9 @@ class A2(IAct):
|
||||
|
||||
def heal(self, curr_loc: Location) -> Union[Location, bool]:
|
||||
if not self._pather.traverse_nodes((curr_loc, Location.A2_FARA_STASH), self._char): return False
|
||||
self._npc_manager.open_npc_menu(Npc.FARA)
|
||||
return Location.A2_FARA_STASH
|
||||
if self._npc_manager.open_npc_menu(Npc.FARA):
|
||||
return Location.A2_FARA_STASH
|
||||
return False
|
||||
|
||||
def open_stash(self, curr_loc: Location) -> Union[Location, bool]:
|
||||
if not self._pather.traverse_nodes((curr_loc, Location.A2_FARA_STASH), self._char):
|
||||
@@ -44,9 +45,10 @@ class A2(IAct):
|
||||
|
||||
def open_trade_and_repair_menu(self, curr_loc: Location) -> Union[Location, bool]:
|
||||
if not self._pather.traverse_nodes((curr_loc, Location.A2_FARA_STASH), self._char): return
|
||||
self._npc_manager.open_npc_menu(Npc.FARA)
|
||||
self._npc_manager.press_npc_btn(Npc.FARA, "trade_repair")
|
||||
return Location.A2_FARA_STASH
|
||||
if self._npc_manager.open_npc_menu(Npc.FARA):
|
||||
self._npc_manager.press_npc_btn(Npc.FARA, "trade_repair")
|
||||
return Location.A2_FARA_STASH
|
||||
return False
|
||||
|
||||
def open_wp(self, curr_loc: Location) -> bool:
|
||||
if not self._pather.traverse_nodes((curr_loc, Location.A2_WP), self._char, force_move=True): return False
|
||||
|
||||
@@ -20,7 +20,7 @@ class A3(IAct):
|
||||
|
||||
def get_wp_location(self) -> Location: return Location.A3_STASH_WP
|
||||
def can_buy_pots(self) -> bool: return True
|
||||
def can_identify(self) -> bool: return True
|
||||
def can_identify(self) -> bool: return True
|
||||
def can_heal(self) -> bool: return True
|
||||
def can_stash(self) -> bool: return True
|
||||
|
||||
@@ -31,9 +31,10 @@ class A3(IAct):
|
||||
|
||||
def open_trade_menu(self, curr_loc: Location) -> Union[Location, bool]:
|
||||
if not self._pather.traverse_nodes((curr_loc, Location.A3_ORMUS), self._char, force_move=True): return False
|
||||
self._npc_manager.open_npc_menu(Npc.ORMUS)
|
||||
self._npc_manager.press_npc_btn(Npc.ORMUS, "trade")
|
||||
return Location.A3_ORMUS
|
||||
if self._npc_manager.open_npc_menu(Npc.ORMUS):
|
||||
self._npc_manager.press_npc_btn(Npc.ORMUS, "trade")
|
||||
return Location.A3_ORMUS
|
||||
return False
|
||||
|
||||
def open_stash(self, curr_loc: Location) -> Union[Location, bool]:
|
||||
if not self._pather.traverse_nodes((curr_loc, Location.A3_STASH_WP), self._char, force_move=True):
|
||||
|
||||
@@ -25,8 +25,7 @@ class A4(IAct):
|
||||
def can_heal(self) -> bool: return True
|
||||
def can_stash(self) -> bool: return True
|
||||
def can_trade_and_repair(self) -> bool: return True
|
||||
|
||||
|
||||
|
||||
def resurrect(self, curr_loc: Location) -> Union[Location, bool]:
|
||||
if not self._pather.traverse_nodes((curr_loc, Location.A4_TYRAEL_STASH), self._char, force_move=True):
|
||||
return False
|
||||
@@ -47,20 +46,21 @@ class A4(IAct):
|
||||
if success:
|
||||
return Location.A4_TOWN_START
|
||||
return False
|
||||
|
||||
|
||||
def identify(self, curr_loc: Location) -> Union[Location, bool]:
|
||||
if not self._pather.traverse_nodes((curr_loc, Location.A4_TYRAEL_STASH), self._char): return False
|
||||
if self._npc_manager.open_npc_menu(Npc.CAIN):
|
||||
self._npc_manager.press_npc_btn(Npc.CAIN, "identify")
|
||||
return Location.A4_TYRAEL_STASH
|
||||
return False
|
||||
|
||||
return False
|
||||
|
||||
def open_trade_menu(self, curr_loc: Location) -> Union[Location, bool]:
|
||||
if not self._pather.traverse_nodes((curr_loc, Location.A4_JAMELLA), self._char, force_move=True): return False
|
||||
self._npc_manager.open_npc_menu(Npc.JAMELLA)
|
||||
self._npc_manager.press_npc_btn(Npc.JAMELLA, "trade")
|
||||
return Location.A4_JAMELLA
|
||||
|
||||
if self._npc_manager.open_npc_menu(Npc.JAMELLA):
|
||||
self._npc_manager.press_npc_btn(Npc.JAMELLA, "trade")
|
||||
return Location.A4_JAMELLA
|
||||
return False
|
||||
|
||||
def open_stash(self, curr_loc: Location) -> Union[Location, bool]:
|
||||
if not self._pather.traverse_nodes((curr_loc, Location.A4_TYRAEL_STASH), self._char):
|
||||
return False
|
||||
@@ -72,15 +72,17 @@ class A4(IAct):
|
||||
return found
|
||||
if not self._char.select_by_template(["A4_TOWN_2"], stash_is_open_func):
|
||||
return False
|
||||
return Location.A4_TYRAEL_STASH
|
||||
return Location.A4_TYRAEL_STASH
|
||||
|
||||
def heal(self, curr_loc: Location) -> Union[Location, bool]:
|
||||
if not self._pather.traverse_nodes((curr_loc, Location.A4_JAMELLA), self._char, force_move=True): return False
|
||||
self._npc_manager.open_npc_menu(Npc.JAMELLA)
|
||||
return Location.A4_JAMELLA
|
||||
|
||||
if self._npc_manager.open_npc_menu(Npc.JAMELLA):
|
||||
return Location.A4_JAMELLA
|
||||
return False
|
||||
|
||||
def open_trade_and_repair_menu(self, curr_loc: Location) -> Union[Location, bool]:
|
||||
if not self._pather.traverse_nodes((curr_loc, Location.A4_HALBU), self._char): return False
|
||||
self._npc_manager.open_npc_menu(Npc.HALBU)
|
||||
self._npc_manager.press_npc_btn(Npc.HALBU, "trade_repair")
|
||||
return Location.A4_HALBU
|
||||
if self._npc_manager.open_npc_menu(Npc.HALBU):
|
||||
self._npc_manager.press_npc_btn(Npc.HALBU, "trade_repair")
|
||||
return Location.A4_HALBU
|
||||
return False
|
||||
|
||||
@@ -19,7 +19,6 @@ class A5(IAct):
|
||||
self._template_finder = template_finder
|
||||
|
||||
def get_wp_location(self) -> Location: return Location.A5_WP
|
||||
|
||||
def can_heal(self) -> bool: return True
|
||||
def can_buy_pots(self) -> bool: return True
|
||||
def can_resurrect(self) -> bool: return True
|
||||
@@ -29,15 +28,16 @@ class A5(IAct):
|
||||
|
||||
def heal(self, curr_loc: Location) -> Union[Location, bool]:
|
||||
if not self._pather.traverse_nodes((curr_loc, Location.A5_MALAH), self._char, force_move=True): return False
|
||||
self._npc_manager.open_npc_menu(Npc.MALAH)
|
||||
if not self._npc_manager.open_npc_menu(Npc.MALAH): return False
|
||||
if not self._pather.traverse_nodes((Location.A5_MALAH, Location.A5_TOWN_START), self._char, force_move=True): return False
|
||||
return Location.A5_TOWN_START
|
||||
|
||||
def open_trade_menu(self, curr_loc: Location) -> Union[Location, bool]:
|
||||
if not self._pather.traverse_nodes((curr_loc, Location.A5_MALAH), self._char, force_move=True): return False
|
||||
self._npc_manager.open_npc_menu(Npc.MALAH)
|
||||
self._npc_manager.press_npc_btn(Npc.MALAH, "trade")
|
||||
return Location.A5_MALAH
|
||||
if self._npc_manager.open_npc_menu(Npc.MALAH):
|
||||
self._npc_manager.press_npc_btn(Npc.MALAH, "trade")
|
||||
return Location.A5_MALAH
|
||||
return False
|
||||
|
||||
def resurrect(self, curr_loc: Location) -> Union[Location, bool]:
|
||||
if not self._pather.traverse_nodes((curr_loc, Location.A5_QUAL_KEHK), self._char): return False
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
from typing import Union
|
||||
from pather import Location
|
||||
|
||||
|
||||
class IAct:
|
||||
# Open waypoint menu
|
||||
def open_wp(self, curr_loc: Location) -> bool: return False
|
||||
|
||||
@@ -47,10 +47,8 @@ class TownManager:
|
||||
"A5_TOWN_0", "A5_TOWN_1",
|
||||
"A4_TOWN_4", "A4_TOWN_5",
|
||||
"A3_TOWN_0", "A3_TOWN_1",
|
||||
"A2_TOWN_0", "A2_TOWN_1",
|
||||
"A2_TOWN_10", "A1_TOWN_0",
|
||||
"A1_TOWN_1"
|
||||
|
||||
"A2_TOWN_0", "A2_TOWN_1", "A2_TOWN_10",
|
||||
"A1_TOWN_0", "A1_TOWN_1"
|
||||
], best_match=True, time_out=time_out)
|
||||
if template_match.valid:
|
||||
return TownManager.get_act_from_location(template_match.name)
|
||||
@@ -74,7 +72,7 @@ class TownManager:
|
||||
elif act_idx == 2: act = Location.A2_TOWN_START
|
||||
elif act_idx == 3: act = Location.A3_TOWN_START
|
||||
elif act_idx == 4: act = Location.A4_TOWN_START
|
||||
elif act_idx == 5: act = Location.A5_TOWN_START
|
||||
elif act_idx == 5: act = Location.A5_TOWN_START
|
||||
else:
|
||||
Logger.error(f"Act {act_idx} is not supported")
|
||||
return False
|
||||
|
||||