1
0
mirror of https://github.com/0O0o0oOoO00/Alas.git synced 2026-05-14 15:49:25 +08:00

fix: diamond inheritance of FleetEquipment, EquipmentChange, Equipment, Dock

This commit is contained in:
LA_DI_DA
2025-02-14 18:36:27 +08:00
parent 39b4783723
commit ba5b7dba26
4 changed files with 94 additions and 21 deletions

View File

@@ -1,3 +1,5 @@
import collections
from module.base.button import ButtonGrid
from module.base.decorator import cached_property
from module.base.timer import Timer
@@ -577,7 +579,7 @@ def equip_redirect_inherit_to_old() -> bool:
return False
class Equipment(StorageHandler, ApiCollectionSwitch):
class Equipment(StorageHandler):
def __init__(self, config, device=None, task=None):
conf = AzurLaneConfig.build_azurlane_config(config, task)
dev = Device.build_device(conf, device)
@@ -585,7 +587,24 @@ class Equipment(StorageHandler, ApiCollectionSwitch):
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)
self.equipment_switch_stack = collections.deque()
self.equipment_current_use = self.equipment_new
def switch_equipment_to_old(self):
self.equipment_switch_stack.append(self.equipment_current_use)
self.equipment_current_use = self.equipment_new
def switch_equipment_to_new(self):
self.equipment_switch_stack.append(self.equipment_current_use)
self.equipment_current_use = self.equipment_new
def switch_equipment_back(self):
if len(self.equipment_switch_stack) == 0:
self.equipment_current_use = self.equipment_new
return
self.equipment_current_use = self.equipment_switch_stack.pop()
'''
EquipmentOld

View File

@@ -318,7 +318,7 @@ class EquipmentChangeNew(EquipmentNew):
return
class EquipmentChange(StorageHandler, ApiCollectionSwitch):
class EquipmentChange(StorageHandler):
def __init__(self, config, device=None, task=None):
conf = AzurLaneConfig.build_azurlane_config(config, task)
dev = Device.build_device(conf, device)
@@ -326,7 +326,24 @@ class EquipmentChange(StorageHandler, ApiCollectionSwitch):
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)
self.equipment_change_switch_stack = collections.deque()
self.equipment_change_current_use = self.equipment_change_new
def switch_equipment_change_to_old(self):
self.equipment_change_switch_stack.append(self.equipment_change_current_use)
self.equipment_change_current_use = self.equipment_change_new
def switch_equipment_change_to_new(self):
self.equipment_change_switch_stack.append(self.equipment_change_current_use)
self.equipment_change_current_use = self.equipment_change_new
def switch_equipment_change_back(self):
if len(self.equipment_change_switch_stack) == 0:
self.equipment_change_current_use = self.equipment_change_new
return
self.equipment_change_current_use = self.equipment_change_switch_stack.pop()
'''
EquipmentChangeOld
@@ -487,7 +504,7 @@ class EquipmentChange(StorageHandler, ApiCollectionSwitch):
'''
def equipping_set(self, enable=False):
return self.current_use.equipping_set(enable=enable)
return self.equipment_change_current_use.equipping_set(enable=enable)
def _equip_equipment(self, point, offset=(100, 100)):
return self.current_use._equip_equipment(point, offset=offset)
return self.equipment_change_current_use._equip_equipment(point, offset=offset)

View File

@@ -1,3 +1,5 @@
import collections
import gl
from module.base.decorator import cached_property, Config
from module.base.utils import ApiCollectionSwitch
@@ -85,7 +87,7 @@ class FleetEquipmentNew(EquipmentChangeNew):
self.ui_back(FLEET_CHECK)
class FleetEquipment(StorageHandler, ApiCollectionSwitch):
class FleetEquipment(StorageHandler):
def __init__(self, config, device=None, task=None):
conf = AzurLaneConfig.build_azurlane_config(config, task)
dev = Device.build_device(conf, device)
@@ -93,7 +95,23 @@ class FleetEquipment(StorageHandler, ApiCollectionSwitch):
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)
self.fleet_equipment_switch_stack = collections.deque()
self.fleet_equipment_current_use = self.fleet_equipment_new
def switch_fleet_equipment_to_old(self):
self.fleet_equipment_switch_stack.append(self.fleet_equipment_current_use)
self.fleet_equipment_current_use = self.fleet_equipment_new
def switch_fleet_equipment_to_new(self):
self.fleet_equipment_switch_stack.append(self.fleet_equipment_current_use)
self.fleet_equipment_current_use = self.fleet_equipment_new
def switch_fleet_equipment_back(self):
if len(self.fleet_equipment_switch_stack) == 0:
self.fleet_equipment_current_use = self.fleet_equipment_new
return
self.fleet_equipment_current_use = self.fleet_equipment_switch_stack.pop()
'''
DailyEquipment
@@ -250,4 +268,4 @@ class FleetEquipment(StorageHandler, ApiCollectionSwitch):
'''
def _equip_equipment(self, point, offset=(100, 100)):
return self.current_use._equip_equipment(point, offset)
return self.fleet_equipment_current_use._equip_equipment(point, offset)

View File

@@ -1,3 +1,5 @@
import collections
import module.config.server as server
import gl
@@ -454,7 +456,7 @@ def redirect_inherit_to_old() -> bool:
return False
class Dock(StorageHandler, ApiCollectionSwitch):
class Dock(StorageHandler):
def __init__(self, config, device=None, task=None):
conf = AzurLaneConfig.build_azurlane_config(config, task)
dev = Device.build_device(conf, device)
@@ -462,7 +464,24 @@ class Dock(StorageHandler, ApiCollectionSwitch):
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)
self.dock_switch_stack = collections.deque()
self.dock_current_use = self.dock_new
def switch_dock_to_old(self):
self.dock_switch_stack.append(self.dock_current_use)
self.dock_current_use = self.dock_old
def switch_dock_to_new(self):
self.dock_switch_stack.append(self.dock_current_use)
self.dock_current_use = self.dock_new
def switch_dock_back(self):
if len(self.dock_switch_stack) == 0:
self.dock_current_use = self.dock_new
return
self.dock_current_use = self.dock_switch_stack.pop()
'''
DockOld
@@ -668,32 +687,32 @@ class Dock(StorageHandler, ApiCollectionSwitch):
'''
def handle_dock_cards_loading(self):
return self.current_use.handle_dock_cards_loading()
return self.dock_current_use.handle_dock_cards_loading()
def _dock_quit_check_func(self):
return self.current_use._dock_quit_check_func()
return self.dock_current_use._dock_quit_check_func()
def dock_quit(self):
return self.current_use.dock_quit()
return self.dock_current_use.dock_quit()
def dock_filter_enter(self):
return self.current_use.dock_filter_enter()
return self.dock_current_use.dock_filter_enter()
def dock_filter_confirm(self, wait_loading=True):
return self.current_use.dock_filter_confirm(wait_loading=wait_loading)
return self.dock_current_use.dock_filter_confirm(wait_loading=wait_loading)
@cached_property
def dock_filter(self) -> Setting:
return self.current_use.dock_filter
return self.dock_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)
return self.dock_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)
return self.dock_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)
return self.dock_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)
return self.dock_current_use.dock_select_confirm(check_button, skip_first_screenshot=skip_first_screenshot)