diff --git a/eos b/eos index 68b079fa7..e10c83d61 160000 --- a/eos +++ b/eos @@ -1 +1 @@ -Subproject commit 68b079fa7b97f30c6d148eebefe5a9c1e1865860 +Subproject commit e10c83d617fa000ad62a4a9e721ff72f9d94f8b9 diff --git a/gui/builtinViewColumns/tracking.py b/gui/builtinViewColumns/tracking.py index 737bd2d76..891a3205d 100644 --- a/gui/builtinViewColumns/tracking.py +++ b/gui/builtinViewColumns/tracking.py @@ -58,20 +58,153 @@ class Tracking(ViewColumn): if item is None: return "" itemGroup = item.group.name - #print(itemGroup) if itemGroup in ("Energy Weapon", "Hybrid Weapon", "Projectile Weapon", "Combat Drone", "Fighter Drone"): trackingSpeed = stuff.getModifiedItemAttr("trackingSpeed") if not trackingSpeed: return "" - return formatAmount(trackingSpeed, 3, 0, 3) + return "{0}".format(formatAmount(trackingSpeed, 3, 0, 3)) elif itemGroup in ("Salvager", "Data Miners"): chance = stuff.getModifiedItemAttr("accessDifficultyBonus") if not chance: return "" - return "{0} %".format(formatAmount(chance, 3, 0, 3)) + return "{0}%".format(formatAmount(chance, 3, 0, 3)) + elif itemGroup in ("Warp Scrambler", "Warp Core Stabilizer"): + scramStr = stuff.getModifiedItemAttr("warpScrambleStrength") + if not scramStr: + return "" + prefix = "+" if -scramStr > 0 else "" + return "{0}{1}".format(prefix, formatAmount(-scramStr, 3, 0, 3)) + elif itemGroup in ("Stasis Web", "Stasis Webifying Drone"): + speedFactor = stuff.getModifiedItemAttr("speedFactor") + if not speedFactor: + return "" + return "{0}%".format(formatAmount(speedFactor, 3, 0, 3)) + elif itemGroup in ("Stasis Web", "Stasis Webifying Drone"): + speedFactor = stuff.getModifiedItemAttr("speedFactor") + if not speedFactor: + return "" + return "{0}%".format(formatAmount(speedFactor, 3, 0, 3)) + elif itemGroup == "Target Painter": + sigRadBonus = stuff.getModifiedItemAttr("signatureRadiusBonus") + if not sigRadBonus: + return "" + prefix = "+" if sigRadBonus > 0 else "" + return "{0}{1}%".format(prefix, formatAmount(sigRadBonus, 3, 0, 3)) + elif itemGroup == "Remote Sensor Damper": + lockRangeBonus = stuff.getModifiedItemAttr("maxTargetRangeBonus") + scanResBonus = stuff.getModifiedItemAttr("scanResolutionBonus") + if lockRangeBonus is None or scanResBonus is None: + return "" + display = 0 + for bonus in (lockRangeBonus, scanResBonus): + if abs(bonus) > abs(display): + display = bonus + if not display: + return "" + prefix = "+" if display > 0 else "" + return "{0}{1}%".format(prefix, formatAmount(display, 3, 0, 3)) + elif itemGroup == "Tracking Disruptor": + optimalRangeBonus = stuff.getModifiedItemAttr("maxRangeBonus") + falloffRangeBonus = stuff.getModifiedItemAttr("falloffBonus") + trackingSpeedBonus = stuff.getModifiedItemAttr("trackingSpeedBonus") + if optimalRangeBonus is None or falloffRangeBonus is None or trackingSpeedBonus is None: + return "" + display = 0 + for bonus in (optimalRangeBonus, falloffRangeBonus, trackingSpeedBonus): + if abs(bonus) > abs(display): + display = bonus + if not display: + return "" + prefix = "+" if display > 0 else "" + return "{0}{1}%".format(prefix, formatAmount(display, 3, 0, 3)) + elif itemGroup in ("ECM", "ECM Burst", "Remote ECM Burst"): + grav = stuff.getModifiedItemAttr("scanGravimetricStrengthBonus") + ladar = stuff.getModifiedItemAttr("scanLadarStrengthBonus") + radar = stuff.getModifiedItemAttr("scanRadarStrengthBonus") + magnet = stuff.getModifiedItemAttr("scanMagnetometricStrengthBonus") + if grav is None or ladar is None or radar is None or magnet is None: + return "" + display = max(grav, ladar, radar, magnet) + if not display: + return "" + return "{0}".format(formatAmount(display, 3, 0, 3)) + elif itemGroup == "Remote Sensor Booster": + scanResBonus = stuff.getModifiedItemAttr("scanResolutionBonus") + lockRangeBonus = stuff.getModifiedItemAttr("maxTargetRangeBonus") + if scanResBonus is None or lockRangeBonus is None: + return "" + display = 0 + for bonus in (scanResBonus, lockRangeBonus): + if abs(bonus) > abs(display): + display = bonus + if not display: + return "" + prefix = "+" if display > 0 else "" + return "{0}{1}%".format(prefix, formatAmount(display, 3, 0, 3)) + elif itemGroup == "Projected ECCM": + grav = stuff.getModifiedItemAttr("scanGravimetricStrengthPercent") + ladar = stuff.getModifiedItemAttr("scanLadarStrengthPercent") + radar = stuff.getModifiedItemAttr("scanRadarStrengthPercent") + magnet = stuff.getModifiedItemAttr("scanMagnetometricStrengthPercent") + if grav is None or ladar is None or radar is None or magnet is None: + return "" + display = max(grav, ladar, radar, magnet) + if not display: + return "" + prefix = "+" if display > 0 else "" + return "{0}{1}%".format(prefix, formatAmount(display, 3, 0, 3)) + elif itemGroup == "Cloaking Device": + recalibration = stuff.getModifiedItemAttr("cloakingTargetingDelay") + if recalibration is None: + return "" + return "{0}s".format(formatAmount(float(recalibration)/1000, 3, 0, 3)) + elif itemGroup == "Gang Coordinator": + command = stuff.getModifiedItemAttr("commandBonus") + if not command: + return "" + prefix = "+" if command > 0 else "" + return "{0}{1}%".format(prefix, formatAmount(command, 3, 0, 3)) + elif itemGroup == "Electronic Warfare Drone": + sigRadBonus = stuff.getModifiedItemAttr("signatureRadiusBonus") + lockRangeMult = stuff.getModifiedItemAttr("maxTargetRangeMultiplier") + scanResMult = stuff.getModifiedItemAttr("scanResolutionMultiplier") + falloffRangeMult = stuff.getModifiedItemAttr("fallofMultiplier") + optimalRangeMult = stuff.getModifiedItemAttr("maxRangeMultiplier") + trackingSpeedMult = stuff.getModifiedItemAttr("trackingSpeedMultiplier") + grav = stuff.getModifiedItemAttr("scanGravimetricStrengthBonus") + ladar = stuff.getModifiedItemAttr("scanLadarStrengthBonus") + radar = stuff.getModifiedItemAttr("scanRadarStrengthBonus") + magnet = stuff.getModifiedItemAttr("scanMagnetometricStrengthBonus") + if sigRadBonus: + prefix = "+" if sigRadBonus > 0 else "" + return "{0}{1}%".format(prefix, formatAmount(sigRadBonus, 3, 0, 3)) + if lockRangeMult is not None and scanResMult is not None: + display = 0 + for bonus in ((lockRangeMult-1)*100, (scanResMult-1)*100): + if abs(bonus) > abs(display): + display = bonus + if not display: + return "" + prefix = "+" if display > 0 else "" + return "{0}{1}%".format(prefix, formatAmount(display, 3, 0, 3)) + if falloffRangeMult is not None and optimalRangeMult is not None and trackingSpeedMult is not None: + display = 0 + for bonus in ((falloffRangeMult-1)*100, (optimalRangeMult-1)*100, (trackingSpeedMult-1)*100): + if abs(bonus) > abs(display): + display = bonus + if not display: + return "" + prefix = "+" if display > 0 else "" + return "{0}{1}%".format(prefix, formatAmount(display, 3, 0, 3)) + if grav is not None and ladar is not None and radar is not None and magnet is not None: + display = max(grav, ladar, radar, magnet) + if not display: + return "" + return "{0}".format(formatAmount(display, 3, 0, 3)) + else: + return "" elif stuff.charge is not None: chargeGroup = stuff.charge.group.name - print(chargeGroup) if chargeGroup in ("Rocket", "Advanced Rocket", "Light Missile", "Advanced Light Missile", "FoF Light Missile", "Assault Missile", "Advanced Assault Missile", "Heavy Missile", "Advanced Heavy Missile", "FoF Heavy Missile", "Torpedo", "Advanced Torpedo", "Cruise Missile", "Advanced Cruise Missile", "FoF Cruise Missile", @@ -82,11 +215,16 @@ class Tracking(ViewColumn): return "" return "{0}{1} | {2}{3}".format(formatAmount(cloudSize, 3, 0, 3), "m", formatAmount(aoeVelocity, 3, 0, 3), "m/s") - elif chargeGroup in ("Bomb",): + elif chargeGroup == "Bomb": cloudSize = stuff.getModifiedChargeAttr("aoeCloudSize") if not cloudSize: return "" return "{0}{1}".format(formatAmount(cloudSize, 3, 0, 3), "m") + elif chargeGroup in ("Scanner Probe",): + scanStr = stuff.getModifiedChargeAttr("baseSensorStrength") + if not scanStr: + return "" + return "{0}".format(formatAmount(scanStr, 3, 0, 3)) else: return "" else: