From c004af5346e5993f36d8c5ba324d51e9525f619f Mon Sep 17 00:00:00 2001 From: LmeSzinc <37934724+LmeSzinc@users.noreply.github.com> Date: Thu, 19 Oct 2023 02:13:51 +0800 Subject: [PATCH] Add: Rogue stop condition: weekly_point_reward --- assets/share/rogue/entry/OCR_WEEKLY_POINT.png | Bin 0 -> 17992 bytes module/config/stored/classes.py | 2 +- tasks/rogue/assets/assets_rogue_entry.py | 10 ++++++++ tasks/rogue/entry/entry.py | 22 ++++++++++++++++-- tasks/rogue/exception.py | 8 +++++++ tasks/rogue/rogue.py | 21 +++++++++++++++-- 6 files changed, 58 insertions(+), 5 deletions(-) create mode 100644 assets/share/rogue/entry/OCR_WEEKLY_POINT.png diff --git a/assets/share/rogue/entry/OCR_WEEKLY_POINT.png b/assets/share/rogue/entry/OCR_WEEKLY_POINT.png new file mode 100644 index 0000000000000000000000000000000000000000..ad8d5715715ba853137edb6a015f87eb8a1e50d7 GIT binary patch literal 17992 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 literal 0 HcmV?d00001 diff --git a/module/config/stored/classes.py b/module/config/stored/classes.py index 0ee3ceb18..3b8e49070 100644 --- a/module/config/stored/classes.py +++ b/module/config/stored/classes.py @@ -178,7 +178,7 @@ class StoredTrailblazePower(StoredCounter): FIXED_TOTAL = 240 -class StoredSimulatedUniverse(StoredCounter, StoredExpiredAt0400): +class StoredSimulatedUniverse(StoredCounter, StoredExpiredAtMonday0400): pass diff --git a/tasks/rogue/assets/assets_rogue_entry.py b/tasks/rogue/assets/assets_rogue_entry.py index 12e562d0a..c7c219a1e 100644 --- a/tasks/rogue/assets/assets_rogue_entry.py +++ b/tasks/rogue/assets/assets_rogue_entry.py @@ -13,6 +13,16 @@ LEVEL_CONFIRM = ButtonWrapper( button=(990, 638, 1223, 676), ), ) +OCR_WEEKLY_POINT = ButtonWrapper( + name='OCR_WEEKLY_POINT', + share=Button( + file='./assets/share/rogue/entry/OCR_WEEKLY_POINT.png', + area=(130, 602, 382, 635), + search=(110, 582, 402, 655), + color=(54, 51, 50), + button=(130, 602, 382, 635), + ), +) OCR_WORLD = ButtonWrapper( name='OCR_WORLD', share=Button( diff --git a/tasks/rogue/entry/entry.py b/tasks/rogue/entry/entry.py index 211f64d64..ebecb7e32 100644 --- a/tasks/rogue/entry/entry.py +++ b/tasks/rogue/entry/entry.py @@ -1,9 +1,10 @@ import re +from datetime import datetime, timedelta from module.base.timer import Timer from module.exception import RequestHumanTakeover from module.logger import logger -from module.ocr.ocr import Ocr +from module.ocr.ocr import DigitCounter, Ocr from tasks.base.assets.assets_base_main_page import ROGUE_LEAVE_FOR_NOW from tasks.base.assets.assets_base_page import MAP_EXIT from tasks.base.page import page_guide, page_main, page_rogue @@ -12,12 +13,20 @@ from tasks.dungeon.keywords.dungeon import Simulated_Universe_World_1 from tasks.dungeon.keywords.tab import Survival_Index from tasks.dungeon.ui import DungeonUI from tasks.forgotten_hall.assets.assets_forgotten_hall_ui import TELEPORT -from tasks.rogue.assets.assets_rogue_entry import LEVEL_CONFIRM, OCR_WORLD, WORLD_ENTER, WORLD_NEXT, WORLD_PREV +from tasks.rogue.assets.assets_rogue_entry import ( + LEVEL_CONFIRM, + OCR_WEEKLY_POINT, + OCR_WORLD, + WORLD_ENTER, + WORLD_NEXT, + WORLD_PREV, +) from tasks.rogue.assets.assets_rogue_path import CONFIRM_PATH from tasks.rogue.assets.assets_rogue_reward import REWARD_CLOSE, REWARD_ENTER from tasks.rogue.assets.assets_rogue_ui import ROGUE_LAUNCH from tasks.rogue.entry.path import RoguePathHandler from tasks.rogue.entry.reward import RogueRewardHandler +from tasks.rogue.exception import RogueReachedWeeklyPointLimit def chinese_to_arabic(chinese_number: str) -> int: @@ -248,6 +257,15 @@ class RogueEntry(DungeonUI, RogueRewardHandler, RoguePathHandler): else: self.goto_rogue() + # Update rogue points + if datetime.now() - self.config.stored.SimulatedUniverse.time > timedelta(minutes=2): + ocr = DigitCounter(OCR_WEEKLY_POINT) + value, _, total = ocr.ocr_single_line(self.device.image) + self.config.stored.SimulatedUniverse.set(value, total) + # Check stop condition + if self.config.RogueWorld_StopCondition == 'weekly_point_reward': + if self.config.stored.SimulatedUniverse.is_full(): + raise RogueReachedWeeklyPointLimit # Enter self._rogue_world_set(world) self._rogue_world_enter() diff --git a/tasks/rogue/exception.py b/tasks/rogue/exception.py index 60c17b9c0..8678f025b 100644 --- a/tasks/rogue/exception.py +++ b/tasks/rogue/exception.py @@ -8,3 +8,11 @@ class RogueDomainExitNotFound(Exception): class RogueRouteError(Exception): pass + + +class RogueReachedWeeklyPointLimit(Exception): + pass + + +class RogueReached100EliteBossLimit(Exception): + pass diff --git a/tasks/rogue/rogue.py b/tasks/rogue/rogue.py index e6d6c973a..64876bda8 100644 --- a/tasks/rogue/rogue.py +++ b/tasks/rogue/rogue.py @@ -1,6 +1,6 @@ from module.logger import logger from tasks.rogue.entry.entry import RogueEntry -from tasks.rogue.exception import RogueTeamNotPrepared +from tasks.rogue.exception import RogueReachedWeeklyPointLimit, RogueTeamNotPrepared from tasks.rogue.route.loader import RouteLoader @@ -19,13 +19,30 @@ class Rogue(RouteLoader, RogueEntry): logger.error(f'Please prepare your team in {self.config.RogueWorld_World}') self.rogue_world_exit() return False + except RogueReachedWeeklyPointLimit: + logger.hr('Reached rogue weekly point limit') + return False self.rogue_run() self.rogue_reward_claim() return True def run(self): - self.rogue_once() + while 1: + # Check stop condition + if self.config.RogueWorld_StopCondition == 'weekly_point_reward': + if self.config.stored.SimulatedUniverse.is_expired(): + # Expired, do rogue + pass + elif self.config.stored.SimulatedUniverse.is_full(): + logger.hr('Reached rogue weekly point limit') + break + + # Run + success = self.rogue_once() + if not success: + break + self.config.task_delay(server_update=True)