def loadLinearFleet(self, fit): if self.getLinearFleet(fit) is None: return None squadID = getSquadsIDsWithFitID(fit.ID)[0] s = getSquad(squadID) w = s.wing f = w.gang return (f.leader, w.leader, s.leader)
def removeAssociatedFleetData(self, fit): squadIDs = set(getSquadsIDsWithFitID(fit.ID)) if len(squadIDs) == 0: return squads = list(getSquad(sqID) for sqID in squadIDs) wingIDs = set(squad.wing.ID for squad in squads) fleetIDs = set(squad.wing.gang.ID for squad in squads) for fleetID in fleetIDs: fleet = getFleet(fleetID) for wing in fleet.wings: wingIDs.add(wing.ID) for wingID in wingIDs: wing = getWing(wingID) for squad in wing.squads: squadIDs.add(squad.ID) for squadID in squadIDs: squad = getSquad(squadID) if squad.leader is not None: try: squad.leader.boostsFits.remove(fit.ID) except KeyError: pass eds_queries.remove(squad) for wingID in wingIDs: wing = getWing(wingID) if wing.leader is not None: try: wing.leader.boostsFits.remove(fit.ID) except KeyError: pass eds_queries.remove(wing) for fleetID in fleetIDs: fleet = getFleet(fleetID) if fleet.leader is not None: try: fleet.leader.boostsFits.remove(fit.ID) except KeyError: pass eds_queries.remove(fleet) fit.fleet = None return
def getLinearFleet(self, fit): sqIDs = getSquadsIDsWithFitID(fit.ID) if len(sqIDs) != 1: return None s = getSquad(sqIDs[0]) if len(s.members) != 1: return None w = s.wing if len(w.squads) != 1: return None f = w.gang if len(f.wings) != 1: return None return f
def setLinearFleetCom(self, boostee, booster): # if boostee == booster: # return if self.getLinearFleet(boostee) is None: self.removeAssociatedFleetData(boostee) self.makeLinearFleet(boostee) squadIDs = set(getSquadsIDsWithFitID(boostee.ID)) squad = getSquad(squadIDs.pop()) if squad.wing.gang.leader is not None and booster is None: try: squad.wing.gang.leader.boostsFits.remove(boostee.ID) except KeyError: pass squad.wing.gang.leader = booster if self.anyBoosters(squad) is False: self.removeAssociatedFleetData(boostee) from gui_service.fit import Fit sFit = Fit.getInstance() sFit.recalc(boostee, withBoosters=True)