diff --git a/assets/cn/war_archives/TEMPLATE_ASHEN_SIMULACRUM.png b/assets/cn/war_archives/TEMPLATE_ASHEN_SIMULACRUM.png index 04d7664eb8..07545f6564 100644 Binary files a/assets/cn/war_archives/TEMPLATE_ASHEN_SIMULACRUM.png and b/assets/cn/war_archives/TEMPLATE_ASHEN_SIMULACRUM.png differ diff --git a/assets/cn/war_archives/TEMPLATE_AURORA_NOCTIS.png b/assets/cn/war_archives/TEMPLATE_AURORA_NOCTIS.png index cf770c77f3..d7c24cfb47 100644 Binary files a/assets/cn/war_archives/TEMPLATE_AURORA_NOCTIS.png and b/assets/cn/war_archives/TEMPLATE_AURORA_NOCTIS.png differ diff --git a/assets/cn/war_archives/TEMPLATE_COUNTERATTACK_WITHIN_THE_FJORD.png b/assets/cn/war_archives/TEMPLATE_COUNTERATTACK_WITHIN_THE_FJORD.png index 59e24d63c0..e40a1e3c5e 100644 Binary files a/assets/cn/war_archives/TEMPLATE_COUNTERATTACK_WITHIN_THE_FJORD.png and b/assets/cn/war_archives/TEMPLATE_COUNTERATTACK_WITHIN_THE_FJORD.png differ diff --git a/assets/cn/war_archives/TEMPLATE_CRESCENDO_OF_POLARIS.png b/assets/cn/war_archives/TEMPLATE_CRESCENDO_OF_POLARIS.png index 4a3d58fb7d..5d18e6be13 100644 Binary files a/assets/cn/war_archives/TEMPLATE_CRESCENDO_OF_POLARIS.png and b/assets/cn/war_archives/TEMPLATE_CRESCENDO_OF_POLARIS.png differ diff --git a/assets/cn/war_archives/TEMPLATE_CRIMSON_ECHOES.png b/assets/cn/war_archives/TEMPLATE_CRIMSON_ECHOES.png index d9909af4e4..c93e8022d8 100644 Binary files a/assets/cn/war_archives/TEMPLATE_CRIMSON_ECHOES.png and b/assets/cn/war_archives/TEMPLATE_CRIMSON_ECHOES.png differ diff --git a/assets/cn/war_archives/TEMPLATE_DIVERGENT_CHESSBOARD.png b/assets/cn/war_archives/TEMPLATE_DIVERGENT_CHESSBOARD.png index e0ad5f1b22..0fbfb2d51a 100644 Binary files a/assets/cn/war_archives/TEMPLATE_DIVERGENT_CHESSBOARD.png and b/assets/cn/war_archives/TEMPLATE_DIVERGENT_CHESSBOARD.png differ diff --git a/assets/cn/war_archives/TEMPLATE_DREAMWAKERS_BUTTERFLY.png b/assets/cn/war_archives/TEMPLATE_DREAMWAKERS_BUTTERFLY.png index 363ae71062..ff313d1e8a 100644 Binary files a/assets/cn/war_archives/TEMPLATE_DREAMWAKERS_BUTTERFLY.png and b/assets/cn/war_archives/TEMPLATE_DREAMWAKERS_BUTTERFLY.png differ diff --git a/assets/cn/war_archives/TEMPLATE_EMPYREAL_TRAGICOMEDY.png b/assets/cn/war_archives/TEMPLATE_EMPYREAL_TRAGICOMEDY.png index cfb6b68759..59a0f2437b 100644 Binary files a/assets/cn/war_archives/TEMPLATE_EMPYREAL_TRAGICOMEDY.png and b/assets/cn/war_archives/TEMPLATE_EMPYREAL_TRAGICOMEDY.png differ diff --git a/assets/cn/war_archives/TEMPLATE_ENCIRCLING_GRAF_SPEE.png b/assets/cn/war_archives/TEMPLATE_ENCIRCLING_GRAF_SPEE.png index 5c04432ee6..ec7c314097 100644 Binary files a/assets/cn/war_archives/TEMPLATE_ENCIRCLING_GRAF_SPEE.png and b/assets/cn/war_archives/TEMPLATE_ENCIRCLING_GRAF_SPEE.png differ diff --git a/assets/cn/war_archives/TEMPLATE_FALLEN_WINGS.png b/assets/cn/war_archives/TEMPLATE_FALLEN_WINGS.png index f3492c6bba..500783853e 100644 Binary files a/assets/cn/war_archives/TEMPLATE_FALLEN_WINGS.png and b/assets/cn/war_archives/TEMPLATE_FALLEN_WINGS.png differ diff --git a/assets/cn/war_archives/TEMPLATE_GLORIOUS_BATTLE.png b/assets/cn/war_archives/TEMPLATE_GLORIOUS_BATTLE.png index 80a586a8bc..d4b287e15d 100644 Binary files a/assets/cn/war_archives/TEMPLATE_GLORIOUS_BATTLE.png and b/assets/cn/war_archives/TEMPLATE_GLORIOUS_BATTLE.png differ diff --git a/assets/cn/war_archives/TEMPLATE_INK_STAINED_STEEL_SAKURA.png b/assets/cn/war_archives/TEMPLATE_INK_STAINED_STEEL_SAKURA.png index 2fdb301708..6fb007ca3d 100644 Binary files a/assets/cn/war_archives/TEMPLATE_INK_STAINED_STEEL_SAKURA.png and b/assets/cn/war_archives/TEMPLATE_INK_STAINED_STEEL_SAKURA.png differ diff --git a/assets/cn/war_archives/TEMPLATE_INVERTED_ORTHANT.png b/assets/cn/war_archives/TEMPLATE_INVERTED_ORTHANT.png index 9638be25bb..af5b161d56 100644 Binary files a/assets/cn/war_archives/TEMPLATE_INVERTED_ORTHANT.png and b/assets/cn/war_archives/TEMPLATE_INVERTED_ORTHANT.png differ diff --git a/assets/cn/war_archives/TEMPLATE_IRIS_OF_LIGHT_AND_DARK.png b/assets/cn/war_archives/TEMPLATE_IRIS_OF_LIGHT_AND_DARK.png index af6ea24398..15bef5e2c2 100644 Binary files a/assets/cn/war_archives/TEMPLATE_IRIS_OF_LIGHT_AND_DARK.png and b/assets/cn/war_archives/TEMPLATE_IRIS_OF_LIGHT_AND_DARK.png differ diff --git a/assets/cn/war_archives/TEMPLATE_KHOROVOD_OF_DAWNS_RIME.png b/assets/cn/war_archives/TEMPLATE_KHOROVOD_OF_DAWNS_RIME.png index bc55d47f3b..561533f010 100644 Binary files a/assets/cn/war_archives/TEMPLATE_KHOROVOD_OF_DAWNS_RIME.png and b/assets/cn/war_archives/TEMPLATE_KHOROVOD_OF_DAWNS_RIME.png differ diff --git a/assets/cn/war_archives/TEMPLATE_MICROLAYER_MEDLEY.png b/assets/cn/war_archives/TEMPLATE_MICROLAYER_MEDLEY.png index e1a53d09bd..9d55ef4b35 100644 Binary files a/assets/cn/war_archives/TEMPLATE_MICROLAYER_MEDLEY.png and b/assets/cn/war_archives/TEMPLATE_MICROLAYER_MEDLEY.png differ diff --git a/assets/cn/war_archives/TEMPLATE_MIRROR_INVOLUTION.png b/assets/cn/war_archives/TEMPLATE_MIRROR_INVOLUTION.png index 277834964f..a5604d6761 100644 Binary files a/assets/cn/war_archives/TEMPLATE_MIRROR_INVOLUTION.png and b/assets/cn/war_archives/TEMPLATE_MIRROR_INVOLUTION.png differ diff --git a/assets/cn/war_archives/TEMPLATE_NORTHERN_OVERTURE.png b/assets/cn/war_archives/TEMPLATE_NORTHERN_OVERTURE.png index 5b42b4e801..8e86bc5df2 100644 Binary files a/assets/cn/war_archives/TEMPLATE_NORTHERN_OVERTURE.png and b/assets/cn/war_archives/TEMPLATE_NORTHERN_OVERTURE.png differ diff --git a/assets/cn/war_archives/TEMPLATE_PRELUDE_UNDER_THE_MOON.png b/assets/cn/war_archives/TEMPLATE_PRELUDE_UNDER_THE_MOON.png index 0a3a9b3177..bb6625d341 100644 Binary files a/assets/cn/war_archives/TEMPLATE_PRELUDE_UNDER_THE_MOON.png and b/assets/cn/war_archives/TEMPLATE_PRELUDE_UNDER_THE_MOON.png differ diff --git a/assets/cn/war_archives/TEMPLATE_SCHERZO_OF_IRON_AND_BLOOD.png b/assets/cn/war_archives/TEMPLATE_SCHERZO_OF_IRON_AND_BLOOD.png index 67ab4f3644..d01b1dce25 100644 Binary files a/assets/cn/war_archives/TEMPLATE_SCHERZO_OF_IRON_AND_BLOOD.png and b/assets/cn/war_archives/TEMPLATE_SCHERZO_OF_IRON_AND_BLOOD.png differ diff --git a/assets/cn/war_archives/TEMPLATE_SKYBOUND_ORATORIO.png b/assets/cn/war_archives/TEMPLATE_SKYBOUND_ORATORIO.png index 0f124747f2..bf31275bb0 100644 Binary files a/assets/cn/war_archives/TEMPLATE_SKYBOUND_ORATORIO.png and b/assets/cn/war_archives/TEMPLATE_SKYBOUND_ORATORIO.png differ diff --git a/assets/cn/war_archives/TEMPLATE_STARS_OF_THE_SHIMMERING_FJORD.png b/assets/cn/war_archives/TEMPLATE_STARS_OF_THE_SHIMMERING_FJORD.png index 0cb2c8f97a..3e8628579f 100644 Binary files a/assets/cn/war_archives/TEMPLATE_STARS_OF_THE_SHIMMERING_FJORD.png and b/assets/cn/war_archives/TEMPLATE_STARS_OF_THE_SHIMMERING_FJORD.png differ diff --git a/assets/cn/war_archives/TEMPLATE_STRIVE_WISH_AND_STRATEGIZE.png b/assets/cn/war_archives/TEMPLATE_STRIVE_WISH_AND_STRATEGIZE.png index a525cb0aa5..81fdae6b50 100644 Binary files a/assets/cn/war_archives/TEMPLATE_STRIVE_WISH_AND_STRATEGIZE.png and b/assets/cn/war_archives/TEMPLATE_STRIVE_WISH_AND_STRATEGIZE.png differ diff --git a/assets/cn/war_archives/TEMPLATE_SWIRLING_CHERRY_BLOSSOMS.png b/assets/cn/war_archives/TEMPLATE_SWIRLING_CHERRY_BLOSSOMS.png index a5f78af4d2..ca42df759f 100644 Binary files a/assets/cn/war_archives/TEMPLATE_SWIRLING_CHERRY_BLOSSOMS.png and b/assets/cn/war_archives/TEMPLATE_SWIRLING_CHERRY_BLOSSOMS.png differ diff --git a/assets/cn/war_archives/TEMPLATE_THE_ENIGMA_AND_THE_SHARK.png b/assets/cn/war_archives/TEMPLATE_THE_ENIGMA_AND_THE_SHARK.png index 0cd57a7546..bb38d93a53 100644 Binary files a/assets/cn/war_archives/TEMPLATE_THE_ENIGMA_AND_THE_SHARK.png and b/assets/cn/war_archives/TEMPLATE_THE_ENIGMA_AND_THE_SHARK.png differ diff --git a/assets/cn/war_archives/TEMPLATE_THE_SOLOMON_RANGER.png b/assets/cn/war_archives/TEMPLATE_THE_SOLOMON_RANGER.png index 3ca7b48218..bc2f7f5a74 100644 Binary files a/assets/cn/war_archives/TEMPLATE_THE_SOLOMON_RANGER.png and b/assets/cn/war_archives/TEMPLATE_THE_SOLOMON_RANGER.png differ diff --git a/assets/cn/war_archives/TEMPLATE_THE_WAY_HOME_IN_THE_NIGHT.png b/assets/cn/war_archives/TEMPLATE_THE_WAY_HOME_IN_THE_NIGHT.png index d68c3e1bd4..1505c44cbd 100644 Binary files a/assets/cn/war_archives/TEMPLATE_THE_WAY_HOME_IN_THE_NIGHT.png and b/assets/cn/war_archives/TEMPLATE_THE_WAY_HOME_IN_THE_NIGHT.png differ diff --git a/assets/cn/war_archives/TEMPLATE_UNIVERSE_IN_UNISON.png b/assets/cn/war_archives/TEMPLATE_UNIVERSE_IN_UNISON.png index b21ed3dfc3..3918e90ea1 100644 Binary files a/assets/cn/war_archives/TEMPLATE_UNIVERSE_IN_UNISON.png and b/assets/cn/war_archives/TEMPLATE_UNIVERSE_IN_UNISON.png differ diff --git a/assets/cn/war_archives/TEMPLATE_VISITORS_DYED_IN_RED.png b/assets/cn/war_archives/TEMPLATE_VISITORS_DYED_IN_RED.png index 2a90a581b1..a3ef867db9 100644 Binary files a/assets/cn/war_archives/TEMPLATE_VISITORS_DYED_IN_RED.png and b/assets/cn/war_archives/TEMPLATE_VISITORS_DYED_IN_RED.png differ diff --git a/assets/cn/war_archives/TEMPLATE_WINTERS_CROWN.png b/assets/cn/war_archives/TEMPLATE_WINTERS_CROWN.png index 755d1748e9..ca2c5ce32a 100644 Binary files a/assets/cn/war_archives/TEMPLATE_WINTERS_CROWN.png and b/assets/cn/war_archives/TEMPLATE_WINTERS_CROWN.png differ diff --git a/assets/jp/dorm/DORM_FURNITURE_BUY_ALL.png b/assets/jp/dorm/DORM_FURNITURE_BUY_ALL.png index 2482907512..4d64df57db 100644 Binary files a/assets/jp/dorm/DORM_FURNITURE_BUY_ALL.png and b/assets/jp/dorm/DORM_FURNITURE_BUY_ALL.png differ diff --git a/assets/jp/dorm/DORM_FURNITURE_BUY_CONFIRM.png b/assets/jp/dorm/DORM_FURNITURE_BUY_CONFIRM.png index 998c322194..cbc53030b2 100644 Binary files a/assets/jp/dorm/DORM_FURNITURE_BUY_CONFIRM.png and b/assets/jp/dorm/DORM_FURNITURE_BUY_CONFIRM.png differ diff --git a/assets/jp/dorm/DORM_FURNITURE_BUY_SET.png b/assets/jp/dorm/DORM_FURNITURE_BUY_SET.png index 8148357c43..c263109b59 100644 Binary files a/assets/jp/dorm/DORM_FURNITURE_BUY_SET.png and b/assets/jp/dorm/DORM_FURNITURE_BUY_SET.png differ diff --git a/assets/jp/dorm/DORM_FURNITURE_DETAILS_ENTER.png b/assets/jp/dorm/DORM_FURNITURE_DETAILS_ENTER.png index ed1f808e9c..3d983083e1 100644 Binary files a/assets/jp/dorm/DORM_FURNITURE_DETAILS_ENTER.png and b/assets/jp/dorm/DORM_FURNITURE_DETAILS_ENTER.png differ diff --git a/assets/jp/os_ash/META_BEACON_DATA.png b/assets/jp/os_ash/META_BEACON_DATA.png index 8a4b35bff8..135e96d597 100644 Binary files a/assets/jp/os_ash/META_BEACON_DATA.png and b/assets/jp/os_ash/META_BEACON_DATA.png differ diff --git a/assets/jp/os_ash/META_DAMAGE.png b/assets/jp/os_ash/META_DAMAGE.png index fb53fab222..8effce2251 100644 Binary files a/assets/jp/os_ash/META_DAMAGE.png and b/assets/jp/os_ash/META_DAMAGE.png differ diff --git a/assets/jp/os_ash/META_DOSSIER_DATA.png b/assets/jp/os_ash/META_DOSSIER_DATA.png index d47bc92a5e..e55c0c925d 100644 Binary files a/assets/jp/os_ash/META_DOSSIER_DATA.png and b/assets/jp/os_ash/META_DOSSIER_DATA.png differ diff --git a/assets/jp/war_archives/TEMPLATE_CRESCENDO_OF_POLARIS.png b/assets/jp/war_archives/TEMPLATE_CRESCENDO_OF_POLARIS.png index 632cbf49ec..e14fc587a5 100644 Binary files a/assets/jp/war_archives/TEMPLATE_CRESCENDO_OF_POLARIS.png and b/assets/jp/war_archives/TEMPLATE_CRESCENDO_OF_POLARIS.png differ diff --git a/assets/jp/war_archives/TEMPLATE_CRIMSON_ECHOES.png b/assets/jp/war_archives/TEMPLATE_CRIMSON_ECHOES.png index 6067f53b68..ccd3e9e5fa 100644 Binary files a/assets/jp/war_archives/TEMPLATE_CRIMSON_ECHOES.png and b/assets/jp/war_archives/TEMPLATE_CRIMSON_ECHOES.png differ diff --git a/assets/jp/war_archives/TEMPLATE_DIVERGENT_CHESSBOARD.png b/assets/jp/war_archives/TEMPLATE_DIVERGENT_CHESSBOARD.png index e0ad5f1b22..a6ad2f7e96 100644 Binary files a/assets/jp/war_archives/TEMPLATE_DIVERGENT_CHESSBOARD.png and b/assets/jp/war_archives/TEMPLATE_DIVERGENT_CHESSBOARD.png differ diff --git a/assets/jp/war_archives/TEMPLATE_ENCIRCLING_GRAF_SPEE.png b/assets/jp/war_archives/TEMPLATE_ENCIRCLING_GRAF_SPEE.png index cf1bd8acb9..cf8507ce69 100644 Binary files a/assets/jp/war_archives/TEMPLATE_ENCIRCLING_GRAF_SPEE.png and b/assets/jp/war_archives/TEMPLATE_ENCIRCLING_GRAF_SPEE.png differ diff --git a/assets/jp/war_archives/TEMPLATE_FALLEN_WINGS.png b/assets/jp/war_archives/TEMPLATE_FALLEN_WINGS.png index f3492c6bba..936781a7b0 100644 Binary files a/assets/jp/war_archives/TEMPLATE_FALLEN_WINGS.png and b/assets/jp/war_archives/TEMPLATE_FALLEN_WINGS.png differ diff --git a/assets/jp/war_archives/TEMPLATE_GLORIOUS_BATTLE.png b/assets/jp/war_archives/TEMPLATE_GLORIOUS_BATTLE.png index 80a586a8bc..0c2f9642f6 100644 Binary files a/assets/jp/war_archives/TEMPLATE_GLORIOUS_BATTLE.png and b/assets/jp/war_archives/TEMPLATE_GLORIOUS_BATTLE.png differ diff --git a/assets/jp/war_archives/TEMPLATE_INK_STAINED_STEEL_SAKURA.png b/assets/jp/war_archives/TEMPLATE_INK_STAINED_STEEL_SAKURA.png index 2fdb301708..b922440b3b 100644 Binary files a/assets/jp/war_archives/TEMPLATE_INK_STAINED_STEEL_SAKURA.png and b/assets/jp/war_archives/TEMPLATE_INK_STAINED_STEEL_SAKURA.png differ diff --git a/assets/jp/war_archives/TEMPLATE_IRIS_OF_LIGHT_AND_DARK.png b/assets/jp/war_archives/TEMPLATE_IRIS_OF_LIGHT_AND_DARK.png index af6ea24398..f339de6eb1 100644 Binary files a/assets/jp/war_archives/TEMPLATE_IRIS_OF_LIGHT_AND_DARK.png and b/assets/jp/war_archives/TEMPLATE_IRIS_OF_LIGHT_AND_DARK.png differ diff --git a/assets/jp/war_archives/TEMPLATE_STRIVE_WISH_AND_STRATEGIZE.png b/assets/jp/war_archives/TEMPLATE_STRIVE_WISH_AND_STRATEGIZE.png index a525cb0aa5..bf6a53e558 100644 Binary files a/assets/jp/war_archives/TEMPLATE_STRIVE_WISH_AND_STRATEGIZE.png and b/assets/jp/war_archives/TEMPLATE_STRIVE_WISH_AND_STRATEGIZE.png differ diff --git a/assets/jp/war_archives/TEMPLATE_UNIVERSE_IN_UNISON.png b/assets/jp/war_archives/TEMPLATE_UNIVERSE_IN_UNISON.png index ca28191e23..5e68832a77 100644 Binary files a/assets/jp/war_archives/TEMPLATE_UNIVERSE_IN_UNISON.png and b/assets/jp/war_archives/TEMPLATE_UNIVERSE_IN_UNISON.png differ diff --git a/assets/jp/war_archives/TEMPLATE_VISITORS_DYED_IN_RED.png b/assets/jp/war_archives/TEMPLATE_VISITORS_DYED_IN_RED.png index 2a90a581b1..15e7a8c9ac 100644 Binary files a/assets/jp/war_archives/TEMPLATE_VISITORS_DYED_IN_RED.png and b/assets/jp/war_archives/TEMPLATE_VISITORS_DYED_IN_RED.png differ diff --git a/assets/jp/war_archives/TEMPLATE_WINTERS_CROWN.png b/assets/jp/war_archives/TEMPLATE_WINTERS_CROWN.png index 755d1748e9..69d7a5e4d4 100644 Binary files a/assets/jp/war_archives/TEMPLATE_WINTERS_CROWN.png and b/assets/jp/war_archives/TEMPLATE_WINTERS_CROWN.png differ diff --git a/assets/tw/war_archives/TEMPLATE_DIVERGENT_CHESSBOARD.png b/assets/tw/war_archives/TEMPLATE_DIVERGENT_CHESSBOARD.png index 1a4b518450..dcd429b0b8 100644 Binary files a/assets/tw/war_archives/TEMPLATE_DIVERGENT_CHESSBOARD.png and b/assets/tw/war_archives/TEMPLATE_DIVERGENT_CHESSBOARD.png differ diff --git a/assets/tw/war_archives/TEMPLATE_ENCIRCLING_GRAF_SPEE.png b/assets/tw/war_archives/TEMPLATE_ENCIRCLING_GRAF_SPEE.png index 3881c2a70e..8b0a289810 100644 Binary files a/assets/tw/war_archives/TEMPLATE_ENCIRCLING_GRAF_SPEE.png and b/assets/tw/war_archives/TEMPLATE_ENCIRCLING_GRAF_SPEE.png differ diff --git a/assets/tw/war_archives/TEMPLATE_FALLEN_WINGS.png b/assets/tw/war_archives/TEMPLATE_FALLEN_WINGS.png index 71e52d0a23..f7a06023ed 100644 Binary files a/assets/tw/war_archives/TEMPLATE_FALLEN_WINGS.png and b/assets/tw/war_archives/TEMPLATE_FALLEN_WINGS.png differ diff --git a/assets/tw/war_archives/TEMPLATE_GLORIOUS_BATTLE.png b/assets/tw/war_archives/TEMPLATE_GLORIOUS_BATTLE.png index ffb31d4983..ba8cf8f935 100644 Binary files a/assets/tw/war_archives/TEMPLATE_GLORIOUS_BATTLE.png and b/assets/tw/war_archives/TEMPLATE_GLORIOUS_BATTLE.png differ diff --git a/assets/tw/war_archives/TEMPLATE_MICROLAYER_MEDLEY.png b/assets/tw/war_archives/TEMPLATE_MICROLAYER_MEDLEY.png index d6aa3f871c..7dd2048b7b 100644 Binary files a/assets/tw/war_archives/TEMPLATE_MICROLAYER_MEDLEY.png and b/assets/tw/war_archives/TEMPLATE_MICROLAYER_MEDLEY.png differ diff --git a/assets/tw/war_archives/TEMPLATE_STARS_OF_THE_SHIMMERING_FJORD.png b/assets/tw/war_archives/TEMPLATE_STARS_OF_THE_SHIMMERING_FJORD.png index 2120957925..2ff5eafaf0 100644 Binary files a/assets/tw/war_archives/TEMPLATE_STARS_OF_THE_SHIMMERING_FJORD.png and b/assets/tw/war_archives/TEMPLATE_STARS_OF_THE_SHIMMERING_FJORD.png differ diff --git a/assets/tw/war_archives/TEMPLATE_STRIVE_WISH_AND_STRATEGIZE.png b/assets/tw/war_archives/TEMPLATE_STRIVE_WISH_AND_STRATEGIZE.png index 6d8c33c4d0..5509c630d4 100644 Binary files a/assets/tw/war_archives/TEMPLATE_STRIVE_WISH_AND_STRATEGIZE.png and b/assets/tw/war_archives/TEMPLATE_STRIVE_WISH_AND_STRATEGIZE.png differ diff --git a/assets/tw/war_archives/TEMPLATE_VISITORS_DYED_IN_RED.png b/assets/tw/war_archives/TEMPLATE_VISITORS_DYED_IN_RED.png index df50e35369..6275350be8 100644 Binary files a/assets/tw/war_archives/TEMPLATE_VISITORS_DYED_IN_RED.png and b/assets/tw/war_archives/TEMPLATE_VISITORS_DYED_IN_RED.png differ diff --git a/assets/tw/war_archives/TEMPLATE_WINTERS_CROWN.png b/assets/tw/war_archives/TEMPLATE_WINTERS_CROWN.png index 215d082bed..95e0387d6f 100644 Binary files a/assets/tw/war_archives/TEMPLATE_WINTERS_CROWN.png and b/assets/tw/war_archives/TEMPLATE_WINTERS_CROWN.png differ diff --git a/campaign/campaign_war_archives/campaign_base.py b/campaign/campaign_war_archives/campaign_base.py index 26cdf43d5c..ecfac7b812 100644 --- a/campaign/campaign_war_archives/campaign_base.py +++ b/campaign/campaign_war_archives/campaign_base.py @@ -58,12 +58,15 @@ def _search_archives_entrance(self, name, skip_first_screenshot=True): Fixed number of scrolls until give up, may need to increase as more war archives campaigns are added """ - for _ in range(10): + for _ in range(20): if skip_first_screenshot: skip_first_screenshot = False else: self.device.screenshot() + while self.device.click_record and self.device.click_record[-1] == 'WAR_ARCHIVES_SCROLL': + self.device.click_record.pop() + # Drag may result in accidental exit, recover # before starting next search attempt while not self.appear(WAR_ARCHIVES_CHECK): @@ -80,7 +83,7 @@ def _search_archives_entrance(self, name, skip_first_screenshot=True): if WAR_ARCHIVES_SCROLL.at_bottom(main=self): WAR_ARCHIVES_SCROLL.set_top(main=self) else: - WAR_ARCHIVES_SCROLL.next_page(main=self) + WAR_ARCHIVES_SCROLL.next_page(main=self, page=0.66) continue else: break diff --git a/module/combat/level.py b/module/combat/level.py index 8350f998d1..fdbcd5f6dd 100644 --- a/module/combat/level.py +++ b/module/combat/level.py @@ -1,3 +1,5 @@ +import module.config.server as server + from module.base.base import ModuleBase from module.base.button import * from module.base.decorator import Config @@ -41,7 +43,7 @@ def _lv_grid(self): @Config.when(SERVER='jp') def _lv_grid(self): - return ButtonGrid(origin=(58, 128), delta=(0, 100), button_shape=(46, 19), grid_shape=(1, 6)) + return ButtonGrid(origin=(34, 128), delta=(0, 100), button_shape=(68, 19), grid_shape=(1, 6)) @Config.when(SERVER=None) def _lv_grid(self): @@ -125,11 +127,20 @@ def pre_process(self, image): image = cv2.subtract(255, cv2.multiply(image, 255 / (255 - luma_bg))) # Find 'L' to strip 'LV.'. # Return an empty image if 'L' is not found. - letter_l = np.nonzero(image[9:15, :].max(axis=0) < 127)[0] - if len(letter_l): - first_digit = letter_l[0] + 17 - if first_digit + 3 < 46: # LV_GRID_MAIN.button_shape[0] = 46 - return image[:, first_digit:] + if server.server != 'jp': + letter_l = np.nonzero(image[9:15, :].max(axis=0) < 127)[0] + if len(letter_l): + first_digit = letter_l[0] + 17 + if first_digit + 3 < 46: # LV_GRID_MAIN.button_shape[0] = 46 + return image[:, first_digit:] + else: + letter_l = np.nonzero(image[5:11, :].max(axis=0) < 63)[0] + if len(letter_l): + first_digit = letter_l[0] + 23 # maximal size in dock and minimal size in sea grid + if first_digit + 3 < 70: # LV_GRID_MAIN.button_shape[0] = 46 + image = image[:, first_digit:] + image = cv2.copyMakeBorder(image, 2, 2, 2, 2, cv2.BORDER_CONSTANT, value=(255, 255, 255)) + return image return np.array([[255]], dtype=np.uint8) def after_process(self, result): diff --git a/module/dorm/assets.py b/module/dorm/assets.py index df177b24bc..7a23d4d422 100644 --- a/module/dorm/assets.py +++ b/module/dorm/assets.py @@ -6,12 +6,12 @@ DORM_FEED_CHECK = Button(area={'cn': (162, 342, 274, 370), 'en': (162, 342, 274, 370), 'jp': (162, 342, 274, 370), 'tw': (162, 342, 274, 370)}, color={'cn': (182, 179, 171), 'en': (182, 179, 171), 'jp': (182, 179, 171), 'tw': (182, 179, 171)}, button={'cn': (162, 342, 274, 370), 'en': (162, 342, 274, 370), 'jp': (162, 342, 274, 370), 'tw': (162, 342, 274, 370)}, file={'cn': './assets/cn/dorm/DORM_FEED_CHECK.png', 'en': './assets/en/dorm/DORM_FEED_CHECK.png', 'jp': './assets/jp/dorm/DORM_FEED_CHECK.png', 'tw': './assets/tw/dorm/DORM_FEED_CHECK.png'}) DORM_FEED_ENTER = Button(area={'cn': (254, 581, 300, 605), 'en': (298, 581, 344, 605), 'jp': (254, 581, 300, 605), 'tw': (254, 581, 300, 605)}, color={'cn': (204, 192, 177), 'en': (204, 192, 176), 'jp': (204, 192, 177), 'tw': (204, 192, 177)}, button={'cn': (254, 581, 300, 605), 'en': (298, 581, 344, 605), 'jp': (254, 581, 300, 605), 'tw': (254, 581, 300, 605)}, file={'cn': './assets/cn/dorm/DORM_FEED_ENTER.png', 'en': './assets/en/dorm/DORM_FEED_ENTER.png', 'jp': './assets/jp/dorm/DORM_FEED_ENTER.png', 'tw': './assets/tw/dorm/DORM_FEED_ENTER.png'}) -DORM_FURNITURE_BUY_ALL = Button(area={'cn': (818, 621, 1072, 677), 'en': (819, 621, 1072, 677), 'jp': (820, 621, 1072, 677), 'tw': (818, 621, 1072, 677)}, color={'cn': (249, 202, 66), 'en': (248, 201, 66), 'jp': (247, 201, 66), 'tw': (248, 201, 66)}, button={'cn': (818, 621, 1072, 677), 'en': (819, 621, 1072, 677), 'jp': (820, 621, 1072, 677), 'tw': (818, 621, 1072, 677)}, file={'cn': './assets/cn/dorm/DORM_FURNITURE_BUY_ALL.png', 'en': './assets/en/dorm/DORM_FURNITURE_BUY_ALL.png', 'jp': './assets/jp/dorm/DORM_FURNITURE_BUY_ALL.png', 'tw': './assets/tw/dorm/DORM_FURNITURE_BUY_ALL.png'}) -DORM_FURNITURE_BUY_CONFIRM = Button(area={'cn': (644, 464, 972, 517), 'en': (645, 464, 971, 518), 'jp': (645, 465, 973, 517), 'tw': (644, 464, 972, 518)}, color={'cn': (251, 204, 66), 'en': (250, 203, 66), 'jp': (250, 203, 66), 'tw': (250, 203, 66)}, button={'cn': (644, 464, 972, 517), 'en': (645, 464, 971, 518), 'jp': (645, 465, 973, 517), 'tw': (644, 464, 972, 518)}, file={'cn': './assets/cn/dorm/DORM_FURNITURE_BUY_CONFIRM.png', 'en': './assets/en/dorm/DORM_FURNITURE_BUY_CONFIRM.png', 'jp': './assets/jp/dorm/DORM_FURNITURE_BUY_CONFIRM.png', 'tw': './assets/tw/dorm/DORM_FURNITURE_BUY_CONFIRM.png'}) -DORM_FURNITURE_BUY_SET = Button(area={'cn': (505, 621, 759, 677), 'en': (505, 621, 759, 677), 'jp': (505, 621, 760, 677), 'tw': (505, 621, 759, 677)}, color={'cn': (248, 202, 66), 'en': (247, 201, 66), 'jp': (245, 199, 65), 'tw': (247, 201, 66)}, button={'cn': (505, 621, 759, 677), 'en': (505, 621, 759, 677), 'jp': (505, 621, 760, 677), 'tw': (505, 621, 759, 677)}, file={'cn': './assets/cn/dorm/DORM_FURNITURE_BUY_SET.png', 'en': './assets/en/dorm/DORM_FURNITURE_BUY_SET.png', 'jp': './assets/jp/dorm/DORM_FURNITURE_BUY_SET.png', 'tw': './assets/tw/dorm/DORM_FURNITURE_BUY_SET.png'}) +DORM_FURNITURE_BUY_ALL = Button(area={'cn': (818, 621, 1072, 677), 'en': (819, 621, 1072, 677), 'jp': (899, 636, 991, 661), 'tw': (818, 621, 1072, 677)}, color={'cn': (249, 202, 66), 'en': (248, 201, 66), 'jp': (215, 171, 65), 'tw': (248, 201, 66)}, button={'cn': (818, 621, 1072, 677), 'en': (819, 621, 1072, 677), 'jp': (899, 636, 991, 661), 'tw': (818, 621, 1072, 677)}, file={'cn': './assets/cn/dorm/DORM_FURNITURE_BUY_ALL.png', 'en': './assets/en/dorm/DORM_FURNITURE_BUY_ALL.png', 'jp': './assets/jp/dorm/DORM_FURNITURE_BUY_ALL.png', 'tw': './assets/tw/dorm/DORM_FURNITURE_BUY_ALL.png'}) +DORM_FURNITURE_BUY_CONFIRM = Button(area={'cn': (644, 464, 972, 517), 'en': (645, 464, 971, 518), 'jp': (763, 473, 854, 509), 'tw': (644, 464, 972, 518)}, color={'cn': (251, 204, 66), 'en': (250, 203, 66), 'jp': (232, 185, 68), 'tw': (250, 203, 66)}, button={'cn': (644, 464, 972, 517), 'en': (645, 464, 971, 518), 'jp': (763, 473, 854, 509), 'tw': (644, 464, 972, 518)}, file={'cn': './assets/cn/dorm/DORM_FURNITURE_BUY_CONFIRM.png', 'en': './assets/en/dorm/DORM_FURNITURE_BUY_CONFIRM.png', 'jp': './assets/jp/dorm/DORM_FURNITURE_BUY_CONFIRM.png', 'tw': './assets/tw/dorm/DORM_FURNITURE_BUY_CONFIRM.png'}) +DORM_FURNITURE_BUY_SET = Button(area={'cn': (505, 621, 759, 677), 'en': (505, 621, 759, 677), 'jp': (570, 636, 696, 661), 'tw': (505, 621, 759, 677)}, color={'cn': (248, 202, 66), 'en': (247, 201, 66), 'jp': (219, 175, 65), 'tw': (247, 201, 66)}, button={'cn': (505, 621, 759, 677), 'en': (505, 621, 759, 677), 'jp': (570, 636, 696, 661), 'tw': (505, 621, 759, 677)}, file={'cn': './assets/cn/dorm/DORM_FURNITURE_BUY_SET.png', 'en': './assets/en/dorm/DORM_FURNITURE_BUY_SET.png', 'jp': './assets/jp/dorm/DORM_FURNITURE_BUY_SET.png', 'tw': './assets/tw/dorm/DORM_FURNITURE_BUY_SET.png'}) DORM_FURNITURE_CONFIRM = Button(area={'cn': (614, 476, 667, 503), 'en': (593, 470, 688, 505), 'jp': (614, 476, 667, 503), 'tw': (614, 476, 667, 503)}, color={'cn': (226, 155, 84), 'en': (228, 159, 89), 'jp': (226, 155, 84), 'tw': (226, 155, 84)}, button={'cn': (614, 476, 667, 503), 'en': (593, 470, 688, 505), 'jp': (614, 476, 667, 503), 'tw': (614, 476, 667, 503)}, file={'cn': './assets/cn/dorm/DORM_FURNITURE_CONFIRM.png', 'en': './assets/en/dorm/DORM_FURNITURE_CONFIRM.png', 'jp': './assets/cn/dorm/DORM_FURNITURE_CONFIRM.png', 'tw': './assets/cn/dorm/DORM_FURNITURE_CONFIRM.png'}) DORM_FURNITURE_COUNTDOWN = Button(area={'cn': (422, 244, 437, 259), 'en': (422, 244, 437, 259), 'jp': (422, 244, 437, 259), 'tw': (422, 244, 437, 259)}, color={'cn': (222, 222, 224), 'en': (222, 222, 224), 'jp': (222, 222, 224), 'tw': (222, 222, 224)}, button={'cn': (422, 244, 437, 259), 'en': (422, 244, 437, 259), 'jp': (422, 244, 437, 259), 'tw': (422, 244, 437, 259)}, file={'cn': './assets/cn/dorm/DORM_FURNITURE_COUNTDOWN.png', 'en': './assets/en/dorm/DORM_FURNITURE_COUNTDOWN.png', 'jp': './assets/jp/dorm/DORM_FURNITURE_COUNTDOWN.png', 'tw': './assets/tw/dorm/DORM_FURNITURE_COUNTDOWN.png'}) -DORM_FURNITURE_DETAILS_ENTER = Button(area={'cn': (1003, 444, 1259, 496), 'en': (1003, 444, 1259, 496), 'jp': (1003, 444, 1259, 496), 'tw': (1003, 444, 1258, 496)}, color={'cn': (252, 204, 66), 'en': (251, 204, 66), 'jp': (251, 204, 66), 'tw': (251, 204, 66)}, button={'cn': (1003, 444, 1259, 496), 'en': (1003, 444, 1259, 496), 'jp': (1003, 444, 1259, 496), 'tw': (1003, 444, 1258, 496)}, file={'cn': './assets/cn/dorm/DORM_FURNITURE_DETAILS_ENTER.png', 'en': './assets/en/dorm/DORM_FURNITURE_DETAILS_ENTER.png', 'jp': './assets/jp/dorm/DORM_FURNITURE_DETAILS_ENTER.png', 'tw': './assets/tw/dorm/DORM_FURNITURE_DETAILS_ENTER.png'}) +DORM_FURNITURE_DETAILS_ENTER = Button(area={'cn': (1003, 444, 1259, 496), 'en': (1003, 444, 1259, 496), 'jp': (1107, 457, 1155, 482), 'tw': (1003, 444, 1258, 496)}, color={'cn': (252, 204, 66), 'en': (251, 204, 66), 'jp': (216, 172, 65), 'tw': (251, 204, 66)}, button={'cn': (1003, 444, 1259, 496), 'en': (1003, 444, 1259, 496), 'jp': (1107, 457, 1155, 482), 'tw': (1003, 444, 1258, 496)}, file={'cn': './assets/cn/dorm/DORM_FURNITURE_DETAILS_ENTER.png', 'en': './assets/en/dorm/DORM_FURNITURE_DETAILS_ENTER.png', 'jp': './assets/jp/dorm/DORM_FURNITURE_DETAILS_ENTER.png', 'tw': './assets/tw/dorm/DORM_FURNITURE_DETAILS_ENTER.png'}) DORM_FURNITURE_DETAILS_QUIT = Button(area={'cn': (100, 121, 114, 141), 'en': (100, 121, 114, 141), 'jp': (100, 121, 114, 141), 'tw': (100, 121, 114, 141)}, color={'cn': (255, 224, 131), 'en': (255, 224, 131), 'jp': (255, 224, 131), 'tw': (255, 224, 131)}, button={'cn': (100, 121, 114, 141), 'en': (100, 121, 114, 141), 'jp': (100, 121, 114, 141), 'tw': (100, 121, 114, 141)}, file={'cn': './assets/cn/dorm/DORM_FURNITURE_DETAILS_QUIT.png', 'en': './assets/en/dorm/DORM_FURNITURE_DETAILS_QUIT.png', 'jp': './assets/jp/dorm/DORM_FURNITURE_DETAILS_QUIT.png', 'tw': './assets/tw/dorm/DORM_FURNITURE_DETAILS_QUIT.png'}) DORM_FURNITURE_SHOP_ENTER = Button(area={'cn': (1067, 604, 1120, 650), 'en': (1085, 604, 1139, 650), 'jp': (1067, 604, 1120, 650), 'tw': (1067, 604, 1120, 650)}, color={'cn': (255, 226, 130), 'en': (255, 227, 132), 'jp': (255, 226, 130), 'tw': (255, 226, 130)}, button={'cn': (1067, 604, 1120, 650), 'en': (1085, 604, 1139, 650), 'jp': (1067, 604, 1120, 650), 'tw': (1067, 604, 1120, 650)}, file={'cn': './assets/cn/dorm/DORM_FURNITURE_SHOP_ENTER.png', 'en': './assets/en/dorm/DORM_FURNITURE_SHOP_ENTER.png', 'jp': './assets/jp/dorm/DORM_FURNITURE_SHOP_ENTER.png', 'tw': './assets/tw/dorm/DORM_FURNITURE_SHOP_ENTER.png'}) DORM_FURNITURE_SHOP_FIRST = Button(area={'cn': (241, 565, 271, 572), 'en': (241, 565, 271, 572), 'jp': (241, 565, 271, 572), 'tw': (241, 565, 271, 572)}, color={'cn': (247, 213, 129), 'en': (247, 213, 129), 'jp': (247, 213, 129), 'tw': (247, 213, 129)}, button={'cn': (241, 565, 271, 572), 'en': (241, 565, 271, 572), 'jp': (241, 565, 271, 572), 'tw': (241, 565, 271, 572)}, file={'cn': './assets/cn/dorm/DORM_FURNITURE_SHOP_FIRST.png', 'en': './assets/en/dorm/DORM_FURNITURE_SHOP_FIRST.png', 'jp': './assets/jp/dorm/DORM_FURNITURE_SHOP_FIRST.png', 'tw': './assets/tw/dorm/DORM_FURNITURE_SHOP_FIRST.png'}) diff --git a/module/os_ash/assets.py b/module/os_ash/assets.py index 82e196a229..1f322e76d9 100644 --- a/module/os_ash/assets.py +++ b/module/os_ash/assets.py @@ -27,11 +27,11 @@ META_AUTO_ATTACK_CONFIRM = Button(area={'cn': (717, 493, 884, 547), 'en': (736, 494, 861, 544), 'jp': (717, 493, 884, 547), 'tw': (717, 493, 884, 547)}, color={'cn': (185, 98, 88), 'en': (190, 109, 99), 'jp': (185, 98, 88), 'tw': (185, 98, 88)}, button={'cn': (717, 493, 884, 547), 'en': (736, 494, 861, 544), 'jp': (717, 493, 884, 547), 'tw': (717, 493, 884, 547)}, file={'cn': './assets/cn/os_ash/META_AUTO_ATTACK_CONFIRM.png', 'en': './assets/en/os_ash/META_AUTO_ATTACK_CONFIRM.png', 'jp': './assets/cn/os_ash/META_AUTO_ATTACK_CONFIRM.png', 'tw': './assets/cn/os_ash/META_AUTO_ATTACK_CONFIRM.png'}) META_AUTO_ATTACK_START = Button(area={'cn': (746, 648, 777, 683), 'en': (718, 653, 742, 677), 'jp': (746, 648, 777, 683), 'tw': (746, 648, 777, 683)}, color={'cn': (77, 63, 61), 'en': (103, 86, 85), 'jp': (77, 63, 61), 'tw': (77, 63, 61)}, button={'cn': (746, 648, 777, 683), 'en': (718, 653, 742, 677), 'jp': (746, 648, 777, 683), 'tw': (746, 648, 777, 683)}, file={'cn': './assets/cn/os_ash/META_AUTO_ATTACK_START.png', 'en': './assets/en/os_ash/META_AUTO_ATTACK_START.png', 'jp': './assets/cn/os_ash/META_AUTO_ATTACK_START.png', 'tw': './assets/cn/os_ash/META_AUTO_ATTACK_START.png'}) META_AUTO_CONFIRM = Button(area={'cn': (608, 506, 674, 535), 'en': (584, 510, 698, 530), 'jp': (563, 498, 717, 540), 'tw': (608, 506, 674, 535)}, color={'cn': (208, 148, 141), 'en': (216, 168, 162), 'jp': (187, 103, 92), 'tw': (208, 148, 141)}, button={'cn': (608, 506, 674, 535), 'en': (584, 510, 698, 530), 'jp': (563, 498, 717, 540), 'tw': (608, 506, 674, 535)}, file={'cn': './assets/cn/os_ash/META_AUTO_CONFIRM.png', 'en': './assets/en/os_ash/META_AUTO_CONFIRM.png', 'jp': './assets/jp/os_ash/META_AUTO_CONFIRM.png', 'tw': './assets/cn/os_ash/META_AUTO_CONFIRM.png'}) -META_BEACON_DATA = Button(area={'cn': (840, 22, 951, 45), 'en': (840, 22, 951, 45), 'jp': (840, 22, 951, 45), 'tw': (840, 22, 951, 45)}, color={'cn': (49, 53, 52), 'en': (49, 53, 52), 'jp': (49, 53, 52), 'tw': (49, 53, 52)}, button={'cn': (840, 22, 951, 45), 'en': (840, 22, 951, 45), 'jp': (840, 22, 951, 45), 'tw': (840, 22, 951, 45)}, file={'cn': './assets/cn/os_ash/META_BEACON_DATA.png', 'en': './assets/en/os_ash/META_BEACON_DATA.png', 'jp': './assets/jp/os_ash/META_BEACON_DATA.png', 'tw': './assets/tw/os_ash/META_BEACON_DATA.png'}) +META_BEACON_DATA = Button(area={'cn': (840, 22, 951, 45), 'en': (840, 22, 951, 45), 'jp': (865, 21, 923, 44), 'tw': (840, 22, 951, 45)}, color={'cn': (49, 53, 52), 'en': (49, 53, 52), 'jp': (63, 61, 62), 'tw': (49, 53, 52)}, button={'cn': (840, 22, 951, 45), 'en': (840, 22, 951, 45), 'jp': (865, 21, 923, 44), 'tw': (840, 22, 951, 45)}, file={'cn': './assets/cn/os_ash/META_BEACON_DATA.png', 'en': './assets/en/os_ash/META_BEACON_DATA.png', 'jp': './assets/jp/os_ash/META_BEACON_DATA.png', 'tw': './assets/tw/os_ash/META_BEACON_DATA.png'}) META_BEACON_FLAG = Button(area={'cn': (788, 22, 811, 45), 'en': (788, 22, 811, 45), 'jp': (788, 22, 811, 45), 'tw': (788, 22, 811, 45)}, color={'cn': (48, 111, 134), 'en': (48, 111, 134), 'jp': (48, 111, 134), 'tw': (48, 111, 134)}, button={'cn': (788, 22, 811, 45), 'en': (788, 22, 811, 45), 'jp': (788, 22, 811, 45), 'tw': (788, 22, 811, 45)}, file={'cn': './assets/cn/os_ash/META_BEACON_FLAG.png', 'en': './assets/en/os_ash/META_BEACON_FLAG.png', 'jp': './assets/jp/os_ash/META_BEACON_FLAG.png', 'tw': './assets/tw/os_ash/META_BEACON_FLAG.png'}) META_BEGIN_ENTRANCE = Button(area={'cn': (651, 348, 706, 372), 'en': (646, 359, 706, 370), 'jp': (652, 348, 706, 371), 'tw': (650, 348, 706, 372)}, color={'cn': (99, 99, 98), 'en': (100, 104, 103), 'jp': (101, 102, 101), 'tw': (95, 97, 99)}, button={'cn': (546, 115, 748, 503), 'en': (546, 115, 748, 503), 'jp': (546, 115, 748, 503), 'tw': (546, 115, 748, 503)}, file={'cn': './assets/cn/os_ash/META_BEGIN_ENTRANCE.png', 'en': './assets/en/os_ash/META_BEGIN_ENTRANCE.png', 'jp': './assets/jp/os_ash/META_BEGIN_ENTRANCE.gif', 'tw': './assets/tw/os_ash/META_BEGIN_ENTRANCE.png'}) -META_DAMAGE = Button(area={'cn': (1196, 380, 1276, 416), 'en': (1196, 380, 1276, 416), 'jp': (1196, 380, 1276, 416), 'tw': (1196, 380, 1276, 416)}, color={'cn': (58, 59, 58), 'en': (58, 59, 58), 'jp': (58, 59, 58), 'tw': (58, 59, 58)}, button={'cn': (1196, 380, 1276, 416), 'en': (1196, 380, 1276, 416), 'jp': (1196, 380, 1276, 416), 'tw': (1196, 380, 1276, 416)}, file={'cn': './assets/cn/os_ash/META_DAMAGE.png', 'en': './assets/en/os_ash/META_DAMAGE.png', 'jp': './assets/jp/os_ash/META_DAMAGE.png', 'tw': './assets/tw/os_ash/META_DAMAGE.png'}) -META_DOSSIER_DATA = Button(area={'cn': (1050, 22, 1161, 46), 'en': (1050, 22, 1161, 46), 'jp': (1050, 22, 1161, 46), 'tw': (1050, 22, 1161, 46)}, color={'cn': (53, 56, 56), 'en': (53, 56, 56), 'jp': (53, 56, 56), 'tw': (53, 56, 56)}, button={'cn': (1050, 22, 1161, 46), 'en': (1050, 22, 1161, 46), 'jp': (1050, 22, 1161, 46), 'tw': (1050, 22, 1161, 46)}, file={'cn': './assets/cn/os_ash/META_DOSSIER_DATA.png', 'en': './assets/en/os_ash/META_DOSSIER_DATA.png', 'jp': './assets/jp/os_ash/META_DOSSIER_DATA.png', 'tw': './assets/tw/os_ash/META_DOSSIER_DATA.png'}) +META_DAMAGE = Button(area={'cn': (1196, 380, 1276, 416), 'en': (1196, 380, 1276, 416), 'jp': (1217, 378, 1276, 407), 'tw': (1196, 380, 1276, 416)}, color={'cn': (58, 59, 58), 'en': (58, 59, 58), 'jp': (59, 60, 59), 'tw': (58, 59, 58)}, button={'cn': (1196, 380, 1276, 416), 'en': (1196, 380, 1276, 416), 'jp': (1217, 378, 1276, 407), 'tw': (1196, 380, 1276, 416)}, file={'cn': './assets/cn/os_ash/META_DAMAGE.png', 'en': './assets/en/os_ash/META_DAMAGE.png', 'jp': './assets/jp/os_ash/META_DAMAGE.png', 'tw': './assets/tw/os_ash/META_DAMAGE.png'}) +META_DOSSIER_DATA = Button(area={'cn': (1050, 22, 1161, 46), 'en': (1050, 22, 1161, 46), 'jp': (1070, 21, 1141, 44), 'tw': (1050, 22, 1161, 46)}, color={'cn': (53, 56, 56), 'en': (53, 56, 56), 'jp': (66, 65, 65), 'tw': (53, 56, 56)}, button={'cn': (1050, 22, 1161, 46), 'en': (1050, 22, 1161, 46), 'jp': (1070, 21, 1141, 44), 'tw': (1050, 22, 1161, 46)}, file={'cn': './assets/cn/os_ash/META_DOSSIER_DATA.png', 'en': './assets/en/os_ash/META_DOSSIER_DATA.png', 'jp': './assets/jp/os_ash/META_DOSSIER_DATA.png', 'tw': './assets/tw/os_ash/META_DOSSIER_DATA.png'}) META_DOSSIER_FLAG = Button(area={'cn': (999, 22, 1022, 45), 'en': (999, 22, 1022, 45), 'jp': (999, 22, 1022, 45), 'tw': (999, 22, 1022, 45)}, color={'cn': (123, 70, 44), 'en': (123, 70, 44), 'jp': (123, 70, 44), 'tw': (123, 70, 44)}, button={'cn': (999, 22, 1022, 45), 'en': (999, 22, 1022, 45), 'jp': (999, 22, 1022, 45), 'tw': (999, 22, 1022, 45)}, file={'cn': './assets/cn/os_ash/META_DOSSIER_FLAG.png', 'en': './assets/en/os_ash/META_DOSSIER_FLAG.png', 'jp': './assets/jp/os_ash/META_DOSSIER_FLAG.png', 'tw': './assets/tw/os_ash/META_DOSSIER_FLAG.png'}) META_ENTRANCE = Button(area={'cn': (578, 463, 623, 493), 'en': (578, 463, 623, 493), 'jp': (578, 463, 623, 493), 'tw': (578, 463, 623, 493)}, color={'cn': (106, 134, 169), 'en': (106, 134, 169), 'jp': (106, 134, 169), 'tw': (106, 134, 169)}, button={'cn': (578, 463, 623, 493), 'en': (578, 463, 623, 493), 'jp': (578, 463, 623, 493), 'tw': (578, 463, 623, 493)}, file={'cn': './assets/cn/os_ash/META_ENTRANCE.png', 'en': './assets/en/os_ash/META_ENTRANCE.png', 'jp': './assets/jp/os_ash/META_ENTRANCE.png', 'tw': './assets/tw/os_ash/META_ENTRANCE.png'}) META_INNER_PAGE_DAMAGE = Button(area={'cn': (936, 105, 1029, 128), 'en': (938, 108, 1073, 125), 'jp': (937, 109, 1088, 128), 'tw': (936, 105, 1029, 128)}, color={'cn': (148, 105, 105), 'en': (144, 103, 103), 'jp': (115, 78, 77), 'tw': (148, 105, 105)}, button={'cn': (936, 105, 1029, 128), 'en': (938, 108, 1073, 125), 'jp': (937, 109, 1088, 128), 'tw': (936, 105, 1029, 128)}, file={'cn': './assets/cn/os_ash/META_INNER_PAGE_DAMAGE.png', 'en': './assets/en/os_ash/META_INNER_PAGE_DAMAGE.png', 'jp': './assets/jp/os_ash/META_INNER_PAGE_DAMAGE.png', 'tw': './assets/cn/os_ash/META_INNER_PAGE_DAMAGE.png'}) diff --git a/module/os_ash/meta.py b/module/os_ash/meta.py index 8d854926a5..b1312d4dad 100644 --- a/module/os_ash/meta.py +++ b/module/os_ash/meta.py @@ -23,7 +23,10 @@ class MetaState(Enum): OCR_BEACON_TIER = Digit(BEACON_TIER, name='OCR_ASH_TIER') -OCR_META_DAMAGE = Digit(META_DAMAGE, name='OCR_META_DAMAGE') +if server.server != 'jp': + OCR_META_DAMAGE = Digit(META_DAMAGE, name='OCR_META_DAMAGE') +else: + OCR_META_DAMAGE = Digit(META_DAMAGE, letter=(201, 201, 201), name='OCR_META_DAMAGE') class MetaDigitCounter(DigitCounter): @@ -44,7 +47,10 @@ def after_process(self, result): class Meta(UI, MapEventHandler): def digit_ocr_point_and_check(self, button: Button, check_number: int): - point_ocr = MetaDigitCounter(button, letter=(235, 235, 235), threshold=160, name='POINT_OCR') + if server.server != 'jp': + point_ocr = MetaDigitCounter(button, letter=(235, 235, 235), threshold=160, name='POINT_OCR') + else: + point_ocr = MetaDigitCounter(button, letter=(192, 192, 192), threshold=160, name='POINT_OCR') point, _, _ = point_ocr.ocr(self.device.image) if point >= check_number: return True diff --git a/module/retire/dock.py b/module/retire/dock.py index 91815c1006..d3a61b437e 100644 --- a/module/retire/dock.py +++ b/module/retire/dock.py @@ -1,3 +1,5 @@ +import module.config.server as server + from module.base.button import ButtonGrid from module.base.decorator import cached_property from module.base.timer import Timer @@ -20,8 +22,12 @@ CARD_GRIDS = ButtonGrid( origin=(93, 76), delta=(164 + 2 / 3, 227), button_shape=(138, 204), grid_shape=(7, 2), name='CARD') CARD_RARITY_GRIDS = CARD_GRIDS.crop(area=(0, 0, 138, 5), name='RARITY') -CARD_LEVEL_GRIDS = CARD_GRIDS.crop(area=(77, 5, 138, 27), name='LEVEL') -CARD_EMOTION_GRIDS = CARD_GRIDS.crop(area=(23, 29, 48, 52), name='EMOTION') +if server.server != 'jp': + CARD_LEVEL_GRIDS = CARD_GRIDS.crop(area=(77, 5, 138, 27), name='LEVEL') + CARD_EMOTION_GRIDS = CARD_GRIDS.crop(area=(23, 29, 48, 52), name='EMOTION') +else: + CARD_LEVEL_GRIDS = CARD_GRIDS.crop(area=(74, 5, 136, 27), name='LEVEL') + CARD_EMOTION_GRIDS = CARD_GRIDS.crop(area=(31, 29, 61, 52), name='EMOTION') DOCK_SCROLL = Scroll(DOCK_SCROLL, color=(247, 211, 66), name='DOCK_SCROLL') diff --git a/module/retire/retirement.py b/module/retire/retirement.py index 1bd429ac1c..cd1b58a82c 100644 --- a/module/retire/retirement.py +++ b/module/retire/retirement.py @@ -318,7 +318,7 @@ def retire_gems_farming_flagships(self, keep_one=True) -> int: break else: # Try to keep the one with the lowest level - ships.sort(key=lambda ship: -ship.level) + ships.sort(key=lambda s: -s.level) ships = ships[:-1] for ship in ships[:10]: @@ -452,8 +452,7 @@ def _retire_select_one(self, button, skip_first_screenshot=True): button (Button): Ship button to select skip_first_screenshot: """ - - retire_coin_timer = Timer(2) + count = 0 RETIRE_COIN.load_color(self.device.image) while 1: @@ -461,14 +460,19 @@ def _retire_select_one(self, button, skip_first_screenshot=True): skip_first_screenshot = False else: self.device.screenshot() + + # End + if not self.appear(RETIRE_COIN, threshold=0.97): + return True + if count > 3: + logger.warning('_retire_select_one failed after 3 trial') + return False + if self.appear(SHIP_CONFIRM_2, offset=(30, 30), interval=3): self.device.click(button) + count += 1 continue - if retire_coin_timer.reached() and not self.appear(RETIRE_COIN, threshold=0.97): - return True - return False - def retirement_get_common_rarity_cv_in_page(self): """ Returns: @@ -515,11 +519,11 @@ def retirement_get_common_rarity_cv(self, skip_first_screenshot=False): if RETIRE_CONFIRM_SCROLL.at_bottom(main=self): logger.info('Scroll bar reached end, stop') break - + return button def keep_one_common_cv(self): button = self.retirement_get_common_rarity_cv() if button is not None: - self._retire_select_one(button, skip_first_screenshot=False) + self._retire_select_one(button) self._have_kept_cv = True diff --git a/module/retire/scanner.py b/module/retire/scanner.py index 4b45380c66..7f00fd0c4d 100644 --- a/module/retire/scanner.py +++ b/module/retire/scanner.py @@ -5,6 +5,8 @@ import cv2 import numpy as np +import module.config.server as server + from module.base.button import ButtonGrid from module.base.utils import color_similar, crop, get_color, limit_in from module.combat.level import LevelOcr @@ -132,8 +134,12 @@ def __init__(self) -> None: super().__init__() self._results = [] self.grids = CARD_EMOTION_GRIDS - self.ocr_model = EmotionDigit(self.grids.buttons, + if server.server != 'jp': + self.ocr_model = EmotionDigit(self.grids.buttons, name='DOCK_EMOTION_OCR', threshold=176) + else: + self.ocr_model = EmotionDigit(self.grids.buttons, + name='DOCK_EMOTION_OCR', threshold=221) def _scan(self, image) -> List: return self.ocr_model.ocr(image) diff --git a/module/ui/ui.py b/module/ui/ui.py index bfb8fe9ccc..e23d96e589 100644 --- a/module/ui/ui.py +++ b/module/ui/ui.py @@ -568,6 +568,8 @@ def ui_button_interval_reset(self, button): for switch_button in page_main.links.values(): if button == switch_button: self.interval_reset(GET_SHIP) + if button in [MAIN_GOTO_REWARD, MAIN_GOTO_REWARD_WHITE]: + self.interval_reset(GET_SHIP) if button in [MAIN_GOTO_CAMPAIGN, MAIN_GOTO_CAMPAIGN_WHITE]: self.interval_reset(GET_SHIP) # Shinano event has the same title as raid