Compare commits
3 Commits
9a2c40c5c4
...
3d408eb909
| Author | SHA1 | Date | |
|---|---|---|---|
| 3d408eb909 | |||
| cd59c9a838 | |||
| 4ce0040be9 |
787
equipment_main_ui.py
Normal file
@@ -0,0 +1,787 @@
|
||||
import random
|
||||
from operator import itemgetter
|
||||
from time import time
|
||||
|
||||
import equipment_overlay
|
||||
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
|
||||
from utils import dig_point
|
||||
from equipment_overlay import EquipmentOverlay
|
||||
|
||||
EMITTER_MAIN = "main"
|
||||
EMITTER_MUSH = "mushroom"
|
||||
EMITTER_AMU = "amulett"
|
||||
EMITTER_SWORD = "sword"
|
||||
EMITTER_STAFF = "staff"
|
||||
EMITTER_WAND = "wand"
|
||||
EMITTER_RING = "ring"
|
||||
EMITTER_MULTI = "multi"
|
||||
|
||||
HSV_DEFAULT = HsvFilter(0, 0, 0, 179, 255, 255, 0, 0, 0, 0)
|
||||
|
||||
|
||||
def run():
|
||||
config = UserConfigs()
|
||||
overlay = EquipmentOverlay(config)
|
||||
|
||||
while True:
|
||||
if overlay.run_mode == 'stopped':
|
||||
overlay.update_status_label("stopped", "0")
|
||||
overlay.run_mode = 'init'
|
||||
continue
|
||||
elif overlay.run_mode == 'started':
|
||||
pass
|
||||
elif overlay.run_mode == 'init':
|
||||
continue
|
||||
elif overlay.run_mode == 'paused':
|
||||
continue
|
||||
else:
|
||||
break
|
||||
|
||||
EMITTER_TO_USE = str(overlay.emitter_use.get())
|
||||
SPAWN_COUNT = int(overlay.spawn_use.get())
|
||||
ENERGY_TO_USE = int(overlay.energy_use.get())
|
||||
|
||||
# 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()
|
||||
|
||||
outer_loop_time = time()
|
||||
|
||||
needles = []
|
||||
hsvs = []
|
||||
tresholds = []
|
||||
masks = []
|
||||
emitters = []
|
||||
|
||||
if EMITTER_TO_USE == EMITTER_MULTI:
|
||||
emitters.append(EMITTER_RING)
|
||||
emitters.append(EMITTER_WAND)
|
||||
emitters.append(EMITTER_SWORD)
|
||||
emitters.append(EMITTER_AMU)
|
||||
emitters.append(EMITTER_STAFF)
|
||||
else:
|
||||
emitters.append(EMITTER_TO_USE)
|
||||
|
||||
energy_counter = 0
|
||||
|
||||
for emitter in emitters:
|
||||
if overlay.run_mode == 'stopped':
|
||||
break
|
||||
if emitter == 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 == EMITTER_AMU:
|
||||
include_books(needles, hsvs, tresholds, masks)
|
||||
include_amus(needles, hsvs, tresholds, masks)
|
||||
include_bags(needles, hsvs, tresholds, masks)
|
||||
elif emitter == 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 == EMITTER_SWORD:
|
||||
include_books(needles, hsvs, tresholds, masks)
|
||||
include_swords(needles, hsvs, tresholds, masks)
|
||||
include_bags(needles, hsvs, tresholds, masks)
|
||||
elif emitter == EMITTER_STAFF:
|
||||
include_books(needles, hsvs, tresholds, masks)
|
||||
include_staffs(needles, hsvs, tresholds, masks)
|
||||
include_bags(needles, hsvs, tresholds, masks)
|
||||
elif emitter == EMITTER_RING:
|
||||
include_books(needles, hsvs, tresholds, masks)
|
||||
include_rings(needles, hsvs, tresholds, masks)
|
||||
include_bags(needles, hsvs, tresholds, masks)
|
||||
elif emitter == EMITTER_WAND:
|
||||
include_books(needles, hsvs, tresholds, masks)
|
||||
include_wands(needles, hsvs, tresholds, masks)
|
||||
include_bags(needles, hsvs, tresholds, masks)
|
||||
|
||||
c_needle = cv.imread("equip/chests/chest_4_32.jpg", cv.IMREAD_UNCHANGED)
|
||||
c_mask = cv.imread("equip/chests/chest_4_32-mask.png", cv.IMREAD_COLOR)
|
||||
k_needle = cv.imread("equip/keys/key_4_32.jpg", cv.IMREAD_UNCHANGED)
|
||||
k_mask = cv.imread("equip/keys/key_4_32-mask.png", cv.IMREAD_COLOR)
|
||||
dig_button = cv.imread("dig/ok_button.jpg", cv.IMREAD_UNCHANGED)
|
||||
loop_time_p = time()
|
||||
|
||||
while True:
|
||||
if overlay.run_mode == 'paused':
|
||||
# cv.waitKey(500)
|
||||
if (time() - loop_time_p) >= 5:
|
||||
loop_time_p = time()
|
||||
print("pausing")
|
||||
continue
|
||||
elif overlay.run_mode == 'stopped':
|
||||
break
|
||||
|
||||
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
|
||||
if energy_counter >= ENERGY_TO_USE:
|
||||
energy_counter = 0
|
||||
break
|
||||
|
||||
spawn_1 = find_emitter(emitter, 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])
|
||||
energy_counter = energy_counter + 1
|
||||
overlay.update_status_label(emitter, ENERGY_TO_USE - energy_counter)
|
||||
if overlay.run_mode == 'stopped' or overlay.run_mode == 'paused':
|
||||
break
|
||||
else:
|
||||
spawn_0 = find_emitter(emitter, 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 overlay.run_mode == 'stopped' or overlay.run_mode == 'paused':
|
||||
break
|
||||
continue
|
||||
|
||||
cv.waitKey(500)
|
||||
|
||||
if emitter == EMITTER_MAIN:
|
||||
while True:
|
||||
screenshot = capture_window.get_screenshot()
|
||||
c_rectangles = vision_stun.find(screenshot, c_needle, 0.95, 1, True, c_mask)
|
||||
k_rectangles = vision_stun.find(screenshot, k_needle, 0.95, 1, True, k_mask)
|
||||
if (len(c_rectangles) == 1) and (len(k_rectangles) == 1):
|
||||
c_point = vision_stun.get_click_points(c_rectangles)[0]
|
||||
k_point = vision_stun.get_click_points(k_rectangles)[0]
|
||||
move_tile(config, k_point, c_point)
|
||||
else:
|
||||
break
|
||||
|
||||
for rer in range(0, len(needles), 1):
|
||||
loop_time = time()
|
||||
while True:
|
||||
if (time() - loop_time) >= 60:
|
||||
break
|
||||
screenshot = capture_window.get_screenshot_by_area(config.returnOKWindowPos())
|
||||
rectangles = vision_stun.find(screenshot, dig_button, 0.5, 1)
|
||||
if len(rectangles) == 1:
|
||||
pointis = vision_stun.get_click_points(rectangles)
|
||||
for pointi in pointis:
|
||||
dig_point(pointi[0] + config.returnOKWindowPos()[2],
|
||||
pointi[1] + config.returnOKWindowPos()[3], 150)
|
||||
cv.waitKey(60000)
|
||||
continue
|
||||
# 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 overlay.run_mode == 'stopped' or overlay.run_mode == 'paused':
|
||||
break
|
||||
|
||||
# sort rectangles by top
|
||||
rectangles = sorted(rectangles, key=itemgetter(1))
|
||||
|
||||
points = vision_stun.get_click_points(rectangles)
|
||||
|
||||
move_breaker = 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 move_breaker:
|
||||
break
|
||||
if overlay.run_mode == 'stopped' or overlay.run_mode == 'paused':
|
||||
break
|
||||
move_breaker = 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 move_breaker:
|
||||
break
|
||||
if overlay.run_mode == 'stopped' or overlay.run_mode == 'paused':
|
||||
break
|
||||
move_breaker = 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])
|
||||
if move_breaker:
|
||||
break
|
||||
move_tile(config, points[4], [points[0][0], points[0][1]])
|
||||
if overlay.run_mode == 'stopped' or overlay.run_mode == 'paused':
|
||||
break
|
||||
if overlay.run_mode == 'stopped' or overlay.run_mode == 'paused':
|
||||
break
|
||||
# debug the loop rate
|
||||
print('FPS {}'.format(1 / (time() - outer_loop_time)))
|
||||
outer_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_p = capture_win.get_screenshot()
|
||||
screenshot_p_w = screenshot_p.shape[1]
|
||||
screenshot_p_h = screenshot_p.shape[0]
|
||||
w = rect[0]
|
||||
h = rect[1]
|
||||
x = rect[2]
|
||||
y = rect[3]
|
||||
if h >= screenshot_p_h or w >= screenshot_p_w:
|
||||
return True
|
||||
|
||||
screenshot_pos = screenshot_p[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)
|
||||
|
||||
return False
|
||||
|
||||
|
||||
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(25, 50)
|
||||
cv.waitKey(100 + w)
|
||||
pydirectinput.moveTo(point_dest[0] + offset_left, point_dest[1] + offset_down)
|
||||
pydirectinput.mouseUp()
|
||||
cv.waitKey(400 + w)
|
||||
|
||||
|
||||
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))
|
||||
|
||||
needles.append(cv.imread("equip/runes/rune_3_32.jpg", cv.IMREAD_UNCHANGED))
|
||||
hsv.append(HSV_DEFAULT)
|
||||
tresh.append(0.91)
|
||||
mask.append(cv.imread("equip/runes/rune_3_32-mask.png", cv.IMREAD_COLOR))
|
||||
|
||||
needles.append(cv.imread("equip/runes/rune_4_32.jpg", cv.IMREAD_UNCHANGED))
|
||||
hsv.append(HSV_DEFAULT)
|
||||
tresh.append(0.91)
|
||||
mask.append(cv.imread("equip/runes/rune_4_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))
|
||||
|
||||
needles.append(cv.imread("equip/swords/sword_6_32.jpg", cv.IMREAD_UNCHANGED))
|
||||
hsv.append(HSV_DEFAULT)
|
||||
tresh.append(0.93)
|
||||
mask.append(cv.imread("equip/swords/sword_6_32-mask.png", cv.IMREAD_COLOR))
|
||||
|
||||
needles.append(cv.imread("equip/swords/sword_7_32.jpg", cv.IMREAD_UNCHANGED))
|
||||
hsv.append(HSV_DEFAULT)
|
||||
tresh.append(0.93)
|
||||
mask.append(cv.imread("equip/swords/sword_7_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))
|
||||
|
||||
needles.append(cv.imread("equip/staffs/staff_5_32.jpg", cv.IMREAD_UNCHANGED))
|
||||
hsv.append(HSV_DEFAULT)
|
||||
tresh.append(0.93)
|
||||
mask.append(cv.imread("equip/staffs/staff_5_32-mask.png", cv.IMREAD_COLOR))
|
||||
|
||||
needles.append(cv.imread("equip/staffs/staff_6_32.jpg", cv.IMREAD_UNCHANGED))
|
||||
hsv.append(HSV_DEFAULT)
|
||||
tresh.append(0.93)
|
||||
mask.append(cv.imread("equip/staffs/staff_6_32-mask.png", cv.IMREAD_COLOR))
|
||||
|
||||
needles.append(cv.imread("equip/staffs/staff_7_32.jpg", cv.IMREAD_UNCHANGED))
|
||||
hsv.append(HSV_DEFAULT)
|
||||
tresh.append(0.93)
|
||||
mask.append(cv.imread("equip/staffs/staff_7_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))
|
||||
|
||||
needles.append(cv.imread("equip/rings/ring_6_32.jpg", cv.IMREAD_UNCHANGED))
|
||||
hsv.append(HSV_DEFAULT)
|
||||
tresh.append(0.91)
|
||||
mask.append(cv.imread("equip/rings/ring_6_32-mask.png", cv.IMREAD_COLOR))
|
||||
|
||||
needles.append(cv.imread("equip/rings/ring_7_32.jpg", cv.IMREAD_UNCHANGED))
|
||||
hsv.append(HSV_DEFAULT)
|
||||
tresh.append(0.93)
|
||||
mask.append(cv.imread("equip/rings/ring_7_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))
|
||||
|
||||
needles.append(cv.imread("equip/wands/wand_5_32.jpg", cv.IMREAD_UNCHANGED))
|
||||
hsv.append(HSV_DEFAULT)
|
||||
tresh.append(0.93)
|
||||
mask.append(cv.imread("equip/wands/wand_5_32-mask.png", cv.IMREAD_COLOR))
|
||||
|
||||
needles.append(cv.imread("equip/wands/wand_6_32.jpg", cv.IMREAD_UNCHANGED))
|
||||
hsv.append(HSV_DEFAULT)
|
||||
tresh.append(0.93)
|
||||
mask.append(cv.imread("equip/wands/wand_6_32-mask.png", cv.IMREAD_COLOR))
|
||||
|
||||
needles.append(cv.imread("equip/wands/wand_7_32.jpg", cv.IMREAD_UNCHANGED))
|
||||
hsv.append(HSV_DEFAULT)
|
||||
tresh.append(0.93)
|
||||
mask.append(cv.imread("equip/wands/wand_7_32-mask.png", cv.IMREAD_COLOR))
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
run()
|
||||
121
equipment_overlay.py
Normal file
@@ -0,0 +1,121 @@
|
||||
# Run tkinter code in another thread
|
||||
import threading
|
||||
import tkinter as tk
|
||||
from tkinter import ttk
|
||||
|
||||
|
||||
class EquipmentOverlay(threading.Thread):
|
||||
|
||||
def __init__(self, config):
|
||||
threading.Thread.__init__(self)
|
||||
|
||||
self.run_mode = 'init'
|
||||
|
||||
self.root = tk.Tk
|
||||
|
||||
self.energy_use = tk.StringVar
|
||||
self.spawn_use = tk.StringVar
|
||||
self.emitter_use = tk.StringVar
|
||||
|
||||
self.EnergyLabel = tk.Label
|
||||
self.EnergyEntry = tk.Entry
|
||||
self.SpawnLabel = tk.Label
|
||||
self.SpawnEntry = tk.Entry
|
||||
self.EmitterLabel = tk.Label
|
||||
self.Emitter_Box = ttk.Combobox
|
||||
|
||||
self.StartButton = tk.Button
|
||||
self.StopButton = tk.Button
|
||||
self.PauseButton = tk.Button
|
||||
self.TkPosition = '135x115+60+600'
|
||||
|
||||
self.StatusLabel = tk.Label
|
||||
|
||||
# self.TkPosition = config.returnEnemyPlayerOverlayPos()
|
||||
self.start()
|
||||
|
||||
def run(self):
|
||||
self.root = tk.Tk()
|
||||
|
||||
self.energy_use = tk.StringVar(self.root, value='2000')
|
||||
self.spawn_use = tk.StringVar(self.root, value='25')
|
||||
self.emitter_use = tk.StringVar(self.root, value='multi')
|
||||
|
||||
self.EnergyLabel = tk.Label(self.root, text="Energy:", font=("Helvetica", 10, "bold"),
|
||||
background="grey")
|
||||
self.EnergyLabel.grid(row=0, column=0)
|
||||
self.EnergyEntry = tk.Entry(self.root, textvariable=self.energy_use, font=("Helvetica", 10, "bold"), width='12')
|
||||
|
||||
self.EnergyEntry.grid(row=0, column=1, columnspan=2)
|
||||
|
||||
self.SpawnLabel = tk.Label(self.root, text="Spawn:", font=("Helvetica", 10, "bold"),
|
||||
background="grey")
|
||||
self.SpawnLabel.grid(row=1, column=0)
|
||||
self.SpawnEntry = tk.Entry(self.root, textvariable=self.spawn_use, font=("Helvetica", 10, "bold"), width='12')
|
||||
|
||||
self.SpawnEntry.grid(row=1, column=1, columnspan=2)
|
||||
|
||||
self.EmitterLabel = tk.Label(self.root, text="Emitter:", font=("Helvetica", 10, "bold"),
|
||||
background="grey")
|
||||
self.EmitterLabel.grid(row=2, column=0)
|
||||
self.Emitter_Box = ttk.Combobox(self.root, textvariable=self.emitter_use, font=("Helvetica", 8, "bold"),
|
||||
width='10')
|
||||
self.Emitter_Box['values'] = ('multi', 'main', 'mushroom', 'amulett', 'sword', 'staff', 'wand', 'ring')
|
||||
self.Emitter_Box.grid(row=2, column=1, columnspan=2, sticky='w')
|
||||
|
||||
# self.EnemyLabel.pack()
|
||||
self.ButtonFrame = tk.Frame(self.root)
|
||||
self.StartButton = tk.Button(self.ButtonFrame, text="Start", command=self.start_button_callback, width='5')
|
||||
self.StartButton.grid(row=0, column=0)
|
||||
self.StopButton = tk.Button(self.ButtonFrame, text="Stop", command=self.stop_button_callback, width='5',
|
||||
state=tk.DISABLED)
|
||||
self.StopButton.grid(row=0, column=1)
|
||||
self.PauseButton = tk.Button(self.ButtonFrame, text="Pause", command=self.pause_button_callback, width='5',
|
||||
state=tk.DISABLED)
|
||||
self.PauseButton.grid(row=0, column=2)
|
||||
self.ButtonFrame.grid(row=3, column=0, columnspan=2)
|
||||
|
||||
self.StatusLabel = tk.Label(self.root, text="", font=("Helvetica", 10, "bold"),
|
||||
background="grey")
|
||||
self.StatusLabel.grid(row=4, column=0, columnspan=2)
|
||||
|
||||
# self.ClearButton.pack(side="top")
|
||||
self.root.geometry(self.TkPosition)
|
||||
self.root.overrideredirect(1) # fenster ohne aussen rum :-)
|
||||
#self.root.attributes('-alpha', 0.7) # fenster transparent
|
||||
self.root.attributes('-topmost', 1) # fenster immer im vordergrund
|
||||
# self.root.wm_attributes("-disabled", True)
|
||||
self.root.configure(background='black')
|
||||
self.root.mainloop()
|
||||
|
||||
def update_enemy_label(self, _text):
|
||||
self.EnergyLabel.configure(text=_text)
|
||||
# self.EnemyLabel.pack()
|
||||
|
||||
def start_button_callback(self):
|
||||
self.StartButton.configure(state=tk.DISABLED)
|
||||
self.StopButton.configure(state=tk.NORMAL)
|
||||
self.PauseButton.configure(state=tk.NORMAL)
|
||||
self.StatusLabel.configure(text='')
|
||||
self.run_mode = 'started'
|
||||
|
||||
# self.EnemyLabel.pack()
|
||||
|
||||
def stop_button_callback(self):
|
||||
self.StartButton.configure(state=tk.NORMAL)
|
||||
self.StopButton.configure(state=tk.DISABLED)
|
||||
self.PauseButton.configure(state=tk.DISABLED)
|
||||
self.run_mode = 'stopped'
|
||||
|
||||
def pause_button_callback(self):
|
||||
self.StartButton.configure(state=tk.NORMAL)
|
||||
self.StopButton.configure(state=tk.NORMAL)
|
||||
self.PauseButton.configure(state=tk.DISABLED)
|
||||
self.run_mode = 'paused'
|
||||
|
||||
def get_run_mode(self):
|
||||
return self.run_mode
|
||||
|
||||
def update_status_label(self, emitter, energy_to_go):
|
||||
text = emitter + ": " + str(energy_to_go)
|
||||
self.StatusLabel.configure(text=text)
|
||||
@@ -20,7 +20,15 @@ ARROW_RIGHT = 10
|
||||
ROCK_1 = 11
|
||||
ROCK_2 = 12
|
||||
ROCK_3 = 13
|
||||
BURGER = 14
|
||||
PAB1 = 15
|
||||
GOLDBAR = 16
|
||||
MAGINENT = 21
|
||||
CHEMTRANT = 22
|
||||
TENESENT = 23
|
||||
CIBUTRANT = 24
|
||||
ARTISENT = 25
|
||||
|
||||
|
||||
class Field:
|
||||
data_value_grid = []
|
||||
@@ -40,6 +48,9 @@ class Field:
|
||||
colors.append(RED)
|
||||
colors.append(PINK)
|
||||
colors.append(MAGINENT)
|
||||
colors.append(CHEMTRANT)
|
||||
colors.append(TENESENT)
|
||||
colors.append(CIBUTRANT)
|
||||
|
||||
|
||||
def __init__(self):
|
||||
@@ -75,8 +86,13 @@ class Field:
|
||||
ROCK_1: cv.imread("rock1.jpg", cv.IMREAD_COLOR),
|
||||
ROCK_2: cv.imread("rock2.jpg", cv.IMREAD_COLOR),
|
||||
ROCK_3: cv.imread("rock3.jpg", cv.IMREAD_COLOR),
|
||||
MAGINENT: cv.imread("maginent.jpg", cv.IMREAD_COLOR)
|
||||
|
||||
BURGER: cv.imread("burger.jpg", cv.IMREAD_COLOR),
|
||||
GOLDBAR: cv.imread("burger.jpg", cv.IMREAD_COLOR),
|
||||
PAB1: cv.imread("pab1.jpg", cv.IMREAD_COLOR),
|
||||
MAGINENT: cv.imread("maginent.jpg", cv.IMREAD_COLOR),
|
||||
CHEMTRANT: cv.imread("chemtrant.jpg", cv.IMREAD_COLOR),
|
||||
TENESENT: cv.imread("tenesent.jpg", cv.IMREAD_COLOR),
|
||||
CIBUTRANT: cv.imread("cibutrant.jpg", cv.IMREAD_COLOR)
|
||||
}
|
||||
|
||||
def reset(self):
|
||||
@@ -349,7 +365,7 @@ class Field:
|
||||
if state[e, i] == color and state[e, i + 1] == color:
|
||||
# third left upper
|
||||
if e - 1 >= 0 and i - 1 >= 0:
|
||||
if state[e - 1, i - 1] == color and (state[e, i - 1] >= 1 and state[e, i - 1] <= 5):
|
||||
if state[e - 1, i - 1] == color and (state[e, i - 1] in self.colors):
|
||||
print("upper left", color, e, i)
|
||||
src_pt = self.get_click_point(self.data_coordinates[e - 1, i - 1])
|
||||
dest_pt = self.get_click_point(self.data_coordinates[e, i - 1])
|
||||
@@ -357,7 +373,7 @@ class Field:
|
||||
return True
|
||||
# third left lower
|
||||
if e + 1 <= 7 and i - 1 >= 0:
|
||||
if state[e + 1, i - 1] == color and (state[e, i - 1] >= 1 and state[e, i - 1] <= 5):
|
||||
if state[e + 1, i - 1] == color and (state[e, i - 1] in self.colors):
|
||||
print("lower left", color, e, i)
|
||||
src_pt = self.get_click_point(self.data_coordinates[e + 1, i - 1])
|
||||
dest_pt = self.get_click_point(self.data_coordinates[e, i - 1])
|
||||
@@ -365,7 +381,7 @@ class Field:
|
||||
return True
|
||||
# third left with gap
|
||||
if i - 2 >= 0:
|
||||
if state[e, i - 2] == color and (state[e, i - 1] >= 1 and state[e, i - 1] <= 5):
|
||||
if state[e, i - 2] == color and (state[e, i - 1] in self.colors):
|
||||
print("left gap ", color, e, i)
|
||||
src_pt = self.get_click_point(self.data_coordinates[e, i - 2])
|
||||
dest_pt = self.get_click_point(self.data_coordinates[e, i - 1])
|
||||
@@ -373,7 +389,7 @@ class Field:
|
||||
return True
|
||||
# third right upper
|
||||
if e - 1 >= 0 and i + 2 <= 13:
|
||||
if state[e - 1, i + 2] == color and (state[e, i + 2] >= 1 and state[e, i + 2] <= 5):
|
||||
if state[e - 1, i + 2] == color and (state[e, i + 2] in self.colors):
|
||||
print("upper right", color, e, i)
|
||||
src_pt = self.get_click_point(self.data_coordinates[e - 1, i + 2])
|
||||
dest_pt = self.get_click_point(self.data_coordinates[e, i + 2])
|
||||
@@ -381,7 +397,7 @@ class Field:
|
||||
return True
|
||||
# third right lower
|
||||
if e + 1 <= 7 and i + 2 <= 13:
|
||||
if state[e + 1, i + 2] == color and (state[e, i + 2] >= 1 and state[e, i + 2] <= 5):
|
||||
if state[e + 1, i + 2] == color and (state[e, i + 2] in self.colors):
|
||||
print("upper lower", color, e, i)
|
||||
src_pt = self.get_click_point(self.data_coordinates[e + 1, i + 2])
|
||||
dest_pt = self.get_click_point(self.data_coordinates[e, i + 2])
|
||||
@@ -390,7 +406,7 @@ class Field:
|
||||
|
||||
# third right with gap
|
||||
if i + 3 <= 13:
|
||||
if state[e, i + 3] == color and (state[e, i + 2] >= 1 and state[e, i + 2] <= 5):
|
||||
if state[e, i + 3] == color and (state[e, i + 2] in self.colors):
|
||||
print("right gap ", color, e, i)
|
||||
src_pt = self.get_click_point(self.data_coordinates[e, i + 3])
|
||||
dest_pt = self.get_click_point(self.data_coordinates[e, i + 2])
|
||||
@@ -405,7 +421,7 @@ class Field:
|
||||
if state[e, i] == color and state[e + 1, i] == color:
|
||||
# third left upper
|
||||
if e - 1 >= 0 and i - 1 >= 0:
|
||||
if state[e - 1, i - 1] == color and (state[e - 1, i] >= 1 and state[e - 1, i] <= 5):
|
||||
if state[e - 1, i - 1] == color and (state[e - 1, i] in self.colors):
|
||||
print("upper left", color, e, i)
|
||||
src_pt = self.get_click_point(self.data_coordinates[e - 1, i - 1])
|
||||
dest_pt = self.get_click_point(self.data_coordinates[e - 1, i])
|
||||
@@ -413,7 +429,7 @@ class Field:
|
||||
return True
|
||||
# third left lower
|
||||
if e + 2 <= 7 and i - 1 >= 0:
|
||||
if state[e + 2, i - 1] == color and (state[e + 2, i] >= 1 and state[e + 2, i] <= 5):
|
||||
if state[e + 2, i - 1] == color and (state[e + 2, i] in self.colors):
|
||||
print("lower left", color, e, i)
|
||||
src_pt = self.get_click_point(self.data_coordinates[e + 2, i - 1])
|
||||
dest_pt = self.get_click_point(self.data_coordinates[e + 2, i])
|
||||
@@ -421,7 +437,7 @@ class Field:
|
||||
return True
|
||||
# third right upper
|
||||
if e - 1 >= 0 and i + 1 <= 13:
|
||||
if state[e - 1, i + 1] == color and (state[e - 1, i] >= 1 and state[e - 1, i] <= 5):
|
||||
if state[e - 1, i + 1] == color and (state[e - 1, i] in self.colors):
|
||||
print("upper right", color, e, i)
|
||||
src_pt = self.get_click_point(self.data_coordinates[e - 1, i + 1])
|
||||
dest_pt = self.get_click_point(self.data_coordinates[e - 1, i])
|
||||
@@ -429,7 +445,7 @@ class Field:
|
||||
return True
|
||||
# third right lower
|
||||
if e + 2 <= 7 and i + 1 <= 13:
|
||||
if state[e + 2, i + 1] == color and (state[e + 2, i] >= 1 and state[e + 2, i] <= 5):
|
||||
if state[e + 2, i + 1] == color and (state[e + 2, i] in self.colors):
|
||||
print("upper lower", color, e, i)
|
||||
src_pt = self.get_click_point(self.data_coordinates[e + 2, i + 1])
|
||||
dest_pt = self.get_click_point(self.data_coordinates[e + 2, i])
|
||||
@@ -437,7 +453,7 @@ class Field:
|
||||
return True
|
||||
# third upper with gap
|
||||
if e - 2 >= 0:
|
||||
if state[e - 2, i] == color and (state[e - 1, i] >= 1 and state[e - 1, i] <= 5):
|
||||
if state[e - 2, i] == color and (state[e - 1, i] in self.colors):
|
||||
print("upper gap ", color, e, i)
|
||||
src_pt = self.get_click_point(self.data_coordinates[e - 2, i])
|
||||
dest_pt = self.get_click_point(self.data_coordinates[e - 1, i])
|
||||
@@ -445,7 +461,7 @@ class Field:
|
||||
return True
|
||||
# third lower with gap
|
||||
if e + 3 <= 7:
|
||||
if state[e + 3, i] == color and (state[e + 2, i] >= 1 and state[e + 2, i] <= 5):
|
||||
if state[e + 3, i] == color and (state[e + 2, i] in self.colors):
|
||||
print("lower gap ", color, e, i)
|
||||
src_pt = self.get_click_point(self.data_coordinates[e + 3, i])
|
||||
dest_pt = self.get_click_point(self.data_coordinates[e + 2, i])
|
||||
|
||||
BIN
farm/bigbomb.jpg
|
Before Width: | Height: | Size: 4.7 KiB After Width: | Height: | Size: 2.1 KiB |
BIN
farm/burger.jpg
Normal file
|
After Width: | Height: | Size: 4.8 KiB |
BIN
farm/chemtrant.jpg
Normal file
|
After Width: | Height: | Size: 7.8 KiB |
BIN
farm/cibutrant.jpg
Normal file
|
After Width: | Height: | Size: 6.4 KiB |
BIN
farm/goldbar.jpg
Normal file
|
After Width: | Height: | Size: 4.0 KiB |
BIN
farm/pab1.jpg
Normal file
|
After Width: | Height: | Size: 4.1 KiB |
BIN
farm/rock1.jpg
|
Before Width: | Height: | Size: 6.0 KiB After Width: | Height: | Size: 5.4 KiB |
BIN
farm/rock1.png
Normal file
|
After Width: | Height: | Size: 21 KiB |
BIN
farm/tenesent.jpg
Normal file
|
After Width: | Height: | Size: 7.2 KiB |
BIN
magic/body_0.jpg
|
Before Width: | Height: | Size: 3.6 KiB After Width: | Height: | Size: 3.4 KiB |
BIN
magic/body_b.jpg
|
Before Width: | Height: | Size: 3.1 KiB After Width: | Height: | Size: 3.0 KiB |
BIN
magic/body_g.jpg
|
Before Width: | Height: | Size: 2.8 KiB After Width: | Height: | Size: 2.8 KiB |
|
Before Width: | Height: | Size: 3.0 KiB After Width: | Height: | Size: 2.7 KiB |
BIN
magic/body_p.jpg
|
Before Width: | Height: | Size: 3.0 KiB After Width: | Height: | Size: 2.8 KiB |
BIN
magic/body_w.jpg
|
Before Width: | Height: | Size: 2.6 KiB After Width: | Height: | Size: 2.5 KiB |
BIN
magic/body_y.jpg
|
Before Width: | Height: | Size: 3.0 KiB After Width: | Height: | Size: 2.6 KiB |
|
Before Width: | Height: | Size: 3.7 KiB After Width: | Height: | Size: 3.8 KiB |
|
Before Width: | Height: | Size: 2.7 KiB After Width: | Height: | Size: 2.5 KiB |
|
Before Width: | Height: | Size: 2.5 KiB After Width: | Height: | Size: 2.5 KiB |
|
Before Width: | Height: | Size: 2.5 KiB After Width: | Height: | Size: 2.5 KiB |
|
Before Width: | Height: | Size: 2.5 KiB After Width: | Height: | Size: 2.5 KiB |
|
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 2.3 KiB |
|
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 2.3 KiB |
BIN
magic/mind_0.jpg
|
Before Width: | Height: | Size: 3.2 KiB After Width: | Height: | Size: 2.9 KiB |
BIN
magic/mind_b.jpg
|
Before Width: | Height: | Size: 2.8 KiB After Width: | Height: | Size: 2.7 KiB |
BIN
magic/mind_g.jpg
|
Before Width: | Height: | Size: 2.5 KiB After Width: | Height: | Size: 2.4 KiB |
|
Before Width: | Height: | Size: 2.5 KiB After Width: | Height: | Size: 2.4 KiB |
BIN
magic/mind_p.jpg
|
Before Width: | Height: | Size: 2.6 KiB After Width: | Height: | Size: 2.5 KiB |
BIN
magic/mind_w.jpg
|
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 2.2 KiB |
BIN
magic/mind_y.jpg
|
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 2.2 KiB |
|
Before Width: | Height: | Size: 3.9 KiB After Width: | Height: | Size: 3.7 KiB |
|
Before Width: | Height: | Size: 2.6 KiB After Width: | Height: | Size: 2.4 KiB |
|
Before Width: | Height: | Size: 2.5 KiB After Width: | Height: | Size: 2.2 KiB |
|
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 2.2 KiB |
|
Before Width: | Height: | Size: 2.6 KiB After Width: | Height: | Size: 2.3 KiB |
|
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 2.1 KiB |
|
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 2.1 KiB |
|
Before Width: | Height: | Size: 3.6 KiB After Width: | Height: | Size: 3.5 KiB |
|
Before Width: | Height: | Size: 3.0 KiB After Width: | Height: | Size: 2.9 KiB |
|
Before Width: | Height: | Size: 2.6 KiB After Width: | Height: | Size: 2.7 KiB |
|
Before Width: | Height: | Size: 2.5 KiB After Width: | Height: | Size: 2.5 KiB |
|
Before Width: | Height: | Size: 2.8 KiB After Width: | Height: | Size: 2.9 KiB |
|
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 2.4 KiB |
|
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 2.5 KiB |
|
Before Width: | Height: | Size: 3.2 KiB After Width: | Height: | Size: 3.3 KiB |
|
Before Width: | Height: | Size: 2.7 KiB After Width: | Height: | Size: 2.8 KiB |
|
Before Width: | Height: | Size: 2.6 KiB After Width: | Height: | Size: 2.6 KiB |
|
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 2.5 KiB |
|
Before Width: | Height: | Size: 2.5 KiB After Width: | Height: | Size: 2.6 KiB |
|
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 2.3 KiB |
|
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 2.5 KiB |
|
Before Width: | Height: | Size: 3.8 KiB After Width: | Height: | Size: 3.6 KiB |
|
Before Width: | Height: | Size: 3.3 KiB After Width: | Height: | Size: 3.0 KiB |
|
Before Width: | Height: | Size: 3.1 KiB After Width: | Height: | Size: 2.7 KiB |
|
Before Width: | Height: | Size: 2.9 KiB After Width: | Height: | Size: 2.7 KiB |
|
Before Width: | Height: | Size: 3.2 KiB After Width: | Height: | Size: 2.8 KiB |
|
Before Width: | Height: | Size: 3.0 KiB After Width: | Height: | Size: 2.5 KiB |
|
Before Width: | Height: | Size: 2.8 KiB After Width: | Height: | Size: 2.3 KiB |