コード例 #1
0
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
コード例 #2
0
 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()
コード例 #3
0
 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
コード例 #4
0
 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))
コード例 #5
0
    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()