Fix a set of bugs that prevented EHP/HP switching and passive recharge
numbers to work correctly
This commit is contained in:
2
eos
2
eos
Submodule eos updated: 92f04f4d62...474d2b0d46
@@ -89,16 +89,16 @@ class RechargeViewFull(StatsView):
|
||||
else:
|
||||
tank = None
|
||||
|
||||
|
||||
for name in ("shield", "armor", "hull"):
|
||||
lbl = getattr(self, "labelTank%s%sActive" % (stability.capitalize(), name.capitalize()))
|
||||
if tank is not None:
|
||||
lbl.SetLabel("%.1f" % tank["%sRepair" % name])
|
||||
else:
|
||||
lbl.SetLabel("0.0")
|
||||
|
||||
if fit is not None:
|
||||
label = getattr(self, "labelTankSustainedShieldPassive")
|
||||
value = fit.calculateShieldRecharge()
|
||||
value = fit.effectiveTank["passiveShield"]
|
||||
label.SetLabel(formatAmount(value, 3, 0, 9))
|
||||
|
||||
else:
|
||||
|
||||
@@ -25,6 +25,7 @@ from gui import pygauge as PG
|
||||
from util import formatAmount
|
||||
import service
|
||||
import gui.mainFrame
|
||||
import gui.fittingView as fv
|
||||
|
||||
class ResistancesViewFull(StatsView):
|
||||
name = "resistancesViewFull"
|
||||
@@ -32,8 +33,8 @@ class ResistancesViewFull(StatsView):
|
||||
StatsView.__init__(self)
|
||||
self.parent = parent
|
||||
self._cachedValues = []
|
||||
self._toggleEHP = 1
|
||||
|
||||
self.activeFit = None
|
||||
self.oldPattern = None
|
||||
self.mainFrame = gui.mainFrame.MainFrame.getInstance()
|
||||
|
||||
def getHeaderText(self, fit):
|
||||
@@ -149,30 +150,37 @@ class ResistancesViewFull(StatsView):
|
||||
row+=1
|
||||
col=0
|
||||
|
||||
self.stEHPs.SetToolTip(wx.ToolTip("Click to toggle between effective HP and raw HP"))
|
||||
|
||||
def toggleEHP(self,event):
|
||||
sFit = service.Fit.getInstance()
|
||||
self.activeFit = self.mainFrame.getActiveFit()
|
||||
|
||||
if self.oldPattern is None:
|
||||
self.oldPattern = sFit.getDamagePattern(self.activeFit)
|
||||
sFit.setDamagePattern(self.activeFit, None)
|
||||
self.stEHPs.SetLabel(" HP ")
|
||||
else:
|
||||
sFit.setDamagePattern(self.activeFit, self.oldPattern)
|
||||
self.oldPattern = None
|
||||
self.stEHPs.SetLabel(" EHP ")
|
||||
|
||||
|
||||
self._toggleEHP *= -1
|
||||
self.refreshPanel(self._currentFit)
|
||||
|
||||
wx.PostEvent(self.mainFrame, fv.FitChanged(fitID=self.activeFit))
|
||||
|
||||
def refreshPanel(self, fit):
|
||||
#If we did anything intresting, we'd update our labels to reflect the new fit's stats here
|
||||
self._currentFit = fit
|
||||
sDP = service.DamagePattern.getInstance()
|
||||
sFit = service.Fit.getInstance()
|
||||
fitID = self.mainFrame.getActiveFit()
|
||||
if self._toggleEHP == 1:
|
||||
activeDmgPattern = getattr(self.mainFrame,"_activeDmgPattern", sDP.getDamagePattern("Uniform"))
|
||||
|
||||
sFit.setDamagePattern(fitID, activeDmgPattern)
|
||||
if fit is None:
|
||||
self.stEHPs.SetLabel(" EHP ")
|
||||
else:
|
||||
sFit.setDamagePattern(fitID, None)
|
||||
self.stEHPs.SetLabel(" HP ")
|
||||
self.stEHPs.SetToolTip(wx.ToolTip("Click to toggle between effective HP and raw HP"))
|
||||
elif fit.ID != self.activeFit:
|
||||
if fit.damagePattern is None:
|
||||
self.stEHPs.SetLabel(" HP ")
|
||||
else:
|
||||
self.stEHPs.SetLabel(" EHP ")
|
||||
sFit = service.Fit.getInstance()
|
||||
sDP = service.DamagePattern.getInstance()
|
||||
sFit.setDamagePattern(fit.ID, sDP.getDamagePattern("Uniform"))
|
||||
|
||||
self.activeFit = fit.ID if fit is not None else None
|
||||
|
||||
for tankType in ("shield", "armor", "hull"):
|
||||
for damageType in ("em", "thermal", "kinetic", "explosive"):
|
||||
@@ -201,7 +209,7 @@ class ResistancesViewFull(StatsView):
|
||||
|
||||
|
||||
self.labelEhp.SetLabel("%s" % formatAmount(total, 3, 0, 9))
|
||||
if self._toggleEHP == 1:
|
||||
if self.stEHPs.GetLabel() == " EHP ":
|
||||
self.stEff.SetLabel("( Effective HP: ")
|
||||
self.labelEhp.SetToolTip(wx.ToolTip("Effective: %d HP" % total))
|
||||
else:
|
||||
|
||||
@@ -298,6 +298,13 @@ class Fit(object):
|
||||
fit.clear()
|
||||
fit.calculateModifiedAttributes()
|
||||
|
||||
def getDamagePattern(self, fitID):
|
||||
if fitID is None:
|
||||
return
|
||||
|
||||
fit = eos.db.getFit(fitID)
|
||||
return fit.damagePattern
|
||||
|
||||
def setDamagePattern(self, fitID, pattern):
|
||||
if fitID is None:
|
||||
return
|
||||
@@ -305,6 +312,7 @@ class Fit(object):
|
||||
fit = eos.db.getFit(fitID)
|
||||
fit.damagePattern = pattern
|
||||
eos.db.commit()
|
||||
|
||||
fit.clear()
|
||||
fit.calculateModifiedAttributes()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user