def addDrone(self, fitID, itemID): if fitID is None: return False fit = getFit(fitID) item = getItem(itemID, eager=("attributes", "group.category")) if item.category.name == "Drone": drone = None for d in fit.drones.find(item): if d is not None and d.amountActive == 0 and d.amount < max( 5, fit.extraAttributes["maxActiveDrones"]): drone = d break if drone is None: drone = es_Drone(item) if drone.fits(fit) is True: fit.drones.append(drone) else: return False drone.amount += 1 eds_queries.commit() self.recalc(fit) return True else: return False
def addDrone(self, fitID, itemID, numDronesToAdd=1, recalc=True): pyfalog.debug("Adding {0} drones ({1}) to fit ID: {2}", numDronesToAdd, itemID, fitID) if fitID is None: return False fit = eos.db.getFit(fitID) item = eos.db.getItem(itemID, eager=("attributes", "group.category")) if item.category.name == "Drone": drone = None for d in fit.drones.find(item): if d is not None and d.amountActive == 0 and d.amount < max( 5, fit.extraAttributes["maxActiveDrones"]): drone = d break if drone is None: drone = es_Drone(item) if drone.fits(fit) is True: fit.drones.append(drone) else: return False drone.amount += numDronesToAdd eos.db.commit() if recalc: self.recalc(fit) return True else: return False
def addDrone(self, fitID, itemID, numDronesToAdd=1, recalc=True): pyfalog.debug("Adding {0} drones ({1}) to fit ID: {2}", numDronesToAdd, itemID, fitID) if fitID is None: return False fit = eos.db.getFit(fitID) item = eos.db.getItem(itemID, eager=("attributes", "group.category")) if item.category.name == "Drone": drone = None for d in fit.drones.find(item): if d is not None and d.amountActive == 0 and d.amount < max(5, fit.extraAttributes["maxActiveDrones"]): drone = d break if drone is None: drone = es_Drone(item) if drone.fits(fit) is True: fit.drones.append(drone) else: return False drone.amount += numDronesToAdd eos.db.commit() if recalc: self.recalc(fit) return True else: return False
def addDrone(self, fitID, itemID): if fitID is None: return False fit = eos.db.getFit(fitID) item = eos.db.getItem(itemID, eager=("attributes", "group.category")) if item.category.name == "Drone": drone = None for d in fit.drones.find(item): if d is not None and d.amountActive == 0 and d.amount < max(5, fit.extraAttributes["maxActiveDrones"]): drone = d break if drone is None: drone = es_Drone(item) if drone.fits(fit) is True: fit.drones.append(drone) else: return False drone.amount += 1 eos.db.commit() self.recalc(fit) return True else: return False
def project(self, fitID, thing): pyfalog.debug("Projecting fit ({0}) onto: {1}", fitID, thing) if fitID is None: return fit = eos.db.getFit(fitID) if isinstance(thing, int): thing = eos.db.getItem(thing, eager=("attributes", "group.category")) if isinstance(thing, es_Module): thing = copy.deepcopy(thing) fit.projectedModules.append(thing) elif isinstance(thing, FitType): if thing in fit.projectedFits: return fit.__projectedFits[thing.ID] = thing # this bit is required -- see GH issue # 83 eos.db.saveddata_session.flush() eos.db.saveddata_session.refresh(thing) elif thing.category.name == "Drone": drone = None for d in fit.projectedDrones.find(thing): if d is None or d.amountActive == d.amount or d.amount >= 5: drone = d break if drone is None: drone = es_Drone(thing) fit.projectedDrones.append(drone) drone.amount += 1 elif thing.category.name == "Fighter": fighter = es_Fighter(thing) fit.projectedFighters.append(fighter) elif thing.group.name in es_Module.SYSTEM_GROUPS: module = es_Module(thing) module.state = State.ONLINE fit.projectedModules.append(module) else: try: module = es_Module(thing) except ValueError: return False module.state = State.ACTIVE if not module.canHaveState(module.state, fit): module.state = State.OFFLINE fit.projectedModules.append(module) eos.db.commit() self.recalc(fit) return True
def project(self, fitID, thing): pyfalog.debug("Projecting fit ({0}) onto: {1}", fitID, thing) if fitID is None: return fit = eos.db.getFit(fitID) if isinstance(thing, int): thing = eos.db.getItem(thing, eager=("attributes", "group.category")) if isinstance(thing, es_Module): thing = copy.deepcopy(thing) fit.projectedModules.append(thing) elif isinstance(thing, FitType): if thing in fit.projectedFits: return fit.projectedFitDict[thing.ID] = thing # this bit is required -- see GH issue # 83 eos.db.saveddata_session.flush() eos.db.saveddata_session.refresh(thing) elif thing.category.name == "Drone": drone = None for d in fit.projectedDrones.find(thing): if d is None or d.amountActive == d.amount or d.amount >= 5: drone = d break if drone is None: drone = es_Drone(thing) fit.projectedDrones.append(drone) drone.amount += 1 elif thing.category.name == "Fighter": fighter = es_Fighter(thing) fit.projectedFighters.append(fighter) elif thing.group.name in es_Module.SYSTEM_GROUPS: module = es_Module(thing) module.state = FittingModuleState.ONLINE fit.projectedModules.append(module) else: try: module = es_Module(thing) except ValueError: return False module.state = FittingModuleState.ACTIVE if not module.canHaveState(module.state, fit): module.state = FittingModuleState.OFFLINE fit.projectedModules.append(module) eos.db.commit() self.recalc(fit) return True
def splitDrones(self, fit, d, amount, l): total = d.amount active = d.amountActive > 0 d.amount = amount d.amountActive = amount if active else 0 newD = es_Drone(d.item) newD.amount = total - amount newD.amountActive = newD.amount if active else 0 l.append(newD) eds_queries.commit()
def splitDrones(self, fit, d, amount, l): total = d.amount active = d.amountActive > 0 d.amount = amount d.amountActive = amount if active else 0 newD = es_Drone(d.item) newD.amount = total - amount newD.amountActive = newD.amount if active else 0 l.append(newD) eos.db.commit()
def splitDrones(fit, d, amount, l): pyfalog.debug("Splitting drones for fit ID: {0}", fit) total = d.amount active = d.amountActive > 0 d.amount = amount d.amountActive = amount if active else 0 newD = es_Drone(d.item) newD.amount = total - amount newD.amountActive = newD.amount if active else 0 l.append(newD) eos.db.commit()
def project(self, fitID, thing): if fitID is None: return fit = eos.db.getFit(fitID) if isinstance(thing, int): thing = eos.db.getItem(thing, eager=("attributes", "group.category")) if isinstance(thing, FitType): if thing in fit.projectedFits: return fit.__projectedFits[thing.ID] = thing # this bit is required -- see GH issue # 83 eos.db.saveddata_session.flush() eos.db.saveddata_session.refresh(thing) elif thing.category.name == "Drone": drone = None for d in fit.projectedDrones.find(thing): if d is None or d.amountActive == d.amount or d.amount >= 5: drone = d break if drone is None: drone = es_Drone(thing) fit.projectedDrones.append(drone) drone.amount += 1 elif thing.category.name == "Fighter": fighter = es_Fighter(thing) fit.projectedFighters.append(fighter) elif thing.group.name == "Effect Beacon": module = es_Module(thing) module.state = State.ONLINE fit.projectedModules.append(module) else: module = es_Module(thing) module.state = State.ACTIVE if not module.canHaveState(module.state, fit): module.state = State.OFFLINE fit.projectedModules.append(module) eos.db.commit() self.recalc(fit) return True