diff --git a/assets/cn/freebies/OCR_DATA_KEY.png b/assets/cn/freebies/OCR_DATA_KEY.png index 43a3e3cb5..371df7fcc 100644 Binary files a/assets/cn/freebies/OCR_DATA_KEY.png and b/assets/cn/freebies/OCR_DATA_KEY.png differ diff --git a/assets/en/freebies/OCR_DATA_KEY.png b/assets/en/freebies/OCR_DATA_KEY.png index 375da5561..371df7fcc 100644 Binary files a/assets/en/freebies/OCR_DATA_KEY.png and b/assets/en/freebies/OCR_DATA_KEY.png differ diff --git a/assets/jp/freebies/OCR_DATA_KEY.png b/assets/jp/freebies/OCR_DATA_KEY.png index 43a3e3cb5..371df7fcc 100644 Binary files a/assets/jp/freebies/OCR_DATA_KEY.png and b/assets/jp/freebies/OCR_DATA_KEY.png differ diff --git a/assets/tw/freebies/OCR_DATA_KEY.png b/assets/tw/freebies/OCR_DATA_KEY.png index 43a3e3cb5..371df7fcc 100644 Binary files a/assets/tw/freebies/OCR_DATA_KEY.png and b/assets/tw/freebies/OCR_DATA_KEY.png differ diff --git a/campaign/campaign_hard/campaign_14_4.py b/campaign/campaign_hard/campaign_14_4.py new file mode 100644 index 000000000..6d751b71d --- /dev/null +++ b/campaign/campaign_hard/campaign_14_4.py @@ -0,0 +1,129 @@ +from module.logger import logger +from module.map.map_base import CampaignMap +from module.map.map_grids import RoadGrids, SelectedGrids + +from campaign.campaign_main.campaign_14_base import CampaignBase +from campaign.campaign_main.campaign_14_base import Config as ConfigBase + +MAP = CampaignMap('14-4') +MAP.shape = 'K9' +MAP.camera_data = ['D2', 'D6', 'D7', 'H2', 'H6', 'H7'] +MAP.camera_data_spawn_point = ['H2'] +MAP.map_covered = ['A4'] +MAP.map_data = """ + ME -- ++ ++ -- ME ME ME ++ ++ ++ + -- ME ME ME ME ME ME -- SP SP -- + MB -- __ -- -- -- -- -- ME -- -- + MB ME -- Me Me -- Me ++ ++ -- ME + MM -- Me ME -- Me -- MA ++ -- ME + ++ ME ME -- ++ -- ME -- ME -- -- + ++ -- ME Me Me ME -- -- -- -- ++ + -- ME -- -- -- __ -- ME ME -- ME + -- -- ++ MB MB ++ ++ MM ME ME ME +""" +MAP.map_data_loop = """ + ME -- ++ ++ -- ME ME ME ++ ++ ++ + -- ME ME ME ME ME ME -- SP SP -- + MB -- __ -- -- -- -- -- ME -- -- + MB ME -- Me Me -- Me ++ ++ -- ME + MM -- Me ME -- Me -- MA ++ -- ME + ++ ME ME -- ++ -- ME -- ME -- -- + ++ -- ME Me Me ME -- -- -- -- ++ + -- -- -- -- -- __ -- ME ME -- ME + -- -- ++ MB MB ++ ++ MM ME ME ME +""" +MAP.weight_data = """ + 40 40 40 40 50 50 50 50 50 50 50 + 40 40 40 40 50 50 50 50 50 50 50 + 40 40 40 40 50 50 50 50 50 50 50 + 40 40 40 40 50 50 50 50 50 50 50 + 40 40 40 40 50 50 50 50 50 50 50 + 40 40 40 40 50 50 50 50 50 50 50 + 40 40 40 40 50 50 50 50 50 50 50 + 50 10 50 50 50 50 50 40 40 50 50 + 50 50 50 50 50 50 50 50 50 40 50 +""" +MAP.spawn_data = [ + {'battle': 0, 'enemy': 4}, + {'battle': 1, 'enemy': 3}, + {'battle': 2, 'enemy': 2}, + {'battle': 3, 'enemy': 2}, + {'battle': 4, 'enemy': 1}, + {'battle': 5, 'enemy': 1}, + {'battle': 6}, + {'battle': 7, 'boss': 1}, +] +MAP.spawn_data_loop = [ + {'battle': 0, 'boss': 1}, +] +A1, B1, C1, D1, E1, F1, G1, H1, I1, J1, K1, \ +A2, B2, C2, D2, E2, F2, G2, H2, I2, J2, K2, \ +A3, B3, C3, D3, E3, F3, G3, H3, I3, J3, K3, \ +A4, B4, C4, D4, E4, F4, G4, H4, I4, J4, K4, \ +A5, B5, C5, D5, E5, F5, G5, H5, I5, J5, K5, \ +A6, B6, C6, D6, E6, F6, G6, H6, I6, J6, K6, \ +A7, B7, C7, D7, E7, F7, G7, H7, I7, J7, K7, \ +A8, B8, C8, D8, E8, F8, G8, H8, I8, J8, K8, \ +A9, B9, C9, D9, E9, F9, G9, H9, I9, J9, K9, \ + = MAP.flatten() + +road_A8 = RoadGrids([B8]) +road_H9 = RoadGrids([[H8, I8, J9], ]) + + +class Config(ConfigBase): + # ===== Start of generated config ===== + # MAP_SIREN_TEMPLATE = ['0'] + # MOVABLE_ENEMY_TURN = (2,) + # MAP_HAS_SIREN = True + # MAP_HAS_MOVABLE_ENEMY = True + MAP_HAS_MAP_STORY = False + MAP_HAS_FLEET_STEP = False + MAP_HAS_AMBUSH = True + # MAP_HAS_MYSTERY = True + # ===== End of generated config ===== + + MAP_WALK_USE_CURRENT_FLEET = True + + +class Campaign(CampaignBase): + MAP = MAP + + def battle_0(self): + self.pick_up_light_house(A9) + + if self.clear_roadblocks([road_A8, road_H9], weakest=False): + return True + if self.clear_filter_enemy(self.ENEMY_FILTER, preserve=1): + return True + + return self.battle_default() + + def battle_3(self): + self.pick_up_light_house(A9) + self.pick_up_ammo() + self.pick_up_flare(H9) + + if self.clear_roadblocks([road_A8, road_H9], weakest=False): + return True + if self.clear_filter_enemy(self.ENEMY_FILTER, preserve=1): + return True + + return self.battle_default() + + def battle_6(self): + self.pick_up_light_house(A9) + self.pick_up_ammo() + self.pick_up_flare(H9) + + if self.clear_roadblocks([road_A8, road_H9], weakest=False): + return True + if self.clear_filter_enemy(self.ENEMY_FILTER, preserve=0): + return True + + return self.battle_default() + + def battle_7(self): + self.fleet_boss.pick_up_flare(A5) + + return self.fleet_boss.clear_boss() diff --git a/module/equipment/equipment_code.py b/module/equipment/equipment_code.py index 3344629a9..ff00194e0 100644 --- a/module/equipment/equipment_code.py +++ b/module/equipment/equipment_code.py @@ -21,6 +21,7 @@ EQUIPMENT_PREVIEW = list([ class EquipmentCodeHandler(StorageHandler): last_code: str = None + FASTINPUT_IME = 'com.github.uiautomator/.FastInputIME' def equipment_code_supported(self): method = self.config.Emulator_ControlMethod @@ -161,10 +162,21 @@ class EquipmentCodeHandler(StorageHandler): def set_fastinput_ime(self): d = self.device.u2 + failed = False try: - d.set_fastinput_ime(True) - except Exception: - logger.warning("FastInputIME not enabled, trying to enable it") + for command in ('enable', 'set'): + result = d.shell(['ime', command, self.FASTINPUT_IME]) + exit_code = getattr(result, 'exit_code', 0) + output = getattr(result, 'output', result) + if exit_code: + failed = True + logger.warning(f"Unable to {command} FastInputIME: {output.strip()}") + except Exception as e: + failed = True + logger.warning(f"Unable to set FastInputIME: {e}") + + if failed: + logger.warning("FastInputIME not enabled by adb shell, trying to enable it in settings") self.fastinput_ime_enable() def _code_input(self, code): @@ -174,7 +186,7 @@ class EquipmentCodeHandler(StorageHandler): for _ in self.loop(): name, shown = d.current_ime() if shown: - if name != 'com.github.uiautomator/.FastInputIME': + if name != self.FASTINPUT_IME: self.set_fastinput_ime() continue else: diff --git a/module/freebies/assets.py b/module/freebies/assets.py index 87acfc45a..b8c92d869 100644 --- a/module/freebies/assets.py +++ b/module/freebies/assets.py @@ -20,7 +20,7 @@ MAIL_SELECT_GEMS = Button(area={'cn': (442, 441, 462, 461), 'en': (442, 441, 462 MAIL_SELECT_MERIT = Button(area={'cn': (802, 401, 822, 421), 'en': (802, 401, 822, 421), 'jp': (802, 410, 822, 430), 'tw': (802, 401, 822, 421)}, color={'cn': (87, 87, 88), 'en': (87, 87, 88), 'jp': (239, 239, 239), 'tw': (87, 87, 88)}, button={'cn': (802, 401, 822, 421), 'en': (802, 401, 822, 421), 'jp': (802, 410, 822, 430), 'tw': (802, 401, 822, 421)}, file={'cn': './assets/cn/freebies/MAIL_SELECT_MERIT.png', 'en': './assets/en/freebies/MAIL_SELECT_MERIT.png', 'jp': './assets/jp/freebies/MAIL_SELECT_MERIT.png', 'tw': './assets/tw/freebies/MAIL_SELECT_MERIT.png'}) MAIL_SELECT_OIL = Button(area={'cn': (682, 401, 702, 421), 'en': (682, 401, 702, 421), 'jp': (682, 410, 702, 430), 'tw': (682, 401, 702, 421)}, color={'cn': (241, 240, 241), 'en': (241, 240, 241), 'jp': (239, 239, 239), 'tw': (241, 240, 241)}, button={'cn': (682, 401, 702, 421), 'en': (682, 401, 702, 421), 'jp': (682, 410, 702, 430), 'tw': (682, 401, 702, 421)}, file={'cn': './assets/cn/freebies/MAIL_SELECT_OIL.png', 'en': './assets/en/freebies/MAIL_SELECT_OIL.png', 'jp': './assets/jp/freebies/MAIL_SELECT_OIL.png', 'tw': './assets/tw/freebies/MAIL_SELECT_OIL.png'}) MAIL_WHITE_EMPTY = Button(area={'cn': (178, 375, 266, 400), 'en': (236, 365, 371, 404), 'jp': (178, 375, 266, 400), 'tw': (178, 375, 266, 400)}, color={'cn': (131, 141, 158), 'en': (148, 160, 177), 'jp': (131, 141, 158), 'tw': (131, 141, 158)}, button={'cn': (178, 375, 266, 400), 'en': (236, 365, 371, 404), 'jp': (178, 375, 266, 400), 'tw': (178, 375, 266, 400)}, file={'cn': './assets/cn/freebies/MAIL_WHITE_EMPTY.png', 'en': './assets/en/freebies/MAIL_WHITE_EMPTY.png', 'jp': './assets/jp/freebies/MAIL_WHITE_EMPTY.png', 'tw': './assets/cn/freebies/MAIL_WHITE_EMPTY.png'}) -OCR_DATA_KEY = Button(area={'cn': (132, 42, 233, 70), 'en': (132, 42, 233, 70), 'jp': (132, 42, 233, 70), 'tw': (132, 42, 233, 70)}, color={'cn': (74, 75, 86), 'en': (74, 75, 86), 'jp': (74, 75, 86), 'tw': (74, 75, 86)}, button={'cn': (132, 42, 233, 70), 'en': (132, 42, 233, 70), 'jp': (132, 42, 233, 70), 'tw': (132, 42, 233, 70)}, file={'cn': './assets/cn/freebies/OCR_DATA_KEY.png', 'en': './assets/en/freebies/OCR_DATA_KEY.png', 'jp': './assets/jp/freebies/OCR_DATA_KEY.png', 'tw': './assets/tw/freebies/OCR_DATA_KEY.png'}) +OCR_DATA_KEY = Button(area={'cn': (133, 39, 250, 72), 'en': (133, 39, 250, 72), 'jp': (133, 39, 250, 72), 'tw': (133, 39, 250, 72)}, color={'cn': (82, 80, 91), 'en': (82, 80, 91), 'jp': (82, 80, 91), 'tw': (82, 80, 91)}, button={'cn': (133, 39, 250, 72), 'en': (133, 39, 250, 72), 'jp': (133, 39, 250, 72), 'tw': (133, 39, 250, 72)}, file={'cn': './assets/cn/freebies/OCR_DATA_KEY.png', 'en': './assets/en/freebies/OCR_DATA_KEY.png', 'jp': './assets/jp/freebies/OCR_DATA_KEY.png', 'tw': './assets/tw/freebies/OCR_DATA_KEY.png'}) PURCHASE_POPUP = Button(area={'cn': (907, 204, 934, 229), 'en': (907, 204, 934, 229), 'jp': (907, 204, 934, 229), 'tw': (907, 204, 934, 229)}, color={'cn': (176, 130, 110), 'en': (176, 130, 110), 'jp': (176, 130, 110), 'tw': (176, 130, 110)}, button={'cn': (907, 204, 934, 229), 'en': (907, 204, 934, 229), 'jp': (907, 204, 934, 229), 'tw': (907, 204, 934, 229)}, file={'cn': './assets/cn/freebies/PURCHASE_POPUP.png', 'en': './assets/en/freebies/PURCHASE_POPUP.png', 'jp': './assets/jp/freebies/PURCHASE_POPUP.png', 'tw': './assets/tw/freebies/PURCHASE_POPUP.png'}) REWARD_RECEIVE = Button(area={'cn': (1192, 520, 1255, 536), 'en': (1192, 522, 1254, 534), 'jp': (1186, 518, 1259, 536), 'tw': (1192, 520, 1255, 536)}, color={'cn': (191, 178, 163), 'en': (195, 182, 168), 'jp': (208, 197, 183), 'tw': (191, 178, 163)}, button={'cn': (1192, 520, 1255, 536), 'en': (1192, 522, 1254, 534), 'jp': (1186, 518, 1259, 536), 'tw': (1192, 520, 1255, 536)}, file={'cn': './assets/cn/freebies/REWARD_RECEIVE.png', 'en': './assets/en/freebies/REWARD_RECEIVE.png', 'jp': './assets/jp/freebies/REWARD_RECEIVE.png', 'tw': './assets/cn/freebies/REWARD_RECEIVE.png'}) REWARD_RECEIVE_SP = Button(area={'cn': (1105, 579, 1184, 597), 'en': (1090, 580, 1197, 596), 'jp': (1091, 599, 1171, 618), 'tw': (1105, 579, 1184, 597)}, color={'cn': (178, 143, 126), 'en': (168, 129, 111), 'jp': (168, 127, 109), 'tw': (178, 143, 126)}, button={'cn': (1105, 579, 1184, 597), 'en': (1090, 580, 1197, 596), 'jp': (1091, 599, 1171, 618), 'tw': (1105, 579, 1184, 597)}, file={'cn': './assets/cn/freebies/REWARD_RECEIVE_SP.png', 'en': './assets/en/freebies/REWARD_RECEIVE_SP.png', 'jp': './assets/jp/freebies/REWARD_RECEIVE_SP.png', 'tw': './assets/cn/freebies/REWARD_RECEIVE_SP.png'}) diff --git a/module/research/preset.py b/module/research/preset.py index 794e32330..9827c16c1 100644 --- a/module/research/preset.py +++ b/module/research/preset.py @@ -6,7 +6,7 @@ DICT_FILTER_PRESET = { # Average rewards: [238.69016631 238.37881965 529.71190834 528.92520834 528.39586667 150.07973333] 'series_9_ta152_only_cube': """ S9-Q0.5 > S9-DR0.5 > S9-PRY0.5 > Q0.5 > S9-Q4 > S9-Q2 > S9-Q1 > 0.5 - > S9-E-315 > S9-G1.5 > S9-G4 > Q1 > reset > S9-H1 > H1 > 1 > S9-E-031 + > S9-E-315 > S9-G1.5 > S9-G4 > Q1 > S8-E-880 > S8-E-180 > reset > S9-H1 > H1 > 1 > S9-E-031 > S9-DR2.5 > S9-PRY2.5 > S9-G2.5 > G1.5 > 1.5 > Q2 > E2 > S9-H2 > H2 > 2 > DR2.5 > PRY2.5 > G2.5 > 2.5 > S9-DR5 > S9-PRY5 > Q4 > G4 > S9-H4 > H4 > 4 > S9-C6 > DR5 > PRY5 > 5 > S9-DR8 > S9-PRY8 > S9-C8 @@ -17,7 +17,7 @@ DICT_FILTER_PRESET = { # Average rewards: [241.92774575 241.13046242 421.82134358 421.04494941 420.46893024 150.07799978] 'series_9_ta152_only': """ S9-Q0.5 > S9-PRY0.5 > S9-DR0.5 > Q0.5 > S9-Q4 > S9-Q2 > S9-Q1 > 0.5 - > S9-E-315 > S9-G4 > S9-G1.5 > Q1 > 1 > S9-E-031 > S9-DR2.5 > reset + > S9-E-315 > S9-G4 > S9-G1.5 > Q1 > 1 > S9-E-031 > S9-DR2.5 > S8-E-880 > S8-E-180 > reset > S9-G2.5 > S9-PRY2.5 > G1.5 > 1.5 > Q2 > E2 > 2 > DR2.5 > PRY2.5 > G2.5 > 2.5 > S9-DR5 > S9-PRY5 > Q4 > G4 > 4 > S9-C6 > DR5 > PRY5 > 5 > S9-DR8 > S9-PRY8 > S9-C8 > C6 > 6 > DR8 > PRY8 > C8 > 8 @@ -28,7 +28,7 @@ DICT_FILTER_PRESET = { # Average rewards: [531.93022864 529.81919864 510.27473326 510.18530159 510.11215826 100.8088164] 'series_9_blueprint_ta152_cube': """ S9-DR0.5 > S9-Q0.5 > S9-PRY0.5 > 0.5 > S9-DR2.5 > S9-Q1 > S9-Q2 - > S9-H1 > S9-E-315 > S9-G1.5 > reset > S9-Q4 > S9-G4 > S9-H2 > Q1 + > S9-H1 > S9-E-315 > S9-G1.5 > S8-E-880 > S8-E-180 > reset > S9-Q4 > S9-G4 > S9-H2 > Q1 > H1 > 1 > S9-G2.5 > S9-DR5 > S9-PRY2.5 > G1.5 > 1.5 > S9-E-031 > S9-DR8 > Q2 > E2 > H2 > 2 > DR2.5 > PRY2.5 > G2.5 > 2.5 > S9-H4 > S9-PRY5 > Q4 > G4 > H4 > 4 > S9-C6 > S9-PRY8 > DR5 > PRY5 > 5 > C6 @@ -39,7 +39,7 @@ DICT_FILTER_PRESET = { # Average rewards: [520.06195858 519.19883191 392.86544828 392.64870495 392.49383995 102.2368499] 'series_9_blueprint_ta152': """ S9-DR0.5 > S9-PRY0.5 > S9-Q0.5 > S9-H0.5 > Q0.5 > S9-DR2.5 - > S9-G1.5 > S9-Q1 > S9-DR5 > 0.5 > S9-G4 > S9-Q2 > S9-PRY2.5 > reset + > S9-G1.5 > S9-Q1 > S9-DR5 > 0.5 > S9-G4 > S9-Q2 > S9-PRY2.5 > S8-E-880 > S8-E-180 > reset > S9-DR8 > Q1 > 1 > S9-E-315 > S9-G2.5 > G1.5 > 1.5 > S9-E-031 > S9-Q4 > Q2 > E2 > 2 > DR2.5 > PRY2.5 > G2.5 > 2.5 > S9-PRY5 > S9-PRY8 > Q4 > G4 > 4 > S9-C6 > DR5 > PRY5 > 5 > C6 > 6 > S9-C8 @@ -50,7 +50,7 @@ DICT_FILTER_PRESET = { # Average rewards: [519.0311752 514.64003687 653.77171198 653.72126532 653.66129615 26.97694791] 'series_9_blueprint_only_cube': """ S9-DR0.5 > S9-PRY0.5 > S9-H0.5 > S9-H1 > S9-H2 > S9-DR2.5 > S9-DR5 - > 0.5 > S9-DR8 > reset > S9-H4 > S9-Q1 > Q1 > H1 > 1 > S9-G1.5 > G1.5 + > 0.5 > S9-DR8 > S8-E-880 > S8-E-180 > reset > S9-H4 > S9-Q1 > Q1 > H1 > 1 > S9-G1.5 > G1.5 > 1.5 > S9-G2.5 > S9-Q2 > S9-E-315 > S9-E-031 > Q2 > E2 > H2 > 2 > S9-PRY2.5 > S9-G4 > DR2.5 > PRY2.5 > G2.5 > 2.5 > S9-Q4 > Q4 > G4 > H4 > 4 > S9-PRY5 > S9-PRY8 > S9-C6 > DR5 > PRY5 > 5 > C6 > 6 @@ -61,7 +61,7 @@ DICT_FILTER_PRESET = { # Average rewards: [514.96354877 514.70099977 355.58865468 354.96831385 354.66888635 56.48432238] 'series_9_blueprint_only': """ S9-DR0.5 > S9-H0.5 > S9-PRY0.5 > S9-DR8 > S9-DR5 > S9-DR2.5 - > S9-G1.5 > S9-PRY2.5 > 0.5 > S9-G2.5 > S9-G4 > reset > S9-Q1 > Q1 + > S9-G1.5 > S9-PRY2.5 > 0.5 > S9-G2.5 > S9-G4 > S8-E-880 > S8-E-180 > reset > S9-Q1 > Q1 > 1 > S9-PRY5 > G1.5 > 1.5 > S9-Q2 > S9-E-031 > S9-E-315 > Q2 > E2 > 2 > S9-PRY8 > DR2.5 > PRY2.5 > G2.5 > 2.5 > S9-Q4 > Q4 > G4 > 4 > S9-C6 > DR5 > PRY5 > 5 > C6 > 6 > S9-C8 > DR8 > PRY8 > C8 > 8 @@ -72,7 +72,7 @@ DICT_FILTER_PRESET = { # Average rewards: [238.69016631 238.37881965 529.71190834 528.92520834 528.39586667 150.07973333] 'series_8_305_only_cube': """ S8-Q0.5 > S8-DR0.5 > S8-PRY0.5 > Q0.5 > S8-Q4 > S8-Q2 > S8-Q1 > 0.5 - > S8-E-315 > S8-G1.5 > S8-G4 > Q1 > reset > S8-H1 > H1 > 1 > S8-E-031 + > S8-E-880 > S8-E-180 > S8-E-315 > S8-G1.5 > S8-G4 > Q1 > reset > S8-H1 > H1 > 1 > S8-E-031 > S8-DR2.5 > S8-PRY2.5 > S8-G2.5 > G1.5 > 1.5 > Q2 > E2 > S8-H2 > H2 > 2 > DR2.5 > PRY2.5 > G2.5 > 2.5 > S8-DR5 > S8-PRY5 > Q4 > G4 > S8-H4 > H4 > 4 > S8-C6 > DR5 > PRY5 > 5 > S8-DR8 > S8-PRY8 > S8-C8 @@ -83,7 +83,7 @@ DICT_FILTER_PRESET = { # Average rewards: [241.92774575 241.13046242 421.82134358 421.04494941 420.46893024 150.07799978] 'series_8_305_only': """ S8-Q0.5 > S8-PRY0.5 > S8-DR0.5 > Q0.5 > S8-Q4 > S8-Q2 > S8-Q1 > 0.5 - > S8-E-315 > S8-G4 > S8-G1.5 > Q1 > 1 > S8-E-031 > S8-DR2.5 > reset + > S8-E-880 > S8-E-180 > S8-E-315 > S8-G4 > S8-G1.5 > Q1 > 1 > S8-E-031 > S8-DR2.5 > reset > S8-G2.5 > S8-PRY2.5 > G1.5 > 1.5 > Q2 > E2 > 2 > DR2.5 > PRY2.5 > G2.5 > 2.5 > S8-DR5 > S8-PRY5 > Q4 > G4 > 4 > S8-C6 > DR5 > PRY5 > 5 > S8-DR8 > S8-PRY8 > S8-C8 > C6 > 6 > DR8 > PRY8 > C8 > 8 @@ -94,7 +94,7 @@ DICT_FILTER_PRESET = { # Average rewards: [531.93022864 529.81919864 510.27473326 510.18530159 510.11215826 100.8088164] 'series_8_blueprint_305_cube': """ S8-DR0.5 > S8-Q0.5 > S8-PRY0.5 > 0.5 > S8-DR2.5 > S8-Q1 > S8-Q2 - > S8-H1 > S8-E-315 > S8-G1.5 > reset > S8-Q4 > S8-G4 > S8-H2 > Q1 + > S8-H1 > S8-E-880 > S8-E-180 > S8-E-315 > S8-G1.5 > reset > S8-Q4 > S8-G4 > S8-H2 > Q1 > H1 > 1 > S8-G2.5 > S8-DR5 > S8-PRY2.5 > G1.5 > 1.5 > S8-E-031 > S8-DR8 > Q2 > E2 > H2 > 2 > DR2.5 > PRY2.5 > G2.5 > 2.5 > S8-H4 > S8-PRY5 > Q4 > G4 > H4 > 4 > S8-C6 > S8-PRY8 > DR5 > PRY5 > 5 > C6 @@ -106,7 +106,7 @@ DICT_FILTER_PRESET = { 'series_8_blueprint_305': """ S8-DR0.5 > S8-PRY0.5 > S8-Q0.5 > S8-H0.5 > Q0.5 > S8-DR2.5 > S8-G1.5 > S8-Q1 > S8-DR5 > 0.5 > S8-G4 > S8-Q2 > S8-PRY2.5 > reset - > S8-DR8 > Q1 > 1 > S8-E-315 > S8-G2.5 > G1.5 > 1.5 > S8-E-031 + > S8-DR8 > Q1 > 1 > S8-E-880 > S8-E-180 > S8-E-315 > S8-G2.5 > G1.5 > 1.5 > S8-E-031 > S8-Q4 > Q2 > E2 > 2 > DR2.5 > PRY2.5 > G2.5 > 2.5 > S8-PRY5 > S8-PRY8 > Q4 > G4 > 4 > S8-C6 > DR5 > PRY5 > 5 > C6 > 6 > S8-C8 > S8-C12 > DR8 > PRY8 > C8 > 8 > C12 > 12 @@ -117,7 +117,7 @@ DICT_FILTER_PRESET = { 'series_8_blueprint_only_cube': """ S8-DR0.5 > S8-PRY0.5 > S8-H0.5 > S8-H1 > S8-H2 > S8-DR2.5 > S8-DR5 > 0.5 > S8-DR8 > reset > S8-H4 > S8-Q1 > Q1 > H1 > 1 > S8-G1.5 > G1.5 - > 1.5 > S8-G2.5 > S8-Q2 > S8-E-315 > S8-E-031 > Q2 > E2 > H2 > 2 + > 1.5 > S8-G2.5 > S8-Q2 > S8-E-880 > S8-E-180 > S8-E-315 > S8-E-031 > Q2 > E2 > H2 > 2 > S8-PRY2.5 > S8-G4 > DR2.5 > PRY2.5 > G2.5 > 2.5 > S8-Q4 > Q4 > G4 > H4 > 4 > S8-PRY5 > S8-PRY8 > S8-C6 > DR5 > PRY5 > 5 > C6 > 6 > S8-C8 > S8-C12 > DR8 > PRY8 > C8 > 8 > C12 > 12 @@ -128,7 +128,7 @@ DICT_FILTER_PRESET = { 'series_8_blueprint_only': """ S8-DR0.5 > S8-H0.5 > S8-PRY0.5 > S8-DR8 > S8-DR5 > S8-DR2.5 > S8-G1.5 > S8-PRY2.5 > 0.5 > S8-G2.5 > S8-G4 > reset > S8-Q1 > Q1 - > 1 > S8-PRY5 > G1.5 > 1.5 > S8-Q2 > S8-E-031 > S8-E-315 > Q2 > E2 + > 1 > S8-PRY5 > G1.5 > 1.5 > S8-Q2 > S8-E-880 > S8-E-180 > S8-E-031 > S8-E-315 > Q2 > E2 > 2 > S8-PRY8 > DR2.5 > PRY2.5 > G2.5 > 2.5 > S8-Q4 > Q4 > G4 > 4 > S8-C6 > DR5 > PRY5 > 5 > C6 > 6 > S8-C8 > DR8 > PRY8 > C8 > 8 > S8-C12 > C12 > 12 diff --git a/module/ui/setting.py b/module/ui/setting.py index 7a87fd7ef..2206934ba 100644 --- a/module/ui/setting.py +++ b/module/ui/setting.py @@ -47,6 +47,8 @@ class Setting: if isinstance(option_buttons, ButtonGrid): option_buttons = option_buttons.buttons for option, option_name in zip(option_buttons, option_names): + if option_name == 'not_available': + continue self.settings[(setting, option_name)] = option if option_default not in option_names: