Use new fit recalculation method, which takes into consideration fleet stuff
This commit is contained in:
2
eos
2
eos
Submodule eos updated: bb71a4d589...ff0ffa77ff
@@ -166,7 +166,7 @@ class GangView ( ScrolledPanel ):
|
||||
elif type == 2:
|
||||
fleetSrv.setLinearSquadCom(boostee, booster)
|
||||
|
||||
fleetSrv.recalcFleet(boostee)
|
||||
sFit.recalc(boostee)
|
||||
wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=activeFitID))
|
||||
|
||||
def fitSelected(self, event):
|
||||
@@ -226,7 +226,7 @@ class GangView ( ScrolledPanel ):
|
||||
fleetSrv.setLinearWingCom(boostee, booster)
|
||||
elif type == 2:
|
||||
fleetSrv.setLinearSquadCom(boostee, booster)
|
||||
fleetSrv.recalcFleet(boostee)
|
||||
sFit.recalc(boostee)
|
||||
wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=activeFitID))
|
||||
|
||||
def RefreshCharacterList(self, event = None):
|
||||
|
||||
@@ -119,7 +119,7 @@ class Fit(object):
|
||||
fit.damagePattern = self.pattern
|
||||
fit.character = self.character
|
||||
eos.db.save(fit)
|
||||
fit.calculateModifiedAttributes()
|
||||
self.recalc(fit)
|
||||
return fit.ID
|
||||
|
||||
def renameFit(self, fitID, newName):
|
||||
@@ -152,8 +152,7 @@ class Fit(object):
|
||||
fit = eos.db.getFit(fitID)
|
||||
fit.factorReload = not fit.factorReload
|
||||
eos.db.commit()
|
||||
fit.clear()
|
||||
fit.calculateModifiedAttributes()
|
||||
self.recalc(fit)
|
||||
|
||||
def switchFit(self, fitID):
|
||||
if fitID is None:
|
||||
@@ -167,8 +166,7 @@ class Fit(object):
|
||||
fit.damagePattern = self.pattern
|
||||
|
||||
eos.db.commit()
|
||||
fit.clear()
|
||||
fit.calculateModifiedAttributes()
|
||||
self.recalc(fit)
|
||||
|
||||
def getFit(self, fitID):
|
||||
if fitID is None:
|
||||
@@ -178,7 +176,7 @@ class Fit(object):
|
||||
sFlt = Fleet.getInstance()
|
||||
if sFlt.isInLinearFleet(fit) is False:
|
||||
sFlt.removeAssociatedFleetData(fit)
|
||||
fit.calculateModifiedAttributes()
|
||||
self.recalc(fit)
|
||||
fit.fill()
|
||||
eos.db.commit()
|
||||
return fit
|
||||
@@ -203,8 +201,7 @@ class Fit(object):
|
||||
|
||||
fit.implants.freeSlot(implant)
|
||||
fit.implants.append(implant)
|
||||
fit.clear()
|
||||
fit.calculateModifiedAttributes()
|
||||
self.recalc(fit)
|
||||
return True
|
||||
|
||||
def removeImplant(self, fitID, position):
|
||||
@@ -214,8 +211,7 @@ class Fit(object):
|
||||
fit = eos.db.getFit(fitID)
|
||||
implant = fit.implants[position]
|
||||
fit.implants.remove(implant)
|
||||
fit.clear()
|
||||
fit.calculateModifiedAttributes()
|
||||
self.recalc(fit)
|
||||
return True
|
||||
|
||||
def addBooster(self, fitID, itemID):
|
||||
@@ -231,8 +227,7 @@ class Fit(object):
|
||||
|
||||
fit.boosters.freeSlot(booster)
|
||||
fit.boosters.append(booster)
|
||||
fit.clear()
|
||||
fit.calculateModifiedAttributes()
|
||||
self.recalc(fit)
|
||||
return True
|
||||
|
||||
def removeBooster(self, fitID, position):
|
||||
@@ -242,8 +237,7 @@ class Fit(object):
|
||||
fit = eos.db.getFit(fitID)
|
||||
booster = fit.boosters[position]
|
||||
fit.boosters.remove(booster)
|
||||
fit.clear()
|
||||
fit.calculateModifiedAttributes()
|
||||
self.recalc(fit)
|
||||
return True
|
||||
|
||||
def project(self, fitID, thing):
|
||||
@@ -276,8 +270,7 @@ class Fit(object):
|
||||
fit.projectedModules.append(module)
|
||||
|
||||
eos.db.commit()
|
||||
fit.clear()
|
||||
fit.calculateModifiedAttributes()
|
||||
self.recalc(fit)
|
||||
|
||||
def toggleProjected(self, fitID, thing, click):
|
||||
fit = eos.db.getFit(fitID)
|
||||
@@ -292,8 +285,7 @@ class Fit(object):
|
||||
thing.state = State.OFFLINE
|
||||
|
||||
eos.db.commit()
|
||||
fit.clear()
|
||||
fit.calculateModifiedAttributes()
|
||||
self.recalc(fit)
|
||||
|
||||
def removeProjected(self, fitID, thing):
|
||||
fit = eos.db.getFit(fitID)
|
||||
@@ -305,8 +297,7 @@ class Fit(object):
|
||||
fit.projectedFits.remove(thing)
|
||||
|
||||
eos.db.commit()
|
||||
fit.clear()
|
||||
fit.calculateModifiedAttributes()
|
||||
self.recalc(fit)
|
||||
|
||||
def appendModule(self, fitID, itemID):
|
||||
fit = eos.db.getFit(fitID)
|
||||
@@ -326,8 +317,7 @@ class Fit(object):
|
||||
if m.isValidState(State.ACTIVE):
|
||||
m.state = State.ACTIVE
|
||||
|
||||
fit.clear()
|
||||
fit.calculateModifiedAttributes()
|
||||
self.recalc(fit)
|
||||
self.checkStates(fit, m)
|
||||
fit.fill()
|
||||
eos.db.commit()
|
||||
@@ -343,8 +333,7 @@ class Fit(object):
|
||||
|
||||
numSlots = len(fit.modules)
|
||||
fit.modules.toDummy(position)
|
||||
fit.clear()
|
||||
fit.calculateModifiedAttributes()
|
||||
self.recalc(fit)
|
||||
self.checkStates(fit, None)
|
||||
fit.fill()
|
||||
eos.db.commit()
|
||||
@@ -381,8 +370,7 @@ class Fit(object):
|
||||
return False
|
||||
drone.amount += 1
|
||||
eos.db.commit()
|
||||
fit.clear()
|
||||
fit.calculateModifiedAttributes()
|
||||
self.recalc(fit)
|
||||
return True
|
||||
else:
|
||||
return False
|
||||
@@ -403,8 +391,7 @@ class Fit(object):
|
||||
d2.amount += d1.amount
|
||||
d2.amountActive += d1.amountActive if d1.amountActive > 0 else -d2.amountActive
|
||||
eos.db.commit()
|
||||
fit.clear()
|
||||
fit.calculateModifiedAttributes()
|
||||
self.recalc(fit)
|
||||
return True
|
||||
|
||||
def splitDrones(self, fit, d, amount, l):
|
||||
@@ -444,8 +431,7 @@ class Fit(object):
|
||||
del fit.drones[i]
|
||||
|
||||
eos.db.commit()
|
||||
fit.clear()
|
||||
fit.calculateModifiedAttributes()
|
||||
self.recalc(fit)
|
||||
return True
|
||||
|
||||
def toggleDrone(self, fitID, i):
|
||||
@@ -457,8 +443,7 @@ class Fit(object):
|
||||
d.amountActive = d.amount
|
||||
|
||||
eos.db.commit()
|
||||
fit.clear()
|
||||
fit.calculateModifiedAttributes()
|
||||
self.recalc(fit)
|
||||
return True
|
||||
|
||||
def toggleImplant(self, fitID, i):
|
||||
@@ -467,8 +452,7 @@ class Fit(object):
|
||||
implant.active = not implant.active
|
||||
|
||||
eos.db.commit()
|
||||
fit.clear()
|
||||
fit.calculateModifiedAttributes()
|
||||
self.recalc(fit)
|
||||
return True
|
||||
|
||||
def toggleBooster(self, fitID, i):
|
||||
@@ -477,8 +461,7 @@ class Fit(object):
|
||||
booster.active = not booster.active
|
||||
|
||||
eos.db.commit()
|
||||
fit.clear()
|
||||
fit.calculateModifiedAttributes()
|
||||
self.recalc(fit)
|
||||
return True
|
||||
|
||||
def changeChar(self, fitID, charID):
|
||||
@@ -490,8 +473,7 @@ class Fit(object):
|
||||
|
||||
fit = eos.db.getFit(fitID)
|
||||
fit.character = self.character = eos.db.getCharacter(charID)
|
||||
fit.clear()
|
||||
fit.calculateModifiedAttributes()
|
||||
self.recalc(fit)
|
||||
|
||||
def isAmmo(self, itemID):
|
||||
return eos.db.getItem(itemID).category.name == "Charge"
|
||||
@@ -507,8 +489,7 @@ class Fit(object):
|
||||
if mod.isValidCharge(ammo):
|
||||
mod.charge = ammo
|
||||
|
||||
fit.clear()
|
||||
fit.calculateModifiedAttributes()
|
||||
self.recalc(fit)
|
||||
|
||||
def getDamagePattern(self, fitID):
|
||||
if fitID is None:
|
||||
@@ -525,8 +506,7 @@ class Fit(object):
|
||||
fit.damagePattern = self.pattern = pattern
|
||||
eos.db.commit()
|
||||
|
||||
fit.clear()
|
||||
fit.calculateModifiedAttributes()
|
||||
self.recalc(fit)
|
||||
|
||||
def setAsPattern(self, fitID, ammo):
|
||||
if fitID is None:
|
||||
@@ -543,8 +523,7 @@ class Fit(object):
|
||||
setattr(dp, "%sAmount" % attr, ammo.getAttribute("%sDamage" % attr))
|
||||
|
||||
fit.damagePattern = dp
|
||||
fit.clear()
|
||||
fit.calculateModifiedAttributes()
|
||||
self.recalc(fit)
|
||||
|
||||
def exportFit(self, fitID):
|
||||
fit = eos.db.getFit(fitID)
|
||||
@@ -627,14 +606,12 @@ class Fit(object):
|
||||
fit = eos.db.getFit(fitID)
|
||||
|
||||
# As some items may affect state-limiting attributes of the ship, calculate new attributes first
|
||||
fit.clear()
|
||||
fit.calculateModifiedAttributes()
|
||||
self.recalc(fit)
|
||||
# Then, check states of all modules and change where needed
|
||||
changed = self.checkStates(fit, base)
|
||||
# If any state was changed, recalulate attributes again
|
||||
if changed is True:
|
||||
fit.clear()
|
||||
fit.calculateModifiedAttributes()
|
||||
self.recalc(fit)
|
||||
|
||||
# Old state : New State
|
||||
localMap = {State.OVERHEATED: State.ACTIVE,
|
||||
@@ -665,3 +642,10 @@ class Fit(object):
|
||||
return state
|
||||
else:
|
||||
return currState
|
||||
|
||||
def recalc(self, fit):
|
||||
fit.clear()
|
||||
if fit.fleet is not None:
|
||||
fit.fleet.recalculateLinear()
|
||||
else:
|
||||
fit.calculateModifiedAttributes()
|
||||
|
||||
@@ -77,6 +77,7 @@ class Fleet(object):
|
||||
s = Squad()
|
||||
w.squads.append(s)
|
||||
s.members.append(fit)
|
||||
fit.fleet = f
|
||||
eos.db.save(f)
|
||||
|
||||
def setLinearFleetCom(self, boostee, booster):
|
||||
@@ -160,6 +161,7 @@ class Fleet(object):
|
||||
for fleetID in fleetIDs:
|
||||
fleet = eos.db.getFleet(fleetID)
|
||||
eos.db.remove(fleet)
|
||||
fit.fleet = None
|
||||
return
|
||||
|
||||
def anyBoosters(self, squad):
|
||||
@@ -177,12 +179,3 @@ class Fleet(object):
|
||||
w = s.wing
|
||||
f = w.gang
|
||||
return (f.leader, w.leader, s.leader)
|
||||
|
||||
def recalcFleet(self, fit):
|
||||
squadIDs = eos.db.getSquadsIDsWithFitID(fit.ID)
|
||||
if len(squadIDs) > 0:
|
||||
eos.db.getSquad(squadIDs[0]).wing.gang.recalculateLinear()
|
||||
else:
|
||||
fit.clear()
|
||||
fit.calculateModifiedAttributes()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user