Change range column tooltip for missiles

This commit is contained in:
DarkPhoenix
2019-11-15 13:23:27 +03:00
parent f80b7d972f
commit 7f86782f54
2 changed files with 23 additions and 17 deletions

View File

@@ -322,20 +322,12 @@ class Module(HandledItem, HandledCharge, ItemAttrShortcut, ChargeAttrShortcut):
maxRange = self.getModifiedItemAttr(attr, None)
if maxRange is not None:
return maxRange
if self.charge is not None:
try:
chargeName = self.charge.group.name
except AttributeError:
pass
else:
if chargeName in ("Scanner Probe", "Survey Probe"):
return None
missileMaxRangeData = self.missileMaxRangeData
if missileMaxRangeData is None:
return None
lowerRange, higherRange, higherChance = missileMaxRangeData
maxRange = lowerRange * (1 - higherChance) + higherRange * higherChance
return maxRange
missileMaxRangeData = self.missileMaxRangeData
if missileMaxRangeData is None:
return None
lowerRange, higherRange, higherChance = missileMaxRangeData
maxRange = lowerRange * (1 - higherChance) + higherRange * higherChance
return maxRange
@property
def missileMaxRangeData(self):
@@ -362,7 +354,7 @@ class Module(HandledItem, HandledCharge, ItemAttrShortcut, ChargeAttrShortcut):
maxVelocity = self.getModifiedChargeAttr("maxVelocity")
if not maxVelocity:
return 0, 0, 0
return None
shipRadius = self.owner.ship.getModifiedItemAttr("radius")
# Flight time has bonus based on ship radius, see https://github.com/pyfa-org/Pyfa/issues/2083
flightTime = floatUnerr(self.getModifiedChargeAttr("explosionDelay") / 1000 + shipRadius / maxVelocity)

View File

@@ -24,7 +24,7 @@ from eos.saveddata.mode import Mode
from service.attribute import Attribute
from gui.viewColumn import ViewColumn
from gui.bitmap_loader import BitmapLoader
from gui.utils.numberFormatter import formatAmount
from gui.utils.numberFormatter import formatAmount, roundToPrec
class MaxRange(ViewColumn):
@@ -77,7 +77,21 @@ class MaxRange(ViewColumn):
return ("displayName", bool, False), ("showIcon", bool, True)
def getToolTip(self, mod):
return "Optimal + Falloff"
lines = []
missileRangeData = mod.missileMaxRangeData if hasattr(mod, "missileMaxRangeData") else None
if missileRangeData is not None:
lines.append('Missile flight range')
lowerRange, higherRange, higherChance = missileRangeData
if roundToPrec(higherChance, 3) not in (0, 1):
lines.append('{}% chance to fly {}'.format(
formatAmount((1 - higherChance) * 100, prec=3, lowest=0, highest=0),
formatAmount(lowerRange, prec=3, lowest=0, highest=3, unitName='m')))
lines.append('{}% chance to fly {}'.format(
formatAmount(higherChance * 100, prec=3, lowest=0, highest=0),
formatAmount(higherRange, prec=3, lowest=0, highest=3, unitName='m')))
else:
lines.append("Optimal + Falloff")
return '\n'.join(lines)
MaxRange.register()