Show capacitor regen difference for selected mods

This commit is contained in:
DarkPhoenix
2019-08-21 12:11:22 +03:00
parent 1b2cd62629
commit d32ff668e1
3 changed files with 29 additions and 22 deletions

View File

@@ -36,7 +36,6 @@ from eos.saveddata.character import Character
from eos.saveddata.citadel import Citadel
from eos.saveddata.module import Module
from eos.saveddata.ship import Ship
from eos.utils.float import floatUnerr
from eos.utils.stats import DmgTypes, RRTypes
@@ -1323,7 +1322,7 @@ class Fit:
nomodRegen = self.calculateCapRecharge(
capacity=self.ship.getModifiedItemAttrWithoutAfflictor("capacitorCapacity", mod),
rechargeRate=self.ship.getModifiedItemAttrWithoutAfflictor("rechargeRate", mod) / 1000.0)
return floatUnerr(currentRegen - nomodRegen)
return currentRegen - nomodRegen
def getRemoteReps(self, spoolOptions=None):
if spoolOptions not in self.__remoteRepMap:

View File

@@ -21,39 +21,55 @@
import wx
from eos.saveddata.mode import Mode
from service.attribute import Attribute
from eos.utils.float import floatUnerr
from gui.bitmap_loader import BitmapLoader
from gui.utils.numberFormatter import formatAmount
from gui.viewColumn import ViewColumn
from gui.bitmap_loader import BitmapLoader
from service.attribute import Attribute
from service.fit import Fit
class CapacitorUse(ViewColumn):
name = "Capacitor Usage"
name = 'Capacitor Usage'
def __init__(self, fittingView, params):
ViewColumn.__init__(self, fittingView)
self.mask = wx.LIST_MASK_IMAGE
Attribute.getInstance().getAttributeInfo("capacitorNeed")
self.imageId = fittingView.imageList.GetImageIndex("capacitorRecharge_small", "gui")
self.bitmap = BitmapLoader.getBitmap("capacitorRecharge_small", "gui")
Attribute.getInstance().getAttributeInfo('capacitorNeed')
self.imageId = fittingView.imageList.GetImageIndex('capacitorRecharge_small', 'gui')
self.bitmap = BitmapLoader.getBitmap('capacitorRecharge_small', 'gui')
def getText(self, mod):
if isinstance(mod, Mode):
return ""
return ''
fit = Fit.getInstance().getFit(self.fittingView.getActiveFit())
if fit is None:
return ''
capUse = mod.capUse
if capUse:
return "%s%s" % ("+" if capUse < 0 else "", (formatAmount(-capUse, 3, 0, 3)))
# Do not show cap diff numbers
if mod.item is not None and mod.item.group.name in (
'Capacitor Battery', 'Structure Capacitor Battery',
'Capacitor Power Relay', 'Structure Capacitor Power Relay',
'Capacitor Recharger', 'Power Diagnostic System', 'Capacitor Flux Coil',
'Rig Core', 'Shield Power Relay'
):
capRegenDiff = fit.getCapRegenGainFromMod(mod)
else:
return ""
capRegenDiff = 0
capDiff = floatUnerr(capRegenDiff - capUse)
if capDiff:
return formatAmount(capDiff, 3, 0, 3, forceSign=True)
else:
return ''
def getImageId(self, mod):
return -1
def getToolTip(self, mod):
return self.name
return 'Capacitor Usage'
CapacitorUse.register()

View File

@@ -444,14 +444,6 @@ class Miscellanea(ViewColumn):
text = "{0}/s".format(formatAmount(rps, 3, 0, 3, forceSign=True))
tooltip = "Structure repaired per second"
return text, tooltip
elif itemGroup in ("Capacitor Recharger", "Capacitor Power Relay", "Capacitor Battery"):
fit = Fit.getInstance().getFit(self.fittingView.getActiveFit())
capGain = fit.getCapRegenGainFromMod(stuff)
if not capGain:
return "", None
text = formatAmount(capGain, 3, 0, 3, forceSign=True)
tooltip = "Peak capacitor regeneration gain"
return text, tooltip
elif itemGroup == "Gang Coordinator":
command = stuff.getModifiedItemAttr("commandBonus") or stuff.getModifiedItemAttr("commandBonusHidden")
if not command: