1
0
mirror of https://github.com/sui-feng-cb/AzurLaneAutoScript1.git synced 2026-08-12 02:57:55 +08:00

Add: check control method before equipment code usage

This commit is contained in:
guoh064
2026-07-01 19:06:03 +08:00
parent 8f2a80203b
commit 51f282da1a

View File

@@ -10,6 +10,7 @@ from module.storage.assets import EQUIPMENT_FULL
from module.storage.storage import StorageHandler from module.storage.storage import StorageHandler
EMPTY_CODE = "MC8wLzAvMC8wXDA=" EMPTY_CODE = "MC8wLzAvMC8wXDA="
U2_CONTROL_METHODS = {'uiautomator2', 'minitouch', 'MaaTouch'}
EQUIPMENT_PREVIEW = list([ EQUIPMENT_PREVIEW = list([
EQUIPMENT_CODE_EQUIP_0, EQUIPMENT_CODE_EQUIP_0,
EQUIPMENT_CODE_EQUIP_1, EQUIPMENT_CODE_EQUIP_1,
@@ -22,6 +23,17 @@ EQUIPMENT_PREVIEW = list([
class EquipmentCodeHandler(StorageHandler): class EquipmentCodeHandler(StorageHandler):
last_code: str = None last_code: str = None
def equipment_code_supported(self):
method = self.config.Emulator_ControlMethod
if method in U2_CONTROL_METHODS:
return True
logger.warning(
f"Equipment code requires uiautomator2 based control method, "
f"current control method is {method}, skip equipment change"
)
return False
def get_code(self, name): def get_code(self, name):
try: try:
config = {} config = {}
@@ -229,19 +241,25 @@ class EquipmentCodeHandler(StorageHandler):
return code return code
def code_clear(self, name=None): def code_clear(self, name=None):
if not self.equipment_code_supported():
return False
self._code_enter() self._code_enter()
if name is None: if name is None:
name = self.current_ship() name = self.current_ship()
if self.config.EquipmentCode_ExportToConfig and self.get_code(name=name) is None: if self.config.EquipmentCode_ExportToConfig and self.get_code(name=name) is None:
self.last_code = self._code_export() self.last_code = self._code_export()
self.set_code(name=name, code=self.last_code) self.set_code(name=name, code=self.last_code)
self._code_apply(code=None) return self._code_apply(code=None)
def code_apply(self, name=None): def code_apply(self, name=None):
if not self.equipment_code_supported():
return False
self._code_enter() self._code_enter()
if name is None: if name is None:
name = self.current_ship() name = self.current_ship()
code = self.get_code(name=name) code = self.get_code(name=name)
if code is None: if code is None:
code = self.last_code code = self.last_code
self._code_apply(code=code) return self._code_apply(code=code)