diff --git a/module/equipment/equipment.py b/module/equipment/equipment.py index 89b4eaa0d..c0ef97829 100644 --- a/module/equipment/equipment.py +++ b/module/equipment/equipment.py @@ -1,6 +1,9 @@ from module.base.button import ButtonGrid from module.base.decorator import cached_property from module.base.timer import Timer +from module.base.utils import ApiCollectionSwitch +from module.config.config import AzurLaneConfig +from module.device.device import Device from module.equipment.assets import * from module.logger import logger from module.retire.assets import DOCK_CHECK @@ -574,12 +577,97 @@ def equip_redirect_inherit_to_old() -> bool: return False -class Equipment(EquipmentOld if equip_redirect_inherit_to_old() else EquipmentOld): - def __init__(self, *args, **kwargs): - if isinstance(self, EquipmentOld): - logger.info("use EquipmentOld") - elif isinstance(self, EquipmentNew): - logger.info("use EquipmentNew") - else: - raise NameError("unknown inherit") - super().__init__(*args, **kwargs) +class Equipment(StorageHandler, ApiCollectionSwitch): + def __init__(self, config, device=None, task=None): + conf = AzurLaneConfig.build_azurlane_config(config, task) + dev = Device.build_device(conf, device) + + self.equipment_old: EquipmentOld = EquipmentOld(config=conf, device=dev, task=task) + self.equipment_new: EquipmentNew = EquipmentNew(config=conf, device=dev, task=task) + StorageHandler.__init__(self, config=conf, device=dev, task=task) + ApiCollectionSwitch.__init__(self, self.equipment_old, self.equipment_new) + + ''' + EquipmentOld + ''' + + @cached_property + def equipment_has_take_on(self): + return self.equipment_old.equipment_has_take_on + + def equipping_set(self, enable=False): + return self.equipment_old.equipping_set(enable=enable) + + def _equip_view_swipe(self, distance, check_button=EQUIPMENT_OPEN): + return self.equipment_old._equip_view_swipe(distance=distance, check_button=check_button) + + def equip_view_next(self, check_button=EQUIPMENT_OPEN): + return self.equipment_old.equip_view_next(check_button=check_button) + + def equip_view_prev(self, check_button=EQUIPMENT_OPEN): + return self.equipment_old.equip_view_prev(check_button=check_button) + + def equip_enter(self, click_button, check_button=EQUIPMENT_OPEN, long_click=True, skil_first_screenshot=True): + return self.equipment_old.equip_enter(click_button, check_button, long_click, skil_first_screenshot) + + @cached_property + def _equip_side_navbar(self): + return self.equipment_old._equip_side_navbar + + def equip_side_navbar_ensure(self, upper=None, bottom=None): + return self.equipment_old.equip_side_navbar_ensure(upper=upper, bottom=bottom) + + def _equip_take_off_one(self, skip_first_screenshot=True): + return self.equipment_old._equip_take_off_one(skip_first_screenshot=skip_first_screenshot) + + def equipment_take_off(self, enter, out, fleet): + return self.equipment_old.equipment_take_off(enter, out, fleet) + + def _equip_take_on_one(self, index, skip_first_screenshot=True): + return self.equipment_old._equip_take_on_one(index, skip_first_screenshot=skip_first_screenshot) + + def equipment_take_on(self, enter, out, fleet): + return self.equipment_old.equipment_take_off(enter, out, fleet) + + ''' + EquipmentNew + ''' + + @cached_property + def equipment_has_take_on(self): + return self.equipment_new.equipment_has_take_on + + def _ship_view_swipe(self, distance, check_button=EQUIPMENT_OPEN): + return self.equipment_new._ship_view_swipe(distance=distance, check_button=check_button) + + def ship_view_next(self, check_button=EQUIPMENT_OPEN): + return self.equipment_new.ship_view_next(check_button=check_button) + + def ship_view_prev(self, check_button=EQUIPMENT_OPEN): + return self.equipment_new.ship_view_next(check_button=check_button) + + def ship_info_enter(self, click_button, check_button=EQUIPMENT_OPEN, long_click=True, skil_first_screenshot=True): + return self.equipment_new.ship_info_enter(click_button=click_button, check_button=check_button, skil_first_screenshot=skil_first_screenshot) + + @cached_property + def _ship_side_navbar(self): + return self.equipment_new._ship_side_navbar + + def ship_side_navbar_ensure(self, upper=None, bottom=None): + return self.equipment_new.ship_side_navbar_ensure(upper=upper, bottom=bottom) + + def ship_equipment_take_off(self, skip_first_screenshot=True): + return self.equipment_new.ship_equipment_take_off(skip_first_screenshot=skip_first_screenshot) + + def fleet_equipment_take_off(self, enter, long_click, out): + return self.equipment_new.fleet_equipment_take_off(enter, long_click, out) + + def ship_equipment_take_on_preset(self, index, skip_first_screenshot=True): + return self.equipment_new.ship_equipment_take_off(index, skip_first_screenshot=skip_first_screenshot) + + def fleet_equipment_take_on_preset(self, preset_record, enter, long_click, out): + return self.equipment_new.fleet_equipment_take_on_preset(preset_record, enter, long_click, out) + + ''' + Public + ''' diff --git a/module/equipment/equipment_change.py b/module/equipment/equipment_change.py index 1b6934c5e..90e4c4a18 100644 --- a/module/equipment/equipment_change.py +++ b/module/equipment/equipment_change.py @@ -1,11 +1,14 @@ import gl from module.base.button import ButtonGrid -from module.base.decorator import Config +from module.base.decorator import Config, cached_property from module.base.utils import * +from module.config.config import AzurLaneConfig +from module.device.device import Device from module.equipment.assets import * from module.equipment.assets_override import equip_assets_override -from module.equipment.equipment import Equipment +from module.equipment.equipment import Equipment, EquipmentOld, EquipmentNew from module.logger import logger +from module.storage.storage import StorageHandler from module.ui.assets import BACK_ARROW from module.ui.scroll import Scroll from module.ui.switch import Switch @@ -24,7 +27,7 @@ equipping_filter.add_state('on', check_button=EQUIPPING_ON) equipping_filter.add_state('off', check_button=EQUIPPING_OFF) -class EquipmentChangeOld(Equipment): +class EquipmentChangeOld(EquipmentOld): equip_list = {} equipping_list = [] @@ -174,7 +177,7 @@ class EquipmentChangeOld(Equipment): return -class EquipmentChangeNew(Equipment): +class EquipmentChangeNew(EquipmentNew): equipment_list = {} @equip_assets_override("new") @@ -315,12 +318,176 @@ class EquipmentChangeNew(Equipment): return -class EquipmentChange(EquipmentChangeOld if gl.gl_get("g_current_task", "") == "GemsFarming" else EquipmentChangeOld): - def __init__(self, *args, **kwargs): - if isinstance(self, EquipmentChangeOld): - logger.info("use EquipmentChangeOld") - elif isinstance(self, EquipmentChangeNew): - logger.info("use EquipmentChangeNew") +class EquipmentChange(StorageHandler, ApiCollectionSwitch): + def __init__(self, config, device=None, task=None): + conf = AzurLaneConfig.build_azurlane_config(config, task) + dev = Device.build_device(conf, device) + + self.equipment_change_old: EquipmentChangeOld = EquipmentChangeOld(config=conf, device=dev, task=task) + self.equipment_change_new: EquipmentChangeNew = EquipmentChangeNew(config=conf, device=dev, task=task) + StorageHandler.__init__(self, config=conf, device=dev, task=task) + ApiCollectionSwitch.__init__(self, self.equipment_change_old, self.equipment_change_new) + + ''' + EquipmentChangeOld + ''' + + @cached_property + def equip_list(self): + return self.equipment_change_old.equip_list + + @cached_property + def equipping_list(self): + return self.equipment_change_old.equipping_list + + def get_equiping_list(self, skip_first_screenshot=True): + return self.equipment_change_old.get_equiping_list(skip_first_screenshot=skip_first_screenshot) + + def record_equipment(self, index_list=range(0, 5)): + return self.equipment_change_old.record_equipment(index_list=index_list) + + def equipment_take_on(self, *args, **kwargs): + if "index_list" in kwargs or "skip_first_screenshot" in kwargs: + return EquipmentChangeOld.equipment_take_on(self.equipment_change_old, *args, **kwargs) else: - raise NameError("unknown inherit") - super().__init__(*args, **kwargs) + return EquipmentOld.equipment_take_on(self.equipment_change_old, *args, **kwargs) + + @Config.when(DEVICE_CONTROL_METHOD='minitouch') + def _equipment_swipe(self, distance=190): + return self.equipment_change_old._equipment_swipe(distance=distance) + + @Config.when(DEVICE_CONTROL_METHOD=None) + def _equipment_swipe(self, distance=300): + return self.equipment_change_old._equipment_swipe(distance=distance) + + # def _equip_equipment(self, point, offset=(100, 100)): + # return self.equipment_change_old._equip_equipment(point, offset=offset) + + def _find_equip(self, index): + return self.equipment_change_old._find_equip(index) + + ''' + EquipmentChangeOld.EquipmentOld + ''' + + @cached_property + def equipment_has_take_on(self): + return self.equipment_change_old.equipment_has_take_on + + '''in Public section''' + # def equipping_set(self, enable=False): + # return self.equipment_change_old.equipping_set(enable=enable) + + def _equip_view_swipe(self, distance, check_button=EQUIPMENT_OPEN): + return self.equipment_change_old._equip_view_swipe(distance=distance, check_button=check_button) + + def equip_view_next(self, check_button=EQUIPMENT_OPEN): + return self.equipment_change_old.equip_view_next(check_button=check_button) + + def equip_view_prev(self, check_button=EQUIPMENT_OPEN): + return self.equipment_change_old.equip_view_prev(check_button=check_button) + + def equip_enter(self, click_button, check_button=EQUIPMENT_OPEN, long_click=True, skil_first_screenshot=True): + return self.equipment_change_old.equip_enter(click_button=click_button, check_button=check_button, long_click=long_click, skil_first_screenshot=skil_first_screenshot) + + @cached_property + def _equip_side_navbar(self): + return self.equipment_change_old._equip_side_navbar + + def equip_side_navbar_ensure(self, upper=None, bottom=None): + return self.equipment_change_old.equip_side_navbar_ensure(upper=upper, bottom=bottom) + + def _equip_take_off_one(self, skip_first_screenshot=True): + return self.equipment_change_old._equip_take_off_one(skip_first_screenshot=skip_first_screenshot) + + def equipment_take_off(self, enter, out, fleet): + return self.equipment_change_old.equipment_take_off(enter, out, fleet) + + def _equip_take_on_one(self, index, skip_first_screenshot=True): + return self.equipment_change_old._equip_take_on_one(index=index, skip_first_screenshot=skip_first_screenshot) + + '''in EquipmentChangeOld section''' + # def equipment_take_on(self, enter, out, fleet): + # return self.equipment_change_old.equipment_take_on(enter, out, fleet) + + ''' + EquipmentChangeNew + ''' + + @cached_property + def equipment_list(self): + return self.equipment_change_new.equipment_list + + '''in Public section''' + # def equipping_set(self, enable=False): + # return self.equipment_change_new.equipping_set(enable=enable) + + def ship_equipment_record_image(self, index_list=range(0, 5)): + return self.equipment_change_new.ship_equipment_record_image(index_list=index_list) + + def ship_equipment_take_on_image(self, index_list=range(0, 5), skip_first_screenshot=True): + return self.equipment_change_new.ship_equipment_take_on_image(index_list=index_list, skip_first_screenshot=skip_first_screenshot) + + @Config.when(DEVICE_CONTROL_METHOD='minitouch') + def _equipment_swipe(self, distance=190): + return self.equipment_change_new._equipment_swipe(distance=distance) + + @Config.when(DEVICE_CONTROL_METHOD=None) + def _equipment_swipe(self, distance=300): + return self.equipment_change_new._equipment_swipe(distance=distance) + + '''in Public section''' + # def _equip_equipment(self, point, offset=(100, 100)): + # return self.equipment_change_new._equip_equipment(point, offset=offset) + + def _find_equipment(self, index): + return self.equipment_change_new._find_equipment(index) + + ''' + EquipmentChangeNew.EquipmentNew + ''' + + @cached_property + def equipment_has_take_on(self): + return self.equipment_change_new.equipment_has_take_on + + def _ship_view_swipe(self, distance, check_button=EQUIPMENT_OPEN): + return self.equipment_change_new._ship_view_swipe(distance=distance, check_button=check_button) + + def ship_view_next(self, check_button=EQUIPMENT_OPEN): + return self.equipment_change_new.ship_view_next(check_button=check_button) + + def ship_view_prev(self, check_button=EQUIPMENT_OPEN): + return self.equipment_change_new.ship_view_prev(check_button=check_button) + + def ship_info_enter(self, click_button, check_button=EQUIPMENT_OPEN, long_click=True, skil_first_screenshot=True): + return self.equipment_change_new.ship_info_enter(click_button=click_button, check_button=check_button, long_click=long_click, skil_first_screenshot=skil_first_screenshot) + + @cached_property + def _ship_side_navbar(self): + return self.equipment_change_new._ship_side_navbar + + def ship_side_navbar_ensure(self, upper=None, bottom=None): + return self.equipment_change_new.ship_side_navbar_ensure(upper=upper, bottom=bottom) + + def ship_equipment_take_off(self, skip_first_screenshot=True): + return self.equipment_change_new.ship_equipment_take_off(skip_first_screenshot=skip_first_screenshot) + + def fleet_equipment_take_off(self, enter, long_click, out): + return self.equipment_change_new.fleet_equipment_take_off(enter, long_click, out) + + def ship_equipment_take_on_preset(self, index, skip_first_screenshot=True): + return self.equipment_change_new.ship_equipment_take_on_preset(index, skip_first_screenshot=skip_first_screenshot) + + def fleet_equipment_take_on_preset(self, preset_record, enter, long_click, out): + return self.equipment_change_new.fleet_equipment_take_on_preset(preset_record, enter, long_click, out) + + ''' + Public + ''' + + def equipping_set(self, enable=False): + return self.current_use.equipping_set(enable=enable) + + def _equip_equipment(self, point, offset=(100, 100)): + return self.current_use._equip_equipment(point, offset=offset) diff --git a/module/equipment/fleet_equipment.py b/module/equipment/fleet_equipment.py index ae128c690..ca61c6f31 100644 --- a/module/equipment/fleet_equipment.py +++ b/module/equipment/fleet_equipment.py @@ -1,16 +1,22 @@ import gl +from module.base.decorator import cached_property, Config +from module.base.utils import ApiCollectionSwitch from module.equipment.assets import * -from module.equipment.equipment import Equipment -from module.equipment.equipment_change import EquipmentChange +from module.equipment.equipment import Equipment, EquipmentOld +from module.equipment.equipment_change import EquipmentChange, EquipmentChangeOld, EquipmentChangeNew from module.logger import logger from module.ocr.ocr import Digit +from module.storage.storage import StorageHandler from module.ui.assets import FLEET_CHECK from module.ui.page import page_fleet +from module.config.config import AzurLaneConfig +from module.device.device import Device +from collections import deque OCR_FLEET_INDEX = Digit(OCR_FLEET_INDEX, letter=(90, 154, 255), threshold=128, alphabet='123456') -class DailyEquipment(Equipment): +class DailyEquipment(EquipmentChangeOld): equipment_has_take_on = False @property @@ -49,7 +55,7 @@ class DailyEquipment(Equipment): return True -class FleetEquipmentNew(EquipmentChange): +class FleetEquipmentNew(EquipmentChangeNew): def fleet_enter(self, fleet): self.ui_ensure(page_fleet) self.ui_ensure_index(fleet, letter=OCR_FLEET_INDEX, @@ -79,12 +85,169 @@ class FleetEquipmentNew(EquipmentChange): self.ui_back(FLEET_CHECK) -class FleetEquipment(DailyEquipment if gl.gl_get("g_current_task", "") == "GemsFarming" else FleetEquipmentNew): - def __init__(self, *args, **kwargs): - if isinstance(self, DailyEquipment): - logger.info("use DailyEquipment") - elif isinstance(self, FleetEquipmentNew): - logger.info("use FleetEquipmentNew") +class FleetEquipment(StorageHandler, ApiCollectionSwitch): + def __init__(self, config, device=None, task=None): + conf = AzurLaneConfig.build_azurlane_config(config, task) + dev = Device.build_device(conf, device) + + self.fleet_equipment_old: DailyEquipment = DailyEquipment(config=conf, device=dev, task=task) + self.fleet_equipment_new: FleetEquipmentNew = FleetEquipmentNew(config=conf, device=dev, task=task) + StorageHandler.__init__(self, config=conf, device=dev, task=task) + ApiCollectionSwitch.__init__(self, self.fleet_equipment_old, self.fleet_equipment_new) + + ''' + DailyEquipment + ''' + + @property + def _fleet_daily(self): + return self.fleet_equipment_old._fleet_daily + + def equipment_take_on(self, *args, **kwargs): + if "index_list" in kwargs or "skip_first_screenshot" in kwargs: + return EquipmentChangeOld.equipment_take_on(self.fleet_equipment_old, *args, **kwargs) + elif len(args) == 3: + return EquipmentOld.equipment_take_off(self.fleet_equipment_old, *args, **kwargs) else: - raise NameError("unknown inherit") - super().__init__(*args, **kwargs) + return self.fleet_equipment_old.equipment_take_on() + + def equipment_take_off(self, *args, **kwargs): + if len(args) == 3: + return EquipmentOld.equipment_take_off(self.fleet_equipment_old, *args, **kwargs) + else: + return self.fleet_equipment_old.equipment_take_off() + + ''' + DailyEquipment.EquipmentChangeOld + ''' + + @cached_property + def equip_list(self): + return self.fleet_equipment_old.equip_list + + @cached_property + def equipping_list(self): + return self.fleet_equipment_old.equipping_list + + def get_equiping_list(self, skip_first_screenshot=True): + return self.fleet_equipment_old.get_equiping_list(skip_first_screenshot=skip_first_screenshot) + + def record_equipment(self, index_list=range(0, 5)): + return self.fleet_equipment_old.record_equipment(index_list) + + '''in DailyEquipment section''' + + # def equipment_take_on(self, index_list=range(0, 5), skip_first_screenshot=True): + # ... + + @Config.when(DEVICE_CONTROL_METHOD='minitouch') + def _equipment_swipe(self, distance=190): + return self.fleet_equipment_old._equipment_swipe(distance) + + @Config.when(DEVICE_CONTROL_METHOD=None) + def _equipment_swipe(self, distance=300): + return self.fleet_equipment_old._equipment_swipe(distance) + + '''in Public section''' + + # def _equip_equipment(self, point, offset=(100, 100)): + # ... + + def _find_equip(self, index): + return self.fleet_equipment_old._find_equip(index) + + ''' + DailyEquipment.EquipmentChangeOld.EquipmentOld + ''' + + @cached_property + def equipment_has_take_on(self): + return self.fleet_equipment_old.equipment_has_take_on + + def equipping_set(self, enable=False): + return self.fleet_equipment_old.equipping_set(enable=enable) + + def _equip_view_swipe(self, distance, check_button=EQUIPMENT_OPEN): + return self.fleet_equipment_old._equip_view_swipe(distance=distance, check_button=check_button) + + def equip_view_next(self, check_button=EQUIPMENT_OPEN): + return self.fleet_equipment_old.equip_view_next(check_button=check_button) + + def equip_view_prev(self, check_button=EQUIPMENT_OPEN): + return self.fleet_equipment_old.equip_view_prev(check_button=check_button) + + def equip_enter(self, click_button, check_button=EQUIPMENT_OPEN, long_click=True, skil_first_screenshot=True): + return self.fleet_equipment_old.equip_enter(click_button=click_button, check_button=check_button, + long_click=long_click, skil_first_screenshot=skil_first_screenshot) + + @cached_property + def _equip_side_navbar(self): + return self.fleet_equipment_old._equip_side_navbar + + def equip_side_navbar_ensure(self, upper=None, bottom=None): + return self.fleet_equipment_old.equip_side_navbar_ensure(upper=upper, bottom=bottom) + + def _equip_take_off_one(self, skip_first_screenshot=True): + return self.fleet_equipment_old._equip_take_off_one(skip_first_screenshot=skip_first_screenshot) + + '''in DailyEquipment section''' + + # def equipment_take_off(self, enter, out, fleet): + # ... + + def _equip_take_on_one(self, index, skip_first_screenshot=True): + return self.fleet_equipment_old._equip_take_on_one(index=index, skip_first_screenshot=skip_first_screenshot) + + '''in DailyEquipment section''' + # def equipment_take_on(self, enter, out, fleet): + # ... + + ''' + FleetEquipmentNew + ''' + + def fleet_enter(self, fleet): + return self.fleet_equipment_new.fleet_enter(fleet) + + def fleet_equipment_take_on_preset(self, preset_record, enter=FLEET_DETAIL_ENTER_FLAGSHIP, + long_click=False, out=FLEET_DETAIL_CHECK): + return self.fleet_equipment_new.fleet_equipment_take_on_preset(preset_record=preset_record, enter=enter, + long_click=long_click, out=out) + + def fleet_equipment_take_off(self, enter=FLEET_DETAIL_ENTER_FLAGSHIP, long_click=False, out=FLEET_DETAIL_CHECK): + return self.fleet_equipment_new.fleet_equipment_take_off(enter=enter, long_click=long_click, out=out) + + def fleet_enter_ship(self, button): + return self.fleet_equipment_new.fleet_enter_ship(button) + + def fleet_back(self): + return self.fleet_equipment_new.fleet_back() + + @cached_property + def equipment_list(self): + return self.fleet_equipment_new.equipment_list + + def ship_equipment_record_image(self, index_list=range(0, 5)): + return self.fleet_equipment_new.ship_equipment_record_image(index_list=index_list) + + def ship_equipment_take_on_image(self, index_list=range(0, 5), skip_first_screenshot=True): + return self.fleet_equipment_new.ship_equipment_take_on_image(index_list=index_list, + skip_first_screenshot=skip_first_screenshot) + + @Config.when(DEVICE_CONTROL_METHOD='minitouch') + def _equipment_swipe(self, distance=190): + return self.fleet_equipment_new._equipment_swipe(distance=distance) + + @Config.when(DEVICE_CONTROL_METHOD=None) + def _equipment_swipe(self, distance=300): + return self.fleet_equipment_new._equipment_swipe(distance=distance) + + def _find_equipment(self, index): + return self.fleet_equipment_new._find_equipment(index) + + ''' + Public + ''' + + def _equip_equipment(self, point, offset=(100, 100)): + return self.current_use._equip_equipment(point, offset) diff --git a/module/retire/dock.py b/module/retire/dock.py index 74cba6f68..6aea3cb0f 100644 --- a/module/retire/dock.py +++ b/module/retire/dock.py @@ -1,17 +1,23 @@ import module.config.server as server import gl +from module.base import button from module.base.button import ButtonGrid from module.base.decorator import cached_property from module.base.timer import Timer +from module.base.utils import ApiCollectionSwitch +from module.config.config import AzurLaneConfig +from module.device.device import Device +from module.equipment.assets import EQUIPMENT_OPEN from module.logger import logger from module.ocr.ocr import DigitCounter from module.retire.assets import * +from module.storage.storage import StorageHandler from module.ui.scroll import Scroll from module.ui.setting import Setting from module.ui.switch import Switch from module.ui.ui import UI -from module.equipment.equipment import Equipment +from module.equipment.equipment import Equipment, EquipmentOld, EquipmentNew, SWIPE_DISTANCE DOCK_SORTING = Switch('Dork_sorting') DOCK_SORTING.add_state('Ascending', check_button=SORT_ASC, click_button=SORTING_CLICK) @@ -36,7 +42,7 @@ DOCK_SCROLL = Scroll(DOCK_SCROLL, color=(247, 211, 66), name='DOCK_SCROLL') OCR_DOCK_SELECTED = DigitCounter(DOCK_SELECTED, threshold=64, name='OCR_DOCK_SELECTED') -class DockOld(Equipment): +class DockOld(EquipmentOld): def handle_dock_cards_loading(self): # Poor implementation. self.device.sleep((1, 1.5)) @@ -248,7 +254,7 @@ class DockOld(Equipment): continue -class DockNew(Equipment): +class DockNew(EquipmentNew): def handle_dock_cards_loading(self): # Poor implementation. self.device.sleep((1, 1.5)) @@ -448,12 +454,246 @@ def redirect_inherit_to_old() -> bool: return False -class Dock(DockOld if redirect_inherit_to_old() else DockOld): - def __init__(self, *args, **kwargs): - if isinstance(self, DockOld): - logger.info("use DockOld") - elif isinstance(self, DockNew): - logger.info("use DockNew") +class Dock(StorageHandler, ApiCollectionSwitch): + def __init__(self, config, device=None, task=None): + conf = AzurLaneConfig.build_azurlane_config(config, task) + dev = Device.build_device(conf, device) + + self.dock_old: DockOld = DockOld(config=conf, device=dev, task=task) + self.dock_new: DockNew = DockNew(config=conf, device=dev, task=task) + StorageHandler.__init__(self, config=conf, device=dev, task=task) + ApiCollectionSwitch.__init__(self, self.dock_old, self.dock_new) + + ''' + DockOld + ''' + + '''in Public section''' + # def handle_dock_cards_loading(self): + # return self.dock_old.handle_dock_cards_loading() + + def dock_favourite_set(self, *args, **kwargs): + if "wait_loading" in kwargs: + return self.dock_old.dock_favourite_set(*args, **kwargs) else: - raise NameError("unknown inherit") - super().__init__(*args, **kwargs) + return self.dock_new.dock_favourite_set(*args, **kwargs) + + '''in Public section''' + # def _dock_quit_check_func(self): + # return self.dock_old._dock_quit_check_func() + + '''in Public section''' + # def dock_quit(self): + # return self.dock_old.dock_quit() + + def dock_sort_method_dsc_set(self, *args, **kwargs): + if "wait_loading" in kwargs: + return self.dock_old.dock_favourite_set(*args, **kwargs) + else: + return self.dock_new.dock_favourite_set(*args, **kwargs) + + '''in Public section''' + # def dock_filter_enter(self): + # return self.dock_old.dock_filter_enter() + + '''in Public section''' + # def dock_filter_confirm(self, wait_loading=True): + # return self.dock_old.dock_filter_confirm(wait_loading=wait_loading) + + '''in Public section''' + # @cached_property + # def dock_filter(self) -> Setting: + # return self.dock_old.dock_filter + + '''in Public section''' + # def dock_filter_set( + # self, + # sort='level', + # index='all', + # faction='all', + # rarity='all', + # extra='no_limit', + # wait_loading=True + # ): + # return self.dock_old.dock_filter_set() + + '''in Public section''' + # def dock_select_one(self, button, skip_first_screenshot=True): + # return self.dock_old.dock_select_one(button, skip_first_screenshot=skip_first_screenshot) + + '''in Public section''' + # def dock_selected(self, skip_first_screenshot=True): + # return self.dock_old.dock_selected(skip_first_screenshot=skip_first_screenshot) + + '''in Public section''' + # def dock_select_confirm(self, check_button, skip_first_screenshot=True): + # return self.dock_old.dock_select_confirm(check_button, skip_first_screenshot=skip_first_screenshot) + + ''' + DockOld.EquipmentOld + ''' + + @cached_property + def equipment_has_take_on(self): + return self.dock_old.equipment_has_take_on + + def equipping_set(self, enable=False): + return self.dock_old.equipping_set(enable=enable) + + def _equip_view_swipe(self, distance, check_button=EQUIPMENT_OPEN): + return self.dock_old._equip_view_swipe(distance, check_button=check_button) + + def equip_view_next(self, check_button=EQUIPMENT_OPEN): + return self.dock_old.equip_view_next(check_button=check_button) + + def equip_view_prev(self, check_button=EQUIPMENT_OPEN): + return self.dock_old.equip_view_prev(check_button=check_button) + + def equip_enter(self, click_button, check_button=EQUIPMENT_OPEN, long_click=True, skil_first_screenshot=True): + return self.dock_old.equip_enter(click_button=click_button, check_button=check_button, long_click=long_click,skil_first_screenshot=skil_first_screenshot) + + @cached_property + def _equip_side_navbar(self): + return self.dock_old._equip_side_navbar + + def equip_side_navbar_ensure(self, upper=None, bottom=None): + return self.dock_old.equip_side_navbar_ensure(upper=upper, bottom=bottom) + + def _equip_take_off_one(self, skip_first_screenshot=True): + return self.dock_old._equip_take_off_one(skip_first_screenshot=skip_first_screenshot) + + def equipment_take_off(self, enter, out, fleet): + return self.dock_old.equipment_take_off(enter, out, fleet=fleet) + + def _equip_take_on_one(self, index, skip_first_screenshot=True): + return self.dock_old._equip_take_on_one(index=index, skip_first_screenshot=skip_first_screenshot) + + def equipment_take_on(self, enter, out, fleet): + return self.dock_old.equipment_take_on(enter, out, fleet=fleet) + + ''' + DockNew + ''' + + '''in Public section''' + # def handle_dock_cards_loading(self): + # return self.dock_new.handle_dock_cards_loading() + + '''in DockOld section''' + # def dock_favourite_set(self, enable=False): + # return self.dock_new.dock_favourite_set(enable=enable) + + '''in Public section''' + # def _dock_quit_check_func(self): + # return self.dock_new._dock_quit_check_func() + + '''in Public section''' + # def dock_quit(self): + # return self.dock_new.dock_quit() + + '''in DockOld section''' + # def dock_sort_method_dsc_set(self, enable=True): + # return self.dock_new.dock_sort_method_dsc_set(enable=enable) + + '''in Public section''' + # def dock_filter_enter(self): + # return self.dock_new.dock_filter_enter() + + '''in Public section''' + # def dock_filter_confirm(self, wait_loading=True): + # return self.dock_new.dock_filter_confirm(wait_loading=wait_loading) + + '''in Public section''' + # @cached_property + # def dock_filter(self) -> Setting: + # return self.dock_new.dock_filter + + '''in Public section''' + # def dock_filter_set(self, sort='level', index='all', faction='all', rarity='all', extra='no_limit', wait_loading=True): + # return self.dock_new.dock_filter_set(sort, index, faction, rarity, extra, wait_loading) + + '''in Public section''' + # def dock_select_one(self, button, skip_first_screenshot=True): + # return self.dock_new.dock_select_one(button, skip_first_screenshot=skip_first_screenshot) + + '''in Public section''' + # def dock_selected(self, skip_first_screenshot=True): + # return self.dock_new.dock_selected(skip_first_screenshot=skip_first_screenshot) + + '''in Public section''' + # def dock_select_confirm(self, check_button, skip_first_screenshot=True): + # return self.dock_new.dock_select_confirm(check_button, skip_first_screenshot=skip_first_screenshot) + + ''' + DockNew.EquipmentNew + ''' + + @cached_property + def equipment_has_take_on(self): + return self.dock_new.equipment_has_take_on + + def _ship_view_swipe(self, distance, check_button=EQUIPMENT_OPEN): + return self.dock_new._ship_view_swipe(distance, check_button=check_button) + + def ship_view_next(self, check_button=EQUIPMENT_OPEN): + return self.dock_new.ship_view_next(check_button=check_button) + + def ship_view_prev(self, check_button=EQUIPMENT_OPEN): + return self.dock_new.ship_view_prev(check_button=check_button) + + def ship_info_enter(self, click_button, check_button=EQUIPMENT_OPEN, long_click=True, skil_first_screenshot=True): + return self.dock_new.ship_info_enter(click_button=click_button, check_button=check_button, long_click=long_click, skil_first_screenshot=skil_first_screenshot) + + @cached_property + def _ship_side_navbar(self): + return self.dock_new._ship_side_navbar + + def ship_side_navbar_ensure(self, upper=None, bottom=None): + return self.dock_new.ship_side_navbar_ensure(upper=upper, bottom=bottom) + + def ship_equipment_take_off(self, skip_first_screenshot=True): + return self.dock_new.ship_equipment_take_off(skip_first_screenshot=skip_first_screenshot) + + def fleet_equipment_take_off(self, enter, long_click, out): + return self.fleet_equipment_take_off(enter, long_click, out) + + def ship_equipment_take_on_preset(self, index, skip_first_screenshot=True): + return self.dock_new.ship_equipment_take_off(index, skip_first_screenshot=skip_first_screenshot) + + def fleet_equipment_take_on_preset(self, preset_record, enter, long_click, out): + return self.dock_new.fleet_equipment_take_off(enter, long_click, out) + + ''' + Public + ''' + + def handle_dock_cards_loading(self): + return self.current_use.handle_dock_cards_loading() + + def _dock_quit_check_func(self): + return self.current_use._dock_quit_check_func() + + def dock_quit(self): + return self.current_use.dock_quit() + + def dock_filter_enter(self): + return self.current_use.dock_filter_enter() + + def dock_filter_confirm(self, wait_loading=True): + return self.current_use.dock_filter_confirm(wait_loading=wait_loading) + + @cached_property + def dock_filter(self) -> Setting: + return self.current_use.dock_filter + + def dock_filter_set(self, sort='level', index='all', faction='all', rarity='all', extra='no_limit', wait_loading=True): + return self.current_use.dock_filter_set(sort, index, faction, rarity, extra, wait_loading) + + def dock_select_one(self, button, skip_first_screenshot=True): + return self.current_use.dock_select_one(button, skip_first_screenshot=skip_first_screenshot) + + def dock_selected(self, skip_first_screenshot=True): + return self.current_use.dock_selected(skip_first_screenshot=skip_first_screenshot) + + def dock_select_confirm(self, check_button, skip_first_screenshot=True): + return self.current_use.dock_select_confirm(check_button, skip_first_screenshot=skip_first_screenshot)