Пример #1
0
 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)
Пример #2
0
 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
Пример #3
0
 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)
Пример #4
0
 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