Related to fleet service updates

This commit is contained in:
DarkPhoenix
2011-11-22 20:25:31 +04:00
parent 63deb57d26
commit 76b447e517
3 changed files with 46 additions and 11 deletions

2
eos

Submodule eos updated: c144786682...2b80b0321f

View File

@@ -78,6 +78,7 @@ class Fit(object):
def __init__(self):
self.pattern = DamagePattern.getInstance().getDamagePattern("Uniform")
self.character = Character.getInstance().all0()
self.dirtyFitIDs = set()
def getAllFits(self):
fits = eos.db.getFitList()
@@ -651,4 +652,4 @@ class Fit(object):
def recalc(self, fit, withBoosters=False):
fit.clear()
fit.calculateModifiedAttributes(withBoosters=withBoosters)
fit.calculateModifiedAttributes(withBoosters=withBoosters, dirtyStorage=self.dirtyFitIDs)

View File

@@ -88,11 +88,17 @@ class Fleet(object):
self.makeLinearFleet(boostee)
squadIDs = set(eos.db.getSquadsIDsWithFitID(boostee.ID))
squad = eos.db.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):
squad.wing.gang.recalculateLinear()
else:
if self.anyBoosters(squad) is False:
self.removeAssociatedFleetData(boostee)
from service.fit import Fit
sFit = Fit.getInstance()
sFit.recalc(boostee, withBoosters=True)
def setLinearWingCom(self, boostee, booster):
if boostee == booster:
@@ -102,11 +108,17 @@ class Fleet(object):
self.makeLinearFleet(boostee)
squadIDs = set(eos.db.getSquadsIDsWithFitID(boostee.ID))
squad = eos.db.getSquad(squadIDs.pop())
if squad.wing.leader is not None and booster is None:
try:
squad.wing.leader.boostsFits.remove(boostee.ID)
except KeyError:
pass
squad.wing.leader = booster
if self.anyBoosters(squad):
squad.wing.gang.recalculateLinear()
else:
if self.anyBoosters(squad) is False:
self.removeAssociatedFleetData(boostee)
from service.fit import Fit
sFit = Fit.getInstance()
sFit.recalc(boostee, withBoosters=True)
def setLinearSquadCom(self, boostee, booster):
if boostee == booster:
@@ -116,11 +128,18 @@ class Fleet(object):
self.makeLinearFleet(boostee)
squadIDs = set(eos.db.getSquadsIDsWithFitID(boostee.ID))
squad = eos.db.getSquad(squadIDs.pop())
if squad.leader is not None and booster is None:
try:
squad.leader.boostsFits.remove(boostee.ID)
except KeyError:
pass
squad.leader = booster
if self.anyBoosters(squad):
squad.wing.gang.recalculateLinear()
else:
if self.anyBoosters(squad) is False:
self.removeAssociatedFleetData(boostee)
from service.fit import Fit
sFit = Fit.getInstance()
sFit.recalc(boostee, withBoosters=True)
def getLinearFleet(self, fit):
sqIDs = eos.db.getSquadsIDsWithFitID(fit.ID)
@@ -154,12 +173,27 @@ class Fleet(object):
squadIDs.add(squad.ID)
for squadID in squadIDs:
squad = eos.db.getSquad(squadID)
if squad.leader is not None:
try:
squad.leader.boostsFits.remove(fit.ID)
except KeyError:
pass
eos.db.remove(squad)
for wingID in wingIDs:
wing = eos.db.getWing(wingID)
if wing.leader is not None:
try:
wing.leader.boostsFits.remove(fit.ID)
except KeyError:
pass
eos.db.remove(wing)
for fleetID in fleetIDs:
fleet = eos.db.getFleet(fleetID)
if fleet.leader is not None:
try:
fleet.leader.boostsFits.remove(fit.ID)
except KeyError:
pass
eos.db.remove(fleet)
fit.fleet = None
return