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

@@ -4,7 +4,7 @@
# Modules from group: Mutadaptive Remote Armor Repairer (5 of 5)
from eos.utils.spoolSupport import SpoolType, calculateSpoolup
from eos.utils.spoolSupport import SpoolType, SpoolOptions, calculateSpoolup, resolveSpoolOptions
type = "projected", "active"
@@ -16,11 +16,14 @@ def handler(fit, container, context, **kwargs):
cycleTime = container.getModifiedItemAttr("duration") / 1000.0
repSpoolMax = container.getModifiedItemAttr("repairMultiplierBonusMax")
repSpoolPerCycle = container.getModifiedItemAttr("repairMultiplierBonusPerCycle")
rps = repAmountBase * (1 + calculateSpoolup(repSpoolMax, repSpoolPerCycle, cycleTime, container.spoolType, container.spoolAmount)[0]) / cycleTime
# TODO: fetch spoolup option
defaultSpoolValue = 1
spoolType, spoolAmount = resolveSpoolOptions(
SpoolOptions(SpoolType.SCALE, defaultSpoolValue, False),
container)
rps = repAmountBase * (1 + calculateSpoolup(repSpoolMax, repSpoolPerCycle, cycleTime, spoolType, spoolAmount)[0]) / cycleTime
rpsPreSpool = repAmountBase * (1 + calculateSpoolup(repSpoolMax, repSpoolPerCycle, cycleTime, SpoolType.SCALE, 0)[0]) / cycleTime
rpsFullSpool = repAmountBase * (1 + calculateSpoolup(repSpoolMax, repSpoolPerCycle, cycleTime, SpoolType.SCALE, 1)[0]) / cycleTime
# TODO: use spoolup options to fetch main value
rps = rpsFullSpool
fit.extraAttributes.increase("armorRepair", rps, **kwargs)
fit.extraAttributes.increase("armorRepairPreSpool", rpsPreSpool, **kwargs)
fit.extraAttributes.increase("armorRepairFullSpool", rpsFullSpool, **kwargs)

View File

@@ -273,15 +273,15 @@ class Fit(object):
def projectedFighters(self):
return self.__projectedFighters
def getWeaponDps(self, spoolType=None, spoolAmount=None):
if (spoolType, spoolAmount) not in self.__weaponDpsMap:
self.calculateWeaponDmgStats(spoolType, spoolAmount)
return self.__weaponDpsMap[(spoolType, spoolAmount)]
def getWeaponDps(self, spoolOptions=None):
if spoolOptions not in self.__weaponDpsMap:
self.calculateWeaponDmgStats(spoolOptions)
return self.__weaponDpsMap[spoolOptions]
def getWeaponVolley(self, spoolType=None, spoolAmount=None):
if (spoolType, spoolAmount) not in self.__weaponVolleyMap:
self.calculateWeaponDmgStats(spoolType, spoolAmount)
return self.__weaponVolleyMap[(spoolType, spoolAmount)]
def getWeaponVolley(self, spoolOptions=None):
if spoolOptions not in self.__weaponVolleyMap:
self.calculateWeaponDmgStats(spoolOptions)
return self.__weaponVolleyMap[spoolOptions]
def getDroneDps(self):
if self.__droneDps is None:
@@ -293,11 +293,11 @@ class Fit(object):
self.calculateDroneDmgStats()
return self.__droneVolley
def getTotalDps(self, spoolType=None, spoolAmount=None):
return self.getDroneDps() + self.getWeaponDps(spoolType=spoolType, spoolAmount=spoolAmount)
def getTotalDps(self, spoolOptions=None):
return self.getDroneDps() + self.getWeaponDps(spoolOptions=spoolOptions)
def getTotalVolley(self, spoolType=None, spoolAmount=None):
return self.getDroneVolley() + self.getWeaponVolley(spoolType=spoolType, spoolAmount=spoolAmount)
def getTotalVolley(self, spoolOptions=None):
return self.getDroneVolley() + self.getWeaponVolley(spoolOptions=spoolOptions)
@property
def minerYield(self):
@@ -1218,12 +1218,12 @@ class Fit(object):
self.__capStable = True
self.__capState = 100
def getRemoteReps(self, spoolType=None, spoolAmount=None):
if (spoolType, spoolAmount) not in self.__remoteRepMap:
def getRemoteReps(self, spoolOptions=None):
if spoolOptions not in self.__remoteRepMap:
remoteReps = {}
for module in self.modules:
rrType, rrAmount, spoolTime = module.getRemoteReps(spoolType=spoolType, spoolAmount=spoolAmount)
rrType, rrAmount, spoolTime = module.getRemoteReps(spoolOptions=spoolOptions)
if rrType:
if rrType not in remoteReps:
remoteReps[rrType] = 0
@@ -1236,9 +1236,9 @@ class Fit(object):
remoteReps[rrType] = 0
remoteReps[rrType] += rrAmount
self.__remoteRepMap[(spoolType, spoolAmount)] = remoteReps
self.__remoteRepMap[spoolOptions] = remoteReps
return self.__remoteRepMap[(spoolType, spoolAmount)]
return self.__remoteRepMap[spoolOptions]
@property
def hp(self):
@@ -1443,16 +1443,16 @@ class Fit(object):
self.__minerYield = minerYield
self.__droneYield = droneYield
def calculateWeaponDmgStats(self, spoolType, spoolAmount):
def calculateWeaponDmgStats(self, spoolOptions):
weaponVolley = DmgTypes(0, 0, 0, 0)
weaponDps = DmgTypes(0, 0, 0, 0)
for mod in self.modules:
weaponVolley += mod.getVolley(spoolType=spoolType, spoolAmount=spoolAmount, targetResists=self.targetResists)[0]
weaponDps += mod.getDps(spoolType=spoolType, spoolAmount=spoolAmount, targetResists=self.targetResists)[0]
weaponVolley += mod.getVolley(spoolOptions=spoolOptions, targetResists=self.targetResists)[0]
weaponDps += mod.getDps(spoolOptions=spoolOptions, targetResists=self.targetResists)[0]
self.__weaponVolleyMap[(spoolType, spoolAmount)] = weaponVolley
self.__weaponDpsMap[(spoolType, spoolAmount)] = weaponDps
self.__weaponVolleyMap[spoolOptions] = weaponVolley
self.__weaponDpsMap[spoolOptions] = weaponDps
def calculateDroneDmgStats(self):
droneVolley = DmgTypes(0, 0, 0, 0)

View File

@@ -29,7 +29,7 @@ from eos.modifiedAttributeDict import ChargeAttrShortcut, ItemAttrShortcut, Modi
from eos.saveddata.citadel import Citadel
from eos.saveddata.mutator import Mutator
from eos.utils.float import floatUnerr
from eos.utils.spoolSupport import calculateSpoolup
from eos.utils.spoolSupport import calculateSpoolup, resolveSpoolOptions
from eos.utils.stats import DmgTypes
pyfalog = Logger(__name__)
@@ -432,7 +432,7 @@ class Module(HandledItem, HandledCharge, ItemAttrShortcut, ChargeAttrShortcut):
return self.__miningyield
def getVolley(self, spoolType=None, spoolAmount=None, targetResists=None, ignoreState=False):
def getVolley(self, spoolOptions=None, targetResists=None, ignoreState=False):
if self.isEmpty or (self.state < State.ACTIVE and not ignoreState):
return DmgTypes(0, 0, 0, 0), 0
if self.__baseVolley is None:
@@ -443,14 +443,11 @@ class Module(HandledItem, HandledCharge, ItemAttrShortcut, ChargeAttrShortcut):
thermal=(dmgGetter("thermalDamage", 0)) * dmgMult,
kinetic=(dmgGetter("kineticDamage", 0)) * dmgMult,
explosive=(dmgGetter("explosiveDamage", 0)) * dmgMult)
spoolType, spoolAmount = resolveSpoolOptions(spoolOptions, self)
spoolBoost, spoolTime = calculateSpoolup(
self.getModifiedItemAttr("damageMultiplierBonusMax", 0),
self.getModifiedItemAttr("damageMultiplierBonusPerCycle", 0),
self.rawCycleTime / 1000,
spoolType if spoolType is not None else self.spoolType,
# Using spool type as condition as it should define if we're using
# passed spoolup parameters or not
spoolAmount if spoolType is not None else self.spoolAmount)
self.rawCycleTime / 1000, spoolType, spoolAmount)
spoolMultiplier = 1 + spoolBoost
volley = DmgTypes(
em=self.__baseVolley.em * spoolMultiplier * (1 - getattr(targetResists, "emAmount", 0)),
@@ -459,8 +456,8 @@ class Module(HandledItem, HandledCharge, ItemAttrShortcut, ChargeAttrShortcut):
explosive=self.__baseVolley.explosive * spoolMultiplier * (1 - getattr(targetResists, "explosiveAmount", 0)))
return volley, spoolTime
def getDps(self, spoolType=None, spoolAmount=None, targetResists=None, ignoreState=False):
volley, spoolTime = self.getVolley(spoolType=spoolType, spoolAmount=spoolAmount, targetResists=targetResists, ignoreState=ignoreState)
def getDps(self, spoolOptions=None, targetResists=None, ignoreState=False):
volley, spoolTime = self.getVolley(spoolOptions=spoolOptions, targetResists=targetResists, ignoreState=ignoreState)
if not volley:
return DmgTypes(0, 0, 0, 0), 0
# Some weapons repeat multiple times in one cycle (bosonic doomsdays). Get the number of times it fires off
@@ -473,7 +470,7 @@ class Module(HandledItem, HandledCharge, ItemAttrShortcut, ChargeAttrShortcut):
explosive=volley.explosive * dpsFactor)
return dps, spoolTime
def getRemoteReps(self, spoolType=None, spoolAmount=None, ignoreState=False):
def getRemoteReps(self, spoolOptions=None, ignoreState=False):
if self.isEmpty or (self.state < State.ACTIVE and not ignoreState):
return (None, 0, 0)
@@ -513,14 +510,11 @@ class Module(HandledItem, HandledCharge, ItemAttrShortcut, ChargeAttrShortcut):
spoolTime = 0
if rrType and rrAmount and self.item.group.name == "Mutadaptive Remote Armor Repairer":
spoolType, spoolAmount = resolveSpoolOptions(spoolOptions, self)
spoolBoost, spoolTime = calculateSpoolup(
self.getModifiedItemAttr("repairMultiplierBonusMax", 0),
self.getModifiedItemAttr("repairMultiplierBonusPerCycle", 0),
self.rawCycleTime / 1000,
spoolType if spoolType is not None else self.spoolType,
# Using spool type as condition as it should define if we're using
# passed spoolup parameters or not
spoolAmount if spoolType is not None else self.spoolAmount)
self.rawCycleTime / 1000, spoolType, spoolAmount)
rrAmount *= (1 + spoolBoost)
return rrType, rrAmount, spoolTime

View File

@@ -18,11 +18,15 @@
# ===============================================================================
from collections import namedtuple
from enum import IntEnum, unique
from eos.utils.float import floatUnerr
SpoolOptions = namedtuple('SpoolOptions', ('spoolType', 'spoolAmount', 'force'))
@unique
class SpoolType(IntEnum):
SCALE = 0 # [0..1]
@@ -48,3 +52,17 @@ def calculateSpoolup(modMaxValue, modStepValue, modCycleTime, spoolType, spoolAm
return cycles * modStepValue, cycles * modCycleTime
else:
return 0, 0
def resolveSpoolOptions(spoolOptions, module):
# Rely on passed options if they are forcing us to do so
if spoolOptions is not None and spoolOptions.force:
return spoolOptions.spoolType, spoolOptions.spoolAmount
# If we're not forced to use options and module has options set, prefer on-module values
elif module is not None and module.spoolType is not None:
return module.spoolType, module.spoolAmount
# Otherwise - rely on passed options
elif spoolOptions is not None:
return spoolOptions.spoolType, spoolOptions.spoolAmount
else:
return None, None

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 = []