diff --git a/src/OperatingSystemPackage/Widget/GlobalGameWidgetContainer.py b/src/OperatingSystemPackage/Widget/GlobalGameWidgetContainer.py index 13a092e..23242b6 100644 --- a/src/OperatingSystemPackage/Widget/GlobalGameWidgetContainer.py +++ b/src/OperatingSystemPackage/Widget/GlobalGameWidgetContainer.py @@ -48,6 +48,9 @@ def __init__(self, monitor: Monitor, pyautogui: PyAutoGui, initial_floor_lvl: in Logger.info('Locating Ring Widget...') self.__ring_region = self.__locate_ring_widget() + Logger.info('Locating Skills Widget...') + self.__skill_region = self.__locate_skill_widget() + def battle_list_widget(self) -> ScreenRegion: return self.__battle_list_widget_region @@ -214,3 +217,23 @@ def __locate_ring_widget(self) -> ScreenRegion: end_x = x + width return ScreenRegion(start_x, end_x, start_y, end_y) + + def __locate_skill_widget(self) -> ScreenRegion: + frame = cv2.cvtColor(self.__initial_setup_screenshot, cv2.COLOR_BGR2GRAY) + + skill_anchor = Cv2File.load_image(f'src/Wiki/Ui/Skill/skill_widget.png') + + match = cv2.matchTemplate(frame, skill_anchor, cv2.TM_CCOEFF_NORMED) + + [_, _, _, max_coordinates] = cv2.minMaxLoc(match) + + (x, y) = max_coordinates + + height, width = skill_anchor.shape + + start_x = x + end_x = start_x + width + start_y = y + end_y = start_y + height + self.__monitor.adjust_pixel_to_monitor(Constants.REFERENCE_SKILL_WIDGET_HEIGHT) + + return ScreenRegion(start_x, end_x, start_y, end_y) diff --git a/src/SharedPackage/Constants.py b/src/SharedPackage/Constants.py index 3c12982..69df2d7 100644 --- a/src/SharedPackage/Constants.py +++ b/src/SharedPackage/Constants.py @@ -19,6 +19,8 @@ class Constants: REFERENCE_MINI_MAP_START_Y = 50 REFERENCE_MINI_MAP_END_Y = 109 + REFERENCE_SKILL_WIDGET_HEIGHT = 180 + # APP MODE TRAIN_MODE = "TRAIN_MODE" DEBUG_MODE = "DEBUG_MODE" diff --git a/src/Wiki/Ui/Skill/skill_widget.png b/src/Wiki/Ui/Skill/skill_widget.png new file mode 100644 index 0000000..2a4f35e Binary files /dev/null and b/src/Wiki/Ui/Skill/skill_widget.png differ