diff --git a/assets/en/handler/MOB_MOVE_CANCEL.png b/assets/en/handler/MOB_MOVE_CANCEL.png new file mode 100644 index 000000000..e1a398910 Binary files /dev/null and b/assets/en/handler/MOB_MOVE_CANCEL.png differ diff --git a/assets/jp/coalition/ACADEMY_EASY.png b/assets/jp/coalition/ACADEMY_EASY.png new file mode 100644 index 000000000..f32a82840 Binary files /dev/null and b/assets/jp/coalition/ACADEMY_EASY.png differ diff --git a/assets/jp/coalition/ACADEMY_EX.png b/assets/jp/coalition/ACADEMY_EX.png new file mode 100644 index 000000000..9158de585 Binary files /dev/null and b/assets/jp/coalition/ACADEMY_EX.png differ diff --git a/assets/jp/coalition/ACADEMY_HARD.png b/assets/jp/coalition/ACADEMY_HARD.png new file mode 100644 index 000000000..7031fd701 Binary files /dev/null and b/assets/jp/coalition/ACADEMY_HARD.png differ diff --git a/assets/jp/coalition/ACADEMY_MODE_BATTLE.png b/assets/jp/coalition/ACADEMY_MODE_BATTLE.png new file mode 100644 index 000000000..9ed7b47c3 Binary files /dev/null and b/assets/jp/coalition/ACADEMY_MODE_BATTLE.png differ diff --git a/assets/jp/coalition/ACADEMY_MODE_STORY.png b/assets/jp/coalition/ACADEMY_MODE_STORY.png new file mode 100644 index 000000000..48fe0d679 Binary files /dev/null and b/assets/jp/coalition/ACADEMY_MODE_STORY.png differ diff --git a/assets/jp/coalition/ACADEMY_NORMAL.png b/assets/jp/coalition/ACADEMY_NORMAL.png new file mode 100644 index 000000000..863b39092 Binary files /dev/null and b/assets/jp/coalition/ACADEMY_NORMAL.png differ diff --git a/assets/jp/coalition/ACADEMY_SP.png b/assets/jp/coalition/ACADEMY_SP.png new file mode 100644 index 000000000..c88c21bb9 Binary files /dev/null and b/assets/jp/coalition/ACADEMY_SP.png differ diff --git a/assets/jp/coalition/ACADEMY_SWITCH_MULTI.png b/assets/jp/coalition/ACADEMY_SWITCH_MULTI.png new file mode 100644 index 000000000..e8d40754e Binary files /dev/null and b/assets/jp/coalition/ACADEMY_SWITCH_MULTI.png differ diff --git a/assets/jp/coalition/ACADEMY_SWITCH_SINGLE.png b/assets/jp/coalition/ACADEMY_SWITCH_SINGLE.png new file mode 100644 index 000000000..a596eb574 Binary files /dev/null and b/assets/jp/coalition/ACADEMY_SWITCH_SINGLE.png differ diff --git a/assets/jp/coalition/ACEDEMY_FLEET_PREPARATION.png b/assets/jp/coalition/ACEDEMY_FLEET_PREPARATION.png new file mode 100644 index 000000000..faa19e91b Binary files /dev/null and b/assets/jp/coalition/ACEDEMY_FLEET_PREPARATION.png differ diff --git a/assets/jp/coalition/COALITION_ACADEMY_CAMPAIGN_CHECK.png b/assets/jp/coalition/COALITION_ACADEMY_CAMPAIGN_CHECK.png new file mode 100644 index 000000000..8983cd35c Binary files /dev/null and b/assets/jp/coalition/COALITION_ACADEMY_CAMPAIGN_CHECK.png differ diff --git a/assets/jp/coalition/COALITION_ACADEMY_MAIN_CHECK.png b/assets/jp/coalition/COALITION_ACADEMY_MAIN_CHECK.png new file mode 100644 index 000000000..2f5c51200 Binary files /dev/null and b/assets/jp/coalition/COALITION_ACADEMY_MAIN_CHECK.png differ diff --git a/deploy/adb.py b/deploy/adb.py index 1f9dff44d..d4feb1235 100644 --- a/deploy/adb.py +++ b/deploy/adb.py @@ -86,14 +86,3 @@ class AdbManager(DeployConfig): initer._device.shell(["rm", "/data/local/tmp/minicap"]) initer._device.shell(["rm", "/data/local/tmp/minicap.so"]) - - -if __name__ == '__main__': - import psutil - for c in psutil.net_connections(): - # print(type(c.laddr), c.laddr, type(c.raddr), c.raddr) - try: - if c.laddr.port == 5038 or c.raddr.port == 5038: - print(c.status, c.pid) - except AttributeError: - continue \ No newline at end of file diff --git a/dev_tools/button_extract.py b/dev_tools/button_extract.py index 9f188d532..b966f1a77 100644 --- a/dev_tools/button_extract.py +++ b/dev_tools/button_extract.py @@ -219,7 +219,7 @@ class AssetExtractor: modules = [m for m in os.listdir(AzurLaneConfig.ASSETS_FOLDER + '/cn') if os.path.isdir(os.path.join(AzurLaneConfig.ASSETS_FOLDER + '/cn', m))] - process_map(worker, modules, max_workers=2) + process_map(worker, modules) if __name__ == '__main__': diff --git a/dev_tools/campaign_swipe.py b/dev_tools/campaign_swipe.py index 941d9d8c6..ef74ee523 100644 --- a/dev_tools/campaign_swipe.py +++ b/dev_tools/campaign_swipe.py @@ -38,7 +38,7 @@ class Config: MAP_SWIPE_MULTIPLY_MINITOUCH = (1.276, 0.974) -cfg = AzurLaneConfig('alas5', task='Alas').merge(Config()) +cfg = AzurLaneConfig('alas', task='Alas').merge(Config()) cfg.DETECTION_BACKEND = 'perspective' az = CampaignBase(cfg) az.map = MAP @@ -165,4 +165,4 @@ if __name__ == '__main__': -- -- -- -- -- -- After run, Result is ready to copy. """ - sim = SwipeSimulate((380, 0)).run() + sim = SwipeSimulate((420, 0)).run() diff --git a/dev_tools/item_statistics.py b/dev_tools/item_statistics.py index bcd667a0e..a6031d2b7 100644 --- a/dev_tools/item_statistics.py +++ b/dev_tools/item_statistics.py @@ -1,5 +1,6 @@ import shutil +import numpy as np from tqdm import tqdm import module.config.server as server @@ -7,8 +8,8 @@ import module.config.server as server server.server = 'cn' # Edit your server here. from module.logger import logger -from module.statistics.image.battle_status import BattleStatusStatistics -from module.statistics.image.get_items import GetItemsStatistics +from module.statistics.battle_status import BattleStatusStatistics +from module.statistics.get_items import GetItemsStatistics from module.statistics.utils import * STATUS_ITEMS_INTERVAL = 10 diff --git a/dev_tools/map_extractor.py b/dev_tools/map_extractor.py index 4a0752c4b..7dcafcf03 100644 --- a/dev_tools/map_extractor.py +++ b/dev_tools/map_extractor.py @@ -304,15 +304,15 @@ class MapData: # portal self.portal = [] - # if self.map_id in MAP_EVENT_LIST: - # for event_id in MAP_EVENT_LIST[self.map_id]['event_list'].values(): - # event = MAP_EVENT_TEMPLATE[event_id] - # for effect in event['effect'].values(): - # if effect[0] == 'jump': - # address = event['address'] - # address = location2node((address[1], address[0])) - # target = location2node((effect[2], effect[1])) - # self.portal.append((address, target)) + if self.map_id in MAP_EVENT_LIST: + for event_id in MAP_EVENT_LIST[self.map_id]['event_list'].values(): + event = MAP_EVENT_TEMPLATE[event_id] + for effect in event['effect'].values(): + if effect[0] == 'jump': + address = event['address'] + address = location2node((address[1], address[0])) + target = location2node((effect[2], effect[1])) + self.portal.append((address, target)) # land_based # land_based = {{6, 7, 1}, ...} @@ -676,8 +676,8 @@ Arguments: adapted for war_archives usage """ FILE = '../AzurLaneLuaScripts' -FOLDER = './campaign/event_20240521_cn' -KEYWORD = '1810001' +FOLDER = './campaign/test' +KEYWORD = '' SELECT = True OVERWRITE = True IS_WAR_ARCHIVES = False @@ -686,8 +686,8 @@ ENEMY_FILTER = '1L > 1M > 1E > 1C > 2L > 2M > 2E > 2C > 3L > 3M > 3E > 3C' LOADER = LuaLoader(FILE, server='CN') DATA = LOADER.load('./sharecfgdata/chapter_template.lua') DATA_LOOP = LOADER.load('./sharecfgdata/chapter_template_loop.lua') -# MAP_EVENT_LIST = LOADER.load('./sharecfg/map_event_list.lua') -# MAP_EVENT_TEMPLATE = LOADER.load('./sharecfg/map_event_template.lua') +MAP_EVENT_LIST = LOADER.load('./sharecfg/map_event_list.lua') +MAP_EVENT_TEMPLATE = LOADER.load('./sharecfg/map_event_template.lua') EXPECTATION_DATA = LOADER.load('./sharecfgdata/expedition_data_template.lua') ct = ChapterTemplate() diff --git a/dev_tools/os_extract.py b/dev_tools/os_extract.py index 0ae530c5c..e2df62b06 100644 --- a/dev_tools/os_extract.py +++ b/dev_tools/os_extract.py @@ -126,7 +126,7 @@ Arguments: FILE: Path to repository, such as 'xxx/AzurLaneLuaScripts' SAVE: File to save, 'module/os/map_data.py' """ -FOLDER = r'E:\ProgramData\Pycharm\AzurLaneLuaScripts' +FOLDER = '' SAVE = 'module/os/map_data.py' LOADER = LuaLoader(FOLDER) diff --git a/dev_tools/relative_crop.py b/dev_tools/relative_crop.py index 7a4ffec6e..9f0902896 100644 --- a/dev_tools/relative_crop.py +++ b/dev_tools/relative_crop.py @@ -15,28 +15,15 @@ class Config: """ Paste the config of map file here """ - INTERNAL_LINES_FIND_PEAKS_PARAMETERS = { - 'height': (80, 255 - 17), - 'width': (0.9, 10), - 'prominence': 10, - 'distance': 35, - } - EDGE_LINES_FIND_PEAKS_PARAMETERS = { - 'height': (255 - 17, 255), - 'prominence': 10, - 'distance': 50, - 'wlen': 1000 - } - HOMO_EDGE_COLOR_RANGE = (0, 17) - HOMO_EDGE_HOUGHLINES_THRESHOLD = 210 + pass from module.os.config import OSConfig -cfg = AzurLaneConfig('alas5').merge(Config()) +cfg = AzurLaneConfig('alas').merge(OSConfig()) # Folder to save temp images folder = './screenshots/relative_crop' # Put Screenshot here -file = r'E:\ProgramData\Pycharm\StarRailCopilot\screenshots\dev_screenshots\2023-12-22_00-41-21-728648.png' +file = '' i = load_image(file) grids = View(cfg) @@ -49,7 +36,7 @@ os.makedirs(folder, exist_ok=True) for grid in grids: # Find more relative_crop area in module/map/grid_predictor.py # This one is for `predict_enemy_genre` - piece = rgb2gray(grid.relative_crop((-0, -0.2, 0.8, 0.2), shape=(40, 20))) + piece = rgb2gray(grid.relative_crop((-0.5, -1, 0.5, 0), shape=(60, 60))) file = '%s_%s_%s.png' % (int(time.time()), grid.location[0], grid.location[1]) file = os.path.join(folder, file) diff --git a/dev_tools/relative_record.py b/dev_tools/relative_record.py index ba63cde7a..e101dde4a 100644 --- a/dev_tools/relative_record.py +++ b/dev_tools/relative_record.py @@ -17,19 +17,7 @@ class Config: """ Paste the config of map file here """ - INTERNAL_LINES_FIND_PEAKS_PARAMETERS = { - 'height': (80, 255 - 17), - 'width': (0.9, 10), - 'prominence': 10, - 'distance': 35, - } - EDGE_LINES_FIND_PEAKS_PARAMETERS = { - 'height': (255 - 17, 255), - 'prominence': 10, - 'distance': 50, - 'wlen': 1000 - } - HOMO_EDGE_COLOR_RANGE = (0, 17) + pass """ @@ -53,11 +41,10 @@ Arguments: NAME: Siren name, images will save in / NODE: Node in local map view, that you are going to crop. """ -CONFIG = 'alas5' -FOLDER = r'E:\ProgramData\Pycharm\Azurlane-image\screenshot\record' -NAME = 'huiguangzhihe' -NODE = 'E5' - +CONFIG = 'alas' +FOLDER = '' +NAME = 'Deutschland' +NODE = 'D5' if __name__ == '__main__': for folder in [FOLDER, os.path.join(FOLDER, NAME)]: diff --git a/dev_tools/relative_record_gif.py b/dev_tools/relative_record_gif.py index 3b9b53e6a..1b7cc15ac 100644 --- a/dev_tools/relative_record_gif.py +++ b/dev_tools/relative_record_gif.py @@ -27,7 +27,7 @@ Arguments: """ # FOLDER = '' # NAME = 'Deutschland' -AREA = (25, 16, 37, 34) +AREA = (32, 32, 54, 52) THRESHOLD = 0.92 if __name__ == '__main__': diff --git a/dev_tools/research_extractor.py b/dev_tools/research_extractor.py index 6d3687d1e..9ce02ded2 100644 --- a/dev_tools/research_extractor.py +++ b/dev_tools/research_extractor.py @@ -137,7 +137,7 @@ Arguments: FILE: Path to AzurLaneData, '/AzurLaneData' SAVE: File to save, 'module/research/project_data.py' """ -FOLDER = r'E:\ProgramData\Pycharm\AzurLaneLuaScripts' +FOLDER = '' SAVE = 'module/research/project_data.py' TechnologyTemplate().write(SAVE) diff --git a/dev_tools/utils.py b/dev_tools/utils.py index 38d9d5d52..ce6e8f6d1 100644 --- a/dev_tools/utils.py +++ b/dev_tools/utils.py @@ -20,7 +20,7 @@ class LuaLoader: ] def __init__(self, folder, server='zh-CN'): - self.folder = os.path.abspath(folder) + self.folder = folder self._server = '' self.server = server diff --git a/module/coalition/assets.py b/module/coalition/assets.py index a4570c1cb..890880e6a 100644 --- a/module/coalition/assets.py +++ b/module/coalition/assets.py @@ -4,22 +4,22 @@ from module.base.template import Template # This file was automatically generated by dev_tools/button_extract.py. # Don't modify it manually. -ACADEMY_EASY = Button(area={'cn': (201, 290, 243, 311), 'en': (186, 294, 229, 311), 'jp': (201, 290, 243, 311), 'tw': (201, 290, 243, 311)}, color={'cn': (172, 141, 121), 'en': (178, 153, 137), 'jp': (172, 141, 121), 'tw': (172, 141, 121)}, button={'cn': (201, 290, 243, 311), 'en': (186, 294, 229, 311), 'jp': (201, 290, 243, 311), 'tw': (201, 290, 243, 311)}, file={'cn': './assets/cn/coalition/ACADEMY_EASY.png', 'en': './assets/en/coalition/ACADEMY_EASY.png', 'jp': './assets/cn/coalition/ACADEMY_EASY.png', 'tw': './assets/cn/coalition/ACADEMY_EASY.png'}) -ACADEMY_EX = Button(area={'cn': (712, 178, 744, 196), 'en': (681, 179, 705, 193), 'jp': (712, 178, 744, 196), 'tw': (712, 178, 744, 196)}, color={'cn': (151, 200, 191), 'en': (177, 210, 200), 'jp': (151, 200, 191), 'tw': (151, 200, 191)}, button={'cn': (712, 178, 744, 196), 'en': (681, 179, 705, 193), 'jp': (712, 178, 744, 196), 'tw': (712, 178, 744, 196)}, file={'cn': './assets/cn/coalition/ACADEMY_EX.png', 'en': './assets/en/coalition/ACADEMY_EX.png', 'jp': './assets/cn/coalition/ACADEMY_EX.png', 'tw': './assets/cn/coalition/ACADEMY_EX.png'}) -ACADEMY_HARD = Button(area={'cn': (956, 503, 1000, 524), 'en': (947, 506, 992, 520), 'jp': (956, 503, 1000, 524), 'tw': (956, 503, 1000, 524)}, color={'cn': (169, 137, 118), 'en': (168, 136, 117), 'jp': (169, 137, 118), 'tw': (169, 137, 118)}, button={'cn': (956, 503, 1000, 524), 'en': (947, 506, 992, 520), 'jp': (956, 503, 1000, 524), 'tw': (956, 503, 1000, 524)}, file={'cn': './assets/cn/coalition/ACADEMY_HARD.png', 'en': './assets/en/coalition/ACADEMY_HARD.png', 'jp': './assets/cn/coalition/ACADEMY_HARD.png', 'tw': './assets/cn/coalition/ACADEMY_HARD.png'}) -ACADEMY_MODE_BATTLE = Button(area={'cn': (105, 654, 182, 675), 'en': (99, 656, 165, 672), 'jp': (105, 654, 182, 675), 'tw': (105, 654, 182, 675)}, color={'cn': (207, 169, 129), 'en': (207, 172, 137), 'jp': (207, 169, 129), 'tw': (207, 169, 129)}, button={'cn': (105, 654, 182, 675), 'en': (99, 656, 165, 672), 'jp': (105, 654, 182, 675), 'tw': (105, 654, 182, 675)}, file={'cn': './assets/cn/coalition/ACADEMY_MODE_BATTLE.png', 'en': './assets/en/coalition/ACADEMY_MODE_BATTLE.png', 'jp': './assets/cn/coalition/ACADEMY_MODE_BATTLE.png', 'tw': './assets/cn/coalition/ACADEMY_MODE_BATTLE.png'}) -ACADEMY_MODE_STORY = Button(area={'cn': (224, 654, 302, 675), 'en': (238, 655, 288, 673), 'jp': (224, 654, 302, 675), 'tw': (224, 654, 302, 675)}, color={'cn': (210, 175, 139), 'en': (212, 175, 129), 'jp': (210, 175, 139), 'tw': (210, 175, 139)}, button={'cn': (224, 654, 302, 675), 'en': (238, 655, 288, 673), 'jp': (224, 654, 302, 675), 'tw': (224, 654, 302, 675)}, file={'cn': './assets/cn/coalition/ACADEMY_MODE_STORY.png', 'en': './assets/en/coalition/ACADEMY_MODE_STORY.png', 'jp': './assets/cn/coalition/ACADEMY_MODE_STORY.png', 'tw': './assets/cn/coalition/ACADEMY_MODE_STORY.png'}) -ACADEMY_NORMAL = Button(area={'cn': (604, 411, 646, 433), 'en': (568, 416, 638, 430), 'jp': (604, 411, 646, 433), 'tw': (604, 411, 646, 433)}, color={'cn': (169, 137, 118), 'en': (168, 138, 120), 'jp': (169, 137, 118), 'tw': (169, 137, 118)}, button={'cn': (604, 411, 646, 433), 'en': (568, 416, 638, 430), 'jp': (604, 411, 646, 433), 'tw': (604, 411, 646, 433)}, file={'cn': './assets/cn/coalition/ACADEMY_NORMAL.png', 'en': './assets/en/coalition/ACADEMY_NORMAL.png', 'jp': './assets/cn/coalition/ACADEMY_NORMAL.png', 'tw': './assets/cn/coalition/ACADEMY_NORMAL.png'}) +ACADEMY_EASY = Button(area={'cn': (201, 290, 243, 311), 'en': (186, 294, 229, 311), 'jp': (219, 289, 268, 312), 'tw': (201, 290, 243, 311)}, color={'cn': (172, 141, 121), 'en': (178, 153, 137), 'jp': (188, 161, 140), 'tw': (172, 141, 121)}, button={'cn': (201, 290, 243, 311), 'en': (186, 294, 229, 311), 'jp': (219, 289, 268, 312), 'tw': (201, 290, 243, 311)}, file={'cn': './assets/cn/coalition/ACADEMY_EASY.png', 'en': './assets/en/coalition/ACADEMY_EASY.png', 'jp': './assets/jp/coalition/ACADEMY_EASY.png', 'tw': './assets/cn/coalition/ACADEMY_EASY.png'}) +ACADEMY_EX = Button(area={'cn': (712, 178, 744, 196), 'en': (681, 179, 705, 193), 'jp': (708, 177, 747, 197), 'tw': (712, 178, 744, 196)}, color={'cn': (151, 200, 191), 'en': (177, 210, 200), 'jp': (120, 185, 177), 'tw': (151, 200, 191)}, button={'cn': (712, 178, 744, 196), 'en': (681, 179, 705, 193), 'jp': (708, 177, 747, 197), 'tw': (712, 178, 744, 196)}, file={'cn': './assets/cn/coalition/ACADEMY_EX.png', 'en': './assets/en/coalition/ACADEMY_EX.png', 'jp': './assets/jp/coalition/ACADEMY_EX.png', 'tw': './assets/cn/coalition/ACADEMY_EX.png'}) +ACADEMY_HARD = Button(area={'cn': (956, 503, 1000, 524), 'en': (947, 506, 992, 520), 'jp': (965, 502, 1033, 525), 'tw': (956, 503, 1000, 524)}, color={'cn': (169, 137, 118), 'en': (168, 136, 117), 'jp': (205, 182, 158), 'tw': (169, 137, 118)}, button={'cn': (956, 503, 1000, 524), 'en': (947, 506, 992, 520), 'jp': (965, 502, 1033, 525), 'tw': (956, 503, 1000, 524)}, file={'cn': './assets/cn/coalition/ACADEMY_HARD.png', 'en': './assets/en/coalition/ACADEMY_HARD.png', 'jp': './assets/jp/coalition/ACADEMY_HARD.png', 'tw': './assets/cn/coalition/ACADEMY_HARD.png'}) +ACADEMY_MODE_BATTLE = Button(area={'cn': (105, 654, 182, 675), 'en': (99, 656, 165, 672), 'jp': (144, 652, 192, 678), 'tw': (105, 654, 182, 675)}, color={'cn': (207, 169, 129), 'en': (207, 172, 137), 'jp': (205, 173, 152), 'tw': (207, 169, 129)}, button={'cn': (105, 654, 182, 675), 'en': (99, 656, 165, 672), 'jp': (144, 652, 192, 678), 'tw': (105, 654, 182, 675)}, file={'cn': './assets/cn/coalition/ACADEMY_MODE_BATTLE.png', 'en': './assets/en/coalition/ACADEMY_MODE_BATTLE.png', 'jp': './assets/jp/coalition/ACADEMY_MODE_BATTLE.png', 'tw': './assets/cn/coalition/ACADEMY_MODE_BATTLE.png'}) +ACADEMY_MODE_STORY = Button(area={'cn': (224, 654, 302, 675), 'en': (238, 655, 288, 673), 'jp': (220, 656, 272, 673), 'tw': (224, 654, 302, 675)}, color={'cn': (210, 175, 139), 'en': (212, 175, 129), 'jp': (214, 174, 112), 'tw': (210, 175, 139)}, button={'cn': (224, 654, 302, 675), 'en': (238, 655, 288, 673), 'jp': (220, 656, 272, 673), 'tw': (224, 654, 302, 675)}, file={'cn': './assets/cn/coalition/ACADEMY_MODE_STORY.png', 'en': './assets/en/coalition/ACADEMY_MODE_STORY.png', 'jp': './assets/jp/coalition/ACADEMY_MODE_STORY.png', 'tw': './assets/cn/coalition/ACADEMY_MODE_STORY.png'}) +ACADEMY_NORMAL = Button(area={'cn': (604, 411, 646, 433), 'en': (568, 416, 638, 430), 'jp': (623, 411, 669, 434), 'tw': (604, 411, 646, 433)}, color={'cn': (169, 137, 118), 'en': (168, 138, 120), 'jp': (181, 153, 133), 'tw': (169, 137, 118)}, button={'cn': (604, 411, 646, 433), 'en': (568, 416, 638, 430), 'jp': (623, 411, 669, 434), 'tw': (604, 411, 646, 433)}, file={'cn': './assets/cn/coalition/ACADEMY_NORMAL.png', 'en': './assets/en/coalition/ACADEMY_NORMAL.png', 'jp': './assets/jp/coalition/ACADEMY_NORMAL.png', 'tw': './assets/cn/coalition/ACADEMY_NORMAL.png'}) ACADEMY_PT_OCR = Button(area={'cn': (1125, 208, 1265, 225), 'en': (1125, 208, 1265, 225), 'jp': (1125, 208, 1265, 225), 'tw': (1125, 208, 1265, 225)}, color={'cn': (124, 105, 88), 'en': (124, 105, 88), 'jp': (124, 105, 88), 'tw': (124, 105, 88)}, button={'cn': (1125, 208, 1265, 225), 'en': (1125, 208, 1265, 225), 'jp': (1125, 208, 1265, 225), 'tw': (1125, 208, 1265, 225)}, file={'cn': './assets/cn/coalition/ACADEMY_PT_OCR.png', 'en': './assets/en/coalition/ACADEMY_PT_OCR.png', 'jp': './assets/jp/coalition/ACADEMY_PT_OCR.png', 'tw': './assets/tw/coalition/ACADEMY_PT_OCR.png'}) -ACADEMY_SP = Button(area={'cn': (333, 580, 362, 597), 'en': (339, 582, 363, 596), 'jp': (333, 580, 362, 597), 'tw': (333, 580, 362, 597)}, color={'cn': (176, 146, 126), 'en': (164, 131, 113), 'jp': (176, 146, 126), 'tw': (176, 146, 126)}, button={'cn': (333, 580, 362, 597), 'en': (339, 582, 363, 596), 'jp': (333, 580, 362, 597), 'tw': (333, 580, 362, 597)}, file={'cn': './assets/cn/coalition/ACADEMY_SP.png', 'en': './assets/en/coalition/ACADEMY_SP.png', 'jp': './assets/cn/coalition/ACADEMY_SP.png', 'tw': './assets/cn/coalition/ACADEMY_SP.png'}) -ACADEMY_SWITCH_MULTI = Button(area={'cn': (1088, 458, 1216, 486), 'en': (1089, 458, 1215, 486), 'jp': (1088, 458, 1216, 486), 'tw': (1088, 458, 1216, 486)}, color={'cn': (234, 184, 61), 'en': (200, 156, 54), 'jp': (234, 184, 61), 'tw': (234, 184, 61)}, button={'cn': (1088, 458, 1216, 486), 'en': (1089, 458, 1215, 486), 'jp': (1088, 458, 1216, 486), 'tw': (1088, 458, 1216, 486)}, file={'cn': './assets/cn/coalition/ACADEMY_SWITCH_MULTI.png', 'en': './assets/en/coalition/ACADEMY_SWITCH_MULTI.png', 'jp': './assets/cn/coalition/ACADEMY_SWITCH_MULTI.png', 'tw': './assets/cn/coalition/ACADEMY_SWITCH_MULTI.png'}) -ACADEMY_SWITCH_SINGLE = Button(area={'cn': (941, 458, 1070, 486), 'en': (941, 458, 1070, 486), 'jp': (941, 458, 1070, 486), 'tw': (941, 458, 1070, 486)}, color={'cn': (232, 182, 60), 'en': (202, 158, 54), 'jp': (232, 182, 60), 'tw': (232, 182, 60)}, button={'cn': (941, 458, 1070, 486), 'en': (941, 458, 1070, 486), 'jp': (941, 458, 1070, 486), 'tw': (941, 458, 1070, 486)}, file={'cn': './assets/cn/coalition/ACADEMY_SWITCH_SINGLE.png', 'en': './assets/en/coalition/ACADEMY_SWITCH_SINGLE.png', 'jp': './assets/cn/coalition/ACADEMY_SWITCH_SINGLE.png', 'tw': './assets/cn/coalition/ACADEMY_SWITCH_SINGLE.png'}) -ACEDEMY_FLEET_PREPARATION = Button(area={'cn': (1025, 537, 1132, 562), 'en': (1033, 538, 1125, 560), 'jp': (1025, 537, 1132, 562), 'tw': (1025, 537, 1132, 562)}, color={'cn': (106, 149, 226), 'en': (108, 151, 225), 'jp': (106, 149, 226), 'tw': (106, 149, 226)}, button={'cn': (1025, 537, 1132, 562), 'en': (1033, 538, 1125, 560), 'jp': (1025, 537, 1132, 562), 'tw': (1025, 537, 1132, 562)}, file={'cn': './assets/cn/coalition/ACEDEMY_FLEET_PREPARATION.png', 'en': './assets/en/coalition/ACEDEMY_FLEET_PREPARATION.png', 'jp': './assets/cn/coalition/ACEDEMY_FLEET_PREPARATION.png', 'tw': './assets/cn/coalition/ACEDEMY_FLEET_PREPARATION.png'}) +ACADEMY_SP = Button(area={'cn': (333, 580, 362, 597), 'en': (339, 582, 363, 596), 'jp': (366, 580, 398, 598), 'tw': (333, 580, 362, 597)}, color={'cn': (176, 146, 126), 'en': (164, 131, 113), 'jp': (194, 169, 147), 'tw': (176, 146, 126)}, button={'cn': (333, 580, 362, 597), 'en': (339, 582, 363, 596), 'jp': (366, 580, 398, 598), 'tw': (333, 580, 362, 597)}, file={'cn': './assets/cn/coalition/ACADEMY_SP.png', 'en': './assets/en/coalition/ACADEMY_SP.png', 'jp': './assets/jp/coalition/ACADEMY_SP.png', 'tw': './assets/cn/coalition/ACADEMY_SP.png'}) +ACADEMY_SWITCH_MULTI = Button(area={'cn': (1088, 458, 1216, 486), 'en': (1089, 458, 1215, 486), 'jp': (1115, 463, 1181, 482), 'tw': (1088, 458, 1216, 486)}, color={'cn': (234, 184, 61), 'en': (200, 156, 54), 'jp': (165, 124, 42), 'tw': (234, 184, 61)}, button={'cn': (1088, 458, 1216, 486), 'en': (1089, 458, 1215, 486), 'jp': (1115, 463, 1181, 482), 'tw': (1088, 458, 1216, 486)}, file={'cn': './assets/cn/coalition/ACADEMY_SWITCH_MULTI.png', 'en': './assets/en/coalition/ACADEMY_SWITCH_MULTI.png', 'jp': './assets/jp/coalition/ACADEMY_SWITCH_MULTI.png', 'tw': './assets/cn/coalition/ACADEMY_SWITCH_MULTI.png'}) +ACADEMY_SWITCH_SINGLE = Button(area={'cn': (941, 458, 1070, 486), 'en': (941, 458, 1070, 486), 'jp': (976, 464, 1042, 482), 'tw': (941, 458, 1070, 486)}, color={'cn': (232, 182, 60), 'en': (202, 158, 54), 'jp': (163, 123, 42), 'tw': (232, 182, 60)}, button={'cn': (941, 458, 1070, 486), 'en': (941, 458, 1070, 486), 'jp': (976, 464, 1042, 482), 'tw': (941, 458, 1070, 486)}, file={'cn': './assets/cn/coalition/ACADEMY_SWITCH_SINGLE.png', 'en': './assets/en/coalition/ACADEMY_SWITCH_SINGLE.png', 'jp': './assets/jp/coalition/ACADEMY_SWITCH_SINGLE.png', 'tw': './assets/cn/coalition/ACADEMY_SWITCH_SINGLE.png'}) +ACEDEMY_FLEET_PREPARATION = Button(area={'cn': (1025, 537, 1132, 562), 'en': (1033, 538, 1125, 560), 'jp': (1052, 537, 1103, 560), 'tw': (1025, 537, 1132, 562)}, color={'cn': (106, 149, 226), 'en': (108, 151, 225), 'jp': (144, 177, 231), 'tw': (106, 149, 226)}, button={'cn': (1025, 537, 1132, 562), 'en': (1033, 538, 1125, 560), 'jp': (1052, 537, 1103, 560), 'tw': (1025, 537, 1132, 562)}, file={'cn': './assets/cn/coalition/ACEDEMY_FLEET_PREPARATION.png', 'en': './assets/en/coalition/ACEDEMY_FLEET_PREPARATION.png', 'jp': './assets/jp/coalition/ACEDEMY_FLEET_PREPARATION.png', 'tw': './assets/cn/coalition/ACEDEMY_FLEET_PREPARATION.png'}) COALITION_ACADEMY_BACK = Button(area={'cn': (44, 48, 62, 74), 'en': (44, 48, 62, 74), 'jp': (44, 48, 62, 74), 'tw': (44, 48, 62, 74)}, color={'cn': (162, 188, 194), 'en': (162, 188, 194), 'jp': (162, 188, 194), 'tw': (162, 188, 194)}, button={'cn': (44, 48, 62, 74), 'en': (44, 48, 62, 74), 'jp': (44, 48, 62, 74), 'tw': (44, 48, 62, 74)}, file={'cn': './assets/cn/coalition/COALITION_ACADEMY_BACK.png', 'en': './assets/en/coalition/COALITION_ACADEMY_BACK.png', 'jp': './assets/jp/coalition/COALITION_ACADEMY_BACK.png', 'tw': './assets/tw/coalition/COALITION_ACADEMY_BACK.png'}) -COALITION_ACADEMY_CAMPAIGN_CHECK = Button(area={'cn': (131, 50, 168, 83), 'en': (123, 52, 176, 78), 'jp': (131, 50, 168, 83), 'tw': (131, 50, 168, 83)}, color={'cn': (165, 210, 212), 'en': (156, 197, 198), 'jp': (165, 210, 212), 'tw': (165, 210, 212)}, button={'cn': (131, 50, 168, 83), 'en': (123, 52, 176, 78), 'jp': (131, 50, 168, 83), 'tw': (131, 50, 168, 83)}, file={'cn': './assets/cn/coalition/COALITION_ACADEMY_CAMPAIGN_CHECK.png', 'en': './assets/en/coalition/COALITION_ACADEMY_CAMPAIGN_CHECK.png', 'jp': './assets/cn/coalition/COALITION_ACADEMY_CAMPAIGN_CHECK.png', 'tw': './assets/cn/coalition/COALITION_ACADEMY_CAMPAIGN_CHECK.png'}) +COALITION_ACADEMY_CAMPAIGN_CHECK = Button(area={'cn': (131, 50, 168, 83), 'en': (123, 52, 176, 78), 'jp': (126, 44, 171, 91), 'tw': (131, 50, 168, 83)}, color={'cn': (165, 210, 212), 'en': (156, 197, 198), 'jp': (164, 192, 192), 'tw': (165, 210, 212)}, button={'cn': (131, 50, 168, 83), 'en': (123, 52, 176, 78), 'jp': (126, 44, 171, 91), 'tw': (131, 50, 168, 83)}, file={'cn': './assets/cn/coalition/COALITION_ACADEMY_CAMPAIGN_CHECK.png', 'en': './assets/en/coalition/COALITION_ACADEMY_CAMPAIGN_CHECK.png', 'jp': './assets/jp/coalition/COALITION_ACADEMY_CAMPAIGN_CHECK.png', 'tw': './assets/cn/coalition/COALITION_ACADEMY_CAMPAIGN_CHECK.png'}) COALITION_ACADEMY_GOTO_CAMPAIGN = Button(area={'cn': (1123, 615, 1159, 651), 'en': (1123, 615, 1159, 651), 'jp': (1123, 615, 1159, 651), 'tw': (1123, 615, 1159, 651)}, color={'cn': (160, 134, 93), 'en': (160, 134, 93), 'jp': (160, 134, 93), 'tw': (160, 134, 93)}, button={'cn': (1123, 615, 1159, 651), 'en': (1123, 615, 1159, 651), 'jp': (1123, 615, 1159, 651), 'tw': (1123, 615, 1159, 651)}, file={'cn': './assets/cn/coalition/COALITION_ACADEMY_GOTO_CAMPAIGN.png', 'en': './assets/en/coalition/COALITION_ACADEMY_GOTO_CAMPAIGN.png', 'jp': './assets/jp/coalition/COALITION_ACADEMY_GOTO_CAMPAIGN.png', 'tw': './assets/tw/coalition/COALITION_ACADEMY_GOTO_CAMPAIGN.png'}) COALITION_ACADEMY_HOME = Button(area={'cn': (1221, 48, 1244, 73), 'en': (1221, 48, 1244, 73), 'jp': (1221, 48, 1244, 73), 'tw': (1221, 48, 1244, 73)}, color={'cn': (182, 197, 203), 'en': (182, 197, 203), 'jp': (182, 197, 203), 'tw': (182, 197, 203)}, button={'cn': (1221, 48, 1244, 73), 'en': (1221, 48, 1244, 73), 'jp': (1221, 48, 1244, 73), 'tw': (1221, 48, 1244, 73)}, file={'cn': './assets/cn/coalition/COALITION_ACADEMY_HOME.png', 'en': './assets/en/coalition/COALITION_ACADEMY_HOME.png', 'jp': './assets/jp/coalition/COALITION_ACADEMY_HOME.png', 'tw': './assets/tw/coalition/COALITION_ACADEMY_HOME.png'}) -COALITION_ACADEMY_MAIN_CHECK = Button(area={'cn': (132, 57, 163, 92), 'en': (164, 57, 221, 78), 'jp': (132, 57, 163, 92), 'tw': (132, 57, 163, 92)}, color={'cn': (143, 202, 205), 'en': (205, 189, 166), 'jp': (143, 202, 205), 'tw': (143, 202, 205)}, button={'cn': (132, 57, 163, 92), 'en': (164, 57, 221, 78), 'jp': (132, 57, 163, 92), 'tw': (132, 57, 163, 92)}, file={'cn': './assets/cn/coalition/COALITION_ACADEMY_MAIN_CHECK.png', 'en': './assets/en/coalition/COALITION_ACADEMY_MAIN_CHECK.png', 'jp': './assets/cn/coalition/COALITION_ACADEMY_MAIN_CHECK.png', 'tw': './assets/cn/coalition/COALITION_ACADEMY_MAIN_CHECK.png'}) +COALITION_ACADEMY_MAIN_CHECK = Button(area={'cn': (132, 57, 163, 92), 'en': (164, 57, 221, 78), 'jp': (112, 44, 145, 86), 'tw': (132, 57, 163, 92)}, color={'cn': (143, 202, 205), 'en': (205, 189, 166), 'jp': (142, 155, 153), 'tw': (143, 202, 205)}, button={'cn': (132, 57, 163, 92), 'en': (164, 57, 221, 78), 'jp': (112, 44, 145, 86), 'tw': (132, 57, 163, 92)}, file={'cn': './assets/cn/coalition/COALITION_ACADEMY_MAIN_CHECK.png', 'en': './assets/en/coalition/COALITION_ACADEMY_MAIN_CHECK.png', 'jp': './assets/jp/coalition/COALITION_ACADEMY_MAIN_CHECK.png', 'tw': './assets/cn/coalition/COALITION_ACADEMY_MAIN_CHECK.png'}) COALITION_REWARD_CONFIRM = Button(area={'cn': (814, 611, 877, 637), 'en': (788, 612, 902, 634), 'jp': (814, 611, 876, 637), 'tw': (814, 611, 877, 637)}, color={'cn': (155, 186, 227), 'en': (162, 189, 226), 'jp': (143, 176, 219), 'tw': (150, 181, 221)}, button={'cn': (814, 611, 877, 637), 'en': (788, 612, 902, 634), 'jp': (814, 611, 876, 637), 'tw': (814, 611, 877, 637)}, file={'cn': './assets/cn/coalition/COALITION_REWARD_CONFIRM.png', 'en': './assets/en/coalition/COALITION_REWARD_CONFIRM.png', 'jp': './assets/jp/coalition/COALITION_REWARD_CONFIRM.png', 'tw': './assets/tw/coalition/COALITION_REWARD_CONFIRM.png'}) FLEET_NOT_PREPARED = Button(area={'cn': (1008, 310, 1110, 334), 'en': (1008, 310, 1110, 334), 'jp': (1008, 310, 1110, 334), 'tw': (1008, 310, 1110, 334)}, color={'cn': (106, 106, 112), 'en': (106, 106, 112), 'jp': (106, 106, 112), 'tw': (108, 107, 112)}, button={'cn': (1008, 310, 1110, 334), 'en': (1008, 310, 1110, 334), 'jp': (1008, 310, 1110, 334), 'tw': (1008, 310, 1110, 334)}, file={'cn': './assets/cn/coalition/FLEET_NOT_PREPARED.png', 'en': './assets/cn/coalition/FLEET_NOT_PREPARED.png', 'jp': './assets/cn/coalition/FLEET_NOT_PREPARED.png', 'tw': './assets/tw/coalition/FLEET_NOT_PREPARED.png'}) FROSTFALL_EX = Button(area={'cn': (622, 372, 649, 384), 'en': (622, 372, 649, 384), 'jp': (622, 372, 649, 384), 'tw': (622, 372, 649, 384)}, color={'cn': (198, 152, 252), 'en': (198, 152, 252), 'jp': (198, 152, 252), 'tw': (182, 127, 252)}, button={'cn': (622, 372, 649, 384), 'en': (622, 372, 649, 384), 'jp': (622, 372, 649, 384), 'tw': (622, 372, 649, 384)}, file={'cn': './assets/cn/coalition/FROSTFALL_EX.png', 'en': './assets/en/coalition/FROSTFALL_EX.png', 'jp': './assets/jp/coalition/FROSTFALL_EX.png', 'tw': './assets/tw/coalition/FROSTFALL_EX.png'}) diff --git a/module/combat/combat.py b/module/combat/combat.py index ed13c5964..f19e884b3 100644 --- a/module/combat/combat.py +++ b/module/combat/combat.py @@ -15,7 +15,6 @@ from module.retire.retirement import Retirement from module.statistics.azurstats import DropImage from module.template.assets import TEMPLATE_COMBAT_LOADING from module.ui.assets import BACK_ARROW, MUNITIONS_CHECK -from module.ui.page import page_event class Combat(Level, HPBalancer, Retirement, SubmarineCall, CombatAuto, CombatManual, AutoSearchHandler): diff --git a/module/config/i18n/en-US.json b/module/config/i18n/en-US.json index 042799f1a..32276974d 100644 --- a/module/config/i18n/en-US.json +++ b/module/config/i18n/en-US.json @@ -2331,7 +2331,7 @@ "OpsiShop": { "_info": { "name": "OpSi Shop Settings", - "help": "Completes OpSi daily activities\nThe following must be satisfied:\n- OpSi story and practice battles must be complete\n- Task OpSi Explore enabled or consuming 5000 oil for special radar in OpSi voucher shop" + "help": "Completes OpSi daily activities\nThe following must be satisfied:\n- OpSi story and practice battles must be complete\n- Task OpSi Explore enabled or consuming 5000 oil for special radar in OpSi voucher shop\nAvailable only in the next month after clearing OpSi story, i.e., after the port shop becomes a new version of the shop" }, "PresetFilter": { "name": "OpSi Shop Filter", diff --git a/module/config/i18n/zh-CN.json b/module/config/i18n/zh-CN.json index eaa403bdc..31d417417 100644 --- a/module/config/i18n/zh-CN.json +++ b/module/config/i18n/zh-CN.json @@ -2331,7 +2331,7 @@ "OpsiShop": { "_info": { "name": "大世界商店", - "help": "使用此功能前必须满足以下条件:\n- 通关大世界主线并完成模拟战+塞壬试验场\n- 启用大世界开荒任务或使用战役信息记录仪(5000油道具)" + "help": "使用此功能前必须满足以下条件:\n- 通关大世界主线并完成模拟战+塞壬试验场\n- 启用大世界开荒任务或使用战役信息记录仪(5000油道具)\n- 通关大世界主线后的下一个月,即港口商店变为新版商店后才可使用" }, "PresetFilter": { "name": "港口商店过滤器", diff --git a/module/config/i18n/zh-TW.json b/module/config/i18n/zh-TW.json index aa3f17896..f88061c6e 100644 --- a/module/config/i18n/zh-TW.json +++ b/module/config/i18n/zh-TW.json @@ -2331,7 +2331,7 @@ "OpsiShop": { "_info": { "name": "大世界商店", - "help": "使用此功能前必須滿足以下條件:\n- 通關大世界主線任務+模擬戰\n- 開啟大世界開荒任務或使用戰役信息記錄儀(5000油道具)" + "help": "使用此功能前必須滿足以下條件:\n- 通關大世界主線任務+模擬戰\n- 開啟大世界開荒任務或使用戰役信息記錄儀(5000油道具)\n- 通關大世界主線後的下個月,也就是港口商店變成新版商店後才可使用" }, "PresetFilter": { "name": "港口商店過濾器", diff --git a/module/config/utils.py b/module/config/utils.py index 2a2aede89..1cf583025 100644 --- a/module/config/utils.py +++ b/module/config/utils.py @@ -67,44 +67,7 @@ def filepath_config(filename, mod_name='alas'): def filepath_code(): return './module/config/config_generated.py' -def show_function_call(): - """ - INFO 21:07:31.554 │ Function calls: - L1 - spawn.py L116 spawn_main() - spawn.py L129 _main() - process.py L314 _bootstrap() - process.py L108 run() - process_manager.py L149 run_process() - alas.py L285 loop() - alas.py L69 run() - src.py L55 rogue() - rogue.py L36 run() - rogue.py L18 rogue_once() - entry.py L335 rogue_world_enter() - path.py L193 rogue_path_select() - """ - import os - import traceback - stack = traceback.extract_stack() - func_list = [] - for row in stack: - filename, line_number, function_name, _ = row - filename = os.path.basename(filename) - # /tasks/character/switch.py:64 character_update() - func_list.append([filename, str(line_number), function_name]) - max_filename = max([len(row[0]) for row in func_list]) - max_linenum = max([len(row[1]) for row in func_list]) + 1 - def format_(file, line, func): - file = file.rjust(max_filename, " ") - line = f'L{line}'.rjust(max_linenum, " ") - if not func.startswith('<'): - func = f'{func}()' - return f'{file} {line} {func}' - - func_list = [f'\n{format_(*row)}' for row in func_list] - print('Function calls:' + ''.join(func_list)) def read_file(file): """ Read a file, support both .yaml and .json format. diff --git a/module/daemon/benchmark.py b/module/daemon/benchmark.py index e5c31c5d1..cc43a8aee 100644 --- a/module/daemon/benchmark.py +++ b/module/daemon/benchmark.py @@ -173,8 +173,8 @@ class Benchmark(DaemonBase, CampaignUI): def get_test_methods(self) -> t.Tuple[t.Tuple[str], t.Tuple[str]]: device = self.config.Benchmark_DeviceType # device == 'emulator' - screenshot = ['DroidCast_raw'] - click = ['ADB', 'uiautomator2', 'minitouch', 'MaaTouch'] + screenshot = ['ADB', 'ADB_nc', 'uiautomator2', 'aScreenCap', 'aScreenCap_nc', 'DroidCast', 'DroidCast_raw'] + click = ['ADB', 'uiautomator2', 'minitouch'] def remove(*args): return [l for l in screenshot if l not in args] @@ -205,8 +205,8 @@ class Benchmark(DaemonBase, CampaignUI): def run(self): self.config.override(Emulator_ScreenshotMethod='ADB') self.device.uninstall_minicap() - # self.ui_goto_campaign() - # self.campaign_set_chapter('7-2') + self.ui_goto_campaign() + self.campaign_set_chapter('7-2') logger.attr('DeviceType', self.config.Benchmark_DeviceType) logger.attr('TestScene', self.config.Benchmark_TestScene) diff --git a/module/daemon/daemon.py b/module/daemon/daemon.py index 70d1fd070..7bfc8531d 100644 --- a/module/daemon/daemon.py +++ b/module/daemon/daemon.py @@ -7,7 +7,6 @@ from module.map.map_operation import FLEET_PREPARATION, MAP_PREPARATION class AzurLaneDaemon(DaemonBase, CampaignBase): def run(self): - self.config.override(Emotion_Mode='ignore') while 1: self.device.screenshot() @@ -62,8 +61,6 @@ class AzurLaneDaemon(DaemonBase, CampaignBase): # End # No end condition, stop it manually. - if self.handle_popup_confirm(): - continue return True diff --git a/module/device/connection.py b/module/device/connection.py index 6c26d0edc..05f2c7e61 100644 --- a/module/device/connection.py +++ b/module/device/connection.py @@ -14,7 +14,6 @@ from adbutils.errors import AdbError from module.base.decorator import Config, cached_property, del_cached_property, run_once from module.base.utils import ensure_time -from module.config.config import AzurLaneConfig from module.config.server import VALID_CHANNEL_PACKAGE, VALID_PACKAGE, set_server from module.device.connection_attr import ConnectionAttr from module.device.method.utils import (PackageNotInstalled, RETRY_TRIES, get_serial_pair, handle_adb_error, @@ -1015,16 +1014,3 @@ class Connection(ConnectionAttr): f'Multiple AzurLane packages found, auto package detection cannot decide which to choose, ' 'please copy one of the available devices listed above to Alas.Emulator.PackageName') raise RequestHumanTakeover - - -if __name__ == '__main__': - cfg = AzurLaneConfig('alas') - cfg.override(Emulator_Serial='127.0.0.1:16416') - self = Connection(cfg) - with self.adb_client.open as c: - list_cmd = f"framebuffer:" - c.send_command(list_cmd) - c.check_okay() - - version = c.read_string_block() - print(version) \ No newline at end of file diff --git a/module/device/device.py b/module/device/device.py index b154130d3..b88589447 100644 --- a/module/device/device.py +++ b/module/device/device.py @@ -311,12 +311,3 @@ class Device(Screenshot, Control, AppControl): super().app_stop() self.stuck_record_clear() self.click_record_clear() -if __name__ == '__main__': - self = Device('alas') - # self.maatouch_uninstall() - # self.maatouch_install() - # self.click_maatouch(300, 300) - # self.click_maatouch(300, 300) - # self.drag_maatouch((800, 300), (300, 300)) - self.swipe_minitouch((300, 300), (800, 300)) - self.swipe_minitouch((800, 300), (300, 300)) diff --git a/module/device/method/droidcast.py b/module/device/method/droidcast.py index 228725419..eb15f4c1a 100644 --- a/module/device/method/droidcast.py +++ b/module/device/method/droidcast.py @@ -344,12 +344,3 @@ class DroidCast(Uiautomator2): for proc in self._iter_droidcast_proc(): logger.info(f'Kill pid={proc.pid}') self.adb_shell(['kill', '-s', 9, proc.pid]) - -if __name__ == '__main__': - self = DroidCast('alas') - # self.adb_shell(["rm", self.config.DROIDCAST_FILEPATH_REMOTE]) - # self.droidcast_stop() - for _ in range(5): - self.image = self.screenshot_droidcast_raw() - from PIL import Image - Image.fromarray(self.image).show() diff --git a/module/game_setting/setting_extractor.py b/module/game_setting/setting_extractor.py index 4bdc97377..02759b680 100644 --- a/module/game_setting/setting_extractor.py +++ b/module/game_setting/setting_extractor.py @@ -190,6 +190,6 @@ class SettingExtractor: if __name__ == '__main__': # Path to AzurLaneLuaScripts\CN - FOLDER = r'E:\ProgramData\Pycharm\AzurLaneLuaScripts\CN' + FOLDER = r'' ex = SettingExtractor() ex.generate(FOLDER) diff --git a/module/game_setting/setting_generated.py b/module/game_setting/setting_generated.py index 4372a5682..8df5b7f57 100644 --- a/module/game_setting/setting_generated.py +++ b/module/game_setting/setting_generated.py @@ -10,12 +10,6 @@ class GameSettingsGenerated: # PlayerPrefs.GetInt("autoBotIsAcitve" .. slot6, 0) autoBotIsAcitve = Field(formatter=int, default=0, regex='autoBotIsAcitve(.*)') - # /controller/command/stage/trackingcommand.lua - # PlayerPrefs.GetString("remaster_tip") - remaster_tip = Field(formatter=str, default='', regex='remaster_tip') - # PlayerPrefs.GetInt("chapter_autofight_flag_" .. uv0.id, 1) - chapter_autofight_flag = Field(formatter=int, default=1, regex='chapter_autofight_flag_(.*)') - # /gamecfg/activity/entrancedata.lua # PlayerPrefs.GetString("permanent_time", "") permanent_time = Field(formatter=str, default='', regex='permanent_time') @@ -100,10 +94,6 @@ class GameSettingsGenerated: # PlayerPrefs.GetInt(AUTOFIGHT_DOWN_FRAME, 0) pass # Unknown - # /mod/experiment/world/model/worldatlas.lua - # PlayerPrefs.GetInt(string.format("world_new_shop_unlock_count_in_port_%d_%d_%d", getProxy(PlayerProxy):getRawData().id, nowWorld().activateCount, slot1), -1) - world_new_shop_unlock_count_in_port__d__d__d = Field(formatter=int, default=0, regex='world_new_shop_unlock_count_in_port_%d_%d_%d') - # /mod/experiment/world/model/worldconst.lua # PlayerPrefs.GetInt("world_help_progress") world_help_progress = Field(formatter=int, default=0, regex='world_help_progress') @@ -133,14 +123,12 @@ class GameSettingsGenerated: auto_switch_mode = Field(formatter=int, default=0, regex='auto_switch_mode') # PlayerPrefs.GetString("auto_switch_difficult_safe", "only") auto_switch_difficult_safe = Field(formatter=str, default='only', regex='auto_switch_difficult_safe') - # PlayerPrefs.GetInt("auto_switch_mode", 0) - pass # Duplicate # PlayerPrefs.GetString("auto_switch_difficult_base", "all") auto_switch_difficult_base = Field(formatter=str, default='all', regex='auto_switch_difficult_base') - # PlayerPrefs.GetString("auto_switch_difficult_safe", "only") + + # /mod/experiment/world/view/wsmapright.lua + # PlayerPrefs.GetInt("world_skip_precombat", 0) pass # Duplicate - # PlayerPrefs.GetString("auto_switch_difficult_treasure", "all") - auto_switch_difficult_treasure = Field(formatter=str, default='all', regex='auto_switch_difficult_treasure') # /model/const/chapterconst.lua # PlayerPrefs.GetInt("chapter_skip_battle") @@ -233,10 +221,6 @@ class GameSettingsGenerated: SetScreenRatio = Field(formatter=float, default=0.0, regex='SetScreenRatio') # PlayerPrefs.GetInt("story_autoplay_flag", 0) story_autoplay_flag = Field(formatter=int, default=0, regex='story_autoplay_flag') - # PlayerPrefs.GetInt("ActBossTipLastTime", 0) - ActBossTipLastTime = Field(formatter=int, default=0, regex='ActBossTipLastTime') - # PlayerPrefs.GetInt("ActBossTip", 0) - ActBossTip = Field(formatter=int, default=0, regex='ActBossTip') # PlayerPrefs.GetInt("collection_Help", 0) collection_Help = Field(formatter=int, default=0, regex='collection_Help') # PlayerPrefs.GetInt("main_scene_word_toggle", 1) @@ -267,8 +251,6 @@ class GameSettingsGenerated: event_act_help1 = Field(formatter=int, default=0, regex='event_act_help1(.*)') # PlayerPrefs.GetInt("story_speed_flag" .. ((not getProxy(PlayerProxy) or getProxy(PlayerProxy):getRawData().id) and 1), 0) story_speed_flag = Field(formatter=int, default=0, regex='story_speed_flag(.*)') - # PlayerPrefs.GetInt("Painting_Download_Prefs", 0) - Painting_Download_Prefs = Field(formatter=int, default=0, regex='Painting_Download_Prefs') # PlayerPrefs.GetInt("tipLimitSkinShopTime_", 0) tipLimitSkinShopTime = Field(formatter=int, default=0, regex='tipLimitSkinShopTime_') # PlayerPrefs.GetString("_WorldBossProgressTipFlag_", slot1[1] .. "&" .. slot1[1] + slot1[2]) @@ -283,18 +265,6 @@ class GameSettingsGenerated: IsTipNewTheme = Field(formatter=int, default=0, regex='(.*)IsTipNewTheme(.*)') # PlayerPrefs.GetString(getProxy(PlayerProxy):getRawData().id .. "IsTipNewGenFurniture") IsTipNewGenFurniture = Field(formatter=str, default='', regex='(.*)IsTipNewGenFurniture') - # PlayerPrefs.GetString("RandomFlagShipList" .. slot1:getRawData().id, "") - RandomFlagShipList = Field(formatter=str, default='', regex='RandomFlagShipList(.*)') - # PlayerPrefs.GetInt("RandomFlagShipTime" .. getProxy(PlayerProxy):getRawData().id, 0) - RandomFlagShipTime = Field(formatter=int, default=0, regex='RandomFlagShipTime(.*)') - # PlayerPrefs.GetInt("AutoBotCOFlag" .. getProxy(PlayerProxy):getRawData().id, 0) - AutoBotCOFlag = Field(formatter=int, default=0, regex='AutoBotCOFlag(.*)') - # PlayerPrefs.GetInt("WorkbenchDailyTip" .. getProxy(PlayerProxy):getRawData().id, 0) - WorkbenchDailyTip = Field(formatter=int, default=0, regex='WorkbenchDailyTip(.*)') - # PlayerPrefs.GetInt(BATTLERESULT_SKIP_DISPAY_PAINTING) - pass # Unknown - # PlayerPrefs.GetInt(BATTLERESULT_DISPAY_PAINTING, 0) - pass # Unknown # /model/proxy/technologyproxy.lua # PlayerPrefs.GetInt("technology_version") @@ -323,13 +293,11 @@ class GameSettingsGenerated: # /model/vo/activity.lua # PlayerPrefs.GetInt("ACTIVITY_TYPE_EVENT_" .. slot0.id .. "_" .. getProxy(PlayerProxy):getData().id) ACTIVITY_TYPE_EVENT = Field(formatter=int, default=0, regex='ACTIVITY_TYPE_EVENT_(.*)_(.*)') - # PlayerPrefs.GetInt("DAY_TIP_" .. uv0.id .. "_" .. getProxy(PlayerProxy):getData().id .. "_" .. uv0:getDayIndex()) - DAY_TIP = Field(formatter=int, default=0, regex='DAY_TIP_(.*)_(.*)_(.*)') # /model/vo/chapter.lua # PlayerPrefs.GetInt("chapter_quickPlay_flag_" .. slot0.id, 0) chapter_quickPlay_flag = Field(formatter=int, default=0, regex='chapter_quickPlay_flag_(.*)') - # PlayerPrefs.GetInt(Chapter.GetSPOperationItemCacheKey(slot0.id), 0) + # PlayerPrefs.GetInt(uv0.GetChapterLastFleetCacheKey(slot0), 0) pass # Unknown # /model/vo/chapterfleet.lua @@ -345,10 +313,6 @@ class GameSettingsGenerated: paint_hide_other_obj = Field(formatter=int, default=0, regex='paint_hide_other_obj_(.*)') # PlayerPrefs.GetString("equipment_record" .. "_" .. slot1 .. "_" .. slot0.id) equipment_record = Field(formatter=str, default='', regex='equipment_record_(.*)_(.*)') - # PlayerPrefs.GetString("spweapon_record" .. "_" .. slot1 .. "_" .. slot0.id, "") - spweapon_record = Field(formatter=str, default='', regex='spweapon_record_(.*)_(.*)') - # PlayerPrefs.GetInt("SHIP_NAME_COLOR", PLATFORM_CODE == PLATFORM_CH and 1 or 0) - SHIP_NAME_COLOR = Field(formatter=int, default=0, regex='SHIP_NAME_COLOR') # /model/vo/guild/events/guildmission.lua # PlayerPrefs.GetInt("guild_mission_formation_tip" .. slot0.configId, 0) @@ -358,27 +322,17 @@ class GameSettingsGenerated: # PlayerPrefs.GetInt(slot0:prefKey()) pass # Unknown - # /model/vo/task/activitytask.lua - # PlayerPrefs.GetInt("ryza_task_" .. getProxy(PlayerProxy):getRawData().id .. "_" .. slot0.id) - ryza_task = Field(formatter=int, default=0, regex='ryza_task_(.*)_(.*)') - # PlayerPrefs.GetInt("ryza_task_" .. getProxy(PlayerProxy):getRawData().id .. "_" .. slot0.id) - pass # Duplicate - # /support/helpers/m02.lua # PlayerPrefs.GetInt("paint_hide_other_obj_" .. slot1, 0) pass # Duplicate # PlayerPrefs.GetInt("paint_hide_other_obj_" .. slot1, 0) pass # Duplicate - # PlayerPrefs.GetInt("paint_hide_other_obj_" .. slot1, 0) - pass # Duplicate # /support/utils/hxset.lua # PlayerPrefs.GetInt(uv0.codeModeKey) pass # Unknown - # PlayerPrefs.GetInt("localization_time_1_" .. getProxy(PlayerProxy):getData().id, 0) - localization_time_1 = Field(formatter=int, default=0, regex='localization_time_1_(.*)') - # PlayerPrefs.GetInt("localization_time_2_" .. slot2, 0) - localization_time_2 = Field(formatter=int, default=0, regex='localization_time_2_(.*)') + # PlayerPrefs.GetInt("localization_use", 0) + localization_use = Field(formatter=int, default=0, regex='localization_use') # /view/activity/activitymediator.lua # PlayerPrefs.GetString("permanent_time", "") @@ -400,33 +354,9 @@ class GameSettingsGenerated: # PlayerPrefs.GetInt(string.format("cursing_%d_task_week_%d", slot0.activity.id, slot5), 0) cursing__d_task_week__d = Field(formatter=int, default=0, regex='cursing_%d_task_week_%d') - # /view/activity/ryzataskscene.lua - # PlayerPrefs.GetInt("ryza_task_help_" .. getProxy(PlayerProxy):getRawData().id) - ryza_task_help = Field(formatter=int, default=0, regex='ryza_task_help_(.*)') - - # /view/activity/atelier/atelierbufflayer.lua - # PlayerPrefs.GetInt("first_enter_ryza_buff_" .. getProxy(PlayerProxy):getRawData().id, 0) - first_enter_ryza_buff = Field(formatter=int, default=0, regex='first_enter_ryza_buff_(.*)') - - # /view/activity/atelier/ateliercompositescene.lua - # PlayerPrefs.GetInt("first_enter_ryza_atelier_" .. getProxy(PlayerProxy):getRawData().id, 0) - first_enter_ryza_atelier = Field(formatter=int, default=0, regex='first_enter_ryza_atelier_(.*)') - - # /view/activity/backhills/anniversaryisland2023/anniversaryislandcomposite2023scene.lua - # PlayerPrefs.GetInt("workbench_show_composite_avaliable", 0) - workbench_show_composite_avaliable = Field(formatter=int, default=0, regex='workbench_show_composite_avaliable') - - # /view/activity/backhills/anniversaryisland2023/anniversaryislandhotspringscene.lua - # PlayerPrefs.GetString("hotspring_ship_pos_2023", "") - hotspring_ship_pos_2023 = Field(formatter=str, default='', regex='hotspring_ship_pos_2023') - - # /view/activity/backhills/newyearfestival/newyearhotspringscene.lua - # PlayerPrefs.GetString("hotspring_ship_pos", "") - hotspring_ship_pos = Field(formatter=str, default='', regex='hotspring_ship_pos') - - # /view/activity/backhills/springfestival2023/fireworkpanellayer.lua - # PlayerPrefs.GetInt("fireworks_" .. slot0.playerId .. "_pos_" .. slot5) - fireworks = Field(formatter=int, default=0, regex='fireworks_(.*)_pos_(.*)') + # /view/activity/refluxmediator.lua + # PlayerPrefs.GetInt(slot6.id .. "_" .. slot2.data2) + pass # Unknown # /view/activity/banaiactivity/blackwhitegridlayer.lua # PlayerPrefs.GetString("BlackWhiteGridMapData-" .. slot1.id .. "-" .. slot0.player.id, "") @@ -434,10 +364,6 @@ class GameSettingsGenerated: # PlayerPrefs.GetInt("BlackWhiteGridMapIndex-" .. slot0.player.id, 1) BlackWhiteGridMapIndex = Field(formatter=int, default=1, regex='BlackWhiteGridMapIndex-(.*)') - # /view/activity/bossrush/bossrushfleetselectmediator.lua - # PlayerPrefs.GetInt("series_mode_flag" .. slot1.id, -1) - series_mode_flag = Field(formatter=int, default=-1, regex='series_mode_flag(.*)') - # /view/activity/decodegame/game/decodegameview.lua # PlayerPrefs.GetInt("DecodeGameHelpBg" .. getProxy(PlayerProxy):getRawData().id .. slot1, 0) DecodeGameHelpBg = Field(formatter=int, default=0, regex='DecodeGameHelpBg(.*)(.*)') @@ -462,10 +388,6 @@ class GameSettingsGenerated: # PlayerPrefs.GetInt("SuperBurinPopUp_" .. getProxy(PlayerProxy):getRawData().id, 0) SuperBurinPopUp = Field(formatter=int, default=0, regex='SuperBurinPopUp_(.*)') - # /view/activity/subpages/cardpuzzlepage.lua - # PlayerPrefs.GetInt("DAY_TIP_" .. slot0.activity.id .. "_" .. getProxy(PlayerProxy):getData().id .. "_" .. slot0.activity:getDayIndex()) - pass # Duplicate - # /view/activity/subpages/collectioneventptpage.lua # PlayerPrefs.GetInt("ACTIVITY_TYPE_EVENT_" .. slot0.activity.id .. "_" .. getProxy(PlayerProxy):getData().id) pass # Duplicate @@ -506,10 +428,6 @@ class GameSettingsGenerated: # PlayerPrefs.GetInt("wwf_todo_task_num_" .. getProxy(PlayerProxy):getData().id) pass # Duplicate - # /view/activity/worldboss/activitybosstotalrewardpanel.lua - # PlayerPrefs.GetInt(AUTO_BATTLE_LABEL, 0) - pass # Unknown - # /view/activity/worldinpicture/worldinpicturescene.lua # PlayerPrefs.GetString("WorldInPictureScene_1" .. getProxy(PlayerProxy):getRawData().id, "0#0") WorldInPictureScene_1 = Field(formatter=str, default='0#0', regex='WorldInPictureScene_1(.*)') @@ -539,18 +457,12 @@ class GameSettingsGenerated: chapter_submarine_ai_type = Field(formatter=int, default=0, regex='chapter_submarine_ai_type_(.*)') # /view/battle/levelscene.lua - # PlayerPrefs.GetInt("ex_mapId", 0) + # PlayerPrefs.GetInt("ex_mapId") ex_mapId = Field(formatter=int, default=0, regex='ex_mapId') - # PlayerPrefs.GetInt("first_enter_ryza_buff_" .. getProxy(PlayerProxy):getRawData().id, 0) - pass # Duplicate - - # /view/battle/battleresult/pages/newbattleresultdisplayawardpage.lua - # PlayerPrefs.GetInt(DISPLAY_SHIP_GET_EFFECT) - pass # Unknown - - # /view/battle/battleresult/util/newbattleresultdataextender.lua - # PlayerPrefs.GetInt(AUTO_BATTLE_LABEL, 0) - pass # Unknown + # PlayerPrefs.GetString("remaster_tip") + remaster_tip = Field(formatter=str, default='', regex='remaster_tip') + # PlayerPrefs.GetInt("chapter_autofight_flag_" .. uv2.id, 1) + chapter_autofight_flag = Field(formatter=int, default=1, regex='chapter_autofight_flag_(.*)') # /view/collection/galleryconst.lua # PlayerPrefs.GetInt(uv0.Set_BG_Func_Save_Tag .. getProxy(PlayerProxy):getRawData().id) @@ -572,16 +484,12 @@ class GameSettingsGenerated: # PlayerPrefs.GetInt("Tec_Ship_Gift_Enter_Tag", 0) Tec_Ship_Gift_Enter_Tag = Field(formatter=int, default=0, regex='Tec_Ship_Gift_Enter_Tag') - # /view/level/levelcontinuousoperationtotalrewardpanel.lua - # PlayerPrefs.GetInt("autoFight_firstUse_sp", 0) - autoFight_firstUse_sp = Field(formatter=int, default=0, regex='autoFight_firstUse_sp') - # /view/level/levelfleetview.lua # PlayerPrefs.GetInt("autoFight_firstUse_sp", 0) - pass # Duplicate + autoFight_firstUse_sp = Field(formatter=int, default=0, regex='autoFight_firstUse_sp') # PlayerPrefs.GetInt(uv0, 1) pass # Unknown - # PlayerPrefs.GetInt(uv1, 1) + # PlayerPrefs.GetInt(uv0, 1) pass # Unknown # PlayerPrefs.GetInt("lastFleetDuty_" .. (slot0.chapter.id or 0), 0) lastFleetDuty = Field(formatter=int, default=0, regex='lastFleetDuty_(.*)') @@ -595,13 +503,15 @@ class GameSettingsGenerated: pass # Unknown # PlayerPrefs.GetInt(uv0, 1) pass # Unknown + # PlayerPrefs.GetInt(Chapter.GetSPOperationItemCacheKey(slot0.chapter.id), 0) + pass # Unknown # /view/level/levelinfoview.lua # PlayerPrefs.GetInt("chapter_loop_flag_" .. slot1.id, -1) chapter_loop_flag = Field(formatter=int, default=-1, regex='chapter_loop_flag_(.*)') # PlayerPrefs.GetInt("chapter_autofight_flag_" .. slot1.id, 1) pass # Duplicate - # PlayerPrefs.GetInt("chapter_quickPlay_flag_" .. slot1.id, 1) + # PlayerPrefs.GetInt("chapter_quickPlay_flag_" .. slot1.id, 0) pass # Duplicate # /view/level/leveloperationitempanel.lua @@ -624,40 +534,18 @@ class GameSettingsGenerated: # PlayerPrefs.GetInt("help_displayed_on_" .. uv1.id, 0) help_displayed_on = Field(formatter=int, default=0, regex='help_displayed_on_(.*)') - # /view/limitchallenge/limitchallengeconst.lua - # PlayerPrefs.GetInt(uv0.RedPointKey, 0) - pass # Unknown - # /view/login/loginscene.lua # PlayerPrefs.GetString("op_ver", "") op_ver = Field(formatter=str, default='', regex='op_ver') - # /view/main/mailmediator.lua - # PlayerPrefs.GetInt("help_research_package", 0) - help_research_package = Field(formatter=int, default=0, regex='help_research_package') - # /view/main/trainingcampscene.lua # PlayerPrefs.GetInt("TrainCamp_Tec_Catchup_First_Tag", 0) TrainCamp_Tec_Catchup_First_Tag = Field(formatter=int, default=0, regex='TrainCamp_Tec_Catchup_First_Tag') - # /view/main/skinshop/skinshopscene.lua - # PlayerPrefs.GetInt("skinShop#l2dPreViewToggle" .. getProxy(PlayerProxy):getRawData().id, 0) - skinShop#l2dPreViewToggle = Field(formatter=int, default=0, regex='skinShop#l2dPreViewToggle(.*)') - - # /view/mediacollection/worldmediacollectionmemorygrouplayer.lua - # PlayerPrefs.GetInt("MEMORY_GROUP_NOTIFICATION" .. getProxy(PlayerProxy):getRawData().id .. " " .. slot3.id, 0) - pass # Duplicate - # PlayerPrefs.GetInt("MEMORY_GROUP_NOTIFICATION" .. slot2 .. " " .. slot7.id, 0) - pass # Duplicate - # /view/minigame/gameview/decodeminigameview.lua # PlayerPrefs.GetInt("DecodeGameMapId", 1) DecodeGameMapId = Field(formatter=int, default=1, regex='DecodeGameMapId') - # /view/minigame/gameview/gameroomqteview.lua - # PlayerPrefs.GetInt("QTEGameGuide", 0) - QTEGameGuide = Field(formatter=int, default=0, regex='QTEGameGuide') - # /view/minigame/gameview/musicgameview.lua # PlayerPrefs.GetInt("musicgame_first_" .. getProxy(PlayerProxy):getData().id) musicgame_first = Field(formatter=int, default=0, regex='musicgame_first_(.*)') @@ -666,11 +554,7 @@ class GameSettingsGenerated: # /view/minigame/gameview/qtegameview.lua # PlayerPrefs.GetInt("QTEGameGuide", 0) - pass # Duplicate - - # /view/minigame/gameview/ryzaminigameview.lua - # PlayerPrefs.GetInt("ryza_minigame_help", 0) - ryza_minigame_help = Field(formatter=int, default=0, regex='ryza_minigame_help') + QTEGameGuide = Field(formatter=int, default=0, regex='QTEGameGuide') # /view/minigame/gameview/volleyballgameview.lua # PlayerPrefs.GetInt("volleyballgame_first_" .. getProxy(PlayerProxy):getData().id) @@ -694,12 +578,6 @@ class GameSettingsGenerated: # PlayerPrefs.GetInt("ItemIconChange_" .. slot2.equipID, 0) ItemIconChange = Field(formatter=int, default=0, regex='ItemIconChange_(.*)') - # /view/newmain/sequence/mainguidesequence.lua - # PlayerPrefs.GetInt("ryza_task_help_" .. getProxy(PlayerProxy):getRawData().id, 0) - pass # Duplicate - # PlayerPrefs.GetInt("first_enter_ryza_atelier_" .. getProxy(PlayerProxy):getRawData().id, 0) - pass # Duplicate - # /view/newmain/view/mainchatroomview.lua # PlayerPrefs.GetInt(HIDE_CHAT_FLAG) pass # Unknown @@ -712,14 +590,6 @@ class GameSettingsGenerated: # PlayerPrefs.GetInt("paint_hide_other_obj_" .. slot0.painting.paintingName, 0) pass # Duplicate - # /view/reflux/refluxscene.lua - # PlayerPrefs.GetInt(getProxy(PlayerProxy):getRawData().id .. "_" .. getProxy(RefluxProxy).returnTimestamp, 0) - pass # Unknown - - # /view/reflux/refluxshopview.lua - # PlayerPrefs.GetInt("RefluxShop_Enter_Day", 0) - RefluxShop_Enter_Day = Field(formatter=int, default=0, regex='RefluxShop_Enter_Day') - # /view/setting/newsettingsscene.lua # PlayerPrefs.GetFloat("firstIntoOtherPanel") pass # Duplicate @@ -824,10 +694,6 @@ class GameSettingsGenerated: # PlayerPrefs.GetInt("newserver_shop_first_" .. slot0.playerId) pass # Duplicate - # /view/shops/skinshop/views/newskinshopmainview.lua - # PlayerPrefs.GetInt("skinShop#l2dPreViewToggle" .. getProxy(PlayerProxy):getRawData().id, 0) - pass # Duplicate - # /view/snapshot/snapshotscene.lua # PlayerPrefs.GetInt("hadShowForVideoTip") hadShowForVideoTip = Field(formatter=int, default=0, regex='hadShowForVideoTip') @@ -838,10 +704,6 @@ class GameSettingsGenerated: # PlayerPrefs.GetInt("snapshotAgress") snapshotAgress = Field(formatter=int, default=0, regex='snapshotAgress') - # /view/technology/selecttechnologymediator.lua - # PlayerPrefs.GetString("technology_day_mark", "") - technology_day_mark = Field(formatter=str, default='', regex='technology_day_mark') - # /view/technology/technologysettingslayer.lua # PlayerPrefs.GetInt("isShowFinishCatchupVersion") isShowFinishCatchupVersion = Field(formatter=int, default=0, regex='isShowFinishCatchupVersion') @@ -853,12 +715,6 @@ class GameSettingsGenerated: pass # Duplicate # PlayerPrefs.GetInt("world_sub_call_line", 0) pass # Duplicate - # PlayerPrefs.GetInt("world_skip_precombat", 0) - pass # Duplicate - # PlayerPrefs.GetInt("auto_switch_mode", 0) - pass # Duplicate - # PlayerPrefs.GetInt("auto_switch_mode", 0) - pass # Duplicate # PlayerPrefs.GetInt("auto_switch_mode", 0) pass # Duplicate @@ -871,7 +727,11 @@ class GameSettingsGenerated: auto_switch_wait_2 = Field(formatter=int, default=0, regex='auto_switch_wait_2') # PlayerPrefs.GetInt("auto_switch_mode", 0) pass # Duplicate - # PlayerPrefs.GetString(slot4, slot5) - pass # Unknown - # PlayerPrefs.GetString(slot4, slot5) + # PlayerPrefs.GetString(slot6, slot7) pass # Unknown + + # /view/world/worldmediacollection/worldmediacollectionmemorygrouplayer.lua + # PlayerPrefs.GetInt("MEMORY_GROUP_NOTIFICATION" .. getProxy(PlayerProxy):getRawData().id .. " " .. slot3.id, 0) + pass # Duplicate + # PlayerPrefs.GetInt("MEMORY_GROUP_NOTIFICATION" .. slot2 .. " " .. slot7.id, 0) + pass # Duplicate diff --git a/module/handler/assets.py b/module/handler/assets.py index b1509788c..a7b7af1dd 100644 --- a/module/handler/assets.py +++ b/module/handler/assets.py @@ -73,7 +73,7 @@ MAP_WALK_OUT_OF_STEP = Button(area={'cn': (654, 312, 704, 335), 'en': (454, 314, MAP_WALK_SPEEDUP = Button(area={'cn': (1025, 406, 1055, 436), 'en': (1025, 406, 1055, 436), 'jp': (1025, 406, 1055, 436), 'tw': (1025, 406, 1055, 436)}, color={'cn': (62, 97, 72), 'en': (62, 97, 72), 'jp': (62, 97, 72), 'tw': (62, 97, 72)}, button={'cn': (1025, 406, 1055, 436), 'en': (1025, 406, 1055, 436), 'jp': (1025, 406, 1055, 436), 'tw': (1025, 406, 1055, 436)}, file={'cn': './assets/cn/handler/MAP_WALK_SPEEDUP.png', 'en': './assets/en/handler/MAP_WALK_SPEEDUP.png', 'jp': './assets/jp/handler/MAP_WALK_SPEEDUP.png', 'tw': './assets/tw/handler/MAP_WALK_SPEEDUP.png'}) MISSION_POPUP_ACK = Button(area={'cn': (432, 493, 543, 533), 'en': (413, 489, 566, 532), 'jp': (410, 482, 574, 539), 'tw': (413, 489, 566, 532)}, color={'cn': (181, 182, 184), 'en': (169, 170, 172), 'jp': (162, 164, 167), 'tw': (169, 170, 172)}, button={'cn': (432, 493, 543, 533), 'en': (413, 489, 566, 532), 'jp': (410, 482, 574, 539), 'tw': (413, 489, 566, 532)}, file={'cn': './assets/cn/handler/MISSION_POPUP_ACK.png', 'en': './assets/en/handler/MISSION_POPUP_ACK.png', 'jp': './assets/jp/handler/MISSION_POPUP_ACK.png', 'tw': './assets/tw/handler/MISSION_POPUP_ACK.png'}) MISSION_POPUP_GO = Button(area={'cn': (719, 493, 861, 534), 'en': (716, 488, 869, 533), 'jp': (711, 482, 874, 539), 'tw': (716, 488, 869, 533)}, color={'cn': (125, 164, 214), 'en': (89, 138, 201), 'jp': (93, 142, 204), 'tw': (89, 138, 201)}, button={'cn': (719, 493, 861, 534), 'en': (716, 488, 869, 533), 'jp': (711, 482, 874, 539), 'tw': (716, 488, 869, 533)}, file={'cn': './assets/cn/handler/MISSION_POPUP_GO.png', 'en': './assets/en/handler/MISSION_POPUP_GO.png', 'jp': './assets/jp/handler/MISSION_POPUP_GO.png', 'tw': './assets/tw/handler/MISSION_POPUP_GO.png'}) -MOB_MOVE_CANCEL = Button(area={'cn': (1162, 646, 1220, 674), 'en': (1162, 646, 1220, 674), 'jp': (1162, 644, 1222, 675), 'tw': (1164, 647, 1219, 673)}, color={'cn': (224, 176, 173), 'en': (224, 176, 173), 'jp': (207, 140, 136), 'tw': (230, 185, 181)}, button={'cn': (1162, 646, 1220, 674), 'en': (1162, 646, 1220, 674), 'jp': (1162, 644, 1222, 675), 'tw': (1164, 647, 1219, 673)}, file={'cn': './assets/cn/handler/MOB_MOVE_CANCEL.png', 'en': './assets/cn/handler/MOB_MOVE_CANCEL.png', 'jp': './assets/jp/handler/MOB_MOVE_CANCEL.png', 'tw': './assets/tw/handler/MOB_MOVE_CANCEL.png'}) +MOB_MOVE_CANCEL = Button(area={'cn': (1162, 646, 1220, 674), 'en': (1112, 646, 1211, 669), 'jp': (1162, 644, 1222, 675), 'tw': (1164, 647, 1219, 673)}, color={'cn': (224, 176, 173), 'en': (215, 169, 166), 'jp': (207, 140, 136), 'tw': (230, 185, 181)}, button={'cn': (1162, 646, 1220, 674), 'en': (1112, 646, 1211, 669), 'jp': (1162, 644, 1222, 675), 'tw': (1164, 647, 1219, 673)}, file={'cn': './assets/cn/handler/MOB_MOVE_CANCEL.png', 'en': './assets/en/handler/MOB_MOVE_CANCEL.png', 'jp': './assets/jp/handler/MOB_MOVE_CANCEL.png', 'tw': './assets/tw/handler/MOB_MOVE_CANCEL.png'}) MOB_MOVE_ENTER = Button(area={'cn': (1102, 504, 1157, 578), 'en': (1102, 504, 1157, 578), 'jp': (1102, 504, 1157, 578), 'tw': (1102, 504, 1157, 578)}, color={'cn': (122, 124, 131), 'en': (122, 124, 131), 'jp': (122, 124, 131), 'tw': (122, 124, 131)}, button={'cn': (1102, 504, 1157, 578), 'en': (1102, 504, 1157, 578), 'jp': (1102, 504, 1157, 578), 'tw': (1102, 504, 1157, 578)}, file={'cn': './assets/cn/handler/MOB_MOVE_ENTER.png', 'en': './assets/en/handler/MOB_MOVE_ENTER.png', 'jp': './assets/jp/handler/MOB_MOVE_ENTER.png', 'tw': './assets/tw/handler/MOB_MOVE_ENTER.png'}) MONTHLY_PASS_NOTICE = Button(area={'cn': (554, 505, 726, 561), 'en': (716, 488, 869, 533), 'jp': (554, 505, 726, 561), 'tw': (554, 505, 726, 561)}, color={'cn': (109, 153, 208), 'en': (89, 138, 201), 'jp': (109, 153, 208), 'tw': (109, 153, 208)}, button={'cn': (872, 152, 939, 196), 'en': (863, 173, 929, 217), 'jp': (872, 152, 939, 196), 'tw': (872, 152, 939, 196)}, file={'cn': './assets/cn/handler/MONTHLY_PASS_NOTICE.png', 'en': './assets/en/handler/MONTHLY_PASS_NOTICE.png', 'jp': './assets/cn/handler/MONTHLY_PASS_NOTICE.png', 'tw': './assets/cn/handler/MONTHLY_PASS_NOTICE.png'}) MYSTERY_ITEM = Button(area={'cn': (589, 294, 691, 427), 'en': (589, 294, 691, 427), 'jp': (589, 294, 691, 427), 'tw': (589, 294, 691, 427)}, color={'cn': (144, 127, 83), 'en': (144, 127, 83), 'jp': (144, 127, 83), 'tw': (144, 127, 83)}, button={'cn': (588, 478, 698, 496), 'en': (588, 478, 698, 496), 'jp': (588, 478, 698, 496), 'tw': (588, 478, 698, 496)}, file={'cn': './assets/cn/handler/MYSTERY_ITEM.png', 'en': './assets/en/handler/MYSTERY_ITEM.png', 'jp': './assets/jp/handler/MYSTERY_ITEM.png', 'tw': './assets/tw/handler/MYSTERY_ITEM.png'}) diff --git a/module/os/operation_siren.py b/module/os/operation_siren.py index 4b33e98dd..71ad1d866 100644 --- a/module/os/operation_siren.py +++ b/module/os/operation_siren.py @@ -15,8 +15,8 @@ from module.os.globe_operation import OSExploreError from module.os.map import OSMap from module.os_handler.action_point import OCR_OS_ADAPTABILITY, ActionPointLimit from module.os_handler.assets import OS_MONTHBOSS_NORMAL, OS_MONTHBOSS_HARD, EXCHANGE_CHECK, EXCHANGE_ENTER +from module.os_shop.assets import OS_SHOP_CHECK from module.shop.shop_voucher import VoucherShop -from module.base.decorator import Config class OperationSiren(OSMap): @@ -245,13 +245,23 @@ class OperationSiren(OSMap): logger.hr('OS port daily', level=1) if not self.zone.is_azur_port: self.globe_goto(self.zone_nearest_azur_port(self.zone)) + self.port_enter() - not_empty = self.port_supply_buy() + self.port_shop_enter() + + if self.appear(OS_SHOP_CHECK): + not_empty = self.handle_port_supply_buy() + next_reset = self._os_shop_delay(not_empty) + logger.info('OS port daily finished, delay to next reset') + logger.attr('OpsiShopNextReset', next_reset) + else: + next_reset = get_os_next_reset() + logger.warning('There is no shop in the port, skip to the next month.') + logger.attr('OpsiShopNextReset', next_reset) + + self.port_shop_quit() self.port_quit() - next_reset = self._os_shop_delay(not_empty) - logger.info('OS port daily finished, delay to next reset') - logger.attr('OpsiShopNextReset', next_reset) self.config.task_delay(target=next_reset) self.config.task_stop() @@ -875,7 +885,7 @@ class OperationSiren(OSMap): if __name__ == '__main__': - self = OperationSiren('alas', task='OpsiExplore') + self = OperationSiren('month_test', task='OpsiMonthBoss') from module.os.config import OSConfig self.config = self.config.merge(OSConfig()) @@ -883,5 +893,5 @@ if __name__ == '__main__': self.device.screenshot() self.os_init() - # logger.hr("OS clear Month Boss", level=1) - self.os_shop() + logger.hr("OS clear Month Boss", level=1) + self.clear_month_boss() diff --git a/module/os_handler/port.py b/module/os_handler/port.py index 148c63cb5..ff5448ac8 100644 --- a/module/os_handler/port.py +++ b/module/os_handler/port.py @@ -79,17 +79,11 @@ class PortHandler(OSShop): self.ui_back(appear_button=PORT_MISSION_CHECK, check_button=PORT_CHECK, skip_first_screenshot=True) return success - def port_supply_buy(self): + def port_shop_enter(self): """ - Buy supply in port. - - Returns: - bool: True if success to buy any or no items found. - False if not enough coins to buy any. - Pages: in: PORT_CHECK - out: PORT_CHECK + out: PORT_SUPPLY_CHECK """ self.ui_click(PORT_GOTO_SUPPLY, appear_button=PORT_CHECK, check_button=PORT_SUPPLY_CHECK, skip_first_screenshot=True) @@ -97,10 +91,13 @@ class PortHandler(OSShop): self.device.sleep(0.5) self.device.screenshot() - success = self.handle_port_supply_buy() - + def port_shop_quit(self): + """ + Pages: + in: PORT_SUPPLY_CHECK + out: PORT_CHECK + """ self.ui_back(appear_button=PORT_SUPPLY_CHECK, check_button=PORT_CHECK, skip_first_screenshot=True) - return success def port_dock_repair(self): """ diff --git a/module/os_shop/ui.py b/module/os_shop/ui.py index b13c39c16..9716177b8 100644 --- a/module/os_shop/ui.py +++ b/module/os_shop/ui.py @@ -3,8 +3,8 @@ from module.base.button import ButtonGrid from module.base.decorator import cached_property from module.base.timer import Timer from module.base.utils import random_rectangle_vector -from module.exception import ScriptError -from module.os_shop.assets import OS_SHOP_SAFE_AREA, OS_SHOP_SCROLL_AREA, PORT_SUPPLY_CHECK +from module.exception import GameStuckError +from module.os_shop.assets import OS_SHOP_CHECK, OS_SHOP_SAFE_AREA, OS_SHOP_SCROLL_AREA from module.logger import logger from module.ui.navbar import Navbar from module.ui.scroll import AdaptiveScroll @@ -42,13 +42,14 @@ class OSShopUI(UI): self.device.screenshot() # End - if self.appear(PORT_SUPPLY_CHECK): + if self.appear(OS_SHOP_CHECK): return True + else: + logger.warning('OpsiShop is not appear, retrying.') # Exception if ensure_timeout.reached(): - logger.warning('Wait for loaded assets is incomplete, ensure not guaranteed') - return False + raise GameStuckError('Waiting too long for OpsiShop to appear.') @cached_property def _os_shop_side_navbar(self): @@ -94,14 +95,9 @@ class OSShopUI(UI): in: PORT_SUPPLY_CHECK out: PORT_SUPPLY_CHECK """ - retry = Timer(0, count=3) - retry.start() - while self._os_shop_side_navbar.get_active(main=self) + 1 not in [upper, bottom]: - logger.info(f'OS shop side navbar set to {upper or bottom}, setting') - self._os_shop_side_navbar.set(self, upper=upper, bottom=bottom) - self.os_shop_load_ensure() - if retry.reached(): - raise ScriptError('Side navbar set error.') + logger.info(f'OpsiShop side navbar set to {upper or bottom}') + self.os_shop_load_ensure() + self._os_shop_side_navbar.set(self, upper=upper, bottom=bottom) def init_slider(self) -> Tuple[float, float]: """Initialize the slider @@ -110,7 +106,7 @@ class OSShopUI(UI): Tuple[float, float]: (pre_pos, cur_pos) """ if not OS_SHOP_SCROLL.appear(main=self): - logger.warning('ScriptError, Scroll does not appear, try to rescue slider') + logger.warning('Scroll does not appear, try to rescue slider') self.rescue_slider() retry = Timer(0, count=3) retry.start() @@ -118,7 +114,7 @@ class OSShopUI(UI): logger.info('Scroll does not at top, try to scroll') OS_SHOP_SCROLL.set_top(main=self) if retry.reached(): - raise ScriptError('Scroll drag page error.') + raise GameStuckError('Scroll drag page error.') return -1.0, 0.0 def rescue_slider(self, distance=200): @@ -144,21 +140,21 @@ class OSShopUI(UI): cur_pos: Current position """ if pre_pos == cur_pos: - logger.warning('ScriptError, Scroll drag page failed') + logger.warning('Scroll drag page failed') if not OS_SHOP_SCROLL.appear(main=self): - logger.warning('ScriptError, Scroll does not appear, try to rescue slider') + logger.warning('Scroll does not appear, try to rescue slider') self.rescue_slider() OS_SHOP_SCROLL.set(cur_pos, main=self) retry = Timer(0, count=3) retry.start() while True: - logger.warning('ScriptError, Scroll does not drag success, retrying scroll') + logger.warning('Scroll does not drag success, retrying scroll') OS_SHOP_SCROLL.next_page(main=self, page=0.5) cur_pos = OS_SHOP_SCROLL.cal_position(main=self) if pre_pos != cur_pos: logger.info(f'Scroll success drag page to {cur_pos}') return cur_pos if retry.reached(): - raise ScriptError('Scroll drag page error.') + raise GameStuckError('Scroll drag page error.') else: return cur_pos diff --git a/module/research/assets.py b/module/research/assets.py index 8c9aff210..2059f7418 100644 --- a/module/research/assets.py +++ b/module/research/assets.py @@ -24,7 +24,6 @@ ENTRANCE_3 = Button(area={'cn': (540, 135, 732, 265), 'en': (540, 135, 732, 265) ENTRANCE_4 = Button(area={'cn': (782, 159, 951, 275), 'en': (782, 159, 951, 275), 'jp': (782, 159, 951, 275), 'tw': (782, 159, 951, 275)}, color={'cn': (80, 153, 218), 'en': (80, 153, 218), 'jp': (80, 153, 218), 'tw': (80, 153, 218)}, button={'cn': (782, 159, 951, 275), 'en': (782, 159, 951, 275), 'jp': (782, 159, 951, 275), 'tw': (782, 159, 951, 275)}, file={'cn': './assets/cn/research/ENTRANCE_4.png', 'en': './assets/en/research/ENTRANCE_4.png', 'jp': './assets/jp/research/ENTRANCE_4.png', 'tw': './assets/tw/research/ENTRANCE_4.png'}) ENTRANCE_5 = Button(area={'cn': (1025, 186, 1169, 287), 'en': (1025, 186, 1169, 287), 'jp': (1025, 186, 1169, 287), 'tw': (1025, 186, 1169, 287)}, color={'cn': (80, 153, 218), 'en': (80, 153, 218), 'jp': (80, 153, 218), 'tw': (80, 153, 218)}, button={'cn': (1025, 186, 1169, 287), 'en': (1025, 186, 1169, 287), 'jp': (1025, 186, 1169, 287), 'tw': (1025, 186, 1169, 287)}, file={'cn': './assets/cn/research/ENTRANCE_5.png', 'en': './assets/en/research/ENTRANCE_5.png', 'jp': './assets/jp/research/ENTRANCE_5.png', 'tw': './assets/tw/research/ENTRANCE_5.png'}) GET_ITEMS_RESEARCH_SAVE = Button(area={'cn': (357, 643, 497, 701), 'en': (357, 643, 497, 701), 'jp': (357, 643, 497, 701), 'tw': (357, 643, 497, 701)}, color={'cn': (54, 65, 83), 'en': (54, 65, 83), 'jp': (54, 65, 83), 'tw': (54, 65, 83)}, button={'cn': (357, 643, 497, 701), 'en': (357, 643, 497, 701), 'jp': (357, 643, 497, 701), 'tw': (357, 643, 497, 701)}, file={'cn': './assets/cn/research/GET_ITEMS_RESEARCH_SAVE.png', 'en': './assets/en/research/GET_ITEMS_RESEARCH_SAVE.png', 'jp': './assets/jp/research/GET_ITEMS_RESEARCH_SAVE.png', 'tw': './assets/tw/research/GET_ITEMS_RESEARCH_SAVE.png'}) -HAS_RESEARCH_QUEUE = Button(area={'cn': (44, 216, 64, 236), 'en': (44, 216, 64, 236), 'jp': (44, 216, 64, 236), 'tw': (44, 216, 64, 236)}, color={'cn': (50, 54, 82), 'en': (50, 54, 82), 'jp': (50, 54, 82), 'tw': (50, 54, 82)}, button={'cn': (44, 216, 64, 236), 'en': (44, 216, 64, 236), 'jp': (44, 216, 64, 236), 'tw': (44, 216, 64, 236)}, file={'cn': './assets/cn/research/HAS_RESEARCH_QUEUE.png', 'en': './assets/cn/research/HAS_RESEARCH_QUEUE.png', 'jp': './assets/cn/research/HAS_RESEARCH_QUEUE.png', 'tw': './assets/cn/research/HAS_RESEARCH_QUEUE.png'}) ITEMS_3_SWIPE = Button(area={'cn': (693, 219, 715, 503), 'en': (693, 219, 715, 503), 'jp': (693, 219, 715, 503), 'tw': (693, 219, 715, 503)}, color={'cn': (78, 70, 55), 'en': (78, 70, 55), 'jp': (78, 70, 55), 'tw': (78, 70, 55)}, button={'cn': (693, 219, 715, 503), 'en': (693, 219, 715, 503), 'jp': (693, 219, 715, 503), 'tw': (693, 219, 715, 503)}, file={'cn': './assets/cn/research/ITEMS_3_SWIPE.png', 'en': './assets/en/research/ITEMS_3_SWIPE.png', 'jp': './assets/jp/research/ITEMS_3_SWIPE.png', 'tw': './assets/tw/research/ITEMS_3_SWIPE.png'}) OCR_RESEARCH_1 = Button(area={'cn': (78, 277, 249, 330), 'en': (78, 277, 249, 330), 'jp': (78, 277, 249, 330), 'tw': (78, 277, 249, 330)}, color={'cn': (139, 160, 196), 'en': (139, 160, 196), 'jp': (139, 160, 196), 'tw': (139, 160, 196)}, button={'cn': (78, 277, 249, 330), 'en': (78, 277, 249, 330), 'jp': (78, 277, 249, 330), 'tw': (78, 277, 249, 330)}, file={'cn': './assets/cn/research/OCR_RESEARCH_1.png', 'en': './assets/en/research/OCR_RESEARCH_1.png', 'jp': './assets/jp/research/OCR_RESEARCH_1.png', 'tw': './assets/tw/research/OCR_RESEARCH_1.png'}) OCR_RESEARCH_2 = Button(area={'cn': (292, 263, 490, 325), 'en': (292, 263, 490, 325), 'jp': (292, 263, 490, 325), 'tw': (292, 263, 490, 325)}, color={'cn': (122, 153, 201), 'en': (122, 153, 201), 'jp': (122, 153, 201), 'tw': (122, 153, 201)}, button={'cn': (292, 263, 490, 325), 'en': (292, 263, 490, 325), 'jp': (292, 263, 490, 325), 'tw': (292, 263, 490, 325)}, file={'cn': './assets/cn/research/OCR_RESEARCH_2.png', 'en': './assets/en/research/OCR_RESEARCH_2.png', 'jp': './assets/jp/research/OCR_RESEARCH_2.png', 'tw': './assets/tw/research/OCR_RESEARCH_2.png'}) @@ -33,17 +32,7 @@ OCR_RESEARCH_4 = Button(area={'cn': (752, 263, 950, 325), 'en': (752, 263, 950, OCR_RESEARCH_5 = Button(area={'cn': (998, 276, 1169, 329), 'en': (998, 276, 1169, 329), 'jp': (998, 276, 1169, 329), 'tw': (998, 276, 1169, 329)}, color={'cn': (124, 156, 204), 'en': (124, 156, 204), 'jp': (124, 156, 204), 'tw': (124, 156, 204)}, button={'cn': (998, 276, 1169, 329), 'en': (998, 276, 1169, 329), 'jp': (998, 276, 1169, 329), 'tw': (998, 276, 1169, 329)}, file={'cn': './assets/cn/research/OCR_RESEARCH_5.png', 'en': './assets/en/research/OCR_RESEARCH_5.png', 'jp': './assets/jp/research/OCR_RESEARCH_5.png', 'tw': './assets/tw/research/OCR_RESEARCH_5.png'}) QUEUE_CHECK = Button(area={'cn': (118, 16, 227, 39), 'en': (117, 16, 215, 38), 'jp': (116, 14, 232, 42), 'tw': (118, 14, 227, 39)}, color={'cn': (149, 166, 205), 'en': (125, 139, 179), 'jp': (147, 163, 199), 'tw': (155, 171, 210)}, button={'cn': (118, 16, 227, 39), 'en': (117, 16, 215, 38), 'jp': (116, 14, 232, 42), 'tw': (118, 14, 227, 39)}, file={'cn': './assets/cn/research/QUEUE_CHECK.png', 'en': './assets/en/research/QUEUE_CHECK.png', 'jp': './assets/jp/research/QUEUE_CHECK.png', 'tw': './assets/tw/research/QUEUE_CHECK.png'}) QUEUE_CLAIM_REWARD = Button(area={'cn': (1230, 275, 1272, 420), 'en': (1225, 258, 1270, 448), 'jp': (1219, 254, 1279, 460), 'tw': (1219, 253, 1280, 460)}, color={'cn': (249, 182, 121), 'en': (249, 171, 97), 'jp': (249, 170, 97), 'tw': (249, 174, 102)}, button={'cn': (1230, 275, 1272, 420), 'en': (1225, 258, 1270, 448), 'jp': (1219, 254, 1279, 460), 'tw': (1219, 253, 1280, 460)}, file={'cn': './assets/cn/research/QUEUE_CLAIM_REWARD.png', 'en': './assets/en/research/QUEUE_CLAIM_REWARD.png', 'jp': './assets/jp/research/QUEUE_CLAIM_REWARD.png', 'tw': './assets/tw/research/QUEUE_CLAIM_REWARD.png'}) -QUEUE_OCR_RESEARCH_1 = Button(area={'cn': (56, 280, 270, 346), 'en': (56, 280, 270, 346), 'jp': (56, 280, 270, 346), 'tw': (56, 280, 270, 346)}, color={'cn': (122, 154, 200), 'en': (122, 154, 200), 'jp': (122, 154, 200), 'tw': (122, 154, 200)}, button={'cn': (56, 280, 270, 346), 'en': (56, 280, 270, 346), 'jp': (56, 280, 270, 346), 'tw': (56, 280, 270, 346)}, file={'cn': './assets/cn/research/QUEUE_OCR_RESEARCH_1.png', 'en': './assets/cn/research/QUEUE_OCR_RESEARCH_1.png', 'jp': './assets/cn/research/QUEUE_OCR_RESEARCH_1.png', 'tw': './assets/cn/research/QUEUE_OCR_RESEARCH_1.png'}) -QUEUE_OCR_RESEARCH_2 = Button(area={'cn': (283, 281, 497, 347), 'en': (283, 281, 497, 347), 'jp': (283, 281, 497, 347), 'tw': (283, 281, 497, 347)}, color={'cn': (202, 178, 142), 'en': (202, 178, 142), 'jp': (202, 178, 142), 'tw': (202, 178, 142)}, button={'cn': (283, 281, 497, 347), 'en': (283, 281, 497, 347), 'jp': (283, 281, 497, 347), 'tw': (283, 281, 497, 347)}, file={'cn': './assets/cn/research/QUEUE_OCR_RESEARCH_2.png', 'en': './assets/cn/research/QUEUE_OCR_RESEARCH_2.png', 'jp': './assets/cn/research/QUEUE_OCR_RESEARCH_2.png', 'tw': './assets/cn/research/QUEUE_OCR_RESEARCH_2.png'}) -QUEUE_OCR_RESEARCH_3 = Button(area={'cn': (513, 280, 727, 346), 'en': (513, 280, 727, 346), 'jp': (513, 280, 727, 346), 'tw': (513, 280, 727, 346)}, color={'cn': (122, 155, 203), 'en': (122, 155, 203), 'jp': (122, 155, 203), 'tw': (122, 155, 203)}, button={'cn': (513, 280, 727, 346), 'en': (513, 280, 727, 346), 'jp': (513, 280, 727, 346), 'tw': (513, 280, 727, 346)}, file={'cn': './assets/cn/research/QUEUE_OCR_RESEARCH_3.png', 'en': './assets/cn/research/QUEUE_OCR_RESEARCH_3.png', 'jp': './assets/cn/research/QUEUE_OCR_RESEARCH_3.png', 'tw': './assets/cn/research/QUEUE_OCR_RESEARCH_3.png'}) -QUEUE_OCR_RESEARCH_4 = Button(area={'cn': (739, 281, 953, 347), 'en': (739, 281, 953, 347), 'jp': (739, 281, 953, 347), 'tw': (739, 281, 953, 347)}, color={'cn': (202, 178, 143), 'en': (202, 178, 143), 'jp': (202, 178, 143), 'tw': (202, 178, 143)}, button={'cn': (739, 281, 953, 347), 'en': (739, 281, 953, 347), 'jp': (739, 281, 953, 347), 'tw': (739, 281, 953, 347)}, file={'cn': './assets/cn/research/QUEUE_OCR_RESEARCH_4.png', 'en': './assets/cn/research/QUEUE_OCR_RESEARCH_4.png', 'jp': './assets/cn/research/QUEUE_OCR_RESEARCH_4.png', 'tw': './assets/cn/research/QUEUE_OCR_RESEARCH_4.png'}) -QUEUE_OCR_RESEARCH_5 = Button(area={'cn': (969, 280, 1183, 346), 'en': (969, 280, 1183, 346), 'jp': (969, 280, 1183, 346), 'tw': (969, 280, 1183, 346)}, color={'cn': (124, 156, 205), 'en': (124, 156, 205), 'jp': (124, 156, 205), 'tw': (124, 156, 205)}, button={'cn': (969, 280, 1183, 346), 'en': (969, 280, 1183, 346), 'jp': (969, 280, 1183, 346), 'tw': (969, 280, 1183, 346)}, file={'cn': './assets/cn/research/QUEUE_OCR_RESEARCH_5.png', 'en': './assets/cn/research/QUEUE_OCR_RESEARCH_5.png', 'jp': './assets/cn/research/QUEUE_OCR_RESEARCH_5.png', 'tw': './assets/cn/research/QUEUE_OCR_RESEARCH_5.png'}) QUEUE_REMAIN = Button(area={'cn': (156, 605, 272, 637), 'en': (151, 580, 278, 617), 'jp': (157, 605, 277, 636), 'tw': (165, 582, 275, 613)}, color={'cn': (193, 212, 240), 'en': (191, 210, 238), 'jp': (188, 208, 239), 'tw': (192, 211, 241)}, button={'cn': (156, 605, 272, 637), 'en': (151, 580, 278, 617), 'jp': (157, 605, 277, 636), 'tw': (165, 582, 275, 613)}, file={'cn': './assets/cn/research/QUEUE_REMAIN.png', 'en': './assets/en/research/QUEUE_REMAIN.png', 'jp': './assets/jp/research/QUEUE_REMAIN.png', 'tw': './assets/tw/research/QUEUE_REMAIN.png'}) -QUEUE_SETIES_1 = Button(area={'cn': (66, 127, 99, 151), 'en': (66, 127, 99, 151), 'jp': (66, 127, 99, 151), 'tw': (66, 127, 99, 151)}, color={'cn': (196, 107, 90), 'en': (196, 107, 90), 'jp': (196, 107, 90), 'tw': (196, 107, 90)}, button={'cn': (66, 127, 99, 151), 'en': (66, 127, 99, 151), 'jp': (66, 127, 99, 151), 'tw': (66, 127, 99, 151)}, file={'cn': './assets/cn/research/QUEUE_SETIES_1.png', 'en': './assets/cn/research/QUEUE_SETIES_1.png', 'jp': './assets/cn/research/QUEUE_SETIES_1.png', 'tw': './assets/cn/research/QUEUE_SETIES_1.png'}) -QUEUE_SETIES_2 = Button(area={'cn': (294, 127, 327, 151), 'en': (294, 127, 327, 151), 'jp': (294, 127, 327, 151), 'tw': (294, 127, 327, 151)}, color={'cn': (80, 98, 204), 'en': (80, 98, 204), 'jp': (80, 98, 204), 'tw': (80, 98, 204)}, button={'cn': (294, 127, 327, 151), 'en': (294, 127, 327, 151), 'jp': (294, 127, 327, 151), 'tw': (294, 127, 327, 151)}, file={'cn': './assets/cn/research/QUEUE_SETIES_2.png', 'en': './assets/cn/research/QUEUE_SETIES_2.png', 'jp': './assets/cn/research/QUEUE_SETIES_2.png', 'tw': './assets/cn/research/QUEUE_SETIES_2.png'}) -QUEUE_SETIES_3 = Button(area={'cn': (523, 127, 556, 151), 'en': (523, 127, 556, 151), 'jp': (523, 127, 556, 151), 'tw': (523, 127, 556, 151)}, color={'cn': (200, 113, 98), 'en': (200, 113, 98), 'jp': (200, 113, 98), 'tw': (200, 113, 98)}, button={'cn': (523, 127, 556, 151), 'en': (523, 127, 556, 151), 'jp': (523, 127, 556, 151), 'tw': (523, 127, 556, 151)}, file={'cn': './assets/cn/research/QUEUE_SETIES_3.png', 'en': './assets/cn/research/QUEUE_SETIES_3.png', 'jp': './assets/cn/research/QUEUE_SETIES_3.png', 'tw': './assets/cn/research/QUEUE_SETIES_3.png'}) -QUEUE_SETIES_4 = Button(area={'cn': (751, 127, 784, 151), 'en': (751, 127, 784, 151), 'jp': (751, 127, 784, 151), 'tw': (751, 127, 784, 151)}, color={'cn': (80, 101, 211), 'en': (80, 101, 211), 'jp': (80, 101, 211), 'tw': (80, 101, 211)}, button={'cn': (751, 127, 784, 151), 'en': (751, 127, 784, 151), 'jp': (751, 127, 784, 151), 'tw': (751, 127, 784, 151)}, file={'cn': './assets/cn/research/QUEUE_SETIES_4.png', 'en': './assets/cn/research/QUEUE_SETIES_4.png', 'jp': './assets/cn/research/QUEUE_SETIES_4.png', 'tw': './assets/cn/research/QUEUE_SETIES_4.png'}) -QUEUE_SETIES_5 = Button(area={'cn': (979, 127, 1012, 151), 'en': (979, 127, 1012, 151), 'jp': (979, 127, 1012, 151), 'tw': (979, 127, 1012, 151)}, color={'cn': (200, 114, 100), 'en': (200, 114, 100), 'jp': (200, 114, 100), 'tw': (200, 114, 100)}, button={'cn': (979, 127, 1012, 151), 'en': (979, 127, 1012, 151), 'jp': (979, 127, 1012, 151), 'tw': (979, 127, 1012, 151)}, file={'cn': './assets/cn/research/QUEUE_SETIES_5.png', 'en': './assets/cn/research/QUEUE_SETIES_5.png', 'jp': './assets/cn/research/QUEUE_SETIES_5.png', 'tw': './assets/cn/research/QUEUE_SETIES_5.png'}) RESEARCH_COST_CHECKER = Button(area={'cn': (809, 365, 972, 386), 'en': (809, 365, 972, 386), 'jp': (809, 365, 972, 386), 'tw': (809, 365, 972, 386)}, color={'cn': (105, 114, 128), 'en': (105, 114, 128), 'jp': (105, 114, 128), 'tw': (105, 114, 128)}, button={'cn': (809, 365, 972, 386), 'en': (809, 365, 972, 386), 'jp': (809, 365, 972, 386), 'tw': (809, 365, 972, 386)}, file={'cn': './assets/cn/research/RESEARCH_COST_CHECKER.png', 'en': './assets/en/research/RESEARCH_COST_CHECKER.png', 'jp': './assets/jp/research/RESEARCH_COST_CHECKER.png', 'tw': './assets/tw/research/RESEARCH_COST_CHECKER.png'}) RESEARCH_DETAIL_QUIT = Button(area={'cn': (695, 656, 784, 707), 'en': (695, 656, 784, 707), 'jp': (695, 656, 784, 707), 'tw': (695, 656, 784, 707)}, color={'cn': (50, 57, 74), 'en': (50, 57, 74), 'jp': (50, 57, 74), 'tw': (50, 57, 74)}, button={'cn': (695, 656, 784, 707), 'en': (695, 656, 784, 707), 'jp': (695, 656, 784, 707), 'tw': (695, 656, 784, 707)}, file={'cn': './assets/cn/research/RESEARCH_DETAIL_QUIT.png', 'en': './assets/en/research/RESEARCH_DETAIL_QUIT.png', 'jp': './assets/jp/research/RESEARCH_DETAIL_QUIT.png', 'tw': './assets/tw/research/RESEARCH_DETAIL_QUIT.png'}) RESEARCH_FINISHED = Button(area={'cn': (384, 547, 502, 585), 'en': (382, 545, 504, 587), 'jp': (383, 546, 503, 586), 'tw': (384, 547, 502, 585)}, color={'cn': (233, 163, 69), 'en': (235, 174, 92), 'jp': (229, 159, 63), 'tw': (233, 163, 69)}, button={'cn': (384, 547, 502, 585), 'en': (382, 545, 504, 587), 'jp': (383, 546, 503, 586), 'tw': (384, 547, 502, 585)}, file={'cn': './assets/cn/research/RESEARCH_FINISHED.png', 'en': './assets/en/research/RESEARCH_FINISHED.png', 'jp': './assets/jp/research/RESEARCH_FINISHED.png', 'tw': './assets/tw/research/RESEARCH_FINISHED.png'}) @@ -71,7 +60,6 @@ STATUS_3 = Button(area={'cn': (549, 598, 556, 605), 'en': (549, 598, 556, 605), STATUS_4 = Button(area={'cn': (790, 570, 796, 576), 'en': (790, 570, 796, 576), 'jp': (790, 570, 796, 576), 'tw': (790, 570, 796, 576)}, color={'cn': (115, 166, 222), 'en': (115, 166, 222), 'jp': (115, 166, 222), 'tw': (115, 166, 222)}, button={'cn': (790, 570, 796, 576), 'en': (790, 570, 796, 576), 'jp': (790, 570, 796, 576), 'tw': (790, 570, 796, 576)}, file={'cn': './assets/cn/research/STATUS_4.png', 'en': './assets/en/research/STATUS_4.png', 'jp': './assets/jp/research/STATUS_4.png', 'tw': './assets/tw/research/STATUS_4.png'}) STATUS_5 = Button(area={'cn': (1031, 541, 1037, 547), 'en': (1031, 541, 1037, 547), 'jp': (1031, 541, 1037, 547), 'tw': (1031, 541, 1037, 547)}, color={'cn': (115, 166, 222), 'en': (115, 166, 222), 'jp': (115, 166, 222), 'tw': (115, 166, 222)}, button={'cn': (1031, 541, 1037, 547), 'en': (1031, 541, 1037, 547), 'jp': (1031, 541, 1037, 547), 'tw': (1031, 541, 1037, 547)}, file={'cn': './assets/cn/research/STATUS_5.png', 'en': './assets/en/research/STATUS_5.png', 'jp': './assets/jp/research/STATUS_5.png', 'tw': './assets/tw/research/STATUS_5.png'}) TEMPLATE_DETAIL = Template(file={'cn': './assets/cn/research/TEMPLATE_DETAIL.png', 'en': './assets/en/research/TEMPLATE_DETAIL.png', 'jp': './assets/jp/research/TEMPLATE_DETAIL.png', 'tw': './assets/tw/research/TEMPLATE_DETAIL.png'}) -TEMPLATE_FINISHED = Template(file={'cn': './assets/cn/research/TEMPLATE_FINISHED.png', 'en': './assets/cn/research/TEMPLATE_FINISHED.png', 'jp': './assets/cn/research/TEMPLATE_FINISHED.png', 'tw': './assets/cn/research/TEMPLATE_FINISHED.png'}) TEMPLATE_RUNNING = Template(file={'cn': './assets/cn/research/TEMPLATE_RUNNING.png', 'en': './assets/en/research/TEMPLATE_RUNNING.png', 'jp': './assets/jp/research/TEMPLATE_RUNNING.png', 'tw': './assets/tw/research/TEMPLATE_RUNNING.png'}) TEMPLATE_S1 = Template(file={'cn': './assets/cn/research/TEMPLATE_S1.png', 'en': './assets/en/research/TEMPLATE_S1.png', 'jp': './assets/jp/research/TEMPLATE_S1.png', 'tw': './assets/tw/research/TEMPLATE_S1.png'}) TEMPLATE_S2 = Template(file={'cn': './assets/cn/research/TEMPLATE_S2.png', 'en': './assets/en/research/TEMPLATE_S2.png', 'jp': './assets/jp/research/TEMPLATE_S2.png', 'tw': './assets/tw/research/TEMPLATE_S2.png'}) diff --git a/module/statistics/assets.py b/module/statistics/assets.py index df222f116..5698ea92a 100644 --- a/module/statistics/assets.py +++ b/module/statistics/assets.py @@ -7,4 +7,3 @@ from module.base.template import Template CAMPAIGN_BONUS = Button(area={'cn': (404, 149, 439, 166), 'en': (406, 150, 477, 162), 'jp': (404, 150, 476, 167), 'tw': (404, 149, 439, 166)}, color={'cn': (188, 195, 207), 'en': (199, 204, 212), 'jp': (207, 211, 218), 'tw': (188, 195, 207)}, button={'cn': (404, 149, 439, 166), 'en': (406, 150, 477, 162), 'jp': (404, 150, 476, 167), 'tw': (404, 149, 439, 166)}, file={'cn': './assets/cn/statistics/CAMPAIGN_BONUS.png', 'en': './assets/en/statistics/CAMPAIGN_BONUS.png', 'jp': './assets/jp/statistics/CAMPAIGN_BONUS.png', 'tw': './assets/cn/statistics/CAMPAIGN_BONUS.png'}) ENEMY_NAME = Button(area={'cn': (781, 283, 965, 322), 'en': (781, 283, 965, 322), 'jp': (781, 283, 965, 322), 'tw': (781, 283, 965, 322)}, color={'cn': (92, 102, 119), 'en': (92, 102, 119), 'jp': (92, 102, 119), 'tw': (92, 102, 119)}, button={'cn': (781, 283, 965, 322), 'en': (781, 283, 965, 322), 'jp': (781, 283, 965, 322), 'tw': (781, 283, 965, 322)}, file={'cn': './assets/cn/statistics/ENEMY_NAME.png', 'en': './assets/en/statistics/ENEMY_NAME.png', 'jp': './assets/jp/statistics/ENEMY_NAME.png', 'tw': './assets/tw/statistics/ENEMY_NAME.png'}) GET_ITEMS_ODD = Button(area={'cn': (628, 294, 653, 397), 'en': (628, 294, 653, 397), 'jp': (628, 294, 653, 397), 'tw': (628, 294, 653, 397)}, color={'cn': (98, 103, 121), 'en': (98, 103, 121), 'jp': (98, 103, 121), 'tw': (98, 103, 121)}, button={'cn': (628, 294, 653, 397), 'en': (628, 294, 653, 397), 'jp': (628, 294, 653, 397), 'tw': (628, 294, 653, 397)}, file={'cn': './assets/cn/statistics/GET_ITEMS_ODD.png', 'en': './assets/en/statistics/GET_ITEMS_ODD.png', 'jp': './assets/jp/statistics/GET_ITEMS_ODD.png', 'tw': './assets/tw/statistics/GET_ITEMS_ODD.png'}) -OPSI_REWARD = Button(area={'cn': (334, 149, 369, 165), 'en': (334, 149, 369, 165), 'jp': (334, 149, 369, 165), 'tw': (334, 149, 369, 165)}, color={'cn': (182, 193, 204), 'en': (182, 193, 204), 'jp': (182, 193, 204), 'tw': (182, 193, 204)}, button={'cn': (334, 149, 369, 165), 'en': (334, 149, 369, 165), 'jp': (334, 149, 369, 165), 'tw': (334, 149, 369, 165)}, file={'cn': './assets/cn/statistics/OPSI_REWARD.png', 'en': './assets/cn/statistics/OPSI_REWARD.png', 'jp': './assets/cn/statistics/OPSI_REWARD.png', 'tw': './assets/cn/statistics/OPSI_REWARD.png'})