From 4cc4647705933b892c27295974a923ddacd1cbb1 Mon Sep 17 00:00:00 2001 From: LmeSzinc <37934724+LmeSzinc@users.noreply.github.com> Date: Sun, 24 Sep 2023 15:58:31 +0800 Subject: [PATCH 1/6] Fix: Skill switch is clicked before appeared --- tasks/combat/skill.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/tasks/combat/skill.py b/tasks/combat/skill.py index d8403002e..843526a62 100644 --- a/tasks/combat/skill.py +++ b/tasks/combat/skill.py @@ -51,6 +51,10 @@ class CombatSkill(UI): logger.info(f'Skill used: {button}') break + def _is_skill_active(self, button): + flag = self.image_color_count(button, color=(220, 196, 145), threshold=221, count=50) + return flag + def _skill_switch(self, check_button, click_button, skip_first_screenshot=True): """ Switch to A or E @@ -64,11 +68,11 @@ class CombatSkill(UI): self.device.screenshot() # Raw brown border - if self.image_color_count(check_button, color=(220, 196, 145), threshold=221, count=50): + if self._is_skill_active(check_button): logger.info(f'Skill switched: {check_button}') break - if self.is_in_skill(): + if self.is_in_skill() and (self._is_skill_active(CHECK_A) or self._is_skill_active(CHECK_E)): if interval.reached(): self.device.click(click_button) interval.reset() From 7a8f9f129ef536ada102199a9e9f551aca41bcd3 Mon Sep 17 00:00:00 2001 From: LmeSzinc <37934724+LmeSzinc@users.noreply.github.com> Date: Sun, 24 Sep 2023 16:46:39 +0800 Subject: [PATCH 2/6] Add: Task to update dashboard --- assets/share/item/data/OCR_DATA.png | Bin 0 -> 21486 bytes config/template.json | 12 ++++++ module/config/argument/args.json | 47 +++++++++++++++++++++++ module/config/argument/argument.yaml | 10 +++++ module/config/argument/menu.json | 3 +- module/config/argument/override.yaml | 12 +++--- module/config/argument/stored.json | 24 ++++++++++++ module/config/argument/task.yaml | 3 ++ module/config/config_generated.py | 4 ++ module/config/config_manual.py | 3 +- module/config/i18n/en-US.json | 20 +++++++++- module/config/i18n/ja-JP.json | 18 +++++++++ module/config/i18n/zh-CN.json | 18 +++++++++ module/config/i18n/zh-TW.json | 18 +++++++++ module/config/stored/stored_generated.py | 2 + src.py | 4 ++ tasks/base/ui.py | 9 +++-- tasks/daily/daily_quest.py | 1 + tasks/item/assets/assets_item_data.py | 15 ++++++++ tasks/item/data_update.py | 44 +++++++++++++++++++++ 20 files changed, 256 insertions(+), 11 deletions(-) create mode 100644 assets/share/item/data/OCR_DATA.png create mode 100644 tasks/item/assets/assets_item_data.py create mode 100644 tasks/item/data_update.py diff --git a/assets/share/item/data/OCR_DATA.png b/assets/share/item/data/OCR_DATA.png new file mode 100644 index 0000000000000000000000000000000000000000..5c7df6db7c9b2fb2f520f801bddac0947a36e702 GIT binary patch literal 21486 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 AHUIzs literal 0 HcmV?d00001 diff --git a/config/template.json b/config/template.json index 723b1e73a..41dfb1136 100644 --- a/config/template.json +++ b/config/template.json @@ -129,6 +129,18 @@ "Assignment": {} } }, + "DataUpdate": { + "Scheduler": { + "Enable": true, + "NextRun": "2020-01-01 00:00:00", + "Command": "DataUpdate", + "ServerUpdate": "04:00" + }, + "ItemStorage": { + "Credit": {}, + "StallerJade": {} + } + }, "Rogue": { "Scheduler": { "Enable": false, diff --git a/module/config/argument/args.json b/module/config/argument/args.json index a4609af9a..adf07c25f 100644 --- a/module/config/argument/args.json +++ b/module/config/argument/args.json @@ -997,6 +997,53 @@ } } }, + "DataUpdate": { + "Scheduler": { + "Enable": { + "type": "state", + "value": true, + "option": [ + true + ], + "option_bold": [ + true + ] + }, + "NextRun": { + "type": "datetime", + "value": "2020-01-01 00:00:00", + "validate": "datetime" + }, + "Command": { + "type": "input", + "value": "DataUpdate", + "display": "hide" + }, + "ServerUpdate": { + "type": "input", + "value": "04:00", + "display": "hide" + } + }, + "ItemStorage": { + "Credit": { + "type": "stored", + "value": {}, + "display": "hide", + "stored": "StoredInt", + "order": 7, + "color": "#ab7cf2" + }, + "StallerJade": { + "type": "stored", + "value": {}, + "display": "hide", + "stored": "StoredInt", + "order": 8, + "color": "#fc8f8b" + } + } + }, "Rogue": { "Scheduler": { "Enable": { diff --git a/module/config/argument/argument.yaml b/module/config/argument/argument.yaml index 8f7bd4d6c..fb10caf59 100644 --- a/module/config/argument/argument.yaml +++ b/module/config/argument/argument.yaml @@ -168,6 +168,16 @@ Assignment: order: 3 color: "#79dbc4" +ItemStorage: + Credit: + stored: StoredInt + order: 7 + color: "#ab7cf2" + StallerJade: + stored: StoredInt + order: 8 + color: "#fc8f8b" + # ==================== Rogue ==================== RoguePath: diff --git a/module/config/argument/menu.json b/module/config/argument/menu.json index e164e6947..20b29b051 100644 --- a/module/config/argument/menu.json +++ b/module/config/argument/menu.json @@ -14,7 +14,8 @@ "Dungeon", "DailyQuest", "BattlePass", - "Assignment" + "Assignment", + "DataUpdate" ] } } \ No newline at end of file diff --git a/module/config/argument/override.yaml b/module/config/argument/override.yaml index 4c7d9ca12..4657d6590 100644 --- a/module/config/argument/override.yaml +++ b/module/config/argument/override.yaml @@ -21,10 +21,12 @@ Restart: option_bold: [ true, ] ServerUpdate: 04:00 -# ==================== Farm ==================== - - # ==================== Daily ==================== - -# ==================== Tools ==================== +DataUpdate: + Scheduler: + Enable: + type: state + value: true + option: [ true, ] + option_bold: [ true, ] diff --git a/module/config/argument/stored.json b/module/config/argument/stored.json index d495e6aa3..9fa7a416b 100644 --- a/module/config/argument/stored.json +++ b/module/config/argument/stored.json @@ -64,6 +64,30 @@ "order": 6, "color": "#8fb5fe" }, + "Credit": { + "name": "Credit", + "path": "DataUpdate.ItemStorage.Credit", + "i18n": "ItemStorage.Credit.name", + "stored": "StoredInt", + "attrs": { + "time": "2020-01-01 00:00:00", + "value": 0 + }, + "order": 7, + "color": "#ab7cf2" + }, + "StallerJade": { + "name": "StallerJade", + "path": "DataUpdate.ItemStorage.StallerJade", + "i18n": "ItemStorage.StallerJade.name", + "stored": "StoredInt", + "attrs": { + "time": "2020-01-01 00:00:00", + "value": 0 + }, + "order": 8, + "color": "#fc8f8b" + }, "DungeonDouble": { "name": "DungeonDouble", "path": "Dungeon.DungeonStorage.DungeonDouble", diff --git a/module/config/argument/task.yaml b/module/config/argument/task.yaml index 68ff11bff..6cb0515c5 100644 --- a/module/config/argument/task.yaml +++ b/module/config/argument/task.yaml @@ -38,6 +38,9 @@ Daily: Assignment: - Scheduler - Assignment + DataUpdate: + - Scheduler + - ItemStorage # ==================== Rogue ==================== diff --git a/module/config/config_generated.py b/module/config/config_generated.py index 1b4f98ce3..da2b7a8da 100644 --- a/module/config/config_generated.py +++ b/module/config/config_generated.py @@ -103,6 +103,10 @@ class GeneratedConfig: Assignment_Duration = 20 # 4, 8, 12, 20 Assignment_Assignment = {} + # Group `ItemStorage` + ItemStorage_Credit = {} + ItemStorage_StallerJade = {} + # Group `RoguePath` RoguePath_Path = 'The_Hunt' # Preservation, Remembrance, Nihility, Abundance, The_Hunt, Destruction, Elation RoguePath_Bonus = 'Blessing Cosmos' # Blessing Cosmos, Miracle Cosmos, Fragmented Cosmos diff --git a/module/config/config_manual.py b/module/config/config_manual.py index 01b03810a..051e15c86 100644 --- a/module/config/config_manual.py +++ b/module/config/config_manual.py @@ -10,7 +10,8 @@ class ManualConfig: SCHEDULER_PRIORITY = """ Restart - > BattlePass > DailyQuest > Assignment > Dungeon + > BattlePass > DailyQuest > Assignment > DataUpdate + > Dungeon """ """ diff --git a/module/config/i18n/en-US.json b/module/config/i18n/en-US.json index a5ebebc3e..81c5be155 100644 --- a/module/config/i18n/en-US.json +++ b/module/config/i18n/en-US.json @@ -38,6 +38,10 @@ "name": "Assignment", "help": "" }, + "DataUpdate": { + "name": "Dashboard Upd", + "help": "" + }, "Rogue": { "name": "Simulated Universe", "help": "Simulated Universe is in development, task will not be run" @@ -694,7 +698,21 @@ "20": "20 Hours" }, "Assignment": { - "name": "Assignment", + "name": "Assign.", + "help": "" + } + }, + "ItemStorage": { + "_info": { + "name": "ItemStorage._info.name", + "help": "ItemStorage._info.help" + }, + "Credit": { + "name": "Credit", + "help": "" + }, + "StallerJade": { + "name": "Jade", "help": "" } }, diff --git a/module/config/i18n/ja-JP.json b/module/config/i18n/ja-JP.json index db678a41d..f20352d19 100644 --- a/module/config/i18n/ja-JP.json +++ b/module/config/i18n/ja-JP.json @@ -38,6 +38,10 @@ "name": "依頼設定", "help": "" }, + "DataUpdate": { + "name": "Task.DataUpdate.name", + "help": "Task.DataUpdate.help" + }, "Rogue": { "name": "Task.Rogue.name", "help": "Task.Rogue.help" @@ -698,6 +702,20 @@ "help": "Assignment.Assignment.help" } }, + "ItemStorage": { + "_info": { + "name": "ItemStorage._info.name", + "help": "ItemStorage._info.help" + }, + "Credit": { + "name": "ItemStorage.Credit.name", + "help": "ItemStorage.Credit.help" + }, + "StallerJade": { + "name": "ItemStorage.StallerJade.name", + "help": "ItemStorage.StallerJade.help" + } + }, "RoguePath": { "_info": { "name": "RoguePath._info.name", diff --git a/module/config/i18n/zh-CN.json b/module/config/i18n/zh-CN.json index b2fa512a2..a951bd771 100644 --- a/module/config/i18n/zh-CN.json +++ b/module/config/i18n/zh-CN.json @@ -38,6 +38,10 @@ "name": "委托", "help": "" }, + "DataUpdate": { + "name": "仪表盘更新", + "help": "" + }, "Rogue": { "name": "模拟宇宙", "help": "模拟宇宙还在开发中,任务不会被运行" @@ -698,6 +702,20 @@ "help": "" } }, + "ItemStorage": { + "_info": { + "name": "ItemStorage._info.name", + "help": "ItemStorage._info.help" + }, + "Credit": { + "name": "信用点", + "help": "" + }, + "StallerJade": { + "name": "星琼", + "help": "" + } + }, "RoguePath": { "_info": { "name": "命途设置", diff --git a/module/config/i18n/zh-TW.json b/module/config/i18n/zh-TW.json index 6d01a9008..762665f90 100644 --- a/module/config/i18n/zh-TW.json +++ b/module/config/i18n/zh-TW.json @@ -38,6 +38,10 @@ "name": "委託", "help": "" }, + "DataUpdate": { + "name": "儀表板更新", + "help": "" + }, "Rogue": { "name": "模擬宇宙", "help": "模擬宇宙還在開發中,任務不會被運行" @@ -698,6 +702,20 @@ "help": "" } }, + "ItemStorage": { + "_info": { + "name": "ItemStorage._info.name", + "help": "ItemStorage._info.help" + }, + "Credit": { + "name": "信用點", + "help": "" + }, + "StallerJade": { + "name": "星瓊", + "help": "" + } + }, "RoguePath": { "_info": { "name": "命途設定", diff --git a/module/config/stored/stored_generated.py b/module/config/stored/stored_generated.py index 903a4ad20..20b62f871 100644 --- a/module/config/stored/stored_generated.py +++ b/module/config/stored/stored_generated.py @@ -26,3 +26,5 @@ class StoredGenerated: BattlePassLevel = StoredBattlePassLevel("BattlePass.BattlePassStorage.BattlePassLevel") BattlePassTodayQuest = StoredBattlePassTodayQuest("BattlePass.BattlePassStorage.BattlePassTodayQuest") Assignment = StoredAssignment("Assignment.Assignment.Assignment") + Credit = StoredInt("DataUpdate.ItemStorage.Credit") + StallerJade = StoredInt("DataUpdate.ItemStorage.StallerJade") diff --git a/src.py b/src.py index e39464425..1a24eb2ce 100644 --- a/src.py +++ b/src.py @@ -38,6 +38,10 @@ class StarRailCopilot(AzurLaneAutoScript): from tasks.assignment.assignment import Assignment Assignment(config=self.config, device=self.device).run() + def data_update(self): + from tasks.item.data_update import DataUpdate + DataUpdate(config=self.config, device=self.device).run() + if __name__ == '__main__': src = StarRailCopilot('src') diff --git a/tasks/base/ui.py b/tasks/base/ui.py index e606e2968..24f8a82d9 100644 --- a/tasks/base/ui.py +++ b/tasks/base/ui.py @@ -143,10 +143,11 @@ class UI(PopupHandler, MainPage): # Reset connection Page.clear_connection() - def ui_ensure(self, destination, skip_first_screenshot=True): + def ui_ensure(self, destination, acquire_lang_checked=True, skip_first_screenshot=True): """ Args: destination (Page): + acquire_lang_checked: skip_first_screenshot: Returns: @@ -154,8 +155,10 @@ class UI(PopupHandler, MainPage): """ logger.hr("UI ensure") self.ui_get_current_page(skip_first_screenshot=skip_first_screenshot) - if self.acquire_lang_checked(): - self.ui_get_current_page(skip_first_screenshot=skip_first_screenshot) + + if acquire_lang_checked: + if self.acquire_lang_checked(): + self.ui_get_current_page(skip_first_screenshot=skip_first_screenshot) if self.ui_current == destination: logger.info("Already at %s" % destination) diff --git a/tasks/daily/daily_quest.py b/tasks/daily/daily_quest.py index 096a848dd..7a88e2e8e 100644 --- a/tasks/daily/daily_quest.py +++ b/tasks/daily/daily_quest.py @@ -327,5 +327,6 @@ class DailyQuestUI(DungeonUI, RouteLoader): if KEYWORD_BATTLE_PASS_QUEST.Reach_500_on_Daily_Training_Activity in quests: logger.info('Achieved battle pass quest Reach_500_on_Daily_Training_Activity') self.config.task_call('BattlePass') + self.config.task_call('DataUpdate') # Delay self self.config.task_delay(server_update=True) diff --git a/tasks/item/assets/assets_item_data.py b/tasks/item/assets/assets_item_data.py new file mode 100644 index 000000000..53ad8c4dd --- /dev/null +++ b/tasks/item/assets/assets_item_data.py @@ -0,0 +1,15 @@ +from module.base.button import Button, ButtonWrapper + +# This file was auto-generated, do not modify it manually. To generate: +# ``` python -m dev_tools.button_extract ``` + +OCR_DATA = ButtonWrapper( + name='OCR_DATA', + share=Button( + file='./assets/share/item/data/OCR_DATA.png', + area=(843, 13, 1152, 61), + search=(823, 0, 1172, 81), + color=(39, 43, 51), + button=(843, 13, 1152, 61), + ), +) diff --git a/tasks/item/data_update.py b/tasks/item/data_update.py new file mode 100644 index 000000000..40174d836 --- /dev/null +++ b/tasks/item/data_update.py @@ -0,0 +1,44 @@ +from module.base.timer import Timer +from module.logger import logger +from module.ocr.ocr import Digit +from tasks.base.page import page_item +from tasks.base.ui import UI +from tasks.item.assets.assets_item_data import OCR_DATA + + +class DataUpdate(UI): + def _get_data(self): + """ + Page: + in: page_item + """ + ocr = Digit(OCR_DATA) + + timeout = Timer(2, count=6).start() + credit, jade = 0, 0 + while 1: + data = ocr.detect_and_ocr(self.device.image) + if len(data) == 2: + credit, jade = [int(d.ocr_text) for d in data] + if credit > 0 or jade > 0: + break + + logger.warning(f'Invalid credit and stellar jade: {data}') + if timeout.reached(): + logger.warning('Get data timeout') + break + + logger.attr('Credit', credit) + logger.attr('StellarJade', jade) + with self.config.multi_set(): + self.config.stored.Credit.value = credit + self.config.stored.StallerJade.value = jade + + return credit, jade + + def run(self): + self.ui_ensure(page_item, acquire_lang_checked=False) + + with self.config.multi_set(): + self._get_data() + self.config.task_delay(server_update=True) From 8f25862b77a4f1fcc6a29b039c37041ea747e4cd Mon Sep 17 00:00:00 2001 From: LmeSzinc <37934724+LmeSzinc@users.noreply.github.com> Date: Sun, 24 Sep 2023 16:55:32 +0800 Subject: [PATCH 3/6] Fix: Empty items are displayed on dashboard --- module/webui/app.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/module/webui/app.py b/module/webui/app.py index a33e92e1c..06683ba64 100644 --- a/module/webui/app.py +++ b/module/webui/app.py @@ -415,9 +415,10 @@ class AlasGUI(Frame): put_html('
'), put_scope("dashboard", [ # Empty dashboard, values will be updated in alas_update_overview_task() - put_scope(f"dashboard-row-{arg}", []) for arg in self.ALAS_STORED.keys() + put_scope(f"dashboard-row-{arg}", []) + for arg in self.ALAS_STORED.keys() if deep_get(self.ALAS_STORED, keys=[arg, "order"], default=0) # Empty content to left-align last row - ] + [put_html("")] * len(self.ALAS_STORED)) + ] + [put_html("")] * min(len(self.ALAS_STORED), 4)) ]) put_scope("log", [put_html("")]) From 6212b081cef6bc6f31a4aeaa5c2d2fe22b4fd884 Mon Sep 17 00:00:00 2001 From: LmeSzinc <37934724+LmeSzinc@users.noreply.github.com> Date: Sun, 24 Sep 2023 17:02:31 +0800 Subject: [PATCH 4/6] Fix: Add auto-generated notice in route files --- dev_tools/route_extract.py | 2 ++ tasks/map/route/route/daily.py | 2 ++ 2 files changed, 4 insertions(+) diff --git a/dev_tools/route_extract.py b/dev_tools/route_extract.py index 08d341f25..dedc2e5e8 100644 --- a/dev_tools/route_extract.py +++ b/dev_tools/route_extract.py @@ -75,6 +75,8 @@ class RouteExtract: gen.Import(""" from tasks.map.route.base import RouteData """) + gen.CommentAutoGenerage('dev_tools.route_extract') + for f in self.iter_files(): for row in self.extract_route(f): with gen.Object(key=row.name, object_class='RouteData'): diff --git a/tasks/map/route/route/daily.py b/tasks/map/route/route/daily.py index 09e1a4e8c..90186a5b7 100644 --- a/tasks/map/route/route/daily.py +++ b/tasks/map/route/route/daily.py @@ -1,5 +1,7 @@ from tasks.map.route.base import RouteData +# This file was auto-generated, do not modify it manually. To generate: +# ``` python -m dev_tools.route_extract ``` ForgottenHallStage1__route = RouteData( name='ForgottenHallStage1__route', From 6e00043526e9ec9966b77fd683af5ef7eafe04de Mon Sep 17 00:00:00 2001 From: LmeSzinc <37934724+LmeSzinc@users.noreply.github.com> Date: Sun, 24 Sep 2023 17:43:12 +0800 Subject: [PATCH 5/6] Fix: Handle starting from trial and rogue --- .../base/main_page/ROGUE_LEAVE_FOR_NOW.png | Bin 0 -> 6702 bytes dev_tools/keyword_extract.py | 5 +- tasks/base/assets/assets_base_main_page.py | 10 ++ tasks/base/main_page.py | 61 ++++++++- tasks/base/ui.py | 8 +- tasks/map/keywords/plane.py | 116 ++++++++++++++---- 6 files changed, 166 insertions(+), 34 deletions(-) create mode 100644 assets/share/base/main_page/ROGUE_LEAVE_FOR_NOW.png diff --git a/assets/share/base/main_page/ROGUE_LEAVE_FOR_NOW.png b/assets/share/base/main_page/ROGUE_LEAVE_FOR_NOW.png new file mode 100644 index 0000000000000000000000000000000000000000..259704520b410b624badb4e7a690a5cc8ad45b1b GIT binary patch literal 6702 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 literal 0 HcmV?d00001 diff --git a/dev_tools/keyword_extract.py b/dev_tools/keyword_extract.py index 4fa9e7762..2d3282db0 100644 --- a/dev_tools/keyword_extract.py +++ b/dev_tools/keyword_extract.py @@ -265,8 +265,9 @@ class KeywordExtract: def generate_map_planes(self): planes = { - 'Herta': ['黑塔的办公室', - '观景车厢', '主控舱段', '基座舱段', '收容舱段', '支援舱段'], + 'Special': ['黑塔的办公室', '锋芒崭露'], + 'Rogue': [ '区域-战斗', '区域-事件', '区域-遭遇', '区域-休整', '区域-精英', '区域-首领', '区域-交易'], + 'Herta': ['观景车厢', '主控舱段', '基座舱段', '收容舱段', '支援舱段'], 'Jarilo': ['行政区', '城郊雪原', '边缘通路', '铁卫禁区', '残响回廊', '永冬岭', '磐岩镇', '大矿区', '铆钉镇', '机械聚落'], 'Luofu': ['星槎海中枢', '流云渡', '迴星港', '长乐天', '金人巷', '太卜司', '工造司', '丹鼎司', '鳞渊境'], diff --git a/tasks/base/assets/assets_base_main_page.py b/tasks/base/assets/assets_base_main_page.py index 586dac75b..3a50ad9ed 100644 --- a/tasks/base/assets/assets_base_main_page.py +++ b/tasks/base/assets/assets_base_main_page.py @@ -13,3 +13,13 @@ OCR_MAP_NAME = ButtonWrapper( button=(48, 15, 373, 32), ), ) +ROGUE_LEAVE_FOR_NOW = ButtonWrapper( + name='ROGUE_LEAVE_FOR_NOW', + share=Button( + file='./assets/share/base/main_page/ROGUE_LEAVE_FOR_NOW.png', + area=(729, 475, 765, 519), + search=(709, 455, 785, 539), + color=(82, 74, 59), + button=(729, 475, 765, 519), + ), +) diff --git a/tasks/base/main_page.py b/tasks/base/main_page.py index 9a0da4915..8c9f3322d 100644 --- a/tasks/base/main_page.py +++ b/tasks/base/main_page.py @@ -2,13 +2,15 @@ import re from typing import Optional import module.config.server as server -from module.base.base import ModuleBase from module.config.server import VALID_LANG from module.exception import RequestHumanTakeover, ScriptError from module.logger import logger from module.ocr.ocr import Ocr -from tasks.base.assets.assets_base_main_page import OCR_MAP_NAME -from tasks.base.page import Page, page_main +from tasks.base.assets.assets_base_main_page import OCR_MAP_NAME, ROGUE_LEAVE_FOR_NOW +from tasks.base.assets.assets_base_page import CLOSE, MAP_EXIT +from tasks.base.page import Page, page_gacha, page_main +from tasks.base.popup import PopupHandler +from tasks.daily.assets.assets_daily_trial import START_TRIAL from tasks.map.keywords import KEYWORDS_MAP_PLANE, MapPlane @@ -18,10 +20,13 @@ class OcrPlaneName(Ocr): result = re.sub(r'-[Ii1]$', '', result) result = re.sub(r'\d+$', '', result) + # 累塔的办公室 + result = result.replace('累塔', '黑塔') + return super().after_process(result) -class MainPage(ModuleBase): +class MainPage(PopupHandler): # Same as BigmapPlane class # Current plane plane: MapPlane = KEYWORDS_MAP_PLANE.Herta_ParlorCar @@ -93,3 +98,51 @@ class MainPage(ModuleBase): self.handle_lang_check(page=page_main) return True + + def ui_leave_special(self): + """ + Leave from: + - Rogue domains + - Character trials + + Returns: + bool: If left a special plane + + Pages: + in: Any + out: page_main + """ + if not self.appear(MAP_EXIT): + return False + + logger.info('UI leave special') + skip_first_screenshot = True + clicked = False + while 1: + if skip_first_screenshot: + skip_first_screenshot = False + else: + self.device.screenshot() + + # End + if clicked: + if self.appear(page_main.check_button): + logger.info(f'Leave to {page_main}') + break + + if self.appear_then_click(MAP_EXIT, interval=2): + continue + if self.handle_popup_confirm(): + continue + if self.match_template_color(START_TRIAL, interval=2): + logger.info(f'{START_TRIAL} -> {CLOSE}') + self.device.click(CLOSE) + clicked = True + continue + if self.appear(page_gacha.check_button, interval=2): + logger.info(f'{page_gacha} -> {CLOSE}') + self.device.click(CLOSE) + continue + if self.appear_then_click(ROGUE_LEAVE_FOR_NOW, interval=2): + clicked = True + continue diff --git a/tasks/base/ui.py b/tasks/base/ui.py index 24f8a82d9..80a04489b 100644 --- a/tasks/base/ui.py +++ b/tasks/base/ui.py @@ -7,12 +7,12 @@ from module.ocr.ocr import Ocr from tasks.base.assets.assets_base_page import CLOSE, MAP_EXIT from tasks.base.main_page import MainPage from tasks.base.page import Page, page_main -from tasks.base.popup import PopupHandler from tasks.combat.assets.assets_combat_finish import COMBAT_EXIT from tasks.combat.assets.assets_combat_prepare import COMBAT_PREPARE +from tasks.daily.assets.assets_daily_trial import INFO_CLOSE -class UI(PopupHandler, MainPage): +class UI( MainPage): ui_current: Page ui_main_confirm_timer = Timer(0.2, count=0) @@ -156,6 +156,8 @@ class UI(PopupHandler, MainPage): logger.hr("UI ensure") self.ui_get_current_page(skip_first_screenshot=skip_first_screenshot) + self.ui_leave_special() + if acquire_lang_checked: if self.acquire_lang_checked(): self.ui_get_current_page(skip_first_screenshot=skip_first_screenshot) @@ -297,6 +299,8 @@ class UI(PopupHandler, MainPage): self.device.click(CLOSE) if self.appear_then_click(COMBAT_EXIT, interval=5): return True + if self.appear_then_click(INFO_CLOSE, interval=5): + return True return False diff --git a/tasks/map/keywords/plane.py b/tasks/map/keywords/plane.py index 0aaa0d5ff..5779223d7 100644 --- a/tasks/map/keywords/plane.py +++ b/tasks/map/keywords/plane.py @@ -3,16 +3,80 @@ from .classes import MapPlane # This file was auto-generated, do not modify it manually. To generate: # ``` python -m dev_tools.keyword_extract ``` -Herta_HertaOffice = MapPlane( +Special_HertaOffice = MapPlane( id=1, - name='Herta_HertaOffice', + name='Special_HertaOffice', cn='黑塔的办公室', cht='黑塔的辦公室', en="Herta's Office", jp='ヘルタのオフィス', ) -Herta_ParlorCar = MapPlane( +Special_AptitudeShowcase = MapPlane( id=2, + name='Special_AptitudeShowcase', + cn='锋芒崭露', + cht='鋒芒嶄露', + en='Aptitude Showcase', + jp='躍進する新星', +) +Rogue_DomainCombat = MapPlane( + id=3, + name='Rogue_DomainCombat', + cn='区域-战斗', + cht='區域-戰鬥', + en='Domain — Combat', + jp='エリア-戦闘', +) +Rogue_DomainOccurrence = MapPlane( + id=4, + name='Rogue_DomainOccurrence', + cn='区域-事件', + cht='區域-事件', + en='Domain — Occurrence', + jp='エリア-イベント', +) +Rogue_DomainEncounter = MapPlane( + id=5, + name='Rogue_DomainEncounter', + cn='区域-遭遇', + cht='區域-遭遇', + en='Domain — Encounter', + jp='エリア-遭遇', +) +Rogue_DomainRespite = MapPlane( + id=6, + name='Rogue_DomainRespite', + cn='区域-休整', + cht='區域-整備', + en='Domain — Respite', + jp='エリア-休憩', +) +Rogue_DomainElite = MapPlane( + id=7, + name='Rogue_DomainElite', + cn='区域-精英', + cht='區域-菁英', + en='Domain — Elite', + jp='エリア-精鋭', +) +Rogue_DomainBoss = MapPlane( + id=8, + name='Rogue_DomainBoss', + cn='区域-首领', + cht='區域-頭目', + en='Domain — Boss', + jp='エリア-ボス', +) +Rogue_DomainTransaction = MapPlane( + id=9, + name='Rogue_DomainTransaction', + cn='区域-交易', + cht='區域-交易', + en='Domain — Transaction', + jp='エリア-取引', +) +Herta_ParlorCar = MapPlane( + id=10, name='Herta_ParlorCar', cn='观景车厢', cht='觀景車廂', @@ -20,7 +84,7 @@ Herta_ParlorCar = MapPlane( jp='列車のラウンジ', ) Herta_MasterControlZone = MapPlane( - id=3, + id=11, name='Herta_MasterControlZone', cn='主控舱段', cht='主控艙段', @@ -28,7 +92,7 @@ Herta_MasterControlZone = MapPlane( jp='主制御部分', ) Herta_BaseZone = MapPlane( - id=4, + id=12, name='Herta_BaseZone', cn='基座舱段', cht='基座艙段', @@ -36,7 +100,7 @@ Herta_BaseZone = MapPlane( jp='ベース部分', ) Herta_StorageZone = MapPlane( - id=5, + id=13, name='Herta_StorageZone', cn='收容舱段', cht='收容艙段', @@ -44,7 +108,7 @@ Herta_StorageZone = MapPlane( jp='収容部分', ) Herta_SupplyZone = MapPlane( - id=6, + id=14, name='Herta_SupplyZone', cn='支援舱段', cht='支援艙段', @@ -52,7 +116,7 @@ Herta_SupplyZone = MapPlane( jp='サポート部分', ) Jarilo_AdministrativeDistrict = MapPlane( - id=7, + id=15, name='Jarilo_AdministrativeDistrict', cn='行政区', cht='行政區', @@ -60,7 +124,7 @@ Jarilo_AdministrativeDistrict = MapPlane( jp='行政区', ) Jarilo_OutlyingSnowPlains = MapPlane( - id=8, + id=16, name='Jarilo_OutlyingSnowPlains', cn='城郊雪原', cht='城郊雪原', @@ -68,7 +132,7 @@ Jarilo_OutlyingSnowPlains = MapPlane( jp='郊外雪原', ) Jarilo_BackwaterPass = MapPlane( - id=9, + id=17, name='Jarilo_BackwaterPass', cn='边缘通路', cht='邊緣通道', @@ -76,7 +140,7 @@ Jarilo_BackwaterPass = MapPlane( jp='外縁通路', ) Jarilo_SilvermaneGuardRestrictedZone = MapPlane( - id=10, + id=18, name='Jarilo_SilvermaneGuardRestrictedZone', cn='铁卫禁区', cht='鐵衛禁區', @@ -84,7 +148,7 @@ Jarilo_SilvermaneGuardRestrictedZone = MapPlane( jp='シルバーメイン禁区', ) Jarilo_CorridorofFadingEchoes = MapPlane( - id=11, + id=19, name='Jarilo_CorridorofFadingEchoes', cn='残响回廊', cht='殘響迴廊', @@ -92,7 +156,7 @@ Jarilo_CorridorofFadingEchoes = MapPlane( jp='残響回廊', ) Jarilo_EverwinterHill = MapPlane( - id=12, + id=20, name='Jarilo_EverwinterHill', cn='永冬岭', cht='永冬嶺', @@ -100,7 +164,7 @@ Jarilo_EverwinterHill = MapPlane( jp='常冬峰', ) Jarilo_BoulderTown = MapPlane( - id=13, + id=21, name='Jarilo_BoulderTown', cn='磐岩镇', cht='磐岩鎮', @@ -108,7 +172,7 @@ Jarilo_BoulderTown = MapPlane( jp='ボルダータウン', ) Jarilo_GreatMine = MapPlane( - id=14, + id=22, name='Jarilo_GreatMine', cn='大矿区', cht='大礦區', @@ -116,7 +180,7 @@ Jarilo_GreatMine = MapPlane( jp='大鉱区', ) Jarilo_RivetTown = MapPlane( - id=15, + id=23, name='Jarilo_RivetTown', cn='铆钉镇', cht='鉚釘鎮', @@ -124,7 +188,7 @@ Jarilo_RivetTown = MapPlane( jp='リベットタウン', ) Jarilo_RobotSettlement = MapPlane( - id=16, + id=24, name='Jarilo_RobotSettlement', cn='机械聚落', cht='機械聚落', @@ -132,7 +196,7 @@ Jarilo_RobotSettlement = MapPlane( jp='機械集落', ) Luofu_CentralStarskiffHaven = MapPlane( - id=17, + id=25, name='Luofu_CentralStarskiffHaven', cn='星槎海中枢', cht='星槎海中樞', @@ -140,7 +204,7 @@ Luofu_CentralStarskiffHaven = MapPlane( jp='星槎海中枢', ) Luofu_Cloudford = MapPlane( - id=18, + id=26, name='Luofu_Cloudford', cn='流云渡', cht='流雲渡', @@ -148,7 +212,7 @@ Luofu_Cloudford = MapPlane( jp='流雲渡し', ) Luofu_StargazerNavalia = MapPlane( - id=19, + id=27, name='Luofu_StargazerNavalia', cn='迴星港', cht='迴星港', @@ -156,7 +220,7 @@ Luofu_StargazerNavalia = MapPlane( jp='廻星港', ) Luofu_ExaltingSanctum = MapPlane( - id=20, + id=28, name='Luofu_ExaltingSanctum', cn='长乐天', cht='長樂天', @@ -164,7 +228,7 @@ Luofu_ExaltingSanctum = MapPlane( jp='長楽天', ) Luofu_AurumAlley = MapPlane( - id=21, + id=29, name='Luofu_AurumAlley', cn='金人巷', cht='金人巷', @@ -172,7 +236,7 @@ Luofu_AurumAlley = MapPlane( jp='金人巷', ) Luofu_DivinationCommission = MapPlane( - id=22, + id=30, name='Luofu_DivinationCommission', cn='太卜司', cht='太卜司', @@ -180,7 +244,7 @@ Luofu_DivinationCommission = MapPlane( jp='太卜司', ) Luofu_ArtisanshipCommission = MapPlane( - id=23, + id=31, name='Luofu_ArtisanshipCommission', cn='工造司', cht='工造司', @@ -188,7 +252,7 @@ Luofu_ArtisanshipCommission = MapPlane( jp='工造司', ) Luofu_AlchemyCommission = MapPlane( - id=24, + id=32, name='Luofu_AlchemyCommission', cn='丹鼎司', cht='丹鼎司', @@ -196,7 +260,7 @@ Luofu_AlchemyCommission = MapPlane( jp='丹鼎司', ) Luofu_ScalegorgeWaterscape = MapPlane( - id=25, + id=33, name='Luofu_ScalegorgeWaterscape', cn='鳞渊境', cht='鱗淵境', From 2591bb3a284e432a74e7fb5df7258af86dc75df4 Mon Sep 17 00:00:00 2001 From: LmeSzinc <37934724+LmeSzinc@users.noreply.github.com> Date: Sun, 24 Sep 2023 19:06:50 +0800 Subject: [PATCH 6/6] Fix: Remove debug code --- tasks/daily/daily_quest.py | 3 --- 1 file changed, 3 deletions(-) diff --git a/tasks/daily/daily_quest.py b/tasks/daily/daily_quest.py index 7a88e2e8e..4ea223f89 100644 --- a/tasks/daily/daily_quest.py +++ b/tasks/daily/daily_quest.py @@ -274,9 +274,6 @@ class DailyQuestUI(DungeonUI, RouteLoader): """ enemy = 0 item = 0 - quests = [ - KEYWORDS_DAILY_QUEST.Enter_combat_by_attacking_enemy_Weakness_and_win_3_times, - ] if KEYWORDS_DAILY_QUEST.In_a_single_battle_inflict_3_Weakness_Break_of_different_Types in quests: enemy = max(enemy, 1) if KEYWORDS_DAILY_QUEST.Inflict_Weakness_Break_5_times in quests: