Add damage type info to firepower panel tooltips

This commit is contained in:
DarkPhoenix
2019-12-03 16:15:05 +03:00
parent 2e1c53392d
commit 39edec60e3

View File

@@ -151,51 +151,58 @@ class FirepowerViewFull(StatsView):
else: else:
self.stEff.Hide() self.stEff.Hide()
def dpsToolTip(preSpool, fullSpool, prec, lowest, highest): def dpsToolTip(normal, preSpool, fullSpool, prec, lowest, highest):
if roundToPrec(preSpool, prec) == roundToPrec(fullSpool, prec): if normal is None or preSpool is None or fullSpool is None:
return "" return ""
else: lines = []
return "Spool up: {}-{}".format( if getattr(normal, 'total', None):
formatAmount(preSpool, prec, lowest, highest), for dmgType in normal.names():
formatAmount(fullSpool, prec, lowest, highest)) val = getattr(normal, dmgType, None)
if val:
lines.append("{}: {}%".format(dmgType.capitalize(), formatAmount(val / normal.total * 100, 3, 0, 0)))
if roundToPrec(preSpool.total, prec) != roundToPrec(fullSpool.total, prec):
lines.append("Spool up: {}-{}".format(
formatAmount(preSpool.total, prec, lowest, highest),
formatAmount(fullSpool.total, prec, lowest, highest)))
return "\n".join(lines)
defaultSpoolValue = eos.config.settings['globalDefaultSpoolupPercentage'] defaultSpoolValue = eos.config.settings['globalDefaultSpoolupPercentage']
stats = ( stats = (
( (
"labelFullDpsWeapon", "labelFullDpsWeapon",
lambda: fit.getWeaponDps(spoolOptions=SpoolOptions(SpoolType.SPOOL_SCALE, defaultSpoolValue, False)).total, lambda: fit.getWeaponDps(spoolOptions=SpoolOptions(SpoolType.SPOOL_SCALE, defaultSpoolValue, False)),
lambda: fit.getWeaponDps(spoolOptions=SpoolOptions(SpoolType.SPOOL_SCALE, 0, True)).total, lambda: fit.getWeaponDps(spoolOptions=SpoolOptions(SpoolType.SPOOL_SCALE, 0, True)),
lambda: fit.getWeaponDps(spoolOptions=SpoolOptions(SpoolType.SPOOL_SCALE, 1, True)).total, lambda: fit.getWeaponDps(spoolOptions=SpoolOptions(SpoolType.SPOOL_SCALE, 1, True)),
3, 0, 0, "{}{} DPS"), 3, 0, 0, "{}{} DPS"),
( (
"labelFullDpsDrone", "labelFullDpsDrone",
lambda: fit.getDroneDps().total, lambda: fit.getDroneDps(),
lambda: fit.getDroneDps().total, lambda: fit.getDroneDps(),
lambda: fit.getDroneDps().total, lambda: fit.getDroneDps(),
3, 0, 0, "{}{} DPS"), 3, 0, 0, "{}{} DPS"),
( (
"labelFullVolleyTotal", "labelFullVolleyTotal",
lambda: fit.getTotalVolley(spoolOptions=SpoolOptions(SpoolType.SPOOL_SCALE, defaultSpoolValue, False)).total, lambda: fit.getTotalVolley(spoolOptions=SpoolOptions(SpoolType.SPOOL_SCALE, defaultSpoolValue, False)),
lambda: fit.getTotalVolley(spoolOptions=SpoolOptions(SpoolType.SPOOL_SCALE, 0, True)).total, lambda: fit.getTotalVolley(spoolOptions=SpoolOptions(SpoolType.SPOOL_SCALE, 0, True)),
lambda: fit.getTotalVolley(spoolOptions=SpoolOptions(SpoolType.SPOOL_SCALE, 1, True)).total, lambda: fit.getTotalVolley(spoolOptions=SpoolOptions(SpoolType.SPOOL_SCALE, 1, True)),
3, 0, 0, "{}{}"), 3, 0, 0, "{}{}"),
( (
"labelFullDpsTotal", "labelFullDpsTotal",
lambda: fit.getTotalDps(spoolOptions=SpoolOptions(SpoolType.SPOOL_SCALE, defaultSpoolValue, False)).total, lambda: fit.getTotalDps(spoolOptions=SpoolOptions(SpoolType.SPOOL_SCALE, defaultSpoolValue, False)),
lambda: fit.getTotalDps(spoolOptions=SpoolOptions(SpoolType.SPOOL_SCALE, 0, True)).total, lambda: fit.getTotalDps(spoolOptions=SpoolOptions(SpoolType.SPOOL_SCALE, 0, True)),
lambda: fit.getTotalDps(spoolOptions=SpoolOptions(SpoolType.SPOOL_SCALE, 1, True)).total, lambda: fit.getTotalDps(spoolOptions=SpoolOptions(SpoolType.SPOOL_SCALE, 1, True)),
3, 0, 0, "{}{}")) 3, 0, 0, "{}{}"))
counter = 0 counter = 0
for labelName, val, preSpoolVal, fullSpoolVal, prec, lowest, highest, valueFormat in stats: for labelName, val, preSpoolVal, fullSpoolVal, prec, lowest, highest, valueFormat in stats:
label = getattr(self, labelName) label = getattr(self, labelName)
val = val() if fit is not None else 0 val = val() if fit is not None else None
preSpoolVal = preSpoolVal() if fit is not None else 0 preSpoolVal = preSpoolVal() if fit is not None else None
fullSpoolVal = fullSpoolVal() if fit is not None else 0 fullSpoolVal = fullSpoolVal() if fit is not None else None
if self._cachedValues[counter] != val: if self._cachedValues[counter] != val:
tooltipText = dpsToolTip(preSpoolVal, fullSpoolVal, prec, lowest, highest) tooltipText = dpsToolTip(val, preSpoolVal, fullSpoolVal, prec, lowest, highest)
label.SetLabel(valueFormat.format( label.SetLabel(valueFormat.format(
formatAmount(val, prec, lowest, highest), formatAmount(0 if val is None else val.total, prec, lowest, highest),
"\u02e2" if tooltipText else "")) "\u02e2" if tooltipText else ""))
label.SetToolTip(wx.ToolTip(tooltipText)) label.SetToolTip(wx.ToolTip(tooltipText))
self._cachedValues[counter] = val self._cachedValues[counter] = val