diff --git a/assets/cn/combat_ui/PAUSE_MaidCafe.png b/assets/cn/combat_ui/PAUSE_MaidCafe.png new file mode 100644 index 000000000..f51bdf9fb Binary files /dev/null and b/assets/cn/combat_ui/PAUSE_MaidCafe.png differ diff --git a/assets/cn/combat_ui/QUIT_MaidCafe.png b/assets/cn/combat_ui/QUIT_MaidCafe.png new file mode 100644 index 000000000..483934f28 Binary files /dev/null and b/assets/cn/combat_ui/QUIT_MaidCafe.png differ diff --git a/module/combat/combat.py b/module/combat/combat.py index ffeb42ca8..9ff52afbd 100644 --- a/module/combat/combat.py +++ b/module/combat/combat.py @@ -121,6 +121,8 @@ class Combat(Level, HPBalancer, Retirement, SubmarineCall, CombatAuto, CombatMan return PAUSE_Ninja if PAUSE_ShadowPuppetry.match_luma(self.device.image, offset=(10, 10)): return PAUSE_ShadowPuppetry + if PAUSE_MaidCafe.match_template_color(self.device.image, offset=(10, 10)): + return PAUSE_MaidCafe return False def handle_combat_quit(self, offset=(20, 20), interval=3): @@ -168,6 +170,10 @@ class Combat(Level, HPBalancer, Retirement, SubmarineCall, CombatAuto, CombatMan self.device.click(QUIT_Ninja) timer.reset() return True + if QUIT_MaidCafe.match_luma(self.device.image, offset=offset): + self.device.click(QUIT_MaidCafe) + timer.reset() + return True return False def ensure_combat_oil_loaded(self): diff --git a/module/combat_ui/assets.py b/module/combat_ui/assets.py index 109bc4519..f66c58ff1 100644 --- a/module/combat_ui/assets.py +++ b/module/combat_ui/assets.py @@ -11,6 +11,7 @@ PAUSE_DOUBLE_CHECK = Button(area={'cn': (1226, 35, 1231, 60), 'en': (1226, 35, 1 PAUSE_Devil = Button(area={'cn': (1233, 35, 1250, 57), 'en': (1233, 35, 1250, 57), 'jp': (1233, 35, 1250, 57), 'tw': (1233, 35, 1250, 57)}, color={'cn': (193, 98, 108), 'en': (193, 98, 108), 'jp': (193, 98, 108), 'tw': (193, 98, 108)}, button={'cn': (1233, 35, 1250, 57), 'en': (1233, 35, 1250, 57), 'jp': (1233, 35, 1250, 57), 'tw': (1233, 35, 1250, 57)}, file={'cn': './assets/cn/combat_ui/PAUSE_Devil.png', 'en': './assets/cn/combat_ui/PAUSE_Devil.png', 'jp': './assets/cn/combat_ui/PAUSE_Devil.png', 'tw': './assets/cn/combat_ui/PAUSE_Devil.png'}) PAUSE_HolyLight = Button(area={'cn': (1233, 35, 1250, 57), 'en': (1233, 35, 1250, 57), 'jp': (1233, 35, 1250, 57), 'tw': (1233, 35, 1250, 57)}, color={'cn': (54, 40, 27), 'en': (54, 40, 27), 'jp': (54, 40, 27), 'tw': (54, 40, 27)}, button={'cn': (1233, 35, 1250, 57), 'en': (1233, 35, 1250, 57), 'jp': (1233, 35, 1250, 57), 'tw': (1233, 35, 1250, 57)}, file={'cn': './assets/cn/combat_ui/PAUSE_HolyLight.png', 'en': './assets/cn/combat_ui/PAUSE_HolyLight.png', 'jp': './assets/cn/combat_ui/PAUSE_HolyLight.png', 'tw': './assets/cn/combat_ui/PAUSE_HolyLight.png'}) PAUSE_Iridescent_Fantasy = Button(area={'cn': (1232, 33, 1252, 57), 'en': (1232, 33, 1252, 57), 'jp': (1232, 33, 1252, 57), 'tw': (1232, 33, 1252, 57)}, color={'cn': (124, 139, 190), 'en': (124, 139, 190), 'jp': (124, 139, 190), 'tw': (124, 139, 190)}, button={'cn': (1232, 33, 1252, 57), 'en': (1232, 33, 1252, 57), 'jp': (1232, 33, 1252, 57), 'tw': (1232, 33, 1252, 57)}, file={'cn': './assets/cn/combat_ui/PAUSE_Iridescent_Fantasy.png', 'en': './assets/en/combat_ui/PAUSE_Iridescent_Fantasy.png', 'jp': './assets/jp/combat_ui/PAUSE_Iridescent_Fantasy.png', 'tw': './assets/tw/combat_ui/PAUSE_Iridescent_Fantasy.png'}) +PAUSE_MaidCafe = Button(area={'cn': (1230, 35, 1248, 54), 'en': (1230, 35, 1248, 54), 'jp': (1230, 35, 1248, 54), 'tw': (1230, 35, 1248, 54)}, color={'cn': (159, 145, 139), 'en': (159, 145, 139), 'jp': (159, 145, 139), 'tw': (159, 145, 139)}, button={'cn': (1230, 35, 1248, 54), 'en': (1230, 35, 1248, 54), 'jp': (1230, 35, 1248, 54), 'tw': (1230, 35, 1248, 54)}, file={'cn': './assets/cn/combat_ui/PAUSE_MaidCafe.png', 'en': './assets/cn/combat_ui/PAUSE_MaidCafe.png', 'jp': './assets/cn/combat_ui/PAUSE_MaidCafe.png', 'tw': './assets/cn/combat_ui/PAUSE_MaidCafe.png'}) PAUSE_Neon = Button(area={'cn': (1228, 32, 1250, 59), 'en': (1228, 32, 1250, 59), 'jp': (1228, 32, 1250, 59), 'tw': (1228, 32, 1250, 59)}, color={'cn': (106, 137, 80), 'en': (106, 137, 80), 'jp': (106, 137, 80), 'tw': (106, 137, 80)}, button={'cn': (1228, 32, 1250, 59), 'en': (1228, 32, 1250, 59), 'jp': (1228, 32, 1250, 59), 'tw': (1228, 32, 1250, 59)}, file={'cn': './assets/cn/combat_ui/PAUSE_Neon.png', 'en': './assets/cn/combat_ui/PAUSE_Neon.png', 'jp': './assets/cn/combat_ui/PAUSE_Neon.png', 'tw': './assets/cn/combat_ui/PAUSE_Neon.png'}) PAUSE_New = Button(area={'cn': (1231, 29, 1253, 56), 'en': (1231, 29, 1253, 56), 'jp': (1231, 29, 1253, 56), 'tw': (1231, 29, 1253, 56)}, color={'cn': (156, 158, 166), 'en': (156, 158, 166), 'jp': (156, 158, 166), 'tw': (156, 158, 166)}, button={'cn': (1231, 29, 1253, 56), 'en': (1231, 29, 1253, 56), 'jp': (1231, 29, 1253, 56), 'tw': (1231, 29, 1253, 56)}, file={'cn': './assets/cn/combat_ui/PAUSE_New.png', 'en': './assets/en/combat_ui/PAUSE_New.png', 'jp': './assets/jp/combat_ui/PAUSE_New.png', 'tw': './assets/tw/combat_ui/PAUSE_New.png'}) PAUSE_Ninja = Button(area={'cn': (1230, 37, 1246, 53), 'en': (1230, 37, 1246, 53), 'jp': (1230, 37, 1246, 53), 'tw': (1230, 37, 1246, 53)}, color={'cn': (135, 109, 92), 'en': (135, 109, 92), 'jp': (135, 109, 92), 'tw': (135, 109, 92)}, button={'cn': (1230, 37, 1246, 53), 'en': (1230, 37, 1246, 53), 'jp': (1230, 37, 1246, 53), 'tw': (1230, 37, 1246, 53)}, file={'cn': './assets/cn/combat_ui/PAUSE_Ninja.png', 'en': './assets/cn/combat_ui/PAUSE_Ninja.png', 'jp': './assets/cn/combat_ui/PAUSE_Ninja.png', 'tw': './assets/cn/combat_ui/PAUSE_Ninja.png'}) @@ -23,6 +24,7 @@ QUIT = Button(area={'cn': (420, 490, 593, 548), 'en': (473, 508, 567, 532), 'jp' 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'}) QUIT_Cyber = Button(area={'cn': (393, 506, 470, 524), 'en': (393, 506, 470, 524), 'jp': (393, 506, 470, 524), 'tw': (393, 506, 470, 524)}, color={'cn': (255, 198, 190), 'en': (255, 198, 190), 'jp': (255, 198, 190), 'tw': (255, 198, 190)}, button={'cn': (393, 506, 470, 524), 'en': (393, 506, 470, 524), 'jp': (393, 506, 470, 524), 'tw': (393, 506, 470, 524)}, file={'cn': './assets/cn/combat_ui/QUIT_Cyber.png', 'en': './assets/cn/combat_ui/QUIT_Cyber.png', 'jp': './assets/cn/combat_ui/QUIT_Cyber.png', 'tw': './assets/tw/combat_ui/QUIT_Cyber.png'}) QUIT_Iridescent_Fantasy = Button(area={'cn': (391, 522, 464, 540), 'en': (402, 507, 460, 523), 'jp': (391, 522, 464, 540), 'tw': (391, 522, 464, 540)}, color={'cn': (121, 73, 79), 'en': (255, 174, 164), 'jp': (108, 60, 70), 'tw': (121, 73, 79)}, button={'cn': (391, 522, 464, 540), 'en': (402, 507, 460, 523), 'jp': (391, 522, 464, 540), 'tw': (391, 522, 464, 540)}, file={'cn': './assets/cn/combat_ui/QUIT_Iridescent_Fantasy.png', 'en': './assets/en/combat_ui/QUIT_Iridescent_Fantasy.png', 'jp': './assets/jp/combat_ui/QUIT_Iridescent_Fantasy.png', 'tw': './assets/cn/combat_ui/QUIT_Iridescent_Fantasy.png'}) +QUIT_MaidCafe = Button(area={'cn': (423, 549, 501, 568), 'en': (423, 549, 501, 568), 'jp': (423, 549, 501, 568), 'tw': (423, 549, 501, 568)}, color={'cn': (168, 142, 133), 'en': (168, 142, 133), 'jp': (168, 142, 133), 'tw': (168, 142, 133)}, button={'cn': (423, 549, 501, 568), 'en': (423, 549, 501, 568), 'jp': (423, 549, 501, 568), 'tw': (423, 549, 501, 568)}, file={'cn': './assets/cn/combat_ui/QUIT_MaidCafe.png', 'en': './assets/cn/combat_ui/QUIT_MaidCafe.png', 'jp': './assets/cn/combat_ui/QUIT_MaidCafe.png', 'tw': './assets/cn/combat_ui/QUIT_MaidCafe.png'}) QUIT_New = Button(area={'cn': (394, 506, 467, 524), 'en': (404, 506, 463, 523), 'jp': (394, 506, 467, 524), 'tw': (393, 505, 471, 524)}, color={'cn': (255, 180, 171), 'en': (255, 195, 187), 'jp': (255, 180, 171), 'tw': (255, 200, 193)}, button={'cn': (394, 506, 467, 524), 'en': (404, 506, 463, 523), 'jp': (394, 506, 467, 524), 'tw': (393, 505, 471, 524)}, file={'cn': './assets/cn/combat_ui/QUIT_New.png', 'en': './assets/en/combat_ui/QUIT_New.png', 'jp': './assets/cn/combat_ui/QUIT_New.png', 'tw': './assets/tw/combat_ui/QUIT_New.png'}) QUIT_Ninja = Button(area={'cn': (398, 509, 477, 528), 'en': (398, 509, 477, 528), 'jp': (398, 509, 477, 528), 'tw': (398, 509, 477, 528)}, color={'cn': (148, 138, 134), 'en': (148, 138, 134), 'jp': (148, 138, 134), 'tw': (148, 138, 134)}, button={'cn': (398, 509, 477, 528), 'en': (398, 509, 477, 528), 'jp': (398, 509, 477, 528), 'tw': (398, 509, 477, 528)}, file={'cn': './assets/cn/combat_ui/QUIT_Ninja.png', 'en': './assets/cn/combat_ui/QUIT_Ninja.png', 'jp': './assets/cn/combat_ui/QUIT_Ninja.png', 'tw': './assets/cn/combat_ui/QUIT_Ninja.png'}) 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'}) diff --git a/module/exercise/hp_daemon.py b/module/exercise/hp_daemon.py index 7dbe30bd9..e79bce505 100644 --- a/module/exercise/hp_daemon.py +++ b/module/exercise/hp_daemon.py @@ -74,7 +74,8 @@ class HpDaemon(ModuleBase): PAUSE_Seaside, PAUSE_Star, PAUSE_Ninja, - PAUSE_ShadowPuppetry + PAUSE_ShadowPuppetry, + PAUSE_MaidCafe, ]: 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)