diff --git a/module/luahook/crack.py b/module/luahook/crack.py index d080b3a48..e6bca2c8d 100644 --- a/module/luahook/crack.py +++ b/module/luahook/crack.py @@ -180,6 +180,28 @@ def crack_op(ops: Union[Type[CrackOp.Op], List[Type[CrackOp.Op]]]): return inner +def do_crack_op_before_call(ops: Union[Type[CrackOp.Op], List[Type[CrackOp.Op]]]): + def inner(f): + def wrapper(*args, **kwargs): + obj = args[0] + do_crack_op(obj.config, obj.device, ops) + return f(*args, **kwargs) + + return wrapper + + return inner + +def do_crack_op_after_call(ops: Union[Type[CrackOp.Op], List[Type[CrackOp.Op]]]): + def inner(f): + def wrapper(*args, **kwargs): + obj = args[0] + ret = f(*args, **kwargs) + do_crack_op(obj.config, obj.device, ops) + return ret + + return wrapper + + return inner def disable_all_crack(f): def wrapper(*args, **kwargs): diff --git a/module/retire/retirement.py b/module/retire/retirement.py index 3d72c7ba0..460fa0659 100644 --- a/module/retire/retirement.py +++ b/module/retire/retirement.py @@ -6,7 +6,7 @@ from module.config.deep import deep_get from module.exception import RequestHumanTakeover, ScriptError from module.handler.assets import AUTO_SEARCH_MAP_OPTION_OFF, AUTO_SEARCH_MAP_OPTION_ON from module.logger import logger -from module.luahook.crack import do_crack_op +from module.luahook.crack import do_crack_op, do_crack_op_before_call, do_crack_op_after_call from module.luahook.op import CrackOp from module.retire.assets import * from module.retire.enhancement import Enhancement @@ -399,6 +399,14 @@ class Retirement(Enhancement, QuickRetireSettingHandler): return total + @do_crack_op_before_call([ + CrackOp.DisableGlobalShipProperties, + CrackOp.DisableGGFactor + ]) + @do_crack_op_after_call([ + CrackOp.EnableGlobalShipProperties, + CrackOp.EnableGGFactor + ]) def handle_retirement(self): """ Returns: @@ -417,12 +425,10 @@ class Retirement(Enhancement, QuickRetireSettingHandler): self.map_cat_attack_timer.reset() return True elif self.config.Retirement_RetireMode == 'enhance': - do_crack_op(self.config, self.device, CrackOp.DisableGlobalShipProperties) if self.appear_then_click(RETIRE_APPEAR_3, offset=(20, 20), interval=3): self.interval_clear(DOCK_CHECK) self.interval_reset([AUTO_SEARCH_MAP_OPTION_OFF, AUTO_SEARCH_MAP_OPTION_ON]) self.map_cat_attack_timer.reset() - do_crack_op(self.config, self.device, CrackOp.EnableGlobalShipProperties) return False if self.appear(DOCK_CHECK, offset=(20, 20), interval=10): self.handle_dock_cards_loading() @@ -437,9 +443,7 @@ class Retirement(Enhancement, QuickRetireSettingHandler): self._unable_to_enhance = True self.interval_reset(DOCK_CHECK) self.map_cat_attack_timer.reset() - do_crack_op(self.config, self.device, CrackOp.EnableGlobalShipProperties) return True - do_crack_op(self.config, self.device, CrackOp.EnableGlobalShipProperties) else: if self.appear_then_click(RETIRE_APPEAR_1, offset=(20, 20), interval=3): self.interval_clear(IN_RETIREMENT_CHECK)