diff --git a/gui/builtinContextMenus/damagePattern.py b/gui/builtinContextMenus/damagePattern.py index 3f59e0769..3f865b381 100755 --- a/gui/builtinContextMenus/damagePattern.py +++ b/gui/builtinContextMenus/damagePattern.py @@ -9,6 +9,7 @@ class DamagePattern(ContextMenu): def __init__(self): self.mainFrame = gui.mainFrame.MainFrame.getInstance() + def display(self, context, selection): return context in ("resistancesViewFull",) and self.mainFrame.getActiveFit() is not None @@ -24,6 +25,7 @@ class DamagePattern(ContextMenu): sFit = service.Fit.getInstance() fitID = self.mainFrame.getActiveFit() sFit.setDamagePattern(fitID, self.patterns[i]) + setattr(self.mainFrame,"_activeDmgPattern",self.patterns[i]) wx.PostEvent(self.mainFrame, gui.fittingView.FitChanged(fitID=fitID)) def getBitmap(self, context, selection): diff --git a/gui/builtinStatsViews/resistancesViewFull.py b/gui/builtinStatsViews/resistancesViewFull.py index d68dd10d0..f85837549 100644 --- a/gui/builtinStatsViews/resistancesViewFull.py +++ b/gui/builtinStatsViews/resistancesViewFull.py @@ -23,6 +23,8 @@ from gui import builtinStatsViews from gui import bitmapLoader from gui import pygauge as PG from util import formatAmount +import service +import gui.mainFrame class ResistancesViewFull(StatsView): name = "resistancesViewFull" @@ -30,6 +32,9 @@ class ResistancesViewFull(StatsView): StatsView.__init__(self) self.parent = parent self._cachedValues = [] + self._toggleEHP = 1 + + self.mainFrame = gui.mainFrame.MainFrame.getInstance() def getHeaderText(self, fit): return "Resistances" @@ -47,9 +52,9 @@ class ResistancesViewFull(StatsView): headerContentSizer = wx.BoxSizer(wx.HORIZONTAL) hsizer = headerPanel.GetSizer() hsizer.Add(headerContentSizer,0,0,0) - stEff = wx.StaticText(headerPanel, wx.ID_ANY, "( Effective HP: ") - headerContentSizer.Add(stEff) - headerPanel.GetParent().AddToggleItem(stEff) + self.stEff = wx.StaticText(headerPanel, wx.ID_ANY, "( Effective HP: ") + headerContentSizer.Add(self.stEff) + headerPanel.GetParent().AddToggleItem(self.stEff) self.labelEhp = wx.StaticText(headerPanel, wx.ID_ANY, "0") headerContentSizer.Add(self.labelEhp, 0) @@ -76,8 +81,13 @@ class ResistancesViewFull(StatsView): for damageType in ("em", "thermal", "kinetic", "explosive"): sizerResistances.Add(bitmapLoader.getStaticBitmap("%s_big" % damageType, contentPanel, "icons"), wx.GBPosition( row, col ), wx.GBSpan( 1, 1 ), wx.ALIGN_CENTER) col+=1 + self.stEHPs = wx.StaticText(contentPanel, wx.ID_ANY, "EHP") + self.stEHPs.SetToolTip(wx.ToolTip("Click to toggle between effective HP and raw HP")) - sizerResistances.Add(wx.StaticText(contentPanel, wx.ID_ANY, "EHP"), wx.GBPosition( row, col ), wx.GBSpan( 1, 1 ), wx.ALIGN_CENTER) + self.stEHPs.Bind(wx.EVT_LEFT_UP, self.toggleEHP) + + + sizerResistances.Add(self.stEHPs, wx.GBPosition( row, col ), wx.GBSpan( 1, 1 ), wx.ALIGN_CENTER) col=0 row+=1 @@ -131,10 +141,30 @@ class ResistancesViewFull(StatsView): row+=1 col=0 + def toggleEHP(self,event): + + + + self._toggleEHP *= -1 + self.refreshPanel(self._currentFit) 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) + self.stEHPs.SetLabel("EHP") + else: + sFit.setDamagePattern(fitID, None) + self.stEHPs.SetLabel("RAW HP") + self.stEHPs.SetToolTip(wx.ToolTip("Click to toggle between effective HP and raw HP")) + for tankType in ("shield", "armor", "hull"): for damageType in ("em", "thermal", "kinetic", "explosive"): @@ -163,7 +193,13 @@ class ResistancesViewFull(StatsView): self.labelEhp.SetLabel("%s" % formatAmount(total, 3, 0, 9)) - self.labelEhp.SetToolTip(wx.ToolTip("Effective: %d" % total)) + if self._toggleEHP == 1: + self.stEff.SetLabel("( Effective HP: ") + self.labelEhp.SetToolTip(wx.ToolTip("Effective: %d HP" % total)) + else: + self.stEff.SetLabel("( Raw HP: ") + self.labelEhp.SetToolTip(wx.ToolTip("Raw: %d HP" % total)) + damagePattern = fit.damagePattern if fit is not None else None total = sum((damagePattern.emAmount, damagePattern.thermalAmount,