def replace(self, idx, mod): try: oldMod = self[idx] except IndexError: raise HandledListActionError(mod) self.__toModule(idx, mod) if mod.isInvalid: self.__toModule(idx, oldMod) raise HandledListActionError(mod)
def insert(self, idx, booster): if booster.isInvalid: HandledList.insert(self, idx, booster) self.remove(booster) raise HandledListActionError(booster) if self.__slotCheck(booster): HandledList.insert(self, idx, booster) self.remove(booster) raise HandledListActionError(booster) HandledList.append(self, booster)
def insert(self, idx, implant): if implant.isInvalid: HandledList.insert(self, idx, implant) self.remove(implant) raise HandledListActionError(implant) if self.__slotCheck(implant): HandledList.insert(self, idx, implant) self.remove(implant) raise HandledListActionError(implant) HandledList.append(self, implant)
def insert(self, idx, proj): if proj.isInvalid: # we must include it before we remove it. doing it this way ensures # rows and relationships in database are removed as well HandledList.insert(self, idx, proj) self.remove(proj) raise HandledListActionError(proj) proj.projected = True HandledList.insert(self, idx, proj) # Remove non-projectable modules if not proj.item.isType("projected") and not proj.isExclusiveSystemEffect: self.remove(proj) raise HandledListActionError(proj)
def insert(self, idx, proj): proj.projected = True HandledList.insert(self, idx, proj) # Remove invalid or non-projectable drones if proj.isInvalid or not proj.item.isType("projected"): self.remove(proj) proj.projected = False raise HandledListActionError(proj) return True
def insert(self, idx, mod): mod.position = idx i = idx while i < len(self): self[i].position += 1 i += 1 HandledList.insert(self, idx, mod) if mod.isInvalid: self.remove(mod) raise HandledListActionError(mod)
def replaceRackPosition(self, rackPosition, mod): listPositions = [] for currMod in self: if currMod.slot == mod.slot: listPositions.append(currMod.position) listPositions.sort() try: modListPosition = listPositions[rackPosition] except IndexError: self.appendIgnoreEmpty(mod) else: self.__toDummy(modListPosition) if not mod.isEmpty: self.__toModule(modListPosition, mod) if mod.isInvalid: self.__toDummy(modListPosition) raise HandledListActionError(mod)
def append(self, mod): emptyPosition = float("Inf") for i in range(len(self)): currMod = self[i] if currMod.isEmpty and not mod.isEmpty and currMod.slot == mod.slot: currPos = mod.position or i if currPos < emptyPosition: emptyPosition = currPos if emptyPosition < len(self): mod.position = emptyPosition self.__toModule(emptyPosition, mod) if mod.isInvalid: self.__toDummy(mod.position) raise HandledListActionError(mod) return self.appendIgnoreEmpty(mod)
def replaceRackPosition(self, rackPosition, mod): listPositions = [] for currPos in range(len(self)): currMod = self[currPos] if currMod.slot == mod.slot: listPositions.append(currPos) listPositions.sort() try: modListPosition = listPositions[rackPosition] except IndexError: self.appendIgnoreEmpty(mod) else: oldMod = self[modListPosition] if mod.isEmpty: self.__toDummy(modListPosition) else: self.__toModule(modListPosition, mod) # If new module cannot be appended, restore old state if mod.isInvalid: if oldMod.isEmpty: self.__toDummy(modListPosition) else: self.__toModule(modListPosition, oldMod) raise HandledListActionError(mod)
def insert(self, idx, thing): HandledList.insert(self, idx, thing) if thing.isInvalid: self.remove(thing) raise HandledListActionError(thing)
def append(self, thing): HandledList.append(self, thing) if thing.isInvalid: self.remove(thing) raise HandledListActionError(thing)
def appendIgnoreEmpty(self, mod): mod.position = len(self) HandledList.append(self, mod) if mod.isInvalid: self.remove(mod) raise HandledListActionError(mod)