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:
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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 = []
|
||||
|
||||
Reference in New Issue
Block a user