Fixed category names for neut, nos and tracking disruptor.

With the implementation of falloff for energy neutralizer
and nosferatus, their names has changed so had to update
for correct display.

Also added some display for the new guidance disruptors
(i.e. missile disruptors). This also fixes the category
change for weapon disruptor (both are now called weapon
disruptor).
This commit is contained in:
Wenda Zhou
2015-12-09 22:50:30 -05:00
parent 753ba00ac0
commit 57da36f1cf

View File

@@ -85,7 +85,7 @@ class Miscellanea(ViewColumn):
if n > 0: if n > 0:
info.append("{0}{1}".format(n, slot[0].upper())) info.append("{0}{1}".format(n, slot[0].upper()))
return "+ "+", ".join(info), "Slot Modifiers" return "+ "+", ".join(info), "Slot Modifiers"
elif itemGroup == "Energy Destabilizer": elif itemGroup == "Energy Neutralizer":
neutAmount = stuff.getModifiedItemAttr("energyDestabilizationAmount") neutAmount = stuff.getModifiedItemAttr("energyDestabilizationAmount")
cycleTime = stuff.cycleTime cycleTime = stuff.cycleTime
if not neutAmount or not cycleTime: if not neutAmount or not cycleTime:
@@ -94,7 +94,7 @@ class Miscellanea(ViewColumn):
text = "{0}/s".format(formatAmount(capPerSec, 3, 0, 3)) text = "{0}/s".format(formatAmount(capPerSec, 3, 0, 3))
tooltip = "Energy neutralization per second" tooltip = "Energy neutralization per second"
return text, tooltip return text, tooltip
elif itemGroup == "Energy Vampire": elif itemGroup == "Energy Nosferatu":
neutAmount = stuff.getModifiedItemAttr("powerTransferAmount") neutAmount = stuff.getModifiedItemAttr("powerTransferAmount")
cycleTime = stuff.cycleTime cycleTime = stuff.cycleTime
if not neutAmount or not cycleTime: if not neutAmount or not cycleTime:
@@ -158,26 +158,51 @@ class Miscellanea(ViewColumn):
ttEntries.append("scan resolution") ttEntries.append("scan resolution")
tooltip = "{0} dampening".format(formatList(ttEntries)).capitalize() tooltip = "{0} dampening".format(formatList(ttEntries)).capitalize()
return text, tooltip return text, tooltip
elif itemGroup == "Tracking Disruptor": elif itemGroup == "Weapon Disruptor":
# Weapon disruption now covers both tracking and guidance (missile) disruptors
# First get the attributes for tracking disruptors
optimalRangeBonus = stuff.getModifiedItemAttr("maxRangeBonus") optimalRangeBonus = stuff.getModifiedItemAttr("maxRangeBonus")
falloffRangeBonus = stuff.getModifiedItemAttr("falloffBonus") falloffRangeBonus = stuff.getModifiedItemAttr("falloffBonus")
trackingSpeedBonus = stuff.getModifiedItemAttr("trackingSpeedBonus") trackingSpeedBonus = stuff.getModifiedItemAttr("trackingSpeedBonus")
if optimalRangeBonus is None or falloffRangeBonus is None or trackingSpeedBonus is None:
return "", None trackingDisruptorAttributes = {
display = 0 "optimal range": optimalRangeBonus,
for bonus in (optimalRangeBonus, falloffRangeBonus, trackingSpeedBonus): "falloff range": falloffRangeBonus,
if abs(bonus) > abs(display): "tracking speed": trackingSpeedBonus}
display = bonus
if not display: isTrackingDisruptor = any(map(lambda x: x is not None and x != 0, trackingDisruptorAttributes.values()))
# Then get the attributes for guidance disruptors
explosionVelocityBonus = stuff.getModifiedItemAttr("aoeVelocityBonus")
explosionRadiusBonus = stuff.getModifiedItemAttr("aoeCloudSizeBonus")
flightTimeBonus = stuff.getModifiedItemAttr("explosionDelayBonus")
missileVelocityBonus = stuff.getModifiedItemAttr("missileVelocityBonus")
guidanceDisruptorAttributes = {
"explosion velocity": explosionVelocityBonus,
"explosion radius": explosionRadiusBonus,
"flight time": flightTimeBonus,
"missile velocity": missileVelocityBonus}
isGuidanceDisruptor = any(map(lambda x: x is not None and x != 0, guidanceDisruptorAttributes.values()))
if isTrackingDisruptor:
attributes = trackingDisruptorAttributes
elif isGuidanceDisruptor:
attributes = guidanceDisruptorAttributes
else:
return "", None return "", None
display = max(attributes.values(), key=lambda x: abs(x))
text = "{0}%".format(formatAmount(display, 3, 0, 3, forceSign=True)) text = "{0}%".format(formatAmount(display, 3, 0, 3, forceSign=True))
ttEntries = [] ttEntries = []
if display == optimalRangeBonus: for attributeName, attributeValue in attributes.items():
ttEntries.append("optimal range") if attributeValue == display:
if display == falloffRangeBonus: ttEntries.append(attributeName)
ttEntries.append("falloff range")
if display == trackingSpeedBonus:
ttEntries.append("tracking speed")
tooltip = "{0} disruption".format(formatList(ttEntries)).capitalize() tooltip = "{0} disruption".format(formatList(ttEntries)).capitalize()
return text, tooltip return text, tooltip
elif itemGroup in ("ECM", "ECM Burst", "Remote ECM Burst"): elif itemGroup in ("ECM", "ECM Burst", "Remote ECM Burst"):