diff --git a/gui/builtinGraphs/fitCapRegen.py b/gui/builtinGraphs/fitCapRegen.py index b8c7ac3a7..27f49e687 100644 --- a/gui/builtinGraphs/fitCapRegen.py +++ b/gui/builtinGraphs/fitCapRegen.py @@ -38,6 +38,7 @@ class FitCapRegenGraph(FitGraph): inputs = [ Input(handle='time', unit='s', label='Time', iconID=1392, defaultValue=120, defaultRange=(0, 300), mainOnly=True), Input(handle='capAmount', unit='%', label='Cap amount', iconID=1668, defaultValue=25, defaultRange=(0, 100), mainOnly=True)] + srcExtraCols = ('CapAmount', 'CapTime') # Calculation stuff _normalizers = { diff --git a/gui/builtinGraphs/fitMobility.py b/gui/builtinGraphs/fitMobility.py index a03603135..4d0dca01f 100644 --- a/gui/builtinGraphs/fitMobility.py +++ b/gui/builtinGraphs/fitMobility.py @@ -35,6 +35,7 @@ class FitMobilityVsTimeGraph(FitGraph): YDef(handle='distance', unit='km', label='Distance')] inputs = [ Input(handle='time', unit='s', label='Time', iconID=1392, defaultValue=10, defaultRange=(0, 30), mainOnly=False)] + srcExtraCols = ('Speed', 'Agility') # Calculation stuff _denormalizers = { diff --git a/gui/builtinGraphs/fitShieldRegen.py b/gui/builtinGraphs/fitShieldRegen.py index 8cb255a75..88e0f78da 100644 --- a/gui/builtinGraphs/fitShieldRegen.py +++ b/gui/builtinGraphs/fitShieldRegen.py @@ -41,6 +41,7 @@ class FitShieldRegenGraph(FitGraph): inputs = [ Input(handle='time', unit='s', label='Time', iconID=1392, defaultValue=120, defaultRange=(0, 300), mainOnly=True), Input(handle='shieldAmount', unit='%', label='Shield amount', iconID=1384, defaultValue=25, defaultRange=(0, 100), mainOnly=True)] + srcExtraCols = ('ShieldAmount', 'ShieldTime') # Calculation stuff _normalizers = { diff --git a/gui/builtinGraphs/fitWarpTime.py b/gui/builtinGraphs/fitWarpTime.py index c25e762f4..0b3ace785 100644 --- a/gui/builtinGraphs/fitWarpTime.py +++ b/gui/builtinGraphs/fitWarpTime.py @@ -51,6 +51,7 @@ class FitWarpTimeGraph(FitGraph): inputs = [ Input(handle='distance', unit='AU', label='Distance', iconID=1391, defaultValue=20, defaultRange=(0, 50), mainOnly=False), Input(handle='distance', unit='km', label='Distance', iconID=1391, defaultValue=1000, defaultRange=(150, 5000), mainOnly=False)] + srcExtraCols = ('WarpSpeed', 'WarpDistance') # Calculation stuff _normalizers = { diff --git a/gui/builtinViewColumns/attributeDisplayGraph.py b/gui/builtinViewColumns/attributeDisplayGraph.py index e8a73b0f2..6ac59a8f0 100644 --- a/gui/builtinViewColumns/attributeDisplayGraph.py +++ b/gui/builtinViewColumns/attributeDisplayGraph.py @@ -110,12 +110,29 @@ class SpeedColumn(GraphColumn): return fit.ship.getModifiedItemAttr('maxVelocity'), 'm/s' def _getFitTooltip(self): - return 'Ship maximum speed' + return 'Maximum speed' SpeedColumn.register() +class AgilityColumn(GraphColumn): + + name = 'Agility' + + def __init__(self, fittingView, params): + super().__init__(fittingView, 1401, (3, 0, 0)) + + def _getValue(self, fit): + return fit.alignTime, None + + def _getFitTooltip(self): + return 'Agility factor' + + +AgilityColumn.register() + + class RadiusColumn(GraphColumn): name = 'Radius' @@ -127,7 +144,7 @@ class RadiusColumn(GraphColumn): return fit.ship.getModifiedItemAttr('radius'), 'm' def _getFitTooltip(self): - return 'Ship radius' + return 'Radius' RadiusColumn.register() @@ -144,7 +161,125 @@ class SignatureRadiusColumn(GraphColumn): return fit.ship.getModifiedItemAttr('signatureRadius'), 'm' def _getFitTooltip(self): - return 'Ship signature radius' + return 'Signature radius' SignatureRadiusColumn.register() + + +class ShieldAmountColumn(GraphColumn): + + name = 'ShieldAmount' + + def __init__(self, fittingView, params): + super().__init__(fittingView, 1384) + + def _getValue(self, fit): + return fit.ship.getModifiedItemAttr('shieldCapacity'), 'HP' + + def getText(self, stuff): + if isinstance(stuff, Fit): + val, unit = self._getValue(stuff) + if val is None: + return '' + return '{} {}'.format(formatAmount(val, *self.formatSpec), unit) + return '' + + def _getFitTooltip(self): + return 'Maximum shield amount' + + +ShieldAmountColumn.register() + + +class ShieldTimeColumn(GraphColumn): + + name = 'ShieldTime' + + def __init__(self, fittingView, params): + super().__init__(fittingView, 1392, (3, 0, 0)) + + def _getValue(self, fit): + return fit.ship.getModifiedItemAttr('shieldRechargeRate') / 1000, 's' + + def _getFitTooltip(self): + return 'Time to regenerate shield from 0% to 98.7%' + + +ShieldTimeColumn.register() + + +class CapAmountColumn(GraphColumn): + + name = 'CapAmount' + + def __init__(self, fittingView, params): + super().__init__(fittingView, 1668) + + def _getValue(self, fit): + return fit.ship.getModifiedItemAttr('capacitorCapacity'), 'GJ' + + def getText(self, stuff): + if isinstance(stuff, Fit): + val, unit = self._getValue(stuff) + if val is None: + return '' + return '{} {}'.format(formatAmount(val, *self.formatSpec), unit) + return '' + + def _getFitTooltip(self): + return 'Maximum capacitor amount' + + +CapAmountColumn.register() + + +class CapTimeColumn(GraphColumn): + + name = 'CapTime' + + def __init__(self, fittingView, params): + super().__init__(fittingView, 1392, (3, 0, 0)) + + def _getValue(self, fit): + return fit.ship.getModifiedItemAttr('rechargeRate') / 1000, 's' + + def _getFitTooltip(self): + return 'Time to regenerate capacitor from 0% to 98.7%' + + +CapTimeColumn.register() + + +class WarpSpeedColumn(GraphColumn): + + name = 'WarpSpeed' + + def __init__(self, fittingView, params): + super().__init__(fittingView, 1389, (3, 0, 0)) + + def _getValue(self, fit): + return fit.warpSpeed, 'AU/s' + + def _getFitTooltip(self): + return 'Warp speed' + + +WarpSpeedColumn.register() + + +class WarpDistanceColumn(GraphColumn): + + name = 'WarpDistance' + + def __init__(self, fittingView, params): + super().__init__(fittingView, 1391, (3, 0, 0)) + + def _getValue(self, fit): + return fit.maxWarpDistance, 'AU' + + def _getFitTooltip(self): + return 'Maximum warp distance' + + +WarpDistanceColumn.register()