import random from time import time from window_capture import WindowCapture from vision import Vision import cv2 as cv from hsvfilter import HsvFilter from config_file import UserConfigs import pydirectinput import keyboard EMITTER_MAIN = "main" EMITTER_MUSH = "mushroom" EMITTER_AMU = "amulett" EMITTER_SWORD = "sword" EMITTER_STAFF = "staff" EMITTER_WAND = "wand" EMITTER_RING = "ring" HSV_DEFAULT = HsvFilter(0, 0, 0, 179, 255, 255, 0, 0, 0, 0) def run(): EMITTER_TO_USE = EMITTER_STAFF SPAWN_COUNT = 15 # initialize the user-class config = UserConfigs() # initialize the StunWindowCapture class try: capture_window = WindowCapture( None, "equip", config) except: # StunWindowCapture.list_window_names() print("Game not running, exiting") # capture_window = cv.VideoCapture("snip_slam.mp4") return # initialize the StunVision class vision_stun = Vision() loop_time = time() needles = [] hsvs = [] tresholds = [] masks = [] if EMITTER_TO_USE == EMITTER_MUSH: include_books(needles, hsvs, tresholds, masks) include_mushs(needles, hsvs, tresholds, masks) include_pots(needles, hsvs, tresholds, masks) include_bags(needles, hsvs, tresholds, masks) elif EMITTER_TO_USE == EMITTER_AMU: include_books(needles, hsvs, tresholds, masks) include_amus(needles, hsvs, tresholds, masks) include_bags(needles, hsvs, tresholds, masks) elif EMITTER_TO_USE == EMITTER_MAIN: include_books(needles, hsvs, tresholds, masks) include_chests(needles, hsvs, tresholds, masks) include_keys(needles, hsvs, tresholds, masks) include_pots(needles, hsvs, tresholds, masks) include_bags(needles, hsvs, tresholds, masks) include_coins(needles, hsvs, tresholds, masks) include_runes(needles, hsvs, tresholds, masks) elif EMITTER_TO_USE == EMITTER_SWORD: include_books(needles, hsvs, tresholds, masks) include_swords(needles, hsvs, tresholds, masks) include_bags(needles, hsvs, tresholds, masks) elif EMITTER_TO_USE == EMITTER_STAFF: include_books(needles, hsvs, tresholds, masks) include_staffs(needles, hsvs, tresholds, masks) include_bags(needles, hsvs, tresholds, masks) elif EMITTER_TO_USE == EMITTER_RING: include_books(needles, hsvs, tresholds, masks) include_rings(needles, hsvs, tresholds, masks) include_bags(needles, hsvs, tresholds, masks) elif EMITTER_TO_USE == EMITTER_WAND: include_books(needles, hsvs, tresholds, masks) include_wands(needles, hsvs, tresholds, masks) include_bags(needles, hsvs, tresholds, masks) pause = True while True: if keyboard.is_pressed('p') == True: pause = True print('q pressed') elif keyboard.is_pressed('o') == True: pause = False print('o pressed') if pause: # cv.waitKey(500) print("pausing") continue try: # get an updated image of the game screenshot = capture_window.get_screenshot() # screenshot = cv.imread("buffbar.jpg") except: capture_window.release() print("Game window not available - shutting down application") break # cv.imshow("screenshot", screenshot) # cv.waitKey(150) # continue spawn_0_location = [] spawn_1 = find_emitter(EMITTER_TO_USE, vision_stun, screenshot, 1) if len(spawn_1) == 1: spawn_button_active = True points = vision_stun.get_click_points(spawn_1) for i in range(0, SPAWN_COUNT, 1): click_point(config, points[0][0], points[0][1]) if keyboard.is_pressed('p') == True or pause == True: pause = True break else: spawn_0 = find_emitter(EMITTER_TO_USE, vision_stun, screenshot, 0) points = vision_stun.get_click_points(spawn_0) for point in points: click_point(config, points[0][0], points[0][1]) if keyboard.is_pressed('p') == True or pause == True: pause = True break continue cv.waitKey(500) for rer in range(0, len(needles), 1): while True: # do object detection screenshot = capture_window.get_screenshot() # processed_screenshot = vision_stun.apply_hsv_filter(screenshot, hsvs[rer]) # processed_needle = vision_stun.apply_hsv_filter(needles[rer], hsvs[rer]) rectangles = vision_stun.find_by_mask_and_validate(screenshot, needles[rer], masks[rer], 5) # draw the detection results onto the original image # output_image = vision_stun.draw_rectangles(screenshot, rectangles) # cv.imshow("output_image", output_image) # cv.waitKey(150) if len(rectangles) is not 5: break if keyboard.is_pressed('p') == True or pause == True: pause = True break points = vision_stun.get_click_points(rectangles) check_and_move_tile(capture_window, vision_stun, config, [70, 70, rectangles[0][0] + 70, rectangles[0][1]], needles[rer], hsvs[rer], tresholds[rer], masks[rer], points[1], [points[0][0] + 70, points[0][1]]) if keyboard.is_pressed('p') == True or pause == True: pause = True break check_and_move_tile(capture_window, vision_stun, config, [70, 70, rectangles[0][0], rectangles[0][1] + 70], needles[rer], hsvs[rer], tresholds[rer], masks[rer], points[2], [points[0][0], points[0][1] + 70]) if keyboard.is_pressed('p') == True or pause == True: pause = True break check_and_move_tile(capture_window, vision_stun, config, [70, 70, rectangles[0][0] + 70, rectangles[0][1] + 70], needles[rer], hsvs[rer], tresholds[rer], masks[rer], points[3], [points[0][0] + 70, points[0][1] + 70]) move_tile(config, points[4], [points[0][0], points[0][1]]) if keyboard.is_pressed('p') == True or pause == True: pause = True break # debug the loop rate print('FPS {}'.format(1 / (time() - loop_time))) loop_time = time() cv.waitKey(150) def check_and_move_tile(capture_win, visio, conf, rect, needl, hsv, tresh, mask, point_source, point_dest): screenshot_pos = capture_win.get_screenshot() w = rect[0] h = rect[1] x = rect[2] y = rect[3] screenshot_pos = screenshot_pos[y:y + h, x:x + w] # (w, h, x+w, y+h) # processed_screenshot = visio.apply_hsv_filter(screenshot_pos, hsv) # processed_needle = visio.apply_hsv_filter(needl, hsv) result2 = cv.matchTemplate(screenshot_pos, needl, cv.TM_CCOEFF_NORMED) _minVal2, _maxVal2, minLoc2, maxLoc2 = cv.minMaxLoc(result2, None) # rectangles2 = visio.find(screenshot_pos, needl, tresh, 1, True, mask) # output_by_area = vision_stun.draw_rectangles(screenshot_pos2, rectangles) # cv.imshow("output_image_by_area", screenshot_pos) # cv.waitKey(150) print("thresh in movecheck:" + str(_maxVal2)) if _maxVal2 <= 0.9: move_tile(conf, point_source, point_dest) def click_point(conf, x, y): offset_left = conf.returnEquipmentWindowPos()[2] offset_down = conf.returnEquipmentWindowPos()[3] pydirectinput.moveTo(x + offset_left, y + offset_down) pydirectinput.mouseDown() w = random.randint(1, 50) cv.waitKey(30 + w) pydirectinput.mouseUp() def move_tile(conf, point_source, point_dest): offset_left = conf.returnEquipmentWindowPos()[2] offset_down = conf.returnEquipmentWindowPos()[3] pydirectinput.moveTo(point_source[0] + offset_left, point_source[1] + offset_down) pydirectinput.mouseDown() w = random.randint(1, 50) cv.waitKey(100 + w) pydirectinput.moveTo(point_dest[0] + offset_left, point_dest[1] + offset_down) pydirectinput.mouseUp() cv.waitKey(500) def find_emitter(emitter_to_use, vis, screen, layer): if emitter_to_use == EMITTER_MUSH: if layer == 0: needle = cv.imread("equip/emitters/mush_e_32.jpg", cv.IMREAD_UNCHANGED) mask = cv.imread("equip/emitters/mush_e_32-mask.png", cv.IMREAD_COLOR) return vis.find(screen, needle, 0.95, 1, True, mask) else: needle = cv.imread("equip/emitters/mush_e2_32.jpg", cv.IMREAD_UNCHANGED) mask = cv.imread("equip/emitters/mush_e2_32-mask.png", cv.IMREAD_COLOR) return vis.find(screen, needle, 0.98, 1, True, mask) elif emitter_to_use == EMITTER_AMU: if layer == 0: needle = cv.imread("equip/emitters/amu_e_32.jpg", cv.IMREAD_UNCHANGED) mask = cv.imread("equip/emitters/amu_e_32-mask.png", cv.IMREAD_COLOR) return vis.find(screen, needle, 0.95, 1, True, mask) else: needle = cv.imread("equip/emitters/amu_e2_32.jpg", cv.IMREAD_UNCHANGED) mask = cv.imread("equip/emitters/amu_e2_32-mask.png", cv.IMREAD_COLOR) return vis.find(screen, needle, 0.95, 1, True, mask) elif emitter_to_use == EMITTER_MAIN: if layer == 0: needle = cv.imread("equip/emitters/main_e1_32.jpg", cv.IMREAD_UNCHANGED) mask = cv.imread("equip/emitters/main_e1_32-mask.png", cv.IMREAD_COLOR) return vis.find(screen, needle, 0.95, 1, True, mask) else: needle = cv.imread("equip/emitters/main_e2_32.jpg", cv.IMREAD_UNCHANGED) mask = cv.imread("equip/emitters/main_e2_32-mask.png", cv.IMREAD_COLOR) return vis.find(screen, needle, 0.95, 1, True, mask) elif emitter_to_use == EMITTER_SWORD: if layer == 0: needle = cv.imread("equip/emitters/sword_e1_32.jpg", cv.IMREAD_UNCHANGED) mask = cv.imread("equip/emitters/sword_e1_32-mask.png", cv.IMREAD_COLOR) return vis.find(screen, needle, 0.95, 1, True, mask) else: needle = cv.imread("equip/emitters/sword_e2_32.jpg", cv.IMREAD_UNCHANGED) mask = cv.imread("equip/emitters/sword_e2_32-mask.png", cv.IMREAD_COLOR) return vis.find(screen, needle, 0.98, 1, True, mask) elif emitter_to_use == EMITTER_STAFF: if layer == 0: needle = cv.imread("equip/emitters/staff_e1_32.jpg", cv.IMREAD_UNCHANGED) mask = cv.imread("equip/emitters/staff_e1_32-mask.png", cv.IMREAD_COLOR) return vis.find(screen, needle, 0.95, 1, True, mask) else: needle = cv.imread("equip/emitters/staff_e2_32.jpg", cv.IMREAD_UNCHANGED) mask = cv.imread("equip/emitters/staff_e2_32-mask.png", cv.IMREAD_COLOR) return vis.find(screen, needle, 0.99, 1, True, mask) elif emitter_to_use == EMITTER_RING: if layer == 0: needle = cv.imread("equip/emitters/ring_e1_32.jpg", cv.IMREAD_UNCHANGED) mask = cv.imread("equip/emitters/ring_e1_32-mask.png", cv.IMREAD_COLOR) return vis.find(screen, needle, 0.95, 1, True, mask) else: needle = cv.imread("equip/emitters/ring_e2_32.jpg", cv.IMREAD_UNCHANGED) mask = cv.imread("equip/emitters/ring_e2_32-mask.png", cv.IMREAD_COLOR) return vis.find(screen, needle, 0.95, 1, True, mask) elif emitter_to_use == EMITTER_WAND: if layer == 0: needle = cv.imread("equip/emitters/wand_e1_32.jpg", cv.IMREAD_UNCHANGED) mask = cv.imread("equip/emitters/wand_e1_32-mask.png", cv.IMREAD_COLOR) return vis.find(screen, needle, 0.95, 1, True, mask) else: needle = cv.imread("equip/emitters/wand_e2_32.jpg", cv.IMREAD_UNCHANGED) mask = cv.imread("equip/emitters/wand_e2_32-mask.png", cv.IMREAD_COLOR) return vis.find(screen, needle, 0.96, 1, True, mask) def include_chests(needles, hsv, tresh, mask): needles.append(cv.imread("equip/chests/chest_1_32.jpg", cv.IMREAD_UNCHANGED)) hsv.append(HSV_DEFAULT) tresh.append(0.95) mask.append(cv.imread("equip/chests/chest_1_32-mask.png", cv.IMREAD_COLOR)) needles.append(cv.imread("equip/chests/chest_2_32.jpg", cv.IMREAD_UNCHANGED)) hsv.append(HSV_DEFAULT) tresh.append(0.95) mask.append(cv.imread("equip/chests/chest_2_32-mask.png", cv.IMREAD_COLOR)) needles.append(cv.imread("equip/chests/chest_3_32.jpg", cv.IMREAD_UNCHANGED)) hsv.append(HSV_DEFAULT) tresh.append(0.91) mask.append(cv.imread("equip/chests/chest_3_32-mask.png", cv.IMREAD_COLOR)) def include_books(needles, hsv, tresh, mask): needles.append(cv.imread("equip/books/book_1_32.jpg", cv.IMREAD_UNCHANGED)) hsv.append(HSV_DEFAULT) tresh.append(0.91) mask.append(cv.imread("equip/books/book_1_32-mask.png", cv.IMREAD_COLOR)) needles.append(cv.imread("equip/books/book_2_32.jpg", cv.IMREAD_UNCHANGED)) hsv.append(HSV_DEFAULT) tresh.append(0.9) mask.append(cv.imread("equip/books/book_2_32-mask.png", cv.IMREAD_COLOR)) needles.append(cv.imread("equip/books/book_3_32.jpg", cv.IMREAD_UNCHANGED)) hsv.append(HSV_DEFAULT) tresh.append(0.87) mask.append(cv.imread("equip/books/book_3_32-mask.png", cv.IMREAD_COLOR)) needles.append(cv.imread("equip/books/book_4_32.jpg", cv.IMREAD_UNCHANGED)) hsv.append(HSV_DEFAULT) tresh.append(0.93) mask.append(cv.imread("equip/books/book_4_32-mask.png", cv.IMREAD_COLOR)) needles.append(cv.imread("equip/books/book_5_32.jpg", cv.IMREAD_UNCHANGED)) hsv.append(HSV_DEFAULT) tresh.append(0.91) mask.append(cv.imread("equip/books/book_5_32-mask.png", cv.IMREAD_COLOR)) needles.append(cv.imread("equip/books/book_6_32.jpg", cv.IMREAD_UNCHANGED)) hsv.append(HSV_DEFAULT) tresh.append(0.9) mask.append(cv.imread("equip/books/book_6_32-mask.png", cv.IMREAD_COLOR)) needles.append(cv.imread("equip/books/book_7_32.jpg", cv.IMREAD_UNCHANGED)) hsv.append(HSV_DEFAULT) tresh.append(0.91) mask.append(cv.imread("equip/books/book_7_32-mask.png", cv.IMREAD_COLOR)) needles.append(cv.imread("equip/books/book_8_32.jpg", cv.IMREAD_UNCHANGED)) hsv.append(HSV_DEFAULT) tresh.append(0.91) mask.append(cv.imread("equip/books/book_8_32-mask.png", cv.IMREAD_COLOR)) def include_keys(needles, hsv, tresh, mask): needles.append(cv.imread("equip/keys/key_1_32.jpg", cv.IMREAD_UNCHANGED)) hsv.append(HSV_DEFAULT) tresh.append(0.91) mask.append(cv.imread("equip/keys/key_1_32-mask.png", cv.IMREAD_COLOR)) needles.append(cv.imread("equip/keys/key_2_32.jpg", cv.IMREAD_UNCHANGED)) hsv.append(HSV_DEFAULT) tresh.append(0.91) mask.append(cv.imread("equip/keys/key_2_32-mask.png", cv.IMREAD_COLOR)) needles.append(cv.imread("equip/keys/key_3_32.jpg", cv.IMREAD_UNCHANGED)) hsv.append(HSV_DEFAULT) tresh.append(0.91) mask.append(cv.imread("equip/keys/key_3_32-mask.png", cv.IMREAD_COLOR)) def include_pots(needles, hsv, tresh, mask): needles.append(cv.imread("equip/pots/pot_1_32.jpg", cv.IMREAD_UNCHANGED)) hsv.append(HSV_DEFAULT) tresh.append(0.91) mask.append(cv.imread("equip/pots/pot_1_32-mask.png", cv.IMREAD_COLOR)) needles.append(cv.imread("equip/pots/pot_2_32.jpg", cv.IMREAD_UNCHANGED)) hsv.append(HSV_DEFAULT) tresh.append(0.91) mask.append(cv.imread("equip/pots/pot_2_32-mask.png", cv.IMREAD_COLOR)) needles.append(cv.imread("equip/pots/pot_3_32.jpg", cv.IMREAD_UNCHANGED)) hsv.append(HSV_DEFAULT) tresh.append(0.94) mask.append(cv.imread("equip/pots/pot_3_32-mask.png", cv.IMREAD_COLOR)) needles.append(cv.imread("equip/pots/pot_4_32.jpg", cv.IMREAD_UNCHANGED)) hsv.append(HSV_DEFAULT) tresh.append(0.91) mask.append(cv.imread("equip/pots/pot_4_32-mask.png", cv.IMREAD_COLOR)) needles.append(cv.imread("equip/pots/pot_5_32.jpg", cv.IMREAD_UNCHANGED)) hsv.append(HSV_DEFAULT) tresh.append(0.91) mask.append(cv.imread("equip/pots/pot_5_32-mask.png", cv.IMREAD_COLOR)) needles.append(cv.imread("equip/pots/pot_6_32.jpg", cv.IMREAD_UNCHANGED)) hsv.append(HSV_DEFAULT) tresh.append(0.91) mask.append(cv.imread("equip/pots/pot_6_32-mask.png", cv.IMREAD_COLOR)) def include_bags(needles, hsv, tresh, mask): needles.append(cv.imread("equip/bags/bag_1_32.jpg", cv.IMREAD_UNCHANGED)) hsv.append(HSV_DEFAULT) tresh.append(0.91) mask.append(cv.imread("equip/bags/bag_1_32-mask.png", cv.IMREAD_COLOR)) needles.append(cv.imread("equip/bags/bag_2_32.jpg", cv.IMREAD_UNCHANGED)) hsv.append(HSV_DEFAULT) tresh.append(0.88) mask.append(cv.imread("equip/bags/bag_2_32-mask.png", cv.IMREAD_COLOR)) needles.append(cv.imread("equip/bags/bag_3_32.jpg", cv.IMREAD_UNCHANGED)) hsv.append(HSV_DEFAULT) tresh.append(0.91) mask.append(cv.imread("equip/bags/bag_3_32-mask.png", cv.IMREAD_COLOR)) needles.append(cv.imread("equip/bags/bag_4_32.jpg", cv.IMREAD_UNCHANGED)) hsv.append(HSV_DEFAULT) tresh.append(0.91) mask.append(cv.imread("equip/bags/bag_4_32-mask.png", cv.IMREAD_COLOR)) needles.append(cv.imread("equip/bags/bag_5_32.jpg", cv.IMREAD_UNCHANGED)) hsv.append(HSV_DEFAULT) tresh.append(0.91) mask.append(cv.imread("equip/bags/bag_5_32-mask.png", cv.IMREAD_COLOR)) needles.append(cv.imread("equip/bags/bag_6_32.jpg", cv.IMREAD_UNCHANGED)) hsv.append(HSV_DEFAULT) tresh.append(0.91) mask.append(cv.imread("equip/bags/bag_6_32-mask.png", cv.IMREAD_COLOR)) needles.append(cv.imread("equip/bags/bag_7_32.jpg", cv.IMREAD_UNCHANGED)) hsv.append(HSV_DEFAULT) tresh.append(0.91) mask.append(cv.imread("equip/bags/bag_7_32-mask.png", cv.IMREAD_COLOR)) def include_coins(needles, hsv, tresh, mask): needles.append(cv.imread("equip/coins/coin_1_32.jpg", cv.IMREAD_UNCHANGED)) hsv.append(HSV_DEFAULT) tresh.append(0.91) mask.append(cv.imread("equip/coins/coin_1_32-mask.png", cv.IMREAD_COLOR)) needles.append(cv.imread("equip/coins/coin_2_32.jpg", cv.IMREAD_UNCHANGED)) hsv.append(HSV_DEFAULT) tresh.append(0.91) mask.append(cv.imread("equip/coins/coin_2_32-mask.png", cv.IMREAD_COLOR)) needles.append(cv.imread("equip/coins/coin_3_32.jpg", cv.IMREAD_UNCHANGED)) hsv.append(HSV_DEFAULT) tresh.append(0.91) mask.append(cv.imread("equip/coins/coin_3_32-mask.png", cv.IMREAD_COLOR)) needles.append(cv.imread("equip/coins/coin_4_32.jpg", cv.IMREAD_UNCHANGED)) hsv.append(HSV_DEFAULT) tresh.append(0.91) mask.append(cv.imread("equip/coins/coin_4_32-mask.png", cv.IMREAD_COLOR)) needles.append(cv.imread("equip/coins/coin_5_32.jpg", cv.IMREAD_UNCHANGED)) hsv.append(HSV_DEFAULT) tresh.append(0.91) mask.append(cv.imread("equip/coins/coin_5_32-mask.png", cv.IMREAD_COLOR)) def include_runes(needles, hsv, tresh, mask): needles.append(cv.imread("equip/runes/rune_1_32.jpg", cv.IMREAD_UNCHANGED)) hsv.append(HSV_DEFAULT) tresh.append(0.91) mask.append(cv.imread("equip/runes/rune_1_32-mask.png", cv.IMREAD_COLOR)) needles.append(cv.imread("equip/runes/rune_2_32.jpg", cv.IMREAD_UNCHANGED)) hsv.append(HSV_DEFAULT) tresh.append(0.91) mask.append(cv.imread("equip/runes/rune_2_32-mask.png", cv.IMREAD_COLOR)) def include_mushs(needles, hsv, tresh, mask): needles.append(cv.imread("equip/mushrooms/mush_1_32.jpg", cv.IMREAD_UNCHANGED)) hsv.append(HSV_DEFAULT) tresh.append(0.93) mask.append(cv.imread("equip/mushrooms/mush_1_32-mask.png", cv.IMREAD_COLOR)) needles.append(cv.imread("equip/mushrooms/mush_2_32.jpg", cv.IMREAD_UNCHANGED)) hsv.append(HSV_DEFAULT) tresh.append(0.93) mask.append(cv.imread("equip/mushrooms/mush_2_32-mask.png", cv.IMREAD_COLOR)) needles.append(cv.imread("equip/mushrooms/mush_3_32.jpg", cv.IMREAD_UNCHANGED)) hsv.append(HSV_DEFAULT) tresh.append(0.93) mask.append(cv.imread("equip/mushrooms/mush_3_32-mask.png", cv.IMREAD_COLOR)) needles.append(cv.imread("equip/mushrooms/mush_4_32.jpg", cv.IMREAD_UNCHANGED)) hsv.append(HSV_DEFAULT) tresh.append(0.93) mask.append(cv.imread("equip/mushrooms/mush_4_32-mask.png", cv.IMREAD_COLOR)) needles.append(cv.imread("equip/mushrooms/mush_5_32.jpg", cv.IMREAD_UNCHANGED)) hsv.append(HSV_DEFAULT) tresh.append(0.93) mask.append(cv.imread("equip/mushrooms/mush_5_32-mask.png", cv.IMREAD_COLOR)) needles.append(cv.imread("equip/mushrooms/mush_6_32.jpg", cv.IMREAD_UNCHANGED)) hsv.append(HSV_DEFAULT) tresh.append(0.93) mask.append(cv.imread("equip/mushrooms/mush_6_32-mask.png", cv.IMREAD_COLOR)) needles.append(cv.imread("equip/mushrooms/mush_7_32.jpg", cv.IMREAD_UNCHANGED)) hsv.append(HSV_DEFAULT) tresh.append(0.93) mask.append(cv.imread("equip/mushrooms/mush_7_32-mask.png", cv.IMREAD_COLOR)) def include_amus(needles, hsv, tresh, mask): needles.append(cv.imread("equip/amus/amu_1_32.jpg", cv.IMREAD_UNCHANGED)) hsv.append(HSV_DEFAULT) tresh.append(0.9) mask.append(cv.imread("equip/amus/amu_1_32-mask.png", cv.IMREAD_COLOR)) needles.append(cv.imread("equip/amus/amu_2_32.jpg", cv.IMREAD_UNCHANGED)) hsv.append(HSV_DEFAULT) tresh.append(0.9) mask.append(cv.imread("equip/amus/amu_2_32-mask.png", cv.IMREAD_COLOR)) needles.append(cv.imread("equip/amus/amu_3_32.jpg", cv.IMREAD_UNCHANGED)) hsv.append(HSV_DEFAULT) tresh.append(0.93) mask.append(cv.imread("equip/amus/amu_3_32-mask.png", cv.IMREAD_COLOR)) needles.append(cv.imread("equip/amus/amu_4_32.jpg", cv.IMREAD_UNCHANGED)) hsv.append(HSV_DEFAULT) tresh.append(0.93) mask.append(cv.imread("equip/amus/amu_4_32-mask.png", cv.IMREAD_COLOR)) needles.append(cv.imread("equip/amus/amu_5_32.jpg", cv.IMREAD_UNCHANGED)) hsv.append(HSV_DEFAULT) tresh.append(0.93) mask.append(cv.imread("equip/amus/amu_5_32-mask.png", cv.IMREAD_COLOR)) needles.append(cv.imread("equip/amus/amu_6_32.jpg", cv.IMREAD_UNCHANGED)) hsv.append(HSV_DEFAULT) tresh.append(0.93) mask.append(cv.imread("equip/amus/amu_6_32-mask.png", cv.IMREAD_COLOR)) needles.append(cv.imread("equip/amus/amu_7_32.jpg", cv.IMREAD_UNCHANGED)) hsv.append(HSV_DEFAULT) tresh.append(0.93) mask.append(cv.imread("equip/amus/amu_7_32-mask.png", cv.IMREAD_COLOR)) def include_swords(needles, hsv, tresh, mask): needles.append(cv.imread("equip/swords/sword_1_32.jpg", cv.IMREAD_UNCHANGED)) hsv.append(HSV_DEFAULT) tresh.append(0.93) mask.append(cv.imread("equip/swords/sword_1_32-mask.png", cv.IMREAD_COLOR)) needles.append(cv.imread("equip/swords/sword_2_32.jpg", cv.IMREAD_UNCHANGED)) hsv.append(HSV_DEFAULT) tresh.append(0.93) mask.append(cv.imread("equip/swords/sword_2_32-mask.png", cv.IMREAD_COLOR)) needles.append(cv.imread("equip/swords/sword_3_32.jpg", cv.IMREAD_UNCHANGED)) hsv.append(HSV_DEFAULT) tresh.append(0.93) mask.append(cv.imread("equip/swords/sword_3_32-mask.png", cv.IMREAD_COLOR)) needles.append(cv.imread("equip/swords/sword_4_32.jpg", cv.IMREAD_UNCHANGED)) hsv.append(HSV_DEFAULT) tresh.append(0.93) mask.append(cv.imread("equip/swords/sword_4_32-mask.png", cv.IMREAD_COLOR)) needles.append(cv.imread("equip/swords/sword_5_32.jpg", cv.IMREAD_UNCHANGED)) hsv.append(HSV_DEFAULT) tresh.append(0.93) mask.append(cv.imread("equip/swords/sword_5_32-mask.png", cv.IMREAD_COLOR)) def include_staffs(needles, hsv, tresh, mask): needles.append(cv.imread("equip/staffs/staff_1_32.jpg", cv.IMREAD_UNCHANGED)) hsv.append(HSV_DEFAULT) tresh.append(0.93) mask.append(cv.imread("equip/staffs/staff_1_32-mask.png", cv.IMREAD_COLOR)) needles.append(cv.imread("equip/staffs/staff_2_32.jpg", cv.IMREAD_UNCHANGED)) hsv.append(HSV_DEFAULT) tresh.append(0.93) mask.append(cv.imread("equip/staffs/staff_2_32-mask.png", cv.IMREAD_COLOR)) needles.append(cv.imread("equip/staffs/staff_3_32.jpg", cv.IMREAD_UNCHANGED)) hsv.append(HSV_DEFAULT) tresh.append(0.93) mask.append(cv.imread("equip/staffs/staff_3_32-mask.png", cv.IMREAD_COLOR)) needles.append(cv.imread("equip/staffs/staff_4_32.jpg", cv.IMREAD_UNCHANGED)) hsv.append(HSV_DEFAULT) tresh.append(0.93) mask.append(cv.imread("equip/staffs/staff_4_32-mask.png", cv.IMREAD_COLOR)) def include_rings(needles, hsv, tresh, mask): needles.append(cv.imread("equip/rings/ring_1_32.jpg", cv.IMREAD_UNCHANGED)) hsv.append(HSV_DEFAULT) tresh.append(0.925) mask.append(cv.imread("equip/rings/ring_1_32-mask.png", cv.IMREAD_COLOR)) needles.append(cv.imread("equip/rings/ring_2_32.jpg", cv.IMREAD_UNCHANGED)) hsv.append(HSV_DEFAULT) tresh.append(0.94) mask.append(cv.imread("equip/rings/ring_2_32-mask.png", cv.IMREAD_COLOR)) needles.append(cv.imread("equip/rings/ring_3_32.jpg", cv.IMREAD_UNCHANGED)) hsv.append(HSV_DEFAULT) tresh.append(0.93) mask.append(cv.imread("equip/rings/ring_3_32-mask.png", cv.IMREAD_COLOR)) needles.append(cv.imread("equip/rings/ring_4_32.jpg", cv.IMREAD_UNCHANGED)) hsv.append(HSV_DEFAULT) tresh.append(0.91) mask.append(cv.imread("equip/rings/ring_4_32-mask.png", cv.IMREAD_COLOR)) needles.append(cv.imread("equip/rings/ring_5_32.jpg", cv.IMREAD_UNCHANGED)) hsv.append(HSV_DEFAULT) tresh.append(0.93) mask.append(cv.imread("equip/rings/ring_5_32-mask.png", cv.IMREAD_COLOR)) def include_wands(needles, hsv, tresh, mask): needles.append(cv.imread("equip/wands/wand_1_32.jpg", cv.IMREAD_UNCHANGED)) hsv.append(HSV_DEFAULT) tresh.append(0.93) mask.append(cv.imread("equip/wands/wand_1_32-mask.png", cv.IMREAD_COLOR)) needles.append(cv.imread("equip/wands/wand_2_32.jpg", cv.IMREAD_UNCHANGED)) hsv.append(HSV_DEFAULT) tresh.append(0.93) mask.append(cv.imread("equip/wands/wand_2_32-mask.png", cv.IMREAD_COLOR)) needles.append(cv.imread("equip/wands/wand_3_32.jpg", cv.IMREAD_UNCHANGED)) hsv.append(HSV_DEFAULT) tresh.append(0.93) mask.append(cv.imread("equip/wands/wand_3_32-mask.png", cv.IMREAD_COLOR)) needles.append(cv.imread("equip/wands/wand_4_32.jpg", cv.IMREAD_UNCHANGED)) hsv.append(HSV_DEFAULT) tresh.append(0.93) mask.append(cv.imread("equip/wands/wand_4_32-mask.png", cv.IMREAD_COLOR)) if __name__ == "__main__": run()