diff --git a/assets/cn/coalition/HORROR_COALITION_CHECK.png b/assets/cn/coalition/HORROR_COALITION_CHECK.png new file mode 100644 index 000000000..88e462e02 Binary files /dev/null and b/assets/cn/coalition/HORROR_COALITION_CHECK.png differ diff --git a/assets/cn/coalition/HORROR_EASY.png b/assets/cn/coalition/HORROR_EASY.png new file mode 100644 index 000000000..9f1b0eb7f Binary files /dev/null and b/assets/cn/coalition/HORROR_EASY.png differ diff --git a/assets/cn/coalition/HORROR_EX.png b/assets/cn/coalition/HORROR_EX.png new file mode 100644 index 000000000..86a03f032 Binary files /dev/null and b/assets/cn/coalition/HORROR_EX.png differ diff --git a/assets/cn/coalition/HORROR_FLEET_PREPARATION.png b/assets/cn/coalition/HORROR_FLEET_PREPARATION.png new file mode 100644 index 000000000..5fc8d950d Binary files /dev/null and b/assets/cn/coalition/HORROR_FLEET_PREPARATION.png differ diff --git a/assets/cn/coalition/HORROR_HARD.png b/assets/cn/coalition/HORROR_HARD.png new file mode 100644 index 000000000..ae24cd254 Binary files /dev/null and b/assets/cn/coalition/HORROR_HARD.png differ diff --git a/assets/cn/coalition/HORROR_MODE_BATTLE.png b/assets/cn/coalition/HORROR_MODE_BATTLE.png new file mode 100644 index 000000000..9a2142ed3 Binary files /dev/null and b/assets/cn/coalition/HORROR_MODE_BATTLE.png differ diff --git a/assets/cn/coalition/HORROR_MODE_STORY.png b/assets/cn/coalition/HORROR_MODE_STORY.png new file mode 100644 index 000000000..f378fee73 Binary files /dev/null and b/assets/cn/coalition/HORROR_MODE_STORY.png differ diff --git a/assets/cn/coalition/HORROR_NORMAL.png b/assets/cn/coalition/HORROR_NORMAL.png new file mode 100644 index 000000000..fd6528ee4 Binary files /dev/null and b/assets/cn/coalition/HORROR_NORMAL.png differ diff --git a/assets/cn/coalition/HORROR_PT_OCR.png b/assets/cn/coalition/HORROR_PT_OCR.png new file mode 100644 index 000000000..609da8e2a Binary files /dev/null and b/assets/cn/coalition/HORROR_PT_OCR.png differ diff --git a/assets/cn/coalition/HORROR_SP.png b/assets/cn/coalition/HORROR_SP.png new file mode 100644 index 000000000..fe49c9913 Binary files /dev/null and b/assets/cn/coalition/HORROR_SP.png differ diff --git a/assets/cn/coalition/HORROR_SWITCH_MULTI.png b/assets/cn/coalition/HORROR_SWITCH_MULTI.png new file mode 100644 index 000000000..02d5a0edd Binary files /dev/null and b/assets/cn/coalition/HORROR_SWITCH_MULTI.png differ diff --git a/assets/cn/coalition/HORROR_SWITCH_SINGLE.png b/assets/cn/coalition/HORROR_SWITCH_SINGLE.png new file mode 100644 index 000000000..b048ba47f Binary files /dev/null and b/assets/cn/coalition/HORROR_SWITCH_SINGLE.png differ diff --git a/module/coalition/assets.py b/module/coalition/assets.py index 890b25525..9a0810226 100644 --- a/module/coalition/assets.py +++ b/module/coalition/assets.py @@ -60,6 +60,18 @@ FROSTFALL_SWITCH_SINGLE = Button(area={'cn': (968, 449, 1098, 478), 'en': (968, FROSTFALL_TC1 = Button(area={'cn': (304, 320, 330, 332), 'en': (304, 320, 330, 332), 'jp': (304, 320, 330, 332), 'tw': (304, 320, 330, 332)}, color={'cn': (204, 162, 254), 'en': (204, 162, 254), 'jp': (204, 162, 254), 'tw': (188, 137, 254)}, button={'cn': (304, 320, 330, 332), 'en': (304, 320, 330, 332), 'jp': (304, 320, 330, 332), 'tw': (304, 320, 330, 332)}, file={'cn': './assets/cn/coalition/FROSTFALL_TC1.png', 'en': './assets/en/coalition/FROSTFALL_TC1.png', 'jp': './assets/jp/coalition/FROSTFALL_TC1.png', 'tw': './assets/tw/coalition/FROSTFALL_TC1.png'}) FROSTFALL_TC2 = Button(area={'cn': (631, 160, 658, 173), 'en': (631, 160, 658, 173), 'jp': (631, 160, 658, 173), 'tw': (631, 160, 658, 173)}, color={'cn': (186, 136, 252), 'en': (186, 136, 252), 'jp': (186, 136, 252), 'tw': (186, 136, 252)}, button={'cn': (631, 160, 658, 173), 'en': (631, 160, 658, 173), 'jp': (631, 160, 658, 173), 'tw': (631, 160, 658, 173)}, file={'cn': './assets/cn/coalition/FROSTFALL_TC2.png', 'en': './assets/en/coalition/FROSTFALL_TC2.png', 'jp': './assets/jp/coalition/FROSTFALL_TC2.png', 'tw': './assets/tw/coalition/FROSTFALL_TC2.png'}) FROSTFALL_TC3 = Button(area={'cn': (810, 362, 835, 373), 'en': (810, 362, 835, 373), 'jp': (810, 362, 835, 373), 'tw': (810, 362, 835, 373)}, color={'cn': (197, 153, 255), 'en': (197, 153, 255), 'jp': (197, 153, 255), 'tw': (197, 153, 255)}, button={'cn': (810, 362, 835, 373), 'en': (810, 362, 835, 373), 'jp': (810, 362, 835, 373), 'tw': (810, 362, 835, 373)}, file={'cn': './assets/cn/coalition/FROSTFALL_TC3.png', 'en': './assets/en/coalition/FROSTFALL_TC3.png', 'jp': './assets/jp/coalition/FROSTFALL_TC3.png', 'tw': './assets/tw/coalition/FROSTFALL_TC3.png'}) +HORROR_COALITION_CHECK = Button(area={'cn': (204, 49, 250, 70), 'en': (204, 49, 250, 70), 'jp': (204, 49, 250, 70), 'tw': (204, 49, 250, 70)}, color={'cn': (142, 142, 164), 'en': (142, 142, 164), 'jp': (142, 142, 164), 'tw': (142, 142, 164)}, button={'cn': (204, 49, 250, 70), 'en': (204, 49, 250, 70), 'jp': (204, 49, 250, 70), 'tw': (204, 49, 250, 70)}, file={'cn': './assets/cn/coalition/HORROR_COALITION_CHECK.png', 'en': './assets/cn/coalition/HORROR_COALITION_CHECK.png', 'jp': './assets/cn/coalition/HORROR_COALITION_CHECK.png', 'tw': './assets/cn/coalition/HORROR_COALITION_CHECK.png'}) +HORROR_EASY = Button(area={'cn': (863, 425, 890, 464), 'en': (863, 425, 890, 464), 'jp': (863, 425, 890, 464), 'tw': (863, 425, 890, 464)}, color={'cn': (76, 76, 96), 'en': (76, 76, 96), 'jp': (76, 76, 96), 'tw': (76, 76, 96)}, button={'cn': (863, 425, 890, 464), 'en': (863, 425, 890, 464), 'jp': (863, 425, 890, 464), 'tw': (863, 425, 890, 464)}, file={'cn': './assets/cn/coalition/HORROR_EASY.png', 'en': './assets/cn/coalition/HORROR_EASY.png', 'jp': './assets/cn/coalition/HORROR_EASY.png', 'tw': './assets/cn/coalition/HORROR_EASY.png'}) +HORROR_EX = Button(area={'cn': (172, 410, 200, 448), 'en': (172, 410, 200, 448), 'jp': (172, 410, 200, 448), 'tw': (172, 410, 200, 448)}, color={'cn': (150, 101, 105), 'en': (150, 101, 105), 'jp': (150, 101, 105), 'tw': (150, 101, 105)}, button={'cn': (172, 410, 200, 448), 'en': (172, 410, 200, 448), 'jp': (172, 410, 200, 448), 'tw': (172, 410, 200, 448)}, file={'cn': './assets/cn/coalition/HORROR_EX.png', 'en': './assets/cn/coalition/HORROR_EX.png', 'jp': './assets/cn/coalition/HORROR_EX.png', 'tw': './assets/cn/coalition/HORROR_EX.png'}) +HORROR_FLEET_PREPARATION = Button(area={'cn': (1026, 514, 1139, 542), 'en': (1026, 514, 1139, 542), 'jp': (1026, 514, 1139, 542), 'tw': (1026, 514, 1139, 542)}, color={'cn': (146, 132, 183), 'en': (146, 132, 183), 'jp': (146, 132, 183), 'tw': (146, 132, 183)}, button={'cn': (1026, 514, 1139, 542), 'en': (1026, 514, 1139, 542), 'jp': (1026, 514, 1139, 542), 'tw': (1026, 514, 1139, 542)}, file={'cn': './assets/cn/coalition/HORROR_FLEET_PREPARATION.png', 'en': './assets/cn/coalition/HORROR_FLEET_PREPARATION.png', 'jp': './assets/cn/coalition/HORROR_FLEET_PREPARATION.png', 'tw': './assets/cn/coalition/HORROR_FLEET_PREPARATION.png'}) +HORROR_HARD = Button(area={'cn': (659, 343, 687, 382), 'en': (659, 343, 687, 382), 'jp': (659, 343, 687, 382), 'tw': (659, 343, 687, 382)}, color={'cn': (73, 74, 94), 'en': (73, 74, 94), 'jp': (73, 74, 94), 'tw': (73, 74, 94)}, button={'cn': (659, 343, 687, 382), 'en': (659, 343, 687, 382), 'jp': (659, 343, 687, 382), 'tw': (659, 343, 687, 382)}, file={'cn': './assets/cn/coalition/HORROR_HARD.png', 'en': './assets/cn/coalition/HORROR_HARD.png', 'jp': './assets/cn/coalition/HORROR_HARD.png', 'tw': './assets/cn/coalition/HORROR_HARD.png'}) +HORROR_MODE_BATTLE = Button(area={'cn': (76, 625, 115, 664), 'en': (76, 625, 115, 664), 'jp': (76, 625, 115, 664), 'tw': (76, 625, 115, 664)}, color={'cn': (146, 140, 156), 'en': (146, 140, 156), 'jp': (146, 140, 156), 'tw': (146, 140, 156)}, button={'cn': (76, 625, 115, 664), 'en': (76, 625, 115, 664), 'jp': (76, 625, 115, 664), 'tw': (76, 625, 115, 664)}, file={'cn': './assets/cn/coalition/HORROR_MODE_BATTLE.png', 'en': './assets/cn/coalition/HORROR_MODE_BATTLE.png', 'jp': './assets/cn/coalition/HORROR_MODE_BATTLE.png', 'tw': './assets/cn/coalition/HORROR_MODE_BATTLE.png'}) +HORROR_MODE_STORY = Button(area={'cn': (292, 626, 329, 665), 'en': (292, 626, 329, 665), 'jp': (292, 626, 329, 665), 'tw': (292, 626, 329, 665)}, color={'cn': (165, 155, 167), 'en': (165, 155, 167), 'jp': (165, 155, 167), 'tw': (165, 155, 167)}, button={'cn': (292, 626, 329, 665), 'en': (292, 626, 329, 665), 'jp': (292, 626, 329, 665), 'tw': (292, 626, 329, 665)}, file={'cn': './assets/cn/coalition/HORROR_MODE_STORY.png', 'en': './assets/cn/coalition/HORROR_MODE_STORY.png', 'jp': './assets/cn/coalition/HORROR_MODE_STORY.png', 'tw': './assets/cn/coalition/HORROR_MODE_STORY.png'}) +HORROR_NORMAL = Button(area={'cn': (765, 127, 793, 166), 'en': (765, 127, 793, 166), 'jp': (765, 127, 793, 166), 'tw': (765, 127, 793, 166)}, color={'cn': (75, 75, 92), 'en': (75, 75, 92), 'jp': (75, 75, 92), 'tw': (75, 75, 92)}, button={'cn': (765, 127, 793, 166), 'en': (765, 127, 793, 166), 'jp': (765, 127, 793, 166), 'tw': (765, 127, 793, 166)}, file={'cn': './assets/cn/coalition/HORROR_NORMAL.png', 'en': './assets/cn/coalition/HORROR_NORMAL.png', 'jp': './assets/cn/coalition/HORROR_NORMAL.png', 'tw': './assets/cn/coalition/HORROR_NORMAL.png'}) +HORROR_PT_OCR = Button(area={'cn': (1196, 339, 1276, 357), 'en': (1196, 339, 1276, 357), 'jp': (1196, 339, 1276, 357), 'tw': (1196, 339, 1276, 357)}, color={'cn': (62, 52, 54), 'en': (62, 52, 54), 'jp': (62, 52, 54), 'tw': (62, 52, 54)}, button={'cn': (1196, 339, 1276, 357), 'en': (1196, 339, 1276, 357), 'jp': (1196, 339, 1276, 357), 'tw': (1196, 339, 1276, 357)}, file={'cn': './assets/cn/coalition/HORROR_PT_OCR.png', 'en': './assets/cn/coalition/HORROR_PT_OCR.png', 'jp': './assets/cn/coalition/HORROR_PT_OCR.png', 'tw': './assets/cn/coalition/HORROR_PT_OCR.png'}) +HORROR_SP = Button(area={'cn': (430, 130, 458, 168), 'en': (430, 130, 458, 168), 'jp': (430, 130, 458, 168), 'tw': (430, 130, 458, 168)}, color={'cn': (161, 110, 112), 'en': (161, 110, 112), 'jp': (161, 110, 112), 'tw': (161, 110, 112)}, button={'cn': (430, 130, 458, 168), 'en': (430, 130, 458, 168), 'jp': (430, 130, 458, 168), 'tw': (430, 130, 458, 168)}, file={'cn': './assets/cn/coalition/HORROR_SP.png', 'en': './assets/cn/coalition/HORROR_SP.png', 'jp': './assets/cn/coalition/HORROR_SP.png', 'tw': './assets/cn/coalition/HORROR_SP.png'}) +HORROR_SWITCH_MULTI = Button(area={'cn': (1078, 458, 1208, 487), 'en': (1078, 458, 1208, 487), 'jp': (1078, 458, 1208, 487), 'tw': (1078, 458, 1208, 487)}, color={'cn': (229, 173, 59), 'en': (229, 173, 59), 'jp': (229, 173, 59), 'tw': (229, 173, 59)}, button={'cn': (1078, 458, 1208, 487), 'en': (1078, 458, 1208, 487), 'jp': (1078, 458, 1208, 487), 'tw': (1078, 458, 1208, 487)}, file={'cn': './assets/cn/coalition/HORROR_SWITCH_MULTI.png', 'en': './assets/cn/coalition/HORROR_SWITCH_MULTI.png', 'jp': './assets/cn/coalition/HORROR_SWITCH_MULTI.png', 'tw': './assets/cn/coalition/HORROR_SWITCH_MULTI.png'}) +HORROR_SWITCH_SINGLE = Button(area={'cn': (939, 458, 1070, 487), 'en': (939, 458, 1070, 487), 'jp': (939, 458, 1070, 487), 'tw': (939, 458, 1070, 487)}, color={'cn': (227, 171, 59), 'en': (227, 171, 59), 'jp': (227, 171, 59), 'tw': (227, 171, 59)}, button={'cn': (939, 458, 1070, 487), 'en': (939, 458, 1070, 487), 'jp': (939, 458, 1070, 487), 'tw': (939, 458, 1070, 487)}, file={'cn': './assets/cn/coalition/HORROR_SWITCH_SINGLE.png', 'en': './assets/cn/coalition/HORROR_SWITCH_SINGLE.png', 'jp': './assets/cn/coalition/HORROR_SWITCH_SINGLE.png', 'tw': './assets/cn/coalition/HORROR_SWITCH_SINGLE.png'}) NEONCITY_COALITION_CHECK = Button(area={'cn': (230, 36, 276, 82), 'en': (179, 30, 276, 68), 'jp': (122, 30, 250, 86), 'tw': (230, 36, 276, 82)}, color={'cn': (136, 139, 142), 'en': (95, 98, 101), 'jp': (71, 86, 101), 'tw': (136, 139, 142)}, button={'cn': (230, 36, 276, 82), 'en': (179, 30, 276, 68), 'jp': (122, 30, 250, 86), 'tw': (230, 36, 276, 82)}, file={'cn': './assets/cn/coalition/NEONCITY_COALITION_CHECK.png', 'en': './assets/en/coalition/NEONCITY_COALITION_CHECK.png', 'jp': './assets/jp/coalition/NEONCITY_COALITION_CHECK.png', 'tw': './assets/cn/coalition/NEONCITY_COALITION_CHECK.png'}) NEONCITY_EASY = Button(area={'cn': (255, 252, 308, 270), 'en': (306, 208, 349, 229), 'jp': (245, 250, 320, 273), 'tw': (304, 207, 350, 228)}, color={'cn': (131, 132, 135), 'en': (115, 124, 154), 'jp': (130, 130, 134), 'tw': (118, 128, 158)}, button={'cn': (255, 252, 308, 270), 'en': (306, 208, 349, 229), 'jp': (245, 250, 320, 273), 'tw': (304, 207, 350, 228)}, file={'cn': './assets/cn/coalition/NEONCITY_EASY.png', 'en': './assets/en/coalition/NEONCITY_EASY.png', 'jp': './assets/jp/coalition/NEONCITY_EASY.png', 'tw': './assets/tw/coalition/NEONCITY_EASY.png'}) NEONCITY_EX = Button(area={'cn': (655, 353, 708, 370), 'en': (714, 308, 741, 328), 'jp': (643, 350, 720, 373), 'tw': (709, 308, 746, 328)}, color={'cn': (151, 150, 151), 'en': (162, 100, 99), 'jp': (137, 136, 137), 'tw': (157, 92, 93)}, button={'cn': (655, 353, 708, 370), 'en': (714, 308, 741, 328), 'jp': (643, 350, 720, 373), 'tw': (709, 308, 746, 328)}, file={'cn': './assets/cn/coalition/NEONCITY_EX.png', 'en': './assets/en/coalition/NEONCITY_EX.png', 'jp': './assets/jp/coalition/NEONCITY_EX.png', 'tw': './assets/tw/coalition/NEONCITY_EX.png'}) diff --git a/module/coalition/coalition.py b/module/coalition/coalition.py index eab449e3d..50a072738 100644 --- a/module/coalition/coalition.py +++ b/module/coalition/coalition.py @@ -60,6 +60,8 @@ class Coalition(CoalitionCombat, CampaignEvent): ocr = DALPtOcr(DAL_PT_OCR, name='OCR_PT', letter=(255, 213, 69), threshold=128) elif event == 'coalition_20260122': ocr = Digit(FASHION_PT_OCR, name='OCR_PT', letter=(41, 40, 40), threshold=128) + elif event == 'coalition_20260723': + ocr = Digit(HORROR_PT_OCR, name='OCR_PT', lang='cnocr', letter=(228, 230, 237), threshold=256) else: logger.error(f'ocr object is not defined in event {event}') raise ScriptError @@ -83,6 +85,8 @@ class Coalition(CoalitionCombat, CampaignEvent): """ if self.config.Campaign_Event == 'coalition_20260122': return False + if self.config.Campaign_Event == 'coalition_20260723': + return False return True def triggered_stop_condition(self, oil_check=False, pt_check=False): diff --git a/module/coalition/ui.py b/module/coalition/ui.py index a439c6644..42ecfa1b5 100644 --- a/module/coalition/ui.py +++ b/module/coalition/ui.py @@ -19,6 +19,13 @@ class NeoncitySwitch(Switch): return 'unknown' +class HorrorSwitch(Switch): + def handle_additional(self, main): + if main.handle_story_skip(): + return True + return super().handle_additional(main) + + class CoalitionUI(Combat): def in_coalition(self): # The same as raid @@ -61,6 +68,11 @@ class CoalitionUI(Combat): mode_switch = Switch('CoalitionMode', offset=(20, 20)) mode_switch.add_state('story', FASHION_MODE_STORY) mode_switch.add_state('battle', FASHION_MODE_BATTLE) + elif event == 'coalition_20260723': + # HORROR mode has appear animation so enlarge search area + mode_switch = HorrorSwitch('CoalitionMode', offset=(50, 20)) + mode_switch.add_state('story', HORROR_MODE_STORY) + mode_switch.add_state('battle', HORROR_MODE_BATTLE) else: logger.error(f'MODE_SWITCH is not defined in event {event}') raise ScriptError @@ -100,6 +112,9 @@ class CoalitionUI(Combat): elif event == 'coalition_20260122': fleet_switch.add_state('single', FASHION_SWITCH_SINGLE) fleet_switch.add_state('multi', FASHION_SWITCH_MULTI) + elif event == 'coalition_20260723': + fleet_switch.add_state('single', HORROR_SWITCH_SINGLE) + fleet_switch.add_state('multi', HORROR_SWITCH_MULTI) else: logger.error(f'FLEET_SWITCH is not defined in event {event}') raise ScriptError @@ -164,6 +179,12 @@ class CoalitionUI(Combat): ('coalition_20260122', 'hard'): FASHION_HARD, ('coalition_20260122', 'sp'): FASHION_SP, ('coalition_20260122', 'ex'): FASHION_EX, + # HORROR + ('coalition_20260723', 'easy'): HORROR_EASY, + ('coalition_20260723', 'normal'): HORROR_NORMAL, + ('coalition_20260723', 'hard'): HORROR_HARD, + ('coalition_20260723', 'sp'): HORROR_SP, + ('coalition_20260723', 'ex'): HORROR_EX, } stage = stage.lower() try: @@ -252,6 +273,12 @@ class CoalitionUI(Combat): ('coalition_20260122', 'hard'): 3, ('coalition_20260122', 'sp'): 4, ('coalition_20260122', 'ex'): 5, + # HORROR + ('coalition_20260723', 'easy'): 1, + ('coalition_20260723', 'normal'): 2, + ('coalition_20260723', 'hard'): 3, + ('coalition_20260723', 'sp'): 4, + ('coalition_20260723', 'ex'): 5, } stage = stage.lower() try: @@ -280,6 +307,8 @@ class CoalitionUI(Combat): elif event == 'coalition_20260122': # FASHION reuses NEONCITY, just (-12, -12) shifted return NEONCITY_FLEET_PREPARATION + elif event == 'coalition_20260723': + return HORROR_FLEET_PREPARATION else: logger.error(f'FLEET_PREPARATION is not defined in event {event}') raise ScriptError @@ -304,6 +333,7 @@ class CoalitionUI(Combat): 'coalition_20240627', 'coalition_20250626', 'coalition_20260122', + 'coalition_20260723', ]: # easy is single fleet, SP and EX must must multiple fleets if stage in ['easy', 'sp', 'ex']: @@ -346,9 +376,10 @@ class CoalitionUI(Combat): logger.info(f'{fleet_preparation} -> {NEONCITY_PREPARATION_EXIT}') self.device.click(NEONCITY_PREPARATION_EXIT) continue - if self.appear_then_click(DAL_DIFFICULTY_EXIT, offset=(20, 20), interval=3): - logger.info(f'{DAL_DIFFICULTY_EXIT} -> {DAL_DIFFICULTY_EXIT}') - continue + if event == 'coalition_20251120': + if self.appear_then_click(DAL_DIFFICULTY_EXIT, offset=(20, 20), interval=3): + logger.info(f'{DAL_DIFFICULTY_EXIT} -> {DAL_DIFFICULTY_EXIT}') + continue def enter_map(self, event, stage, mode): """ diff --git a/module/ui/page.py b/module/ui/page.py index 3c415c37b..7635b7e54 100644 --- a/module/ui/page.py +++ b/module/ui/page.py @@ -132,10 +132,10 @@ page_campaign.link(button=CAMPAIGN_GOTO_EVENT, destination=page_sp) # Coalition # FROSTFALL -page_coalition = Page(FROSTFALL_COALITION_CHECK) -page_coalition.link(button=GOTO_MAIN, destination=page_main) -page_coalition.link(button=BACK_ARROW, destination=page_campaign_menu) -page_campaign_menu.link(button=CAMPAIGN_MENU_GOTO_EVENT, destination=page_coalition) +# page_coalition = Page(FROSTFALL_COALITION_CHECK) +# page_coalition.link(button=GOTO_MAIN, destination=page_main) +# page_coalition.link(button=BACK_ARROW, destination=page_campaign_menu) +# page_campaign_menu.link(button=CAMPAIGN_MENU_GOTO_EVENT, destination=page_coalition) # ACADEMY # page_coalition_menu = Page(COALITION_ACADEMY_MAIN_CHECK) # page_coalition_menu.link(button=COALITION_ACADEMY_HOME, destination=page_main) @@ -159,6 +159,11 @@ page_campaign_menu.link(button=CAMPAIGN_MENU_GOTO_EVENT, destination=page_coalit # page_coalition.link(button=GOTO_MAIN, destination=page_main) # page_coalition.link(button=BACK_ARROW, destination=page_campaign_menu) # page_campaign_menu.link(button=CAMPAIGN_MENU_GOTO_EVENT, destination=page_coalition) +# HORROR +page_coalition = Page(HORROR_COALITION_CHECK) +page_coalition.link(button=GOTO_MAIN, destination=page_main) +page_coalition.link(button=BACK_ARROW, destination=page_campaign_menu) +page_campaign_menu.link(button=CAMPAIGN_MENU_GOTO_EVENT, destination=page_coalition) # Operation Siren page_os = Page(OS_CHECK)