Skip to content

Commit

Permalink
🎨 调整素材导入方式
Browse files Browse the repository at this point in the history
  • Loading branch information
AquamarineCyan committed Jan 16, 2025
1 parent a0784a4 commit fd69f58
Show file tree
Hide file tree
Showing 20 changed files with 269 additions and 477 deletions.
1 change: 1 addition & 0 deletions CHANGELOG.MD
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
- 完善异常捕获机制
- 优化文字识别的返回值和日志记录
- 修改软件图标的加载方式
- 调整素材导入方式

### 修复

Expand Down
15 changes: 6 additions & 9 deletions src/package/baiguiyexing.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
from ..utils.adapter import Mouse
from ..utils.assets import AssetImage
from ..utils.decorator import log_function_call
from ..utils.event import event_thread
from ..utils.exception import GUIStopException
Expand All @@ -8,7 +7,7 @@
from ..utils.log import logger
from ..utils.point import RelativePoint
from ..utils.window import window
from .utils import Package, get_asset
from .utils import Package


class BaiGuiYeXing(Package):
Expand All @@ -33,13 +32,11 @@ def description() -> None:
logger.ui("仅适用于清票,无法指定鬼王")

def load_asset(self):
self.IMAGE_TITLE = AssetImage(**get_asset(self.asset_image_list, "title"))
self.IMAGE_JINRU = AssetImage(**get_asset(self.asset_image_list, "jinru"))
self.IMAGE_CHOOSE = AssetImage(**get_asset(self.asset_image_list, "choose"))
self.IMAGE_START = AssetImage(**get_asset(self.asset_image_list, "kaishi"))
self.IMAGE_FINISH = AssetImage(
**get_asset(self.asset_image_list, "baiguiqiyueshu")
)
self.IMAGE_TITLE = self.get_image_asset("title")
self.IMAGE_JINRU = self.get_image_asset("jinru")
self.IMAGE_CHOOSE = self.get_image_asset("choose")
self.IMAGE_START = self.get_image_asset("kaishi")
self.IMAGE_FINISH = self.get_image_asset("baiguiqiyueshu")

def start(self):
"""开始"""
Expand Down
53 changes: 23 additions & 30 deletions src/package/daoguantupo.py
Original file line number Diff line number Diff line change
@@ -1,12 +1,11 @@
from ..utils.adapter import Mouse
from ..utils.assets import AssetImage
from ..utils.decorator import log_function_call
from ..utils.event import event_thread
from ..utils.exception import GUIStopException
from ..utils.function import finish_random_left_right, sleep
from ..utils.image import RuleImage, check_image_once
from ..utils.log import logger
from .utils import Package, get_asset
from .utils import Package


class DaoGuanTuPo(Package):
Expand Down Expand Up @@ -44,27 +43,21 @@ def description() -> None:
logger.ui("目前仅支持正在进行中的道馆突破,无法实现跳转道馆场景")

def load_asset(self):
self.IMAGE_BUTTON_ZHUWEI = AssetImage(
**get_asset(self.asset_image_list, "button_zhuwei")
)
self.IMAGE_CHUZHAN = AssetImage(**get_asset(self.asset_image_list, "chuzhan"))
self.IMAGE_DAOJISHI = AssetImage(**get_asset(self.asset_image_list, "daojishi"))
self.IMAGE_GUANZHAN = AssetImage(**get_asset(self.asset_image_list, "guanzhan"))
# self.IMAGE_GUANZHUZHAN = AssetImage(
# **get_asset(self.asset_image_list, "guanzhuzhan")
# )
# self.IMAGE_JIJIE = AssetImage(**get_asset(self.asset_image_list, "jijie"))
self.IMAGE_QIANWANG = AssetImage(**get_asset(self.asset_image_list, "qianwang"))
self.IMAGE_SHENYUTUPO = AssetImage(
**get_asset(self.asset_image_list, "shengyutuposhijian")
)
self.IMAGE_TIAOZHAN = AssetImage(**get_asset(self.asset_image_list, "tiaozhan"))
self.IMAGE_TITLE = AssetImage(**get_asset(self.asset_image_list, "title"))
self.IMAGE_ZHANBAO = AssetImage(**get_asset(self.asset_image_list, "zhanbao"))
self.IMAGE_ZHUWEI = AssetImage(**get_asset(self.asset_image_list, "zhuwei"))
self.IMAGE_ZHUWEI_GRAY = AssetImage(
**get_asset(self.asset_image_list, "zhuwei_gray")
)
self.IMAGE_CHUZHAN = self.get_image_asset("chuzhan")
self.IMAGE_DAOJISHI = self.get_image_asset("daojishi")
self.IMAGE_GUANZHAN = self.get_image_asset("guanzhan")
# self.IMAGE_JIJIE = self.get_image_asset("jijie") # no idea what it is
self.IMAGE_QIANWANG = self.get_image_asset("qianwang")
self.IMAGE_SHENYUTUPO = self.get_image_asset("shengyutuposhijian")
self.IMAGE_TIAOZHAN = self.get_image_asset("tiaozhan")
self.IMAGE_TITLE = self.get_image_asset("title")
self.IMAGE_ZHANBAO = self.get_image_asset("zhanbao")
self.IMAGE_ZHUWEI = self.get_image_asset("zhuwei")
self.IMAGE_ZHUWEI_GRAY = self.get_image_asset("zhuwei_gray")

self.OCR_TITLE = self.get_ocr_asset("title")
self.OCR_DAOJISHI = self.get_ocr_asset("daojishi")
self.OCR_SHENYUTUPO = self.get_ocr_asset("shengyutuposhijian")

@log_function_call
def check_title(self) -> None:
Expand Down Expand Up @@ -108,8 +101,8 @@ def guanzhan(self):
self.current_asset_list = [
self.IMAGE_ZHUWEI,
self.IMAGE_ZHUWEI_GRAY,
self.global_image.IMAGE_FINISH,
self.global_image.IMAGE_FAIL,
self.global_assets.IMAGE_FINISH,
self.global_assets.IMAGE_FAIL,
]
_flag_zhuwei_disable = False # 是否能够助威

Expand Down Expand Up @@ -158,11 +151,11 @@ def run(self):

# 开始
self.current_asset_list = [
self.global_image.IMAGE_READY_OLD,
self.global_image.IMAGE_READY_NEW,
self.global_image.IMAGE_VICTORY,
self.global_image.IMAGE_FAIL,
self.global_image.IMAGE_FINISH,
self.global_assets.IMAGE_READY_OLD,
self.global_assets.IMAGE_READY_NEW,
# self.global_image.IMAGE_VICTORY,
self.global_assets.IMAGE_FAIL,
self.global_assets.IMAGE_FINISH,
]

while True:
Expand Down
126 changes: 12 additions & 114 deletions src/package/douji.py
Original file line number Diff line number Diff line change
@@ -1,11 +1,10 @@
from ..utils.adapter import Mouse
from ..utils.assets import AssetOcr
from ..utils.event import event_thread
from ..utils.exception import GUIStopException
from ..utils.function import finish_random_left_right, sleep
from ..utils.function import sleep
from ..utils.log import logger
from ..utils.paddleocr import OcrData, check_raw_result_once, ocr, ocr_match_once
from .utils import Package, get_asset
from .utils import Package


class DouJi(Package):
Expand All @@ -19,117 +18,16 @@ def description() -> None:
logger.ui("支持五段至名士之间的固定翻牌上阵")

def load_asset(self):
self.OCR_TITLE = AssetOcr(**get_asset(self.asset_ocr_list, "title"))
self.OCR_FIGHT = AssetOcr(**get_asset(self.asset_ocr_list, "fight"))
self.OCR_UPDATE_TEAM = AssetOcr(**get_asset(self.asset_ocr_list, "update_team"))
self.OCR_INTENTIONAL = AssetOcr(**get_asset(self.asset_ocr_list, "intentional"))
self.OCR_CONTINUE = AssetOcr(**get_asset(self.asset_ocr_list, "continue"))
self.OCR_VICTORY = AssetOcr(**get_asset(self.asset_ocr_list, "victory"))
self.OCR_FAIL = AssetOcr(**get_asset(self.asset_ocr_list, "fail"))

def fight_once(self):
_flag = False

while True:
if bool(event_thread):
return

sleep()
result = ocr.get_raw_result()
for item in result:
ocr_data = OcrData(item)
if ocr_data.score >= 0.8:
match ocr_data.text:
case "斗技" | "斗技赛":
_coor = ocr_data.rect.get_rela_center()
logger.ui(f"{ocr_data.text} {_coor.coor}")
case "战":
if _flag:
continue
_coor = ocr_data.rect.get_rela_center()
logger.ui(f"{ocr_data.text} {_coor.coor}")
Mouse.click(_coor)
_flag = True
break
case "上阵":
_coor = ocr_data.rect.get_rela_center()
logger.ui(f"{ocr_data.text} {_coor.coor}")
Mouse.click(_coor)
break
case "手动":
_coor = ocr_data.rect.get_rela_center()
logger.ui(f"{ocr_data.text} {_coor.coor}")
Mouse.click(_coor)
break
case "点击屏幕继续" | "胜利" | "失败":
_coor = ocr_data.rect.get_rela_center()
logger.ui(f"{ocr_data.text} {_coor.coor}")
Mouse.click(_coor)
self.done()
return

while True:
_ocr_data = check_raw_result_once("斗技")
if _ocr_data:
break
_ocr_data = check_raw_result_once("斗技赛")
if _ocr_data:
break
sleep()
_coor = _ocr_data.rect.get_rela_center()
logger.ui(f"斗技 {_coor.coor}")

_ocr_data = check_raw_result_once("战")
_coor = _ocr_data.rect.get_rela_center()
logger.ui(f"战 {_coor.coor}")
Mouse.click(_coor)

sleep(3)

# choice
while True:
_ocr_data = check_raw_result_once("自动")
if _ocr_data:
break
_coor = _ocr_data.rect.get_rela_center()
logger.ui(f"自动 {_coor.coor}")
Mouse.click(_coor)

sleep(3)

# fighting
while True:
_ocr_data = check_raw_result_once("手动")
if _ocr_data:
break
_coor = _ocr_data.rect.get_rela_center()
logger.ui(f"手动 {_coor.coor}")
Mouse.click(_coor)

sleep(3)

# wait finish
while True:
_ocr_data = check_raw_result_once("自动")
if _ocr_data:
sleep()
else:
break

self.screenshot()
# finish_random_left_right()
while True:
_ocr_data = check_raw_result_once("点击屏幕继续")
if _ocr_data:
break

sleep()
_coor = _ocr_data.rect.get_rela_center()
logger.ui(f"点击屏幕继续 {_coor.coor}")
Mouse.click(_coor)
self.done()

def fight_once_new(self):
self.OCR_TITLE = self.get_ocr_asset("title")
self.OCR_FIGHT = self.get_ocr_asset("fight")
self.OCR_UPDATE_TEAM = self.get_ocr_asset("update_team")
self.OCR_INTENTIONAL = self.get_ocr_asset("intentional")
self.OCR_CONTINUE = self.get_ocr_asset("continue")
self.OCR_VICTORY = self.get_ocr_asset("victory")
self.OCR_FAIL = self.get_ocr_asset("fail")
self.OCR_LEVEL_UP = self.get_ocr_asset("level_up")

def fighting_once(self):
_flag = False
self.current_asset_list = [
self.OCR_TITLE,
Expand Down
25 changes: 10 additions & 15 deletions src/package/huodong.py
Original file line number Diff line number Diff line change
@@ -1,13 +1,12 @@
from ..utils.adapter import Mouse
from ..utils.assets import AssetImage
from ..utils.decorator import log_function_call
from ..utils.event import event_thread
from ..utils.exception import GUIStopException
from ..utils.function import finish_random_left_right, get_asset_data, sleep
from ..utils.image import RuleImage, check_image_once
from ..utils.log import logger
from ..utils.mythread import WorkTimer
from .utils import Package, get_asset
from .utils import Package


class HuoDong(Package):
Expand Down Expand Up @@ -37,13 +36,9 @@ def show_description(self) -> None:
logger.ui(f"""适配活动「{self.activity_name}」,可自行替换 /data/myresource/huodong 下的素材""")

def load_asset(self) -> None:
self.IMAGE_TITLE = AssetImage(**get_asset(self.asset_image_list, "title"))
self.IMAGE_START = AssetImage(**get_asset(self.asset_image_list, "start"))
self.IMAGE_RESULT = AssetImage(**get_asset(self.asset_image_list, "result"))

def start(self) -> None:
"""开始"""
self.check_click(self.IMAGE_START)
self.IMAGE_TITLE = self.get_image_asset("title")
self.IMAGE_START = self.get_image_asset("start")
self.IMAGE_RESULT = self.get_image_asset("result")

@log_function_call
def timer_check_start(self):
Expand All @@ -55,10 +50,10 @@ def run(self) -> None:
self.IMAGE_TITLE,
self.IMAGE_START,
self.IMAGE_RESULT,
self.global_image.IMAGE_FINISH,
self.global_image.IMAGE_FAIL,
self.global_image.IMAGE_VICTORY,
self.global_image.IMAGE_SOUL_OVERFLOW,
self.global_assets.IMAGE_FINISH,
self.global_assets.IMAGE_FAIL,
self.global_assets.IMAGE_VICTORY,
self.global_assets.IMAGE_SOUL_OVERFLOW,
]
_flag_title_msg: bool = True
_flag_result_click: bool = False # 部分活动会有“获得奖励”弹窗
Expand Down Expand Up @@ -125,15 +120,15 @@ def run(self) -> None:
raise GUIStopException

# 先判断御魂上限提醒
result = RuleImage(self.global_image.IMAGE_SOUL_OVERFLOW)
result = RuleImage(self.global_assets.IMAGE_SOUL_OVERFLOW)
if result.match():
logger.ui_warn("御魂上限提醒")
self.flag_soul_overflow = True
Mouse.click(result.center_point())
continue

# 未重复检测到,表示成功点击
if not RuleImage(self.global_image.IMAGE_FINISH).match():
if not RuleImage(self.global_assets.IMAGE_FINISH).match():
break
Mouse.click(_coor_point)

Expand Down
Loading

0 comments on commit fd69f58

Please sign in to comment.