Add damage type info to firepower panel tooltips
This commit is contained in:
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user