Added requested feature from ticket #99
This commit is contained in:
@@ -9,6 +9,7 @@ class DamagePattern(ContextMenu):
|
|||||||
def __init__(self):
|
def __init__(self):
|
||||||
self.mainFrame = gui.mainFrame.MainFrame.getInstance()
|
self.mainFrame = gui.mainFrame.MainFrame.getInstance()
|
||||||
|
|
||||||
|
|
||||||
def display(self, context, selection):
|
def display(self, context, selection):
|
||||||
return context in ("resistancesViewFull",) and self.mainFrame.getActiveFit() is not None
|
return context in ("resistancesViewFull",) and self.mainFrame.getActiveFit() is not None
|
||||||
|
|
||||||
@@ -24,6 +25,7 @@ class DamagePattern(ContextMenu):
|
|||||||
sFit = service.Fit.getInstance()
|
sFit = service.Fit.getInstance()
|
||||||
fitID = self.mainFrame.getActiveFit()
|
fitID = self.mainFrame.getActiveFit()
|
||||||
sFit.setDamagePattern(fitID, self.patterns[i])
|
sFit.setDamagePattern(fitID, self.patterns[i])
|
||||||
|
setattr(self.mainFrame,"_activeDmgPattern",self.patterns[i])
|
||||||
wx.PostEvent(self.mainFrame, gui.fittingView.FitChanged(fitID=fitID))
|
wx.PostEvent(self.mainFrame, gui.fittingView.FitChanged(fitID=fitID))
|
||||||
|
|
||||||
def getBitmap(self, context, selection):
|
def getBitmap(self, context, selection):
|
||||||
|
|||||||
@@ -23,6 +23,8 @@ from gui import builtinStatsViews
|
|||||||
from gui import bitmapLoader
|
from gui import bitmapLoader
|
||||||
from gui import pygauge as PG
|
from gui import pygauge as PG
|
||||||
from util import formatAmount
|
from util import formatAmount
|
||||||
|
import service
|
||||||
|
import gui.mainFrame
|
||||||
|
|
||||||
class ResistancesViewFull(StatsView):
|
class ResistancesViewFull(StatsView):
|
||||||
name = "resistancesViewFull"
|
name = "resistancesViewFull"
|
||||||
@@ -30,6 +32,9 @@ class ResistancesViewFull(StatsView):
|
|||||||
StatsView.__init__(self)
|
StatsView.__init__(self)
|
||||||
self.parent = parent
|
self.parent = parent
|
||||||
self._cachedValues = []
|
self._cachedValues = []
|
||||||
|
self._toggleEHP = 1
|
||||||
|
|
||||||
|
self.mainFrame = gui.mainFrame.MainFrame.getInstance()
|
||||||
|
|
||||||
def getHeaderText(self, fit):
|
def getHeaderText(self, fit):
|
||||||
return "Resistances"
|
return "Resistances"
|
||||||
@@ -47,9 +52,9 @@ class ResistancesViewFull(StatsView):
|
|||||||
headerContentSizer = wx.BoxSizer(wx.HORIZONTAL)
|
headerContentSizer = wx.BoxSizer(wx.HORIZONTAL)
|
||||||
hsizer = headerPanel.GetSizer()
|
hsizer = headerPanel.GetSizer()
|
||||||
hsizer.Add(headerContentSizer,0,0,0)
|
hsizer.Add(headerContentSizer,0,0,0)
|
||||||
stEff = wx.StaticText(headerPanel, wx.ID_ANY, "( Effective HP: ")
|
self.stEff = wx.StaticText(headerPanel, wx.ID_ANY, "( Effective HP: ")
|
||||||
headerContentSizer.Add(stEff)
|
headerContentSizer.Add(self.stEff)
|
||||||
headerPanel.GetParent().AddToggleItem(stEff)
|
headerPanel.GetParent().AddToggleItem(self.stEff)
|
||||||
|
|
||||||
self.labelEhp = wx.StaticText(headerPanel, wx.ID_ANY, "0")
|
self.labelEhp = wx.StaticText(headerPanel, wx.ID_ANY, "0")
|
||||||
headerContentSizer.Add(self.labelEhp, 0)
|
headerContentSizer.Add(self.labelEhp, 0)
|
||||||
@@ -76,8 +81,13 @@ class ResistancesViewFull(StatsView):
|
|||||||
for damageType in ("em", "thermal", "kinetic", "explosive"):
|
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)
|
sizerResistances.Add(bitmapLoader.getStaticBitmap("%s_big" % damageType, contentPanel, "icons"), wx.GBPosition( row, col ), wx.GBSpan( 1, 1 ), wx.ALIGN_CENTER)
|
||||||
col+=1
|
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
|
col=0
|
||||||
row+=1
|
row+=1
|
||||||
|
|
||||||
@@ -131,10 +141,30 @@ class ResistancesViewFull(StatsView):
|
|||||||
row+=1
|
row+=1
|
||||||
col=0
|
col=0
|
||||||
|
|
||||||
|
def toggleEHP(self,event):
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
self._toggleEHP *= -1
|
||||||
|
self.refreshPanel(self._currentFit)
|
||||||
|
|
||||||
|
|
||||||
def refreshPanel(self, fit):
|
def refreshPanel(self, fit):
|
||||||
#If we did anything intresting, we'd update our labels to reflect the new fit's stats here
|
#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 tankType in ("shield", "armor", "hull"):
|
||||||
for damageType in ("em", "thermal", "kinetic", "explosive"):
|
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.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
|
damagePattern = fit.damagePattern if fit is not None else None
|
||||||
total = sum((damagePattern.emAmount, damagePattern.thermalAmount,
|
total = sum((damagePattern.emAmount, damagePattern.thermalAmount,
|
||||||
|
|||||||
Reference in New Issue
Block a user