1
0
mirror of https://gitee.com/sui-feng-cb/AzurLaneAutoScript1 synced 2026-03-23 08:38:00 +08:00

Upd: GemsFarming hardmode

This commit is contained in:
sui-feng-cb
2024-12-13 21:50:44 +08:00
parent 7bc95797a6
commit 686128c858
20 changed files with 99 additions and 105 deletions

View File

@@ -41,6 +41,10 @@ FLEET_DETAIL_ENTER = Button(area={'cn': (729, 314, 802, 438), 'en': (729, 314, 8
FLEET_DETAIL_ENTER_FLAGSHIP = Button(area={'cn': (103, 327, 176, 437), 'en': (103, 327, 176, 437), 'jp': (103, 327, 176, 437), 'tw': (103, 327, 176, 437)}, color={'cn': (141, 135, 138), 'en': (141, 135, 138), 'jp': (141, 135, 138), 'tw': (141, 135, 138)}, button={'cn': (103, 327, 176, 437), 'en': (103, 327, 176, 437), 'jp': (103, 327, 176, 437), 'tw': (103, 327, 176, 437)}, file={'cn': './assets/cn/equipment/FLEET_DETAIL_ENTER_FLAGSHIP.png', 'en': './assets/en/equipment/FLEET_DETAIL_ENTER_FLAGSHIP.png', 'jp': './assets/jp/equipment/FLEET_DETAIL_ENTER_FLAGSHIP.png', 'tw': './assets/tw/equipment/FLEET_DETAIL_ENTER_FLAGSHIP.png'})
FLEET_ENTER = Button(area={'cn': (502, 474, 517, 489), 'en': (502, 474, 517, 489), 'jp': (502, 474, 517, 489), 'tw': (502, 474, 517, 489)}, color={'cn': (58, 62, 77), 'en': (58, 62, 77), 'jp': (58, 62, 77), 'tw': (58, 62, 77)}, button={'cn': (502, 474, 517, 489), 'en': (502, 474, 517, 489), 'jp': (502, 474, 517, 489), 'tw': (502, 474, 517, 489)}, file={'cn': './assets/cn/equipment/FLEET_ENTER.png', 'en': './assets/en/equipment/FLEET_ENTER.png', 'jp': './assets/jp/equipment/FLEET_ENTER.png', 'tw': './assets/tw/equipment/FLEET_ENTER.png'})
FLEET_ENTER_FLAGSHIP = Button(area={'cn': (577, 277, 605, 291), 'en': (577, 277, 605, 291), 'jp': (577, 277, 605, 291), 'tw': (577, 277, 605, 291)}, color={'cn': (132, 124, 128), 'en': (132, 124, 128), 'jp': (132, 124, 128), 'tw': (132, 124, 128)}, button={'cn': (577, 277, 605, 291), 'en': (577, 277, 605, 291), 'jp': (577, 277, 605, 291), 'tw': (577, 277, 605, 291)}, file={'cn': './assets/cn/equipment/FLEET_ENTER_FLAGSHIP.png', 'en': './assets/en/equipment/FLEET_ENTER_FLAGSHIP.png', 'jp': './assets/jp/equipment/FLEET_ENTER_FLAGSHIP.png', 'tw': './assets/tw/equipment/FLEET_ENTER_FLAGSHIP.png'})
FLEET_ENTER_FLAGSHIP_HARD_1 = Button(area={'cn': (390, 173, 476, 259), 'en': (390, 173, 476, 259), 'jp': (390, 173, 476, 259), 'tw': (390, 173, 476, 259)}, color={'cn': (91, 71, 68), 'en': (91, 71, 68), 'jp': (91, 71, 68), 'tw': (91, 71, 68)}, button={'cn': (390, 173, 476, 259), 'en': (390, 173, 476, 259), 'jp': (390, 173, 476, 259), 'tw': (390, 173, 476, 259)}, file={'cn': './assets/cn/equipment/FLEET_ENTER_FLAGSHIP_HARD_1.png', 'en': './assets/cn/equipment/FLEET_ENTER_FLAGSHIP_HARD_1.png', 'jp': './assets/cn/equipment/FLEET_ENTER_FLAGSHIP_HARD_1.png', 'tw': './assets/cn/equipment/FLEET_ENTER_FLAGSHIP_HARD_1.png'})
FLEET_ENTER_FLAGSHIP_HARD_2 = Button(area={'cn': (390, 287, 476, 373), 'en': (390, 287, 476, 373), 'jp': (390, 287, 476, 373), 'tw': (390, 287, 476, 373)}, color={'cn': (69, 59, 55), 'en': (69, 59, 55), 'jp': (69, 59, 55), 'tw': (69, 59, 55)}, button={'cn': (390, 287, 476, 373), 'en': (390, 287, 476, 373), 'jp': (390, 287, 476, 373), 'tw': (390, 287, 476, 373)}, file={'cn': './assets/cn/equipment/FLEET_ENTER_FLAGSHIP_HARD_2.png', 'en': './assets/cn/equipment/FLEET_ENTER_FLAGSHIP_HARD_2.png', 'jp': './assets/cn/equipment/FLEET_ENTER_FLAGSHIP_HARD_2.png', 'tw': './assets/cn/equipment/FLEET_ENTER_FLAGSHIP_HARD_2.png'})
FLEET_ENTER_HARD_1 = Button(area={'cn': (705, 173, 791, 259), 'en': (705, 173, 791, 259), 'jp': (705, 173, 791, 259), 'tw': (705, 173, 791, 259)}, color={'cn': (63, 64, 62), 'en': (63, 64, 62), 'jp': (63, 64, 62), 'tw': (63, 64, 62)}, button={'cn': (705, 173, 791, 259), 'en': (705, 173, 791, 259), 'jp': (705, 173, 791, 259), 'tw': (705, 173, 791, 259)}, file={'cn': './assets/cn/equipment/FLEET_ENTER_HARD_1.png', 'en': './assets/cn/equipment/FLEET_ENTER_HARD_1.png', 'jp': './assets/cn/equipment/FLEET_ENTER_HARD_1.png', 'tw': './assets/cn/equipment/FLEET_ENTER_HARD_1.png'})
FLEET_ENTER_HARD_2 = Button(area={'cn': (705, 287, 791, 373), 'en': (705, 287, 791, 373), 'jp': (705, 287, 791, 373), 'tw': (705, 287, 791, 373)}, color={'cn': (39, 44, 50), 'en': (39, 44, 50), 'jp': (39, 44, 50), 'tw': (39, 44, 50)}, button={'cn': (705, 287, 791, 373), 'en': (705, 287, 791, 373), 'jp': (705, 287, 791, 373), 'tw': (705, 287, 791, 373)}, file={'cn': './assets/cn/equipment/FLEET_ENTER_HARD_2.png', 'en': './assets/cn/equipment/FLEET_ENTER_HARD_2.png', 'jp': './assets/cn/equipment/FLEET_ENTER_HARD_2.png', 'tw': './assets/cn/equipment/FLEET_ENTER_HARD_2.png'})
FLEET_NEXT = Button(area={'cn': (1234, 327, 1254, 356), 'en': (1234, 327, 1254, 356), 'jp': (1234, 327, 1254, 356), 'tw': (1234, 327, 1254, 356)}, color={'cn': (72, 93, 125), 'en': (72, 93, 125), 'jp': (72, 93, 125), 'tw': (72, 93, 125)}, button={'cn': (1234, 327, 1254, 356), 'en': (1234, 327, 1254, 356), 'jp': (1234, 327, 1254, 356), 'tw': (1234, 327, 1254, 356)}, file={'cn': './assets/cn/equipment/FLEET_NEXT.png', 'en': './assets/en/equipment/FLEET_NEXT.png', 'jp': './assets/jp/equipment/FLEET_NEXT.png', 'tw': './assets/tw/equipment/FLEET_NEXT.png'})
FLEET_PREV = Button(area={'cn': (26, 327, 46, 356), 'en': (26, 327, 46, 356), 'jp': (26, 327, 46, 356), 'tw': (26, 327, 46, 356)}, color={'cn': (72, 93, 125), 'en': (72, 93, 125), 'jp': (72, 93, 125), 'tw': (72, 93, 125)}, button={'cn': (26, 327, 46, 356), 'en': (26, 327, 46, 356), 'jp': (26, 327, 46, 356), 'tw': (26, 327, 46, 356)}, file={'cn': './assets/cn/equipment/FLEET_PREV.png', 'en': './assets/en/equipment/FLEET_PREV.png', 'jp': './assets/jp/equipment/FLEET_PREV.png', 'tw': './assets/tw/equipment/FLEET_PREV.png'})
OCR_FLEET_INDEX = Button(area={'cn': (957, 113, 987, 163), 'en': (957, 113, 987, 163), 'jp': (957, 113, 987, 163), 'tw': (957, 113, 987, 163)}, color={'cn': (36, 54, 86), 'en': (36, 54, 86), 'jp': (36, 54, 86), 'tw': (36, 54, 86)}, button={'cn': (957, 113, 987, 163), 'en': (957, 113, 987, 163), 'jp': (957, 113, 987, 163), 'tw': (957, 113, 987, 163)}, file={'cn': './assets/cn/equipment/OCR_FLEET_INDEX.png', 'en': './assets/en/equipment/OCR_FLEET_INDEX.png', 'jp': './assets/jp/equipment/OCR_FLEET_INDEX.png', 'tw': './assets/tw/equipment/OCR_FLEET_INDEX.png'})

View File

@@ -1,47 +1,40 @@
from module.campaign.campaign_base import CampaignBase
from module.campaign.run import CampaignRun
from module.equipment.assets import *
from module.equipment.equipment import Equipment
from module.logger import logger
from module.equipment.equipment_change import EquipmentChange
from module.map.assets import FLEET_PREPARATION, MAP_PREPARATION
from module.ocr.ocr import Digit
from module.ui.assets import FLEET_CHECK
from module.ui.assets import BACK_ARROW, FLEET_CHECK
from module.ui.page import page_fleet
OCR_FLEET_INDEX = Digit(OCR_FLEET_INDEX, letter=(90, 154, 255), threshold=128, alphabet='123456')
class DailyEquipment(Equipment):
equipment_has_take_on = False
@property
def _fleet_daily(self):
fleet = self.config.FLEET_DAILY
if isinstance(fleet, list):
logger.info(f'Multiple daily fleets are set, change equipment only for the first one. fleet: {fleet}')
return fleet[0]
else:
return fleet
def equipment_take_on(self):
if self.config.FLEET_DAILY_EQUIPMENT is None:
return False
if self.equipment_has_take_on:
return False
class FleetEquipment(EquipmentChange):
def fleet_enter(self, fleet):
self.ui_ensure(page_fleet)
self.ui_ensure_index(self._fleet_daily, letter=OCR_FLEET_INDEX, next_button=FLEET_NEXT, prev_button=FLEET_PREV)
super().equipment_take_on(enter=FLEET_ENTER, out=FLEET_CHECK, fleet=self.config.FLEET_DAILY_EQUIPMENT)
self.equipment_has_take_on = True
self.device.sleep(1)
return True
self.ui_ensure_index(fleet, letter=OCR_FLEET_INDEX,
next_button=FLEET_NEXT, prev_button=FLEET_PREV, skip_first_screenshot=True)
def equipment_take_off(self):
if self.config.FLEET_DAILY_EQUIPMENT is None:
return False
if not self.equipment_has_take_on:
return False
def fleet_equipment_take_on_preset(self, preset_record, enter=FLEET_DETAIL_ENTER_FLAGSHIP,
long_click=False, out=FLEET_DETAIL_CHECK):
self.ui_click(FLEET_DETAIL, appear_button=page_fleet.check_button,
check_button=FLEET_DETAIL_CHECK, skip_first_screenshot=True)
super().fleet_equipment_take_on_preset(preset_record=preset_record, enter=FLEET_DETAIL_ENTER_FLAGSHIP,
long_click=False, out=FLEET_DETAIL_CHECK)
self.ui_back(FLEET_CHECK)
self.ui_ensure(page_fleet)
self.ui_ensure_index(self._fleet_daily, letter=OCR_FLEET_INDEX, next_button=FLEET_NEXT, prev_button=FLEET_PREV)
super().equipment_take_off(enter=FLEET_ENTER, out=FLEET_CHECK, fleet=self.config.FLEET_DAILY_EQUIPMENT)
self.equipment_has_take_on = False
self.device.sleep(1)
return True
def fleet_equipment_take_off(self, enter=FLEET_DETAIL_ENTER_FLAGSHIP, long_click=False, out=FLEET_DETAIL_CHECK):
self.ui_click(FLEET_DETAIL, appear_button=page_fleet.check_button,
check_button=FLEET_DETAIL_CHECK, skip_first_screenshot=True)
super().fleet_equipment_take_off(enter=enter, long_click=long_click, out=out)
self.ui_back(FLEET_CHECK)
def fleet_enter_ship(self, button):
self.ui_click(FLEET_DETAIL, appear_button=page_fleet.check_button,
check_button=FLEET_DETAIL_CHECK, skip_first_screenshot=True)
self.equip_enter(button, long_click=False)
def fleet_back(self):
self.ui_back(FLEET_DETAIL_CHECK)
self.ui_back(FLEET_CHECK)