diff --git a/assets/cn/combat/COMBAT_AUTO.png b/assets/cn/combat/COMBAT_AUTO.png index 80a7d2601..c03ba1ba9 100644 Binary files a/assets/cn/combat/COMBAT_AUTO.png and b/assets/cn/combat/COMBAT_AUTO.png differ diff --git a/assets/cn/combat/MOVE_LEFT_UP.png b/assets/cn/combat/MOVE_LEFT_UP.png new file mode 100644 index 000000000..93a4efff5 Binary files /dev/null and b/assets/cn/combat/MOVE_LEFT_UP.png differ diff --git a/assets/cn/combat_ui/PAUSE_SpringInn.png b/assets/cn/combat_ui/PAUSE_SpringInn.png new file mode 100644 index 000000000..2eb3b3a46 Binary files /dev/null and b/assets/cn/combat_ui/PAUSE_SpringInn.png differ diff --git a/assets/cn/combat_ui/QUIT_SpringInn.png b/assets/cn/combat_ui/QUIT_SpringInn.png new file mode 100644 index 000000000..867d21ad7 Binary files /dev/null and b/assets/cn/combat_ui/QUIT_SpringInn.png differ diff --git a/assets/en/combat/COMBAT_AUTO.png b/assets/en/combat/COMBAT_AUTO.png index 80a7d2601..c03ba1ba9 100644 Binary files a/assets/en/combat/COMBAT_AUTO.png and b/assets/en/combat/COMBAT_AUTO.png differ diff --git a/assets/jp/combat/COMBAT_AUTO.png b/assets/jp/combat/COMBAT_AUTO.png index 80a7d2601..c03ba1ba9 100644 Binary files a/assets/jp/combat/COMBAT_AUTO.png and b/assets/jp/combat/COMBAT_AUTO.png differ diff --git a/assets/tw/combat/COMBAT_AUTO.png b/assets/tw/combat/COMBAT_AUTO.png index 80a7d2601..c03ba1ba9 100644 Binary files a/assets/tw/combat/COMBAT_AUTO.png and b/assets/tw/combat/COMBAT_AUTO.png differ diff --git a/campaign/Readme.md b/campaign/Readme.md index ac214fe32..2297f7be3 100644 --- a/campaign/Readme.md +++ b/campaign/Readme.md @@ -282,4 +282,5 @@ To add a new event, add a new row in here, and run `python -m module.config.conf | 20260129 | coalition 20260122 | Light & Shadow Fashion Shoot! | - | - | - | 光影風尚-拍攝進行時 | | 20260205 | raid 20240328 | From Zero to Hero | 复刻从零开始的魔王讨伐之旅 | From Zero to Hero Rerun | ゼロから頑張る魔王討伐(復刻) | - | | 20260212 | raid 20260212 | Spring Auction Adventure | 春宴怀玉香满庭 | Spring Auction Adventure | 新春玉逸品会 | 春宴懷玉香滿庭 | -| 20260226 | event 20260226 cn | Springtide Inn Online | 春满客栈Online | Springtide Inn Online | 春色旅籠Online | - | +| 20260226 | event 20260226 cn | Springtide Inn Online | 春满客栈Online | Springtide Inn Online | 春色旅籠Online | 春滿客棧Online | +| 20260312 | event 20240229 cn | Snowrealm Peregrination Rerun | 复刻雪境迷踪 | Snowrealm Peregrination Rerun | 銀界遊廻(復刻) | - | diff --git a/module/combat/assets.py b/module/combat/assets.py index 42fe5dd1f..b8bbc3606 100644 --- a/module/combat/assets.py +++ b/module/combat/assets.py @@ -17,7 +17,7 @@ BATTLE_STATUS_B = Button(area={'cn': (625, 297, 712, 317), 'en': (625, 297, 712, BATTLE_STATUS_C = Button(area={'cn': (625, 211, 647, 297), 'en': (625, 211, 647, 297), 'jp': (625, 211, 647, 297), 'tw': (625, 211, 647, 297)}, color={'cn': (199, 208, 198), 'en': (199, 208, 198), 'jp': (199, 208, 198), 'tw': (199, 208, 198)}, button={'cn': (1000, 631, 1055, 689), 'en': (1000, 631, 1055, 689), 'jp': (1000, 631, 1055, 689), 'tw': (1000, 631, 1055, 689)}, file={'cn': './assets/cn/combat/BATTLE_STATUS_C.png', 'en': './assets/en/combat/BATTLE_STATUS_C.png', 'jp': './assets/jp/combat/BATTLE_STATUS_C.png', 'tw': './assets/tw/combat/BATTLE_STATUS_C.png'}) BATTLE_STATUS_D = Button(area={'cn': (618, 191, 639, 317), 'en': (618, 191, 639, 317), 'jp': (618, 191, 639, 317), 'tw': (618, 191, 639, 317)}, color={'cn': (199, 208, 199), 'en': (199, 208, 199), 'jp': (199, 208, 199), 'tw': (199, 208, 199)}, button={'cn': (1000, 631, 1055, 689), 'en': (1000, 631, 1055, 689), 'jp': (1000, 631, 1055, 689), 'tw': (1000, 631, 1055, 689)}, file={'cn': './assets/cn/combat/BATTLE_STATUS_D.png', 'en': './assets/en/combat/BATTLE_STATUS_D.png', 'jp': './assets/jp/combat/BATTLE_STATUS_D.png', 'tw': './assets/tw/combat/BATTLE_STATUS_D.png'}) BATTLE_STATUS_S = Button(area={'cn': (643, 297, 722, 317), 'en': (643, 297, 722, 317), 'jp': (643, 297, 722, 317), 'tw': (643, 297, 722, 317)}, color={'cn': (233, 242, 127), 'en': (233, 242, 127), 'jp': (233, 242, 127), 'tw': (233, 242, 127)}, button={'cn': (1000, 631, 1055, 689), 'en': (999, 630, 1047, 691), 'jp': (1000, 631, 1055, 689), 'tw': (1000, 631, 1055, 689)}, file={'cn': './assets/cn/combat/BATTLE_STATUS_S.png', 'en': './assets/en/combat/BATTLE_STATUS_S.png', 'jp': './assets/jp/combat/BATTLE_STATUS_S.png', 'tw': './assets/tw/combat/BATTLE_STATUS_S.png'}) -COMBAT_AUTO = Button(area={'cn': (136, 573, 167, 604), 'en': (136, 573, 167, 604), 'jp': (136, 573, 167, 604), 'tw': (136, 573, 167, 604)}, color={'cn': (229, 242, 255), 'en': (229, 242, 255), 'jp': (229, 242, 255), 'tw': (229, 242, 255)}, button={'cn': (136, 573, 167, 604), 'en': (136, 573, 167, 604), 'jp': (136, 573, 167, 604), 'tw': (136, 573, 167, 604)}, file={'cn': './assets/cn/combat/COMBAT_AUTO.png', 'en': './assets/en/combat/COMBAT_AUTO.png', 'jp': './assets/jp/combat/COMBAT_AUTO.png', 'tw': './assets/tw/combat/COMBAT_AUTO.png'}) +COMBAT_AUTO = Button(area={'cn': (136, 572, 167, 605), 'en': (136, 572, 167, 605), 'jp': (136, 572, 167, 605), 'tw': (136, 572, 167, 605)}, color={'cn': (234, 244, 255), 'en': (234, 244, 255), 'jp': (234, 244, 255), 'tw': (234, 244, 255)}, button={'cn': (136, 572, 167, 605), 'en': (136, 572, 167, 605), 'jp': (136, 572, 167, 605), 'tw': (136, 572, 167, 605)}, file={'cn': './assets/cn/combat/COMBAT_AUTO.png', 'en': './assets/en/combat/COMBAT_AUTO.png', 'jp': './assets/jp/combat/COMBAT_AUTO.png', 'tw': './assets/tw/combat/COMBAT_AUTO.png'}) COMBAT_AUTO_133 = Button(area={'cn': (131, 568, 170, 609), 'en': (131, 568, 170, 609), 'jp': (131, 568, 170, 609), 'tw': (131, 568, 170, 609)}, color={'cn': (234, 244, 255), 'en': (234, 244, 255), 'jp': (234, 244, 255), 'tw': (234, 244, 255)}, button={'cn': (131, 568, 170, 609), 'en': (131, 568, 170, 609), 'jp': (131, 568, 170, 609), 'tw': (131, 568, 170, 609)}, file={'cn': './assets/cn/combat/COMBAT_AUTO_133.png', 'en': './assets/en/combat/COMBAT_AUTO_133.png', 'jp': './assets/jp/combat/COMBAT_AUTO_133.png', 'tw': './assets/tw/combat/COMBAT_AUTO_133.png'}) COMBAT_AUTO_150 = Button(area={'cn': (129, 567, 172, 611), 'en': (129, 567, 172, 611), 'jp': (129, 567, 172, 611), 'tw': (129, 567, 172, 611)}, color={'cn': (238, 247, 255), 'en': (238, 247, 255), 'jp': (238, 247, 255), 'tw': (238, 247, 255)}, button={'cn': (129, 567, 172, 611), 'en': (129, 567, 172, 611), 'jp': (129, 567, 172, 611), 'tw': (129, 567, 172, 611)}, file={'cn': './assets/cn/combat/COMBAT_AUTO_150.png', 'en': './assets/en/combat/COMBAT_AUTO_150.png', 'jp': './assets/jp/combat/COMBAT_AUTO_150.png', 'tw': './assets/tw/combat/COMBAT_AUTO_150.png'}) COMBAT_AUTO_SWITCH = Button(area={'cn': (18, 38, 36, 56), 'en': (16, 31, 140, 62), 'jp': (18, 36, 54, 57), 'tw': (18, 38, 36, 56)}, color={'cn': (179, 198, 235), 'en': (105, 137, 189), 'jp': (160, 177, 220), 'tw': (179, 198, 235)}, button={'cn': (18, 38, 36, 56), 'en': (16, 31, 140, 62), 'jp': (18, 36, 54, 57), 'tw': (18, 38, 36, 56)}, file={'cn': './assets/cn/combat/COMBAT_AUTO_SWITCH.png', 'en': './assets/en/combat/COMBAT_AUTO_SWITCH.png', 'jp': './assets/jp/combat/COMBAT_AUTO_SWITCH.png', 'tw': './assets/tw/combat/COMBAT_AUTO_SWITCH.png'}) @@ -39,6 +39,7 @@ LOADING_BAR = Button(area={'cn': (33, 676, 1247, 680), 'en': (33, 676, 1247, 680 MAIN_FLEET_POWER_ZERO = Button(area={'cn': (131, 151, 232, 206), 'en': (131, 151, 232, 206), 'jp': (131, 151, 232, 206), 'tw': (131, 151, 232, 206)}, color={'cn': (63, 79, 98), 'en': (63, 79, 98), 'jp': (63, 79, 98), 'tw': (63, 79, 98)}, button={'cn': (131, 151, 232, 206), 'en': (131, 151, 232, 206), 'jp': (131, 151, 232, 206), 'tw': (131, 151, 232, 206)}, file={'cn': './assets/cn/combat/MAIN_FLEET_POWER_ZERO.png', 'en': './assets/en/combat/MAIN_FLEET_POWER_ZERO.png', 'jp': './assets/jp/combat/MAIN_FLEET_POWER_ZERO.png', 'tw': './assets/tw/combat/MAIN_FLEET_POWER_ZERO.png'}) MOVE_DOWN = Button(area={'cn': (148, 647, 155, 669), 'en': (148, 647, 155, 669), 'jp': (148, 647, 155, 669), 'tw': (148, 647, 155, 669)}, color={'cn': (21, 28, 57), 'en': (21, 28, 57), 'jp': (21, 28, 57), 'tw': (21, 28, 57)}, button={'cn': (148, 647, 155, 669), 'en': (148, 647, 155, 669), 'jp': (148, 647, 155, 669), 'tw': (148, 647, 155, 669)}, file={'cn': './assets/cn/combat/MOVE_DOWN.png', 'en': './assets/en/combat/MOVE_DOWN.png', 'jp': './assets/jp/combat/MOVE_DOWN.png', 'tw': './assets/tw/combat/MOVE_DOWN.png'}) MOVE_LEFT_DOWN = Button(area={'cn': (67, 668, 112, 707), 'en': (67, 668, 112, 707), 'jp': (67, 668, 112, 707), 'tw': (67, 668, 112, 707)}, color={'cn': (65, 80, 100), 'en': (65, 80, 100), 'jp': (65, 80, 100), 'tw': (65, 80, 100)}, button={'cn': (67, 668, 112, 707), 'en': (67, 668, 112, 707), 'jp': (67, 668, 112, 707), 'tw': (67, 668, 112, 707)}, file={'cn': './assets/cn/combat/MOVE_LEFT_DOWN.png', 'en': './assets/en/combat/MOVE_LEFT_DOWN.png', 'jp': './assets/jp/combat/MOVE_LEFT_DOWN.png', 'tw': './assets/tw/combat/MOVE_LEFT_DOWN.png'}) +MOVE_LEFT_UP = Button(area={'cn': (101, 539, 136, 574), 'en': (101, 539, 136, 574), 'jp': (101, 539, 136, 574), 'tw': (101, 539, 136, 574)}, color={'cn': (255, 255, 255), 'en': (255, 255, 255), 'jp': (255, 255, 255), 'tw': (255, 255, 255)}, button={'cn': (101, 539, 136, 574), 'en': (101, 539, 136, 574), 'jp': (101, 539, 136, 574), 'tw': (101, 539, 136, 574)}, file={'cn': './assets/cn/combat/MOVE_LEFT_UP.png', 'en': './assets/cn/combat/MOVE_LEFT_UP.png', 'jp': './assets/cn/combat/MOVE_LEFT_UP.png', 'tw': './assets/cn/combat/MOVE_LEFT_UP.png'}) NEW_SHIP = Button(area={'cn': (206, 87, 213, 93), 'en': (206, 87, 213, 93), 'jp': (206, 87, 213, 93), 'tw': (206, 87, 213, 93)}, color={'cn': (235, 171, 60), 'en': (235, 171, 60), 'jp': (235, 171, 60), 'tw': (235, 171, 60)}, button={'cn': (206, 87, 213, 93), 'en': (206, 87, 213, 93), 'jp': (206, 87, 213, 93), 'tw': (206, 87, 213, 93)}, file={'cn': './assets/cn/combat/NEW_SHIP.png', 'en': './assets/en/combat/NEW_SHIP.png', 'jp': './assets/jp/combat/NEW_SHIP.png', 'tw': './assets/tw/combat/NEW_SHIP.png'}) OPTS_INFO_D = Button(area={'cn': (602, 151, 703, 179), 'en': (565, 143, 692, 179), 'jp': (512, 154, 605, 176), 'tw': (602, 152, 702, 177)}, color={'cn': (157, 115, 123), 'en': (171, 116, 110), 'jp': (201, 187, 191), 'tw': (164, 130, 137)}, button={'cn': (583, 605, 677, 628), 'en': (590, 587, 627, 647), 'jp': (574, 596, 685, 635), 'tw': (583, 604, 676, 627)}, file={'cn': './assets/cn/combat/OPTS_INFO_D.png', 'en': './assets/en/combat/OPTS_INFO_D.png', 'jp': './assets/jp/combat/OPTS_INFO_D.png', 'tw': './assets/tw/combat/OPTS_INFO_D.png'}) QUIT_RECONFIRM = Button(area={'cn': (749, 501, 828, 540), 'en': (761, 495, 818, 523), 'jp': (746, 490, 830, 530), 'tw': (754, 491, 825, 522)}, color={'cn': (207, 140, 133), 'en': (208, 147, 141), 'jp': (203, 138, 132), 'tw': (211, 158, 152)}, button={'cn': (749, 501, 828, 540), 'en': (761, 495, 818, 523), 'jp': (746, 490, 830, 530), 'tw': (754, 491, 825, 522)}, file={'cn': './assets/cn/combat/QUIT_RECONFIRM.png', 'en': './assets/en/combat/QUIT_RECONFIRM.png', 'jp': './assets/jp/combat/QUIT_RECONFIRM.png', 'tw': './assets/tw/combat/QUIT_RECONFIRM.png'}) diff --git a/module/combat/combat.py b/module/combat/combat.py index 1266b3917..50ac78de4 100644 --- a/module/combat/combat.py +++ b/module/combat/combat.py @@ -126,6 +126,8 @@ class Combat(Level, HPBalancer, Retirement, SubmarineCall, CombatAuto, CombatMan return PAUSE_MaidCafe if PAUSE_Ancient.match_template_color(self.device.image, offset=(10, 10)): return PAUSE_Ancient + if PAUSE_SpringInn.match_template_color(self.device.image, offset=(10, 10)): + return PAUSE_SpringInn return False def handle_combat_quit(self, offset=(20, 20), interval=3): @@ -177,6 +179,10 @@ class Combat(Level, HPBalancer, Retirement, SubmarineCall, CombatAuto, CombatMan self.device.click(QUIT_MaidCafe) timer.reset() return True + if QUIT_SpringInn.match_luma(self.device.image, offset=offset): + self.device.click(QUIT_SpringInn) + timer.reset() + return True return False def handle_combat_quit_reconfirm(self, interval=2): diff --git a/module/combat/combat_manual.py b/module/combat/combat_manual.py index 927ab15b6..345671d68 100644 --- a/module/combat/combat_manual.py +++ b/module/combat/combat_manual.py @@ -42,6 +42,20 @@ class CombatManual(ModuleBase): self.device.long_click(MOVE_LEFT_DOWN, duration=(3.5, 5.5)) return True + def handle_combat_stand_still_upper_left(self, auto): + """ + Args: + auto (str): Combat auto mode. + + Returns: + bool: If executed + """ + if auto != 'hide_in_upper_left': + return False + + self.device.long_click(MOVE_LEFT_UP, duration=(1.5, 3.5)) + return True + def handle_combat_weapon_release(self): if self.appear_then_click(READY_AIR_RAID, interval=10): return True @@ -67,6 +81,9 @@ class CombatManual(ModuleBase): if self.handle_combat_stand_still_bottom_left(auto): self.manual_executed = True return True + if self.handle_combat_stand_still_upper_left(auto): + self.manual_executed = True + return True return False diff --git a/module/combat_ui/assets.py b/module/combat_ui/assets.py index cf309cd15..e8de38bc1 100644 --- a/module/combat_ui/assets.py +++ b/module/combat_ui/assets.py @@ -20,6 +20,7 @@ PAUSE_Nurse = Button(area={'cn': (1236, 33, 1251, 50), 'en': (1236, 33, 1251, 50 PAUSE_Pharaoh = Button(area={'cn': (1229, 55, 1259, 62), 'en': (1229, 55, 1259, 62), 'jp': (1229, 55, 1259, 62), 'tw': (1229, 55, 1259, 62)}, color={'cn': (164, 119, 78), 'en': (164, 119, 78), 'jp': (164, 119, 78), 'tw': (164, 119, 78)}, button={'cn': (1229, 55, 1259, 62), 'en': (1229, 55, 1259, 62), 'jp': (1229, 55, 1259, 62), 'tw': (1229, 55, 1259, 62)}, file={'cn': './assets/cn/combat_ui/PAUSE_Pharaoh.png', 'en': './assets/cn/combat_ui/PAUSE_Pharaoh.png', 'jp': './assets/cn/combat_ui/PAUSE_Pharaoh.png', 'tw': './assets/cn/combat_ui/PAUSE_Pharaoh.png'}) PAUSE_Seaside = Button(area={'cn': (1214, 31, 1239, 59), 'en': (1214, 31, 1239, 59), 'jp': (1214, 31, 1239, 59), 'tw': (1214, 31, 1239, 59)}, color={'cn': (172, 196, 212), 'en': (172, 196, 212), 'jp': (172, 196, 212), 'tw': (172, 196, 212)}, button={'cn': (1214, 31, 1239, 59), 'en': (1214, 31, 1239, 59), 'jp': (1214, 31, 1239, 59), 'tw': (1214, 31, 1239, 59)}, file={'cn': './assets/cn/combat_ui/PAUSE_Seaside.png', 'en': './assets/cn/combat_ui/PAUSE_Seaside.png', 'jp': './assets/cn/combat_ui/PAUSE_Seaside.png', 'tw': './assets/cn/combat_ui/PAUSE_Seaside.png'}) PAUSE_ShadowPuppetry = Button(area={'cn': (1216, 37, 1234, 55), 'en': (1216, 37, 1234, 55), 'jp': (1216, 37, 1234, 55), 'tw': (1216, 37, 1234, 55)}, color={'cn': (139, 112, 72), 'en': (139, 112, 72), 'jp': (139, 112, 72), 'tw': (139, 112, 72)}, button={'cn': (1216, 37, 1234, 55), 'en': (1216, 37, 1234, 55), 'jp': (1216, 37, 1234, 55), 'tw': (1216, 37, 1234, 55)}, file={'cn': './assets/cn/combat_ui/PAUSE_ShadowPuppetry.png', 'en': './assets/cn/combat_ui/PAUSE_ShadowPuppetry.png', 'jp': './assets/cn/combat_ui/PAUSE_ShadowPuppetry.png', 'tw': './assets/cn/combat_ui/PAUSE_ShadowPuppetry.png'}) +PAUSE_SpringInn = Button(area={'cn': (1212, 37, 1235, 61), 'en': (1212, 37, 1235, 61), 'jp': (1212, 37, 1235, 61), 'tw': (1212, 37, 1235, 61)}, color={'cn': (201, 91, 78), 'en': (201, 91, 78), 'jp': (201, 91, 78), 'tw': (201, 91, 78)}, button={'cn': (1212, 37, 1235, 61), 'en': (1212, 37, 1235, 61), 'jp': (1212, 37, 1235, 61), 'tw': (1212, 37, 1235, 61)}, file={'cn': './assets/cn/combat_ui/PAUSE_SpringInn.png', 'en': './assets/cn/combat_ui/PAUSE_SpringInn.png', 'jp': './assets/cn/combat_ui/PAUSE_SpringInn.png', 'tw': './assets/cn/combat_ui/PAUSE_SpringInn.png'}) PAUSE_Star = Button(area={'cn': (1234, 36, 1250, 57), 'en': (1234, 36, 1250, 57), 'jp': (1234, 36, 1250, 57), 'tw': (1234, 36, 1250, 57)}, color={'cn': (169, 179, 179), 'en': (169, 179, 179), 'jp': (169, 179, 179), 'tw': (169, 179, 179)}, button={'cn': (1234, 36, 1250, 57), 'en': (1234, 36, 1250, 57), 'jp': (1234, 36, 1250, 57), 'tw': (1234, 36, 1250, 57)}, file={'cn': './assets/cn/combat_ui/PAUSE_Star.png', 'en': './assets/cn/combat_ui/PAUSE_Star.png', 'jp': './assets/cn/combat_ui/PAUSE_Star.png', 'tw': './assets/cn/combat_ui/PAUSE_Star.png'}) QUIT = Button(area={'cn': (420, 490, 593, 548), 'en': (473, 508, 567, 532), 'jp': (433, 490, 606, 547), 'tw': (433, 490, 606, 547)}, color={'cn': (199, 122, 114), 'en': (216, 168, 164), 'jp': (196, 120, 113), 'tw': (200, 126, 118)}, button={'cn': (420, 490, 593, 548), 'en': (473, 508, 567, 532), 'jp': (433, 490, 606, 547), 'tw': (433, 490, 606, 547)}, file={'cn': './assets/cn/combat_ui/QUIT.png', 'en': './assets/en/combat_ui/QUIT.png', 'jp': './assets/jp/combat_ui/QUIT.png', 'tw': './assets/tw/combat_ui/QUIT.png'}) QUIT_Christmas = Button(area={'cn': (400, 506, 477, 525), 'en': (410, 507, 469, 524), 'jp': (400, 506, 477, 525), 'tw': (400, 506, 477, 525)}, color={'cn': (195, 139, 166), 'en': (207, 166, 185), 'jp': (195, 139, 166), 'tw': (195, 139, 166)}, button={'cn': (400, 506, 477, 525), 'en': (410, 507, 469, 524), 'jp': (400, 506, 477, 525), 'tw': (400, 506, 477, 525)}, file={'cn': './assets/cn/combat_ui/QUIT_Christmas.png', 'en': './assets/en/combat_ui/QUIT_Christmas.png', 'jp': './assets/cn/combat_ui/QUIT_Christmas.png', 'tw': './assets/cn/combat_ui/QUIT_Christmas.png'}) @@ -31,3 +32,4 @@ QUIT_Ninja = Button(area={'cn': (398, 509, 477, 528), 'en': (398, 509, 477, 528) QUIT_Nurse = Button(area={'cn': (400, 507, 477, 525), 'en': (400, 507, 477, 525), 'jp': (400, 507, 477, 525), 'tw': (400, 507, 477, 525)}, color={'cn': (254, 193, 170), 'en': (254, 193, 170), 'jp': (254, 193, 170), 'tw': (254, 193, 170)}, button={'cn': (400, 507, 477, 525), 'en': (400, 507, 477, 525), 'jp': (400, 507, 477, 525), 'tw': (400, 507, 477, 525)}, file={'cn': './assets/cn/combat_ui/QUIT_Nurse.png', 'en': './assets/cn/combat_ui/QUIT_Nurse.png', 'jp': './assets/cn/combat_ui/QUIT_Nurse.png', 'tw': './assets/cn/combat_ui/QUIT_Nurse.png'}) QUIT_Pharaoh = Button(area={'cn': (400, 507, 477, 525), 'en': (400, 507, 477, 525), 'jp': (400, 507, 477, 525), 'tw': (400, 507, 477, 525)}, color={'cn': (204, 132, 108), 'en': (204, 132, 108), 'jp': (204, 132, 108), 'tw': (204, 132, 108)}, button={'cn': (400, 507, 477, 525), 'en': (400, 507, 477, 525), 'jp': (400, 507, 477, 525), 'tw': (400, 507, 477, 525)}, file={'cn': './assets/cn/combat_ui/QUIT_Pharaoh.png', 'en': './assets/cn/combat_ui/QUIT_Pharaoh.png', 'jp': './assets/cn/combat_ui/QUIT_Pharaoh.png', 'tw': './assets/cn/combat_ui/QUIT_Pharaoh.png'}) QUIT_Seaside = Button(area={'cn': (398, 509, 476, 528), 'en': (398, 509, 476, 528), 'jp': (398, 509, 476, 528), 'tw': (398, 509, 476, 528)}, color={'cn': (247, 208, 188), 'en': (247, 208, 188), 'jp': (247, 208, 188), 'tw': (247, 208, 188)}, button={'cn': (398, 509, 476, 528), 'en': (398, 509, 476, 528), 'jp': (398, 509, 476, 528), 'tw': (398, 509, 476, 528)}, file={'cn': './assets/cn/combat_ui/QUIT_Seaside.png', 'en': './assets/cn/combat_ui/QUIT_Seaside.png', 'jp': './assets/cn/combat_ui/QUIT_Seaside.png', 'tw': './assets/cn/combat_ui/QUIT_Seaside.png'}) +QUIT_SpringInn = Button(area={'cn': (396, 559, 478, 584), 'en': (396, 559, 478, 584), 'jp': (396, 559, 478, 584), 'tw': (396, 559, 478, 584)}, color={'cn': (145, 88, 80), 'en': (145, 88, 80), 'jp': (145, 88, 80), 'tw': (145, 88, 80)}, button={'cn': (396, 559, 478, 584), 'en': (396, 559, 478, 584), 'jp': (396, 559, 478, 584), 'tw': (396, 559, 478, 584)}, file={'cn': './assets/cn/combat_ui/QUIT_SpringInn.png', 'en': './assets/cn/combat_ui/QUIT_SpringInn.png', 'jp': './assets/cn/combat_ui/QUIT_SpringInn.png', 'tw': './assets/cn/combat_ui/QUIT_SpringInn.png'}) diff --git a/module/config/i18n/en-US.json b/module/config/i18n/en-US.json index fb636799d..e3d068910 100644 --- a/module/config/i18n/en-US.json +++ b/module/config/i18n/en-US.json @@ -804,7 +804,7 @@ "event_20231026_cn": "Tempesta and the Fountain of Youth", "event_20231123_cn": "The Ninja Scrolls: Azur Flash", "event_20231221_cn": "Light-Chasing Sea of Stars Rerun", - "event_20240229_cn": "Snowrealm Peregrination", + "event_20240229_cn": "Snowrealm Peregrination Rerun", "event_20240425_cn": "Heart-Linking Harmony", "event_20240521_cn": "Light of the Martyrium", "event_20240725_cn": "Interlude of Illusions", diff --git a/module/config/i18n/ja-JP.json b/module/config/i18n/ja-JP.json index 55a3e10e4..654b5c3be 100644 --- a/module/config/i18n/ja-JP.json +++ b/module/config/i18n/ja-JP.json @@ -804,7 +804,7 @@ "event_20231026_cn": "テンペスタと若返りの泉", "event_20231123_cn": "蒼閃忍法帖", "event_20231221_cn": "光追う星の海(復刻)", - "event_20240229_cn": "銀界遊廻", + "event_20240229_cn": "銀界遊廻(復刻)", "event_20240425_cn": "共鳴のパッション", "event_20240521_cn": "赫輝のマルティリウム", "event_20240725_cn": "夢幻の間奏曲", diff --git a/module/config/i18n/zh-CN.json b/module/config/i18n/zh-CN.json index 22703599e..442be71e0 100644 --- a/module/config/i18n/zh-CN.json +++ b/module/config/i18n/zh-CN.json @@ -804,7 +804,7 @@ "event_20231026_cn": "飓风与青春之泉", "event_20231123_cn": "苍闪忍法帖", "event_20231221_cn": "复刻星海逐光", - "event_20240229_cn": "雪境迷踪", + "event_20240229_cn": "复刻雪境迷踪", "event_20240425_cn": "共鸣的PASSION", "event_20240521_cn": "绽放于辉光之城", "event_20240725_cn": "幻梦间奏曲", diff --git a/module/eventstory/eventstory.py b/module/eventstory/eventstory.py index 81c20bdbb..1a941e338 100644 --- a/module/eventstory/eventstory.py +++ b/module/eventstory/eventstory.py @@ -201,6 +201,14 @@ class EventStory(CampaignUI, Combat, LoginHandler): return 'unknown' def run(self): + event = self.config.cross_get('Event.Campaign.Event', '') + if event in [ + # event story is in event minigame + 'event_20260226_cn', + ]: + logger.info(f'Current event ({event}) does not have event story, stopped') + return + if not self.device.app_is_running(): logger.warning('Game is not running, start it') self.app_start() diff --git a/module/exercise/hp_daemon.py b/module/exercise/hp_daemon.py index 321a88d24..0170498b4 100644 --- a/module/exercise/hp_daemon.py +++ b/module/exercise/hp_daemon.py @@ -77,6 +77,7 @@ class HpDaemon(ModuleBase): PAUSE_ShadowPuppetry, PAUSE_MaidCafe, PAUSE_Ancient, + PAUSE_SpringInn, ]: self.attacker_hp = self._calculate_hp(image, area=ATTACKER_HP_AREA_New.area, reverse=True) self.defender_hp = self._calculate_hp(image, area=DEFENDER_HP_AREA_New.area, reverse=True)