42 lines
1.3 KiB
Python
42 lines
1.3 KiB
Python
import json
|
|
from enum import Enum
|
|
import time
|
|
import cv2 as cv
|
|
import pyautogui
|
|
from core.Logger import Logger
|
|
|
|
CONNECT_STATUS = Enum('CONNECT_STATUS', ["CONNECTED", "CONNECTING", "DISCONNECTED"])
|
|
CLASSES = Enum('CLASSES', ['DRUID', 'MAGE', 'HUNTER', 'PRIEST'])
|
|
PLAYER_STATE = Enum('STATE', ['IDLE', 'FISHING', 'FARMING'])
|
|
|
|
class Player:
|
|
def __init__(self, monitor) -> None:
|
|
with open("config.json", encoding="utf-8") as jsonFile:
|
|
self.config = json.load(jsonFile)
|
|
self.isConnected = None
|
|
self.idleThread = None
|
|
self.enterWorldButton = cv.imread("assets/menus/EnterWorldButton.jpg", cv.IMREAD_GRAYSCALE)
|
|
self.logger = Logger("Player Agent")
|
|
self.state = PLAYER_STATE.IDLE
|
|
self.monitor = monitor
|
|
self.playerClass = self.config["class"]
|
|
self.playerName = self.config["name"]
|
|
self.logger.log("Connected with " + self.playerName + " (" + self.playerClass + ")")
|
|
|
|
def checkConnection(self):
|
|
res = self.monitor.findMatch(self.enterWorldButton)
|
|
if (res == -1):
|
|
self.isConnected = CONNECT_STATUS.CONNECTED
|
|
else:
|
|
self.isConnected = CONNECT_STATUS.DISCONNECTED
|
|
self.logger.log("Player not connected attempting to connect...")
|
|
pyautogui.move(res[0], res[1])
|
|
time.sleep(0.4)
|
|
pyautogui.click()
|
|
time.sleep(5)
|
|
|
|
|
|
|
|
|
|
def changeState(self, newState):
|
|
self.state = newState |