Rework way we pass spoolup options, so that it's possible to prefer passed values or on-module values as needed

This commit is contained in:
DarkPhoenix
2018-12-13 13:54:53 +03:00
parent 58ceff6144
commit 7a8baac5bd
8 changed files with 117 additions and 93 deletions

View File

@@ -23,7 +23,7 @@ import gui.mainFrame
from gui.statsView import StatsView
from gui.bitmap_loader import BitmapLoader
from gui.utils.numberFormatter import formatAmount, roundToPrec
from eos.utils.spoolSupport import SpoolType
from eos.utils.spoolSupport import SpoolType, SpoolOptions
from service.fit import Fit
@@ -157,12 +157,14 @@ class FirepowerViewFull(StatsView):
formatAmount(preSpool, prec, lowest, highest),
formatAmount(fullSpool, prec, lowest, highest))
# TODO: fetch spoolup option
defaultSpoolValue = 1
stats = (
(
"labelFullDpsWeapon",
lambda: fit.getWeaponDps().total,
lambda: fit.getWeaponDps(spoolType=SpoolType.SCALE, spoolAmount=0).total,
lambda: fit.getWeaponDps(spoolType=SpoolType.SCALE, spoolAmount=1).total,
lambda: fit.getWeaponDps(spoolOptions=SpoolOptions(SpoolType.SCALE, defaultSpoolValue, False)).total,
lambda: fit.getWeaponDps(spoolOptions=SpoolOptions(SpoolType.SCALE, 0, True)).total,
lambda: fit.getWeaponDps(spoolOptions=SpoolOptions(SpoolType.SCALE, 1, True)).total,
3, 0, 0, "%s DPS"),
(
"labelFullDpsDrone",
@@ -172,15 +174,15 @@ class FirepowerViewFull(StatsView):
3, 0, 0, "%s DPS"),
(
"labelFullVolleyTotal",
lambda: fit.getTotalVolley().total,
lambda: fit.getTotalVolley(spoolType=SpoolType.SCALE, spoolAmount=0).total,
lambda: fit.getTotalVolley(spoolType=SpoolType.SCALE, spoolAmount=1).total,
lambda: fit.getTotalVolley(spoolOptions=SpoolOptions(SpoolType.SCALE, defaultSpoolValue, False)).total,
lambda: fit.getTotalVolley(spoolOptions=SpoolOptions(SpoolType.SCALE, 0, True)).total,
lambda: fit.getTotalVolley(spoolOptions=SpoolOptions(SpoolType.SCALE, 1, True)).total,
3, 0, 0, "%s"),
(
"labelFullDpsTotal",
lambda: fit.getTotalDps().total,
lambda: fit.getTotalDps(spoolType=SpoolType.SCALE, spoolAmount=0).total,
lambda: fit.getTotalDps(spoolType=SpoolType.SCALE, spoolAmount=1).total,
lambda: fit.getTotalDps(spoolOptions=SpoolOptions(SpoolType.SCALE, defaultSpoolValue, False)).total,
lambda: fit.getTotalDps(spoolOptions=SpoolOptions(SpoolType.SCALE, 0, True)).total,
lambda: fit.getTotalDps(spoolOptions=SpoolOptions(SpoolType.SCALE, 1, True)).total,
3, 0, 0, "%s"))
counter = 0
@@ -189,8 +191,6 @@ class FirepowerViewFull(StatsView):
val = val() if fit is not None else 0
preSpoolVal = preSpoolVal() if fit is not None else 0
fullSpoolVal = fullSpoolVal() if fit is not None else 0
# TODO: use spoolup options to fetch main value
val = fullSpoolVal
if self._cachedValues[counter] != val:
valueStr = formatAmount(val, prec, lowest, highest)
label.SetLabel(valueFormat % valueStr)

View File

@@ -22,33 +22,33 @@ import wx
from gui.statsView import StatsView
from gui.bitmap_loader import BitmapLoader
from gui.utils.numberFormatter import formatAmount, roundToPrec
from eos.utils.spoolSupport import SpoolType
from eos.utils.spoolSupport import SpoolType, SpoolOptions
stats = [
(
"labelRemoteCapacitor", "Capacitor:", "{} GJ/s", "capacitorInfo", "Capacitor restored",
lambda fit: fit.getRemoteReps().get("Capacitor"),
lambda fit: fit.getRemoteReps(spoolType=SpoolType.SCALE, spoolAmount=0).get("Capacitor", 0),
lambda fit: fit.getRemoteReps(spoolType=SpoolType.SCALE, spoolAmount=1).get("Capacitor", 0),
lambda fit, spool: fit.getRemoteReps(spoolOptions=SpoolOptions(SpoolType.SCALE, spool, False)).get("Capacitor"),
lambda fit: fit.getRemoteReps(spoolOptions=SpoolOptions(SpoolType.SCALE, 0, True)).get("Capacitor", 0),
lambda fit: fit.getRemoteReps(spoolOptions=SpoolOptions(SpoolType.SCALE, 1, True)).get("Capacitor", 0),
3, 0, 0),
(
"labelRemoteShield", "Shield:", "{} HP/s", "shieldActive", "Shield restored",
lambda fit: fit.getRemoteReps().get("Shield"),
lambda fit: fit.getRemoteReps(spoolType=SpoolType.SCALE, spoolAmount=0).get("Shield", 0),
lambda fit: fit.getRemoteReps(spoolType=SpoolType.SCALE, spoolAmount=1).get("Shield", 0),
lambda fit, spool: fit.getRemoteReps(spoolOptions=SpoolOptions(SpoolType.SCALE, spool, False)).get("Shield"),
lambda fit: fit.getRemoteReps(spoolOptions=SpoolOptions(SpoolType.SCALE, 0, True)).get("Shield", 0),
lambda fit: fit.getRemoteReps(spoolOptions=SpoolOptions(SpoolType.SCALE, 1, True)).get("Shield", 0),
3, 0, 0),
(
"labelRemoteArmor", "Armor:", "{} HP/s", "armorActive", "Armor restored",
lambda fit: fit.getRemoteReps().get("Armor"),
lambda fit: fit.getRemoteReps(spoolType=SpoolType.SCALE, spoolAmount=0).get("Armor", 0),
lambda fit: fit.getRemoteReps(spoolType=SpoolType.SCALE, spoolAmount=1).get("Armor", 0),
lambda fit, spool: fit.getRemoteReps(spoolOptions=SpoolOptions(SpoolType.SCALE, spool, False)).get("Armor"),
lambda fit: fit.getRemoteReps(spoolOptions=SpoolOptions(SpoolType.SCALE, 0, True)).get("Armor", 0),
lambda fit: fit.getRemoteReps(spoolOptions=SpoolOptions(SpoolType.SCALE, 1, True)).get("Armor", 0),
3, 0, 0),
(
"labelRemoteHull", "Hull:", "{} HP/s", "hullActive", "Hull restored",
lambda fit: fit.getRemoteReps().get("Hull"),
lambda fit: fit.getRemoteReps(spoolType=SpoolType.SCALE, spoolAmount=0).get("Hull", 0),
lambda fit: fit.getRemoteReps(spoolType=SpoolType.SCALE, spoolAmount=1).get("Hull", 0),
lambda fit, spool: fit.getRemoteReps(spoolOptions=SpoolOptions(SpoolType.SCALE, spool, False)).get("Hull"),
lambda fit: fit.getRemoteReps(spoolOptions=SpoolOptions(SpoolType.SCALE, 0, True)).get("Hull", 0),
lambda fit: fit.getRemoteReps(spoolOptions=SpoolOptions(SpoolType.SCALE, 1, True)).get("Hull", 0),
3, 0, 0)]
@@ -101,14 +101,14 @@ class OutgoingViewFull(StatsView):
formatAmount(preSpool, prec, lowest, highest),
formatAmount(fullSpool, prec, lowest, highest))
# TODO: fetch spoolup option
defaultSpoolValue = 1
counter = 0
for labelName, labelDesc, valueFormat, image, tooltip, val, preSpoolVal, fullSpoolVal, prec, lowest, highest in stats:
label = getattr(self, labelName)
val = val(fit) if fit is not None else 0
val = val(fit, defaultSpoolValue) if fit is not None else 0
preSpoolVal = preSpoolVal(fit) if fit is not None else 0
fullSpoolVal = fullSpoolVal(fit) if fit is not None else 0
# TODO: use spoolup options to fetch main value
val = fullSpoolVal
if self._cachedValues[counter] != val:
label.SetLabel(valueFormat.format(formatAmount(val, prec, lowest, highest)))
tooltipText = formatTooltip(tooltip, preSpoolVal, fullSpoolVal, prec, lowest, highest)

View File

@@ -21,33 +21,33 @@
import wx
from gui.statsView import StatsView
from gui.utils.numberFormatter import formatAmount, roundToPrec
from eos.utils.spoolSupport import SpoolType
from eos.utils.spoolSupport import SpoolType, SpoolOptions
stats = [
(
"labelRemoteCapacitor", "Capacitor:", "{} GJ/s", "capacitorInfo", "Capacitor restored",
lambda fit: fit.getRemoteReps().get("Capacitor"),
lambda fit: fit.getRemoteReps(spoolType=SpoolType.SCALE, spoolAmount=0).get("Capacitor", 0),
lambda fit: fit.getRemoteReps(spoolType=SpoolType.SCALE, spoolAmount=1).get("Capacitor", 0),
lambda fit, spool: fit.getRemoteReps(spoolOptions=SpoolOptions(SpoolType.SCALE, spool, False)).get("Capacitor"),
lambda fit: fit.getRemoteReps(spoolOptions=SpoolOptions(SpoolType.SCALE, 0, True)).get("Capacitor", 0),
lambda fit: fit.getRemoteReps(spoolOptions=SpoolOptions(SpoolType.SCALE, 1, True)).get("Capacitor", 0),
3, 0, 0),
(
"labelRemoteShield", "Shield:", "{} HP/s", "shieldActive", "Shield restored",
lambda fit: fit.getRemoteReps().get("Shield"),
lambda fit: fit.getRemoteReps(spoolType=SpoolType.SCALE, spoolAmount=0).get("Shield", 0),
lambda fit: fit.getRemoteReps(spoolType=SpoolType.SCALE, spoolAmount=1).get("Shield", 0),
lambda fit, spool: fit.getRemoteReps(spoolOptions=SpoolOptions(SpoolType.SCALE, spool, False)).get("Shield"),
lambda fit: fit.getRemoteReps(spoolOptions=SpoolOptions(SpoolType.SCALE, 0, True)).get("Shield", 0),
lambda fit: fit.getRemoteReps(spoolOptions=SpoolOptions(SpoolType.SCALE, 1, True)).get("Shield", 0),
3, 0, 0),
(
"labelRemoteArmor", "Armor:", "{} HP/s", "armorActive", "Armor restored",
lambda fit: fit.getRemoteReps().get("Armor"),
lambda fit: fit.getRemoteReps(spoolType=SpoolType.SCALE, spoolAmount=0).get("Armor", 0),
lambda fit: fit.getRemoteReps(spoolType=SpoolType.SCALE, spoolAmount=1).get("Armor", 0),
lambda fit, spool: fit.getRemoteReps(spoolOptions=SpoolOptions(SpoolType.SCALE, spool, False)).get("Armor"),
lambda fit: fit.getRemoteReps(spoolOptions=SpoolOptions(SpoolType.SCALE, 0, True)).get("Armor", 0),
lambda fit: fit.getRemoteReps(spoolOptions=SpoolOptions(SpoolType.SCALE, 1, True)).get("Armor", 0),
3, 0, 0),
(
"labelRemoteHull", "Hull:", "{} HP/s", "hullActive", "Hull restored",
lambda fit: fit.getRemoteReps().get("Hull"),
lambda fit: fit.getRemoteReps(spoolType=SpoolType.SCALE, spoolAmount=0).get("Hull", 0),
lambda fit: fit.getRemoteReps(spoolType=SpoolType.SCALE, spoolAmount=1).get("Hull", 0),
lambda fit, spool: fit.getRemoteReps(spoolOptions=SpoolOptions(SpoolType.SCALE, spool, False)).get("Hull"),
lambda fit: fit.getRemoteReps(spoolOptions=SpoolOptions(SpoolType.SCALE, 0, True)).get("Hull", 0),
lambda fit: fit.getRemoteReps(spoolOptions=SpoolOptions(SpoolType.SCALE, 1, True)).get("Hull", 0),
3, 0, 0)]
@@ -100,14 +100,14 @@ class OutgoingViewMinimal(StatsView):
formatAmount(preSpool, prec, lowest, highest),
formatAmount(fullSpool, prec, lowest, highest))
# TODO: fetch spoolup option
defaultSpoolValue = 1
counter = 0
for labelName, labelDesc, valueFormat, image, tooltip, val, preSpoolVal, fullSpoolVal, prec, lowest, highest in stats:
label = getattr(self, labelName)
val = val(fit) if fit is not None else 0
val = val(fit, defaultSpoolValue) if fit is not None else 0
preSpoolVal = preSpoolVal(fit) if fit is not None else 0
fullSpoolVal = fullSpoolVal(fit) if fit is not None else 0
# TODO: use spoolup options to fetch main value
val = fullSpoolVal
if self._cachedValues[counter] != val:
label.SetLabel(valueFormat.format(formatAmount(val, prec, lowest, highest)))
tooltipText = formatTooltip(tooltip, preSpoolVal, fullSpoolVal, prec, lowest, highest)

View File

@@ -27,7 +27,7 @@ from gui.viewColumn import ViewColumn
from gui.bitmap_loader import BitmapLoader
from gui.utils.numberFormatter import formatAmount
from gui.utils.listFormatter import formatList
from eos.utils.spoolSupport import SpoolType
from eos.utils.spoolSupport import SpoolType, SpoolOptions
class Miscellanea(ViewColumn):
@@ -115,8 +115,11 @@ class Miscellanea(ViewColumn):
text = "{0}".format(formatAmount(trackingSpeed, 3, 0, 3))
tooltip = "tracking speed"
info.append((text, tooltip))
# TODO: use spoolup options to fetch main value
volley, spoolTime = stuff.getVolley(spoolType=SpoolType.SCALE, spoolAmount=1, ignoreState=True)
# TODO: fetch spoolup option
defaultSpoolValue = 1
spoolTime = stuff.getVolley(
spoolOptions=SpoolOptions(SpoolType.SCALE, defaultSpoolValue, False),
ignoreState=True)[1]
if spoolTime:
text = "{0}s".format(formatAmount(spoolTime, 3, 0, 3))
tooltip = "spool up time"
@@ -336,11 +339,17 @@ class Miscellanea(ViewColumn):
tooltip = "Armor repaired per second"
return text, tooltip
elif itemGroup == "Mutadaptive Remote Armor Repairer":
rrType, rps, spoolTime = stuff.getRemoteReps(ignoreState=True)
rrTypePre, rpsPre, spoolTimePre = stuff.getRemoteReps(spoolType=SpoolType.SCALE, spoolAmount=0, ignoreState=True)
rrTypeFull, rpsFull, spoolTimeFull = stuff.getRemoteReps(spoolType=SpoolType.SCALE, spoolAmount=1, ignoreState=True)
# TODO: use spoolup options to fetch main value
rrType, rps, spoolTime = rrTypeFull, rpsFull, spoolTimeFull
# TODO: fetch spoolup option
defaultSpoolValue = 1
rrType, rps, spoolTime = stuff.getRemoteReps(
spoolOptions=SpoolOptions(SpoolType.SCALE, defaultSpoolValue, False),
ignoreState=True)
rrTypePre, rpsPre, spoolTimePre = stuff.getRemoteReps(
spoolOptions=SpoolOptions(SpoolType.SCALE, 0, True),
ignoreState=True)
rrTypeFull, rpsFull, spoolTimeFull = stuff.getRemoteReps(
spoolOptions=SpoolOptions(SpoolType.SCALE, 1, True),
ignoreState=True)
if not rps:
return "", None
text = []