1
0
mirror of https://gitee.com/sui-feng-cb/AzurLaneAutoScript1 synced 2026-03-19 14:13:34 +08:00

每艘 cv 用一个单独的 template

改变了 retirement 的写法
This commit is contained in:
RuaBQ
2021-07-06 01:14:05 +08:00
parent 350e3c33f3
commit c4e4c1fec2
14 changed files with 84 additions and 38 deletions

View File

@@ -33,10 +33,6 @@ SORT_ASC = Button(area={'cn': (1014, 22, 1019, 26), 'en': (1014, 22, 1019, 26),
SORT_DESC = Button(area={'cn': (1014, 29, 1019, 33), 'en': (1014, 29, 1019, 33), 'jp': (1013, 29, 1019, 32), 'tw': (1014, 29, 1019, 33)}, color={'cn': (189, 207, 231), 'en': (189, 207, 231), 'jp': (189, 207, 231), 'tw': (189, 207, 231)}, button={'cn': (1014, 29, 1019, 33), 'en': (1014, 29, 1019, 33), 'jp': (1013, 29, 1019, 32), 'tw': (1014, 29, 1019, 33)}, file={'cn': './assets/cn/retire/SORT_DESC.png', 'en': './assets/en/retire/SORT_DESC.png', 'jp': './assets/jp/retire/SORT_DESC.png', 'tw': './assets/tw/retire/SORT_DESC.png'})
SR_SSR_CONFIRM = Button(area={'cn': (707, 464, 879, 521), 'en': (706, 463, 881, 523), 'jp': (707, 464, 880, 521), 'tw': (707, 464, 879, 521)}, color={'cn': (94, 143, 204), 'en': (106, 152, 208), 'jp': (93, 140, 200), 'tw': (94, 143, 204)}, button={'cn': (707, 464, 879, 521), 'en': (706, 463, 881, 523), 'jp': (707, 464, 880, 521), 'tw': (707, 464, 879, 521)}, file={'cn': './assets/cn/retire/SR_SSR_CONFIRM.png', 'en': './assets/en/retire/SR_SSR_CONFIRM.png', 'jp': './assets/jp/retire/SR_SSR_CONFIRM.png', 'tw': './assets/tw/retire/SR_SSR_CONFIRM.png'})
TEMPLATE_BOGUE = Template(file={'cn': './assets/cn/retire/TEMPLATE_BOGUE.png', 'en': './assets/cn/retire/TEMPLATE_BOGUE.png', 'jp': './assets/cn/retire/TEMPLATE_BOGUE.png', 'tw': './assets/cn/retire/TEMPLATE_BOGUE.png'})
TEMPLATE_BOGUE_RETIRE = Template(file={'cn': './assets/cn/retire/TEMPLATE_BOGUE_RETIRE.png', 'en': './assets/cn/retire/TEMPLATE_BOGUE_RETIRE.png', 'jp': './assets/cn/retire/TEMPLATE_BOGUE_RETIRE.png', 'tw': './assets/cn/retire/TEMPLATE_BOGUE_RETIRE.png'})
TEMPLATE_HERMES = Template(file={'cn': './assets/cn/retire/TEMPLATE_HERMES.png', 'en': './assets/cn/retire/TEMPLATE_HERMES.png', 'jp': './assets/cn/retire/TEMPLATE_HERMES.png', 'tw': './assets/cn/retire/TEMPLATE_HERMES.png'})
TEMPLATE_HERMES_RETIRE = Template(file={'cn': './assets/cn/retire/TEMPLATE_HERMES_RETIRE.png', 'en': './assets/cn/retire/TEMPLATE_HERMES_RETIRE.png', 'jp': './assets/cn/retire/TEMPLATE_HERMES_RETIRE.png', 'tw': './assets/cn/retire/TEMPLATE_HERMES_RETIRE.png'})
TEMPLATE_LANGLEY = Template(file={'cn': './assets/cn/retire/TEMPLATE_LANGLEY.png', 'en': './assets/cn/retire/TEMPLATE_LANGLEY.png', 'jp': './assets/cn/retire/TEMPLATE_LANGLEY.png', 'tw': './assets/cn/retire/TEMPLATE_LANGLEY.png'})
TEMPLATE_LANGLEY_RETIRE = Template(file={'cn': './assets/cn/retire/TEMPLATE_LANGLEY_RETIRE.png', 'en': './assets/cn/retire/TEMPLATE_LANGLEY_RETIRE.png', 'jp': './assets/cn/retire/TEMPLATE_LANGLEY_RETIRE.png', 'tw': './assets/cn/retire/TEMPLATE_LANGLEY_RETIRE.png'})
TEMPLATE_RANGER = Template(file={'cn': './assets/cn/retire/TEMPLATE_RANGER.png', 'en': './assets/cn/retire/TEMPLATE_RANGER.png', 'jp': './assets/cn/retire/TEMPLATE_RANGER.png', 'tw': './assets/cn/retire/TEMPLATE_RANGER.png'})
TEMPLATE_RANGER_RETIRE = Template(file={'cn': './assets/cn/retire/TEMPLATE_RANGER_RETIRE.png', 'en': './assets/cn/retire/TEMPLATE_RANGER_RETIRE.png', 'jp': './assets/cn/retire/TEMPLATE_RANGER_RETIRE.png', 'tw': './assets/cn/retire/TEMPLATE_RANGER_RETIRE.png'})

View File

@@ -42,8 +42,10 @@ CARD_GRIDS = ButtonGrid(
origin=(93, 76), delta=(164 + 2 / 3, 227), button_shape=(138, 204), grid_shape=(7, 2), name='CARD')
CARD_RARITY_GRIDS = CARD_GRIDS.crop(area=(0, 0, 138, 5), name='RARITY')
CARD_LEVEL_GRIDS = CARD_GRIDS.crop(area=(80, 4, 138, 27), name='LEVEL')
CARD_EMOTION_GRIDS = CARD_GRIDS.crop(area=(25, 30, 49, 48), name='EMOTION')
CARD_BOTTOM_GRIDS = CARD_GRIDS.move(vector=(0, 94), name='CARD')
CARD_BOTTOM_LEVEL_GRIDS = CARD_LEVEL_GRIDS.move(vector=(0, 94), name='LEVEL')
CARD_BOTTOM_EMOTION_GRIDS = CARD_EMOTION_GRIDS.move(vector=(0, 94), name='EMOTION')
DOCK_SCROLL = Scroll(DOCK_SCROLL, color=(247, 211, 66), name='DOCK_SCROLL')
OCR_DOCK_SELECTED = DigitCounter(DOCK_SELECTED, threshold=64, name='OCR_DOCK_SELECTED')

View File

@@ -2,11 +2,11 @@ from module.base.button import ButtonGrid
from module.base.decorator import Config
from module.base.utils import get_color, color_similar
from module.combat.assets import GET_ITEMS_1
from module.exception import ScriptError
from module.logger import logger
from module.retire.assets import *
from module.retire.enhancement import Enhancement
from module.ocr.ocr import Digit
from module.base.timer import Timer
CARD_GRIDS = ButtonGrid(
@@ -21,10 +21,6 @@ CARD_RARITY_COLORS = {
'SSR': (248, 223, 107)
# Not support marriage cards.
}
OCR_RETIRE_SELECTED = Digit(
RETIRE_COIN, threshold=64, name='OCR_RETIRE_SELECTED')
class Retirement(Enhancement):
_unable_to_enhance = False
@@ -295,18 +291,20 @@ class Retirement(Enhancement):
button (Button): Ship button to select
skip_first_screenshot:
"""
before = OCR_RETIRE_SELECTED.ocr(self.device.image)
for _ in range(0,5):
retire_coin_timer = Timer(2)
RETIRE_COIN.load_color(self.device.image)
while 1:
if skip_first_screenshot:
skip_first_screenshot = False
else:
self.device.screenshot()
if self.appear(SHIP_CONFIRM_2, offset=(30, 30), interval=3):
self.device.click(button)
continue
self.device.click(button)
self.wait_until_stable(RETIRE_COIN)
current = OCR_RETIRE_SELECTED.ocr(self.device.image)
if current != before:
if retire_coin_timer.reached() and not self.appear(RETIRE_COIN, threshold=0.97):
return True
return False
@@ -316,10 +314,12 @@ class Retirement(Enhancement):
Button:
"""
# TODO use alConfig
template = globals()[f'TEMPLATE_{self.config.RETIRE_COMMON_CV}_RETIRE']
sim, point = template.match_result(self.device.image)
template = globals()[f'TEMPLATE_{self.config.COMMON_CV_NAME}']
sim, point = template.match_result(self.device.image.resize(size=(1189, 669)))
print(sim)
if sim > self.config.COMMON_CV_THRESHOLD:
point = (point[0]*155//144, point[1]*155//144)
return Button(button=(
point[0], point[1], point[0]+offset[0], point[1]+offset[1]), color=None, area=None)
@@ -328,7 +328,7 @@ class Retirement(Enhancement):
def keep_one_common_cv(self):
button = self.get_common_rarity_cv()
if button is not None:
if self._retire_select_one(button):
if self._retire_select_one(button, skip_first_screenshot=False):
self.HAVE_KEEPED_CV = True
else:
logger.warning('No ship retired, exit')
@@ -343,5 +343,5 @@ if __name__ == '__main__':
config = AzurLaneConfig('alas_cn')
az = Retirement(config, Device(config=config))
az.device.screenshot()
az.device.image.show()
az.retire_ships()