From 69ba6c779270a47502efc3624ecb459754dde697 Mon Sep 17 00:00:00 2001 From: DarkPhoenix Date: Mon, 21 Nov 2011 21:19:04 +0400 Subject: [PATCH] Remove fleet structure automatically, when last booster is removed --- service/fleet.py | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/service/fleet.py b/service/fleet.py index 8f1beac2e..120689f38 100644 --- a/service/fleet.py +++ b/service/fleet.py @@ -83,19 +83,28 @@ class Fleet(object): squadIDs = set(eos.db.getSquadsIDsWithFitID(boostee.ID)) squad = eos.db.getSquad(squadIDs.pop()) squad.wing.gang.leader = booster - squad.wing.gang.calculateModifiedAttributes() + if self.anyBoosters(squad): + squad.wing.gang.calculateModifiedAttributes() + else: + self.removeAssociatedFleetData(boostee) def setLinearWingCom(self, boostee, booster): squadIDs = set(eos.db.getSquadsIDsWithFitID(boostee.ID)) squad = eos.db.getSquad(squadIDs.pop()) squad.wing.leader = booster - squad.wing.gang.calculateModifiedAttributes() + if self.anyBoosters(squad): + squad.wing.gang.calculateModifiedAttributes() + else: + self.removeAssociatedFleetData(boostee) def setLinearSquadCom(self, boostee, booster): squadIDs = set(eos.db.getSquadsIDsWithFitID(boostee.ID)) squad = eos.db.getSquad(squadIDs.pop()) squad.leader = booster - squad.wing.gang.calculateModifiedAttributes() + if self.anyBoosters(squad): + squad.wing.gang.calculateModifiedAttributes() + else: + self.removeAssociatedFleetData(boostee) def isInLinearFleet(self, fit): sqIDs = eos.db.getSquadsIDsWithFitID(fit.ID) @@ -137,3 +146,10 @@ class Fleet(object): fleet = eos.db.getFleet(fleetID) eos.db.remove(fleet) return + + def anyBoosters(self, squad): + wing = squad.wing + fleet = wing.gang + if squad.leader is None and wing.leader is None and fleet.leader is None: + return False + return True