def JobData(data, blueprint): job = industry.JobData(blueprint, data.activityID) job.data = data job.jobID = data.jobID job.blueprintID = data.blueprintID job.blueprintTypeID = data.blueprintTypeID job.blueprintLocationID = data.blueprintLocationID job.blueprintLocationFlagID = data.blueprintLocationFlagID job.facilityID = data.facilityID job.ownerID = data.ownerID job.status = JobStatus(data) job.installerID = data.installerID job.completedCharacterID = data.completedCharacterID job.solarSystemID = data.solarSystemID job.stationID = data.stationID job.startDate = util.BlueToDate(data.startDate) job.endDate = util.BlueToDate(data.endDate) job.pauseDate = util.BlueToDate(data.pauseDate) if data.pauseDate else None job.runs = data.runs job.licensedRuns = data.licensedRuns job.successfulRuns = data.successfulRuns job.cost = data.cost job.time = datetime.timedelta(seconds=data.timeInSeconds) job.probability = data.probability if data.probability is not None else 1 job.productTypeID = data.productTypeID job.optionalTypeID = data.optionalTypeID job.optionalTypeID2 = data.optionalTypeID2 job.outputLocationID = data.outputLocationID job.outputFlagID = data.outputFlagID return job
def __init__(self): self.actions = { 'init': { 'co': [ lambda: self.check_in_flags('init'), ], 'do': self.init, 'pr': 40 }, 'work': { 'co': [ lambda: self.check_empty_flags() ], 'do': self.work } } self.in_work_flag = False self.enemy_flag = False self.exp = {} self.sta_sys = None # Система со станкой на которой будет оставлена бука self.in_panic = False self.last_panic = util.BlueToDate(blue.os.GetWallclockTime()) self.current_shield = None Space.__init__(self, 'bm10') self.check_pass_limit = 2 self.clean_exp() self.add_flag('init') self.is_ready = True self.run_action()
def panic_attack(self): if self.in_panic: return self.in_panic = True full = self.get_shield() curr = self.get_shield(False) if self.current_shield is None: self.current_shield = full - curr if full - curr < full * 0.95: now = util.BlueToDate(blue.os.GetWallclockTime()) if now - self.last_panic > datetime.timedelta(seconds=10) and self.current_shield > full - curr: self.warn('Корабль атакуют, сваливаем!', self.role) self.last_panic = now self.current_shield = full - curr self.in_panic = False
def clean_exp(self): query = "DELETE FROM eve_exp WHERE e_time < %s AND char_id = %s" db_query(query, (util.BlueToDate(blue.os.GetWallclockTime()), session.charid))
def init_places(self): pause(500) if self.in_init_place_flag: return self.info('Инициализация мест добычи ресурсов', self.role) if self.check_in_station(): self.in_init_place_flag = True self.undocking() if self.check_in_inflight(): self.in_init_place_flag = True self.get_mine_places() self.info('Получили список гравиков и белтов', self.role) # Очищаем устаревшие заметки о местах добычи notes = _note.get_notes('Places') places = [] for place in cnt.places.values(): if place.type == 'anomaly': places.append(place.name) for note in notes: if 'Belt' in note.label: lines = note.text.split('<br>') if lines: date = dt.strptime(str(lines[0]), '%Y-%m-%d %H:%M:%S') if date < get_last_dt(): _note.del_note(note.label, 'Places') else: if note.label not in places: _note.del_note(note.label, 'Places') # Очищаем устаревшие закладки bms = _bm.get_bookmarks('Places') for bm in bms: if 'Belt' in bm.memo: if util.BlueToDate(bm.created) < get_last_dt(): _bm.del_bookmark(bm.memo.strip(), 'Places') else: if not bm.memo.strip() in places: _bm.del_bookmark(bm.memo.strip(), 'Places') self.del_flag('init') if self.role == 'miner': current = Place.get_current() if not current or current.type not in ['anomaly', 'belt']: self.add_flag('need_crystall') self.in_init_place_flag = False self.run_action()