def load_campaign(self): if self.campaign_loaded: return False config = self.config.merge(OSConfig()) self.campaign = OperationSiren(config=config, device=self.device) self.campaign.os_init() self.campaign_loaded = True return True
def run(self): self.config.merge(OSConfig()) self.config.override(HOMO_EDGE_DETECT=False) while 1: self.device.screenshot() # If is running a combat, do nothing. if self.is_combat_executing(): continue # Combat if self.combat_appear(): self.combat_preparation() try: if self.handle_battle_status(): self.combat_status(expected_end='no_searching') continue except (CampaignEnd, ContinuousCombat): continue if self.appear_then_click(EXP_INFO_C, interval=2): continue if self.appear_then_click(EXP_INFO_D, interval=2): continue # Map events if self.handle_map_event(): self._nearest_object_click_timer.clear() continue if self.appear_then_click(AUTO_SEARCH_REWARD, offset=(50, 50), interval=2): continue # Port repair if self.config.OpsiDaemon_RepairShip: if self.appear(PORT_ENTER, offset=(20, 20), interval=30): self.port_enter() self.port_dock_repair() self.port_quit() self.interval_reset(PORT_ENTER) logger.info('Port repair finished, ' 'please move your fleet out of the port in 30s to avoid repairing again') if self.config.OpsiDaemon_SelectEnemy: if self.click_nearest_object(): continue # End # No end condition, stop it manually. return True
in: Siren logger (abyssal), boss appeared. out: If success, dangerous or safe zone. If failed, still in abyssal. """ logger.hr(f'Stronghold clear', level=1) fleets = self.parse_fleet_filter() for fleet in fleets: logger.hr(f'Turn: {fleet}', level=2) if not isinstance(fleet, BossFleet): self.os_order_execute(recon_scan=False, submarine_call=True) continue result = self.run_stronghold_one_fleet(fleet) if result: return True else: continue logger.critical('Unable to clear boss, fleets exhausted') return False if __name__ == '__main__': self = OperationSiren('alas', task='OpsiStronghold') from module.os.config import OSConfig self.config = self.config.merge(OSConfig()) self.device.screenshot() self.zone_init() self.run_stronghold()
def load_campaign(self): config = self.config.merge(OSConfig()) self.campaign = OSMap(config=config, device=self.device)
server.server = 'cn' # Don't need to edit, it's used to avoid error. from module.config.config import AzurLaneConfig from module.map_detection.view import View from module.base.utils import load_image class Config: """ Paste the config of map file here """ pass from module.os.config import OSConfig cfg = AzurLaneConfig('alas').merge(OSConfig()) # Folder to save temp images folder = './screenshots/relative_crop' # Put Screenshot here file = '' i = load_image(file) grids = View(cfg) grids.load(np.array(i)) grids.predict() grids.show() os.makedirs(folder, exist_ok=True) for grid in grids: