new ui elements for timing

This commit is contained in:
2022-10-19 08:44:50 +02:00
parent 84c1df4e9a
commit 22592e3a49
8 changed files with 386 additions and 365 deletions

170
magic.py
View File

@@ -38,93 +38,96 @@ class Magic(GameBase):
cv.IMREAD_UNCHANGED))
self.hsv_list.append(self.hsv_filter_list[key1])
def execute_main_loop(self):
def assess_playfield_and_make_move(self):
screenshot = self.capture_window.get_screenshot()
# screenshot = cv.imread("buffbar.jpg")
while True:
if self.overlay.run_mode == 'paused':
cv.waitKey(1)
continue
elif self.overlay.run_mode == 'stopped':
break
# cv.imshow("screenshot", screenshot)
# cv.waitKey(150)
# continue
screenshot = self.capture_window.get_screenshot()
# screenshot = cv.imread("buffbar.jpg")
spawn_1 = self.vision_stun.find(screenshot, cv.imread("magic/spawn_1.jpg", cv.IMREAD_UNCHANGED), 0.25, 1) #TODO fix emitter threshold
if len(spawn_1) == 1:
points = self.vision_stun.get_click_points(spawn_1)
for i in range(0, self.SPAWN_COUNT, 1):
pydirectinput.moveTo(points[0][0], points[0][1])
pydirectinput.mouseDown()
w = random.randint(1, 50)
cv.waitKey(30 + w)
pydirectinput.mouseUp()
if self.overlay.run_mode == 'stopped' or self.overlay.run_mode == 'paused':
return
else:
spawn_0 = self.vision_stun.find(screenshot, cv.imread("magic/spawn_0.jpg", cv.IMREAD_UNCHANGED), 0.7, 1)
points = self.vision_stun.get_click_points(spawn_0)
for point in points:
pydirectinput.moveTo(point[0], point[1])
pydirectinput.mouseDown()
cv.waitKey(500)
pydirectinput.mouseUp()
if self.overlay.run_mode == 'stopped' or self.overlay.run_mode == 'paused':
return
continue
if self.overlay.run_mode == 'stopped' or self.overlay.run_mode == 'paused':
return
# for needles in needle_list:
for rer in range(0, len(self.needle_list), 1):
while True:
screenshot = self.capture_window.get_screenshot()
processed_screenshot = self.vision_stun.apply_hsv_filter(screenshot, self.hsv_list[rer])
processed_needle = self.vision_stun.apply_hsv_filter(self.needle_list[rer], self.hsv_list[rer])
# cv.imshow("screenshot", screenshot)
# cv.waitKey(150)
# continue
rectangles = self.vision_stun.find(processed_screenshot, processed_needle, 0.7, 2)
# draw the detection results onto the original image
spawn_1 = self.vision_stun.find(screenshot, cv.imread("magic/spawn_1.jpg", cv.IMREAD_UNCHANGED), 0.25, 1) #TODO fix emitter threshold
if len(spawn_1) == 1:
points = self.vision_stun.get_click_points(spawn_1)
for i in range(0, self.SPAWN_COUNT, 1):
# only trigger ocr reading if a stun is detected
points = self.vision_stun.get_click_points(rectangles)
if len(points) == 2:
pydirectinput.moveTo(points[0][0], points[0][1])
pydirectinput.mouseDown()
w = random.randint(1, 50)
cv.waitKey(30 + w)
w = random.randint(1, 100)
cv.waitKey(250 + w)
pydirectinput.moveTo(points[1][0], points[1][1])
pydirectinput.mouseUp()
if self.overlay.run_mode == 'stopped' or self.overlay.run_mode == 'paused':
break
else:
spawn_0 = self.vision_stun.find(screenshot, cv.imread("magic/spawn_0.jpg", cv.IMREAD_UNCHANGED), 0.7, 1)
points = self.vision_stun.get_click_points(spawn_0)
for point in points:
pydirectinput.moveTo(point[0], point[1])
pydirectinput.mouseDown()
cv.waitKey(500)
pydirectinput.mouseUp()
if self.overlay.run_mode == 'stopped' or self.overlay.run_mode == 'paused':
break
continue
if self.overlay.run_mode == 'stopped' or self.overlay.run_mode == 'paused':
break
# for needles in needle_list:
for rer in range(0, len(self.needle_list), 1):
while True:
screenshot = self.capture_window.get_screenshot()
processed_screenshot = self.vision_stun.apply_hsv_filter(screenshot, self.hsv_list[rer])
processed_needle = self.vision_stun.apply_hsv_filter(self.needle_list[rer], self.hsv_list[rer])
rectangles = self.vision_stun.find(processed_screenshot, processed_needle, 0.7, 2)
# draw the detection results onto the original image
# only trigger ocr reading if a stun is detected
points = self.vision_stun.get_click_points(rectangles)
if len(points) == 2:
pydirectinput.moveTo(points[0][0], points[0][1])
pydirectinput.mouseDown()
w = random.randint(1, 100)
cv.waitKey(250 + w)
pydirectinput.moveTo(points[1][0], points[1][1])
pydirectinput.mouseUp()
if self.overlay.run_mode == 'stopped' or self.overlay.run_mode == 'paused':
break
else:
break
if self.overlay.run_mode == 'stopped' or self.overlay.run_mode == 'paused':
break
if self.overlay.run_mode == 'stopped' or self.overlay.run_mode == 'paused':
return
else:
break
if self.overlay.run_mode == 'stopped' or self.overlay.run_mode == 'paused':
return
if self.overlay.run_mode == 'stopped' or self.overlay.run_mode == 'paused':
return
needles_white = [cv.imread("magic/body_w.jpg", cv.IMREAD_UNCHANGED),
cv.imread("magic/finding_w.jpg", cv.IMREAD_UNCHANGED),
cv.imread("magic/mind_w.jpg", cv.IMREAD_UNCHANGED),
cv.imread("magic/perceiving_w.jpg", cv.IMREAD_UNCHANGED),
cv.imread("magic/physical_w.jpg", cv.IMREAD_UNCHANGED),
cv.imread("magic/seeing_w.jpg", cv.IMREAD_UNCHANGED),
cv.imread("magic/spiritual_w.jpg", cv.IMREAD_UNCHANGED)]
needles_white = [cv.imread("magic/body_w.jpg", cv.IMREAD_UNCHANGED),
cv.imread("magic/finding_w.jpg", cv.IMREAD_UNCHANGED),
cv.imread("magic/mind_w.jpg", cv.IMREAD_UNCHANGED),
cv.imread("magic/perceiving_w.jpg", cv.IMREAD_UNCHANGED),
cv.imread("magic/physical_w.jpg", cv.IMREAD_UNCHANGED),
cv.imread("magic/seeing_w.jpg", cv.IMREAD_UNCHANGED),
cv.imread("magic/spiritual_w.jpg", cv.IMREAD_UNCHANGED)]
for needle_w in needles_white:
# do object detection
for needle_w in needles_white:
# do object detection
screenshot = self.capture_window.get_screenshot()
processed_screenshot = self.vision_stun.apply_hsv_filter(screenshot, self.hsv_filter_w)
processed_needle = self.vision_stun.apply_hsv_filter(needle_w, self.hsv_filter_w)
rectangles = self.vision_stun.find(processed_screenshot, processed_needle, 0.7, 1)
# 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)
points = self.vision_stun.get_click_points(rectangles)
if len(points) >= 1:
pydirectinput.moveTo(points[0][0], points[0][1])
pydirectinput.mouseDown()
w = random.randint(1, 100)
cv.waitKey(100 + w)
pydirectinput.mouseUp()
screenshot = self.capture_window.get_screenshot()
processed_screenshot = self.vision_stun.apply_hsv_filter(screenshot, self.hsv_filter_w)
processed_needle = self.vision_stun.apply_hsv_filter(needle_w, self.hsv_filter_w)
rectangles = self.vision_stun.find(processed_screenshot, processed_needle, 0.7, 1)
# 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)
rectangles = self.vision_stun.find(screenshot, cv.imread("magic/collect.jpg", cv.IMREAD_UNCHANGED),
0.8,
1)
points = self.vision_stun.get_click_points(rectangles)
if len(points) >= 1:
pydirectinput.moveTo(points[0][0], points[0][1])
@@ -132,19 +135,8 @@ class Magic(GameBase):
w = random.randint(1, 100)
cv.waitKey(100 + w)
pydirectinput.mouseUp()
screenshot = self.capture_window.get_screenshot()
rectangles = self.vision_stun.find(screenshot, cv.imread("magic/collect.jpg", cv.IMREAD_UNCHANGED),
0.8,
1)
points = self.vision_stun.get_click_points(rectangles)
if len(points) >= 1:
pydirectinput.moveTo(points[0][0], points[0][1])
pydirectinput.mouseDown()
w = random.randint(1, 100)
cv.waitKey(100 + w)
pydirectinput.mouseUp()
if self.overlay.run_mode == 'stopped' or self.overlay.run_mode == 'paused':
break
if self.overlay.run_mode == 'stopped' or self.overlay.run_mode == 'paused':
break
return
if self.overlay.run_mode == 'stopped' or self.overlay.run_mode == 'paused':
return