Merge branch 'master' into singularity

This commit is contained in:
DarkPhoenix
2014-06-03 00:36:13 +04:00
3 changed files with 32 additions and 19 deletions

View File

@@ -319,17 +319,8 @@ class Fit(object):
else:
c = chain((self.character, self.ship), self.drones, self.boosters, self.appliedImplants, self.modules,
self.projectedDrones, self.projectedModules)
for item in c:
# Registering the item about to affect the fit allows us to track "Affected By" relations correctly
if item is not None:
self.register(item)
item.calculateModifiedAttributes(self, runTime, False)
if forceProjected is True:
targetFit.register(item)
item.calculateModifiedAttributes(targetFit, runTime, True)
if self.gangBoosts is not None:
#print self.gangBoosts
contextMap = {Skill: "skill",
Ship: "ship",
Module: "module",
@@ -344,17 +335,27 @@ class Fit(object):
(effect.isType("active") and thing.state >= State.ACTIVE):
# Run effect, and get proper bonuses applied
try:
effect.handler(targetFit, thing, context)
effect.handler(self, thing, context)
except:
pass
else:
# Run effect, and get proper bonuses applied
try:
effect.handler(targetFit, thing, context)
effect.handler(self, thing, context)
except:
pass
for item in c:
# Registering the item about to affect the fit allows us to track "Affected By" relations correctly
if item is not None:
self.register(item)
item.calculateModifiedAttributes(self, runTime, False)
if forceProjected is True:
targetFit.register(item)
item.calculateModifiedAttributes(targetFit, runTime, True)
for fit in self.projectedFits:
fit.calculateModifiedAttributes(self, dirtyStorage=dirtyStorage)
fit.calculateModifiedAttributes(self, withBoosters=withBoosters, dirtyStorage=dirtyStorage)
def fill(self):
"""

View File

@@ -121,6 +121,9 @@ class PFGeneralPref ( PreferenceView):
def onCBCompactSkills(self, event):
self.sFit.serviceFittingOptions["compactSkills"] = self.cbCompactSkills.GetValue()
fitID = self.mainFrame.getActiveFit()
self.sFit.refreshFit(fitID)
wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=fitID))
event.Skip()
def onCBReopenFits(self, event):

View File

@@ -93,9 +93,9 @@ class Fit(object):
"defaultCharacter": self.character.ID,
"useGlobalForceReload": False,
"colorFitBySlot": False,
"rackSlots": False,
"rackLabels": False,
"compactSkills": False}
"rackSlots": True,
"rackLabels": True,
"compactSkills": True}
self.serviceFittingOptions = SettingsProvider.getInstance().getSettings(
"pyfaServiceFittingOptions", serviceFittingDefaultOptions)
@@ -220,7 +220,11 @@ class Fit(object):
eos.db.commit()
self.recalc(fit, withBoosters=True)
def getFit(self, fitID):
def getFit(self, fitID, projected = False):
''' Gets fit from database, and populates fleet data.
Projected is a recursion flag that is set to reduce recursions into projected fits
'''
if fitID is None:
return None
fit = eos.db.getFit(fitID)
@@ -233,8 +237,13 @@ class Fit(object):
fit.fleet = None
else:
fit.fleet = f
self.recalc(fit, withBoosters=True)
fit.fill()
if not projected:
for fitP in fit.projectedFits:
self.getFit(fitP.ID, projected = True)
self.recalc(fit, withBoosters=True)
fit.fill()
eos.db.commit()
fit.inited = True
return fit