From 9f6dfd1bf3c96eb104e1535827b0e0051c33f445 Mon Sep 17 00:00:00 2001 From: sui_feng <115386623+sui-feng-cb@users.noreply.github.com> Date: Wed, 1 Oct 2025 02:42:59 +0800 Subject: [PATCH] Fix: OCR_COIN from page_main in shipyard_reward (#5176) --- assets/cn/shipyard/MAIN_OCR_COIN.png | Bin 0 -> 6935 bytes module/shipyard/assets.py | 1 + module/shipyard/shipyard_reward.py | 19 +++++++++---------- module/shipyard/ui.py | 12 ++++++++++++ module/shipyard/ui_globals.py | 2 ++ 5 files changed, 24 insertions(+), 10 deletions(-) create mode 100644 assets/cn/shipyard/MAIN_OCR_COIN.png diff --git a/assets/cn/shipyard/MAIN_OCR_COIN.png b/assets/cn/shipyard/MAIN_OCR_COIN.png new file mode 100644 index 0000000000000000000000000000000000000000..44da378e102b3a5f90cd66d335960c2aedf8b4c9 GIT binary patch literal 6935 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 0: break if timeout.reached(): logger.warning('Assumes that OCR_COIN is in the right place') break - self._coin_count = OCR_COIN.ocr(self.device.image) - self.ui_goto(page_shipyard) if not self.shipyard_set_focus(series=series, index=index) \ or not self._shipyard_buy_enter() \ diff --git a/module/shipyard/ui.py b/module/shipyard/ui.py index 758891326..abb6c7877 100644 --- a/module/shipyard/ui.py +++ b/module/shipyard/ui.py @@ -1,11 +1,13 @@ from module.base.decorator import cached_property from module.base.timer import Timer from module.base.utils import area_pad +from module.campaign.campaign_status import OCR_COIN from module.handler.assets import LOGIN_ANNOUNCE from module.logger import logger from module.shipyard.ui_globals import * from module.ui.assets import SHIPYARD_CHECK from module.ui.navbar import Navbar +from module.ui.page import page_main_white from module.ui.ui import UI @@ -371,3 +373,13 @@ class ShipyardUI(UI): self.wait_until_appear(SHIPYARD_IN_FATE, offset=(20, 20)) return True + + def _shipyard_get_coin(self): + """ + Returns: + int: Coin amount + """ + if self.ui_page_appear(page_main_white): + return MAIN_OCR_COIN.ocr(self.device.image) + else: + return OCR_COIN.ocr(self.device.image) diff --git a/module/shipyard/ui_globals.py b/module/shipyard/ui_globals.py index 3c2301ca3..ef619247a 100644 --- a/module/shipyard/ui_globals.py +++ b/module/shipyard/ui_globals.py @@ -23,3 +23,5 @@ OCR_SHIPYARD_TOTAL_DEV = Digit(SHIPYARD_TOTAL_DEV, letter=(255, 247, 247), OCR_SHIPYARD_TOTAL_FATE = Digit(SHIPYARD_TOTAL_FATE, letter=(255, 247, 247), threshold=64) + +MAIN_OCR_COIN = Digit(MAIN_OCR_COIN, letter=(255, 255, 255), threshold=128, name='MAIN_OCR_COIN') \ No newline at end of file