class ALAuto(object): modules = { 'commissions': None, 'combat': None, 'missions': None } def __init__(self, config): """Initializes the primary azurlane-auto instance with the passed in Config instance; creates the Stats instance and resets scheduled sleep timers. Args: config (Config): azurlane-auto Config instance """ self.config = config self.stats = Stats(config) if self.config.commissions['enabled']: self.modules['commissions'] = CommissionModule( self.config, self.stats) if self.config.combat['enabled']: self.modules['combat'] = CombatModule(self.config, self.stats) if self.config.missions['enabled']: self.modules['missions'] = MissionModule(self.config, self.stats) self.print_stats_check = True def run_combat_cycle(self): """Method to run the combat cycle. """ if self.modules['combat']: if self.modules['combat'].combat_logic_wrapper(): self.print_stats_check = True def run_commission_cycle(self): """Method to run the expedition cycle. """ if self.modules['commissions']: if self.modules['commissions'].commissions_logic_wrapper(): self.print_stats_check = True def run_mission_cycle(self): """Method to run the mission cycle """ if self.modules['missions']: if self.modules['missions'].mission_logic_wrapper(): self.print_stats_check = True def print_cycle_stats(self): """Method to print the cycle stats" """ if self.print_stats_check: self.stats.print_stats() self.print_stats_check = False def run_test(self): pass
class ALAuto(object): modules = { 'updates': None, 'combat': None, 'commissions': None, 'enhancement': None, 'missions': None, 'retirement': None, 'headquarters': None, 'event': None } def __init__(self, config): """Initializes the primary azurlane-auto instance with the passed in Config instance; creates the Stats instance and resets scheduled sleep timers. Args: config (Config): azurlane-auto Config instance """ self.config = config self.oil_limit = 0 self.stats = Stats(config) if self.config.updates['enabled']: self.modules['updates'] = UpdateUtil(self.config) if self.config.combat['enabled']: self.modules['combat'] = CombatModule(self.config, self.stats) self.oil_limit = self.config.combat['oil_limit'] if self.config.commissions['enabled']: self.modules['commissions'] = CommissionModule(self.config, self.stats) if self.config.enhancement['enabled']: self.modules['enhancement'] = EnhancementModule(self.config, self.stats) if self.config.missions['enabled']: self.modules['missions'] = MissionModule(self.config, self.stats) if self.config.retirement['enabled']: self.modules['retirement'] = RetirementModule(self.config, self.stats) if self.config.dorm['enabled'] or self.config.academy['enabled']: self.modules['headquarters'] = HeadquartersModule(self.config, self.stats) if self.config.events['enabled']: self.modules['event'] = EventModule(self.config, self.stats) self.print_stats_check = True self.next_combat = datetime.now() def run_update_check(self): if self.modules['updates']: if self.modules['updates'].checkUpdate(): Logger.log_warning("A new release is available, please check the github.") def should_sortie(self): """Method to check wether bot should combat or not. """ return (self.modules['combat'] or self.modules['event']) \ and script.next_combat != 0 \ and script.next_combat < datetime.now() \ and Utils.check_oil(self.oil_limit) def run_sortie_cycle(self): """Method to run all cycles related to combat. """ self.run_event_cycle() self.run_combat_cycle() self.run_enhancement_cycle() self.run_retirement_cycle() def run_combat_cycle(self): """Method to run the combat cycle. """ if self.modules['combat']: result = self.modules['combat'].combat_logic_wrapper() if result == 1: # if boss is defeated Logger.log_msg("Boss successfully defeated, going back to menu.") self.print_stats_check = True if result == 2: # if morale is too low Logger.log_warning("Ships morale is too low, entering standby mode for an hour.") self.next_combat = datetime.now() + timedelta(hours=1) self.print_stats_check = False if result == 3: # if dock is full Logger.log_warning("Dock is full, need to retire.") if self.modules['retirement']: self.modules['retirement'].retirement_logic_wrapper(True) else: Logger.log_error("Retirement isn't enabled, exiting.") sys.exit() if result == 4: Logger.log_warning("Failed to defeat enemy.") self.print_stats_check = False else: self.next_combat = 0 def run_commission_cycle(self): """Method to run the expedition cycle. """ if self.modules['commissions']: self.modules['commissions'].commission_logic_wrapper() def run_enhancement_cycle(self): """Method to run the enhancement cycle. """ if self.modules['enhancement']: self.modules['enhancement'].enhancement_logic_wrapper() def run_mission_cycle(self): """Method to run the mission cycle """ if self.modules['missions']: self.modules['missions'].mission_logic_wrapper() def run_retirement_cycle(self): """Method to run the retirement cycle """ if self.modules['retirement']: self.modules['retirement'].retirement_logic_wrapper() def run_hq_cycle(self): """Method to run the headquarters cycle. """ if self.modules['headquarters']: self.modules['headquarters'].hq_logic_wrapper() def run_event_cycle(self): """Method to run the event cycle """ if self.modules['event']: self.modules['event'].event_logic_wrapper() def print_cycle_stats(self): """Method to print the cycle stats" """ if self.print_stats_check: self.stats.print_stats(Utils.check_oil(self.oil_limit)) self.print_stats_check = False
class ALAuto(object): modules = { 'combat': None, 'commissions': None, 'enhancement': None, 'missions': None, 'retirement': None, 'event': None } def __init__(self, config): """Initializes the primary azurlane-auto instance with the passed in Config instance; creates the Stats instance and resets scheduled sleep timers. Args: config (Config): azurlane-auto Config instance """ self.config = config self.stats = Stats(config) if self.config.combat['enabled']: self.modules['combat'] = CombatModule(self.config, self.stats) if self.config.commissions['enabled']: self.modules['commissions'] = CommissionModule( self.config, self.stats) if self.config.enhancement['enabled']: self.modules['enhancement'] = EnhancementModule( self.config, self.stats) if self.config.missions['enabled']: self.modules['missions'] = MissionModule(self.config, self.stats) if self.config.retirement['enabled']: self.modules['retirement'] = RetirementModule( self.config, self.stats) if self.config.events['enabled']: self.modules['event'] = EventModule(self.config, self.stats) self.print_stats_check = True self.next_combat = datetime.now() def run_combat_cycle(self): """Method to run the combat cycle. """ if self.modules['combat']: result = self.modules['combat'].combat_logic_wrapper() if result == 1: # if boss is defeated self.print_stats_check = True if result == 2: # if morale is too low self.next_combat = datetime.now() + timedelta(hours=1) self.print_stats_check = False if result == 3: # if dock is full if self.modules['retirement']: self.modules['retirement'].retirement_logic_wrapper(True) else: Logger.log_error("Retirement isn't enabled, exiting.") sys.exit() else: self.next_combat = 0 def run_commission_cycle(self): """Method to run the expedition cycle. """ if self.modules['commissions']: self.modules['commissions'].commission_logic_wrapper() def run_enhancement_cycle(self): """Method to run the enhancement cycle. """ if self.modules['enhancement']: self.modules['enhancement'].enhancement_logic_wrapper() def run_mission_cycle(self): """Method to run the mission cycle """ if self.modules['missions']: self.modules['missions'].mission_logic_wrapper() def run_retirement_cycle(self): """Method to run the retirement cycle """ if self.modules['retirement']: self.modules['retirement'].retirement_logic_wrapper() def run_event_cycle(self): """Method to run the event cycle """ if self.modules['event']: self.modules['event'].event_logic_wrapper() def print_cycle_stats(self): """Method to print the cycle stats" """ if self.print_stats_check: self.stats.print_stats() self.print_stats_check = False