diff --git a/assets/templates/a2_stash_medium.png b/assets/templates/a2_stash_medium.png deleted file mode 100644 index 696a3b8..0000000 Binary files a/assets/templates/a2_stash_medium.png and /dev/null differ diff --git a/assets/templates/a3_town/a3_town_6.png b/assets/templates/a3_town/a3_town_6.png deleted file mode 100644 index a007c4f..0000000 Binary files a/assets/templates/a3_town/a3_town_6.png and /dev/null differ diff --git a/assets/templates/a4_town/a4_town_1.png b/assets/templates/a4_town/a4_town_1.png deleted file mode 100644 index fa848f8..0000000 Binary files a/assets/templates/a4_town/a4_town_1.png and /dev/null differ diff --git a/assets/templates/shenk/shenk_19.png b/assets/templates/shenk/shenk_19.png deleted file mode 100644 index 97ab0a6..0000000 Binary files a/assets/templates/shenk/shenk_19.png and /dev/null differ diff --git a/assets/templates/shenk/shenk_20.png b/assets/templates/shenk/shenk_20.png deleted file mode 100644 index 64a81bf..0000000 Binary files a/assets/templates/shenk/shenk_20.png and /dev/null differ diff --git a/assets/templates/shenk/shenk_21.png b/assets/templates/shenk/shenk_21.png deleted file mode 100644 index e7c05d8..0000000 Binary files a/assets/templates/shenk/shenk_21.png and /dev/null differ diff --git a/assets/templates/shenk/shenk_22.png b/assets/templates/shenk/shenk_22.png deleted file mode 100644 index 4d77268..0000000 Binary files a/assets/templates/shenk/shenk_22.png and /dev/null differ diff --git a/assets/templates/shenk/shenk_23.png b/assets/templates/shenk/shenk_23.png deleted file mode 100644 index 5e674da..0000000 Binary files a/assets/templates/shenk/shenk_23.png and /dev/null differ diff --git a/assets/templates/shenk/shenk_24.png b/assets/templates/shenk/shenk_24.png deleted file mode 100644 index 1deb37a..0000000 Binary files a/assets/templates/shenk/shenk_24.png and /dev/null differ diff --git a/assets/templates/trav/trav_14.png b/assets/templates/trav/trav_14.png deleted file mode 100644 index 68fd417..0000000 Binary files a/assets/templates/trav/trav_14.png and /dev/null differ diff --git a/assets/templates/trav/trav_15.png b/assets/templates/trav/trav_15.png deleted file mode 100644 index f1a54e3..0000000 Binary files a/assets/templates/trav/trav_15.png and /dev/null differ diff --git a/assets/templates/trav/trav_26.png b/assets/templates/trav/trav_26.png deleted file mode 100644 index 7090bb1..0000000 Binary files a/assets/templates/trav/trav_26.png and /dev/null differ diff --git a/assets/templates/trav/trav_6.png b/assets/templates/trav/trav_6.png deleted file mode 100644 index 8750525..0000000 Binary files a/assets/templates/trav/trav_6.png and /dev/null differ diff --git a/assets/templates/trav/trav_9.png b/assets/templates/trav/trav_9.png deleted file mode 100644 index 8e7d054..0000000 Binary files a/assets/templates/trav/trav_9.png and /dev/null differ diff --git a/config/game.ini b/config/game.ini index a17cb50..89a50b1 100644 --- a/config/game.ini +++ b/config/game.ini @@ -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 diff --git a/src/town/a1.py b/src/town/a1.py index 0686485..8567107 100644 --- a/src/town/a1.py +++ b/src/town/a1.py @@ -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 diff --git a/src/town/a2.py b/src/town/a2.py index d614c39..0cf4bc9 100644 --- a/src/town/a2.py +++ b/src/town/a2.py @@ -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 diff --git a/src/town/a3.py b/src/town/a3.py index 4ea5b32..2b7175c 100644 --- a/src/town/a3.py +++ b/src/town/a3.py @@ -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): diff --git a/src/town/a4.py b/src/town/a4.py index c6e8394..b2a9b2b 100644 --- a/src/town/a4.py +++ b/src/town/a4.py @@ -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 diff --git a/src/town/a5.py b/src/town/a5.py index bc94cd2..63dea5e 100644 --- a/src/town/a5.py +++ b/src/town/a5.py @@ -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 diff --git a/src/town/i_act.py b/src/town/i_act.py index 7281ac2..0153cb5 100644 --- a/src/town/i_act.py +++ b/src/town/i_act.py @@ -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 diff --git a/src/town/town_manager.py b/src/town/town_manager.py index 88a8ab3..65de395 100644 --- a/src/town/town_manager.py +++ b/src/town/town_manager.py @@ -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