Merged changes from pyfa-org/master into branch
Merged changes to see if we can clear up the merge conflict warning
This commit is contained in:
@@ -64,4 +64,4 @@ pyfa is licensed under the GNU GPL v3.0, see LICENSE
|
||||
* Email: sable.blitzmann@gmail.com
|
||||
|
||||
## CCP Copyright Notice
|
||||
EVE Online, the EVE logo, EVE and all associated logos and designs are the intellectual property of CCP hf. All artwork, screenshots, characters, vehicles, storylines, world facts or other recognizable features of the intellectual property relating to these trademarks are likewise the intellectual property of CCP hf. EVE Online and the EVE logo are the registered trademarks of CCP hf. All rights are reserved worldwide. All other trademarks are the property of their respective owners. CCP hf. has granted permission to Osmium to use EVE Online and all associated logos and designs for promotional and information purposes on its website but does not endorse, and is not in any way affiliated with, Osmium. CCP is in no way responsible for the content on or functioning of this website, nor can it be liable for any damage arising from the use of this website.
|
||||
EVE Online, the EVE logo, EVE and all associated logos and designs are the intellectual property of CCP hf. All artwork, screenshots, characters, vehicles, storylines, world facts or other recognizable features of the intellectual property relating to these trademarks are likewise the intellectual property of CCP hf. EVE Online and the EVE logo are the registered trademarks of CCP hf. All rights are reserved worldwide. All other trademarks are the property of their respective owners. CCP hf. has granted permission to pyfa to use EVE Online and all associated logos and designs for promotional and information purposes on its website but does not endorse, and is not in any way affiliated with, pyfa. CCP is in no way responsible for the content on or functioning of this program, nor can it be liable for any damage arising from the use of this program.
|
||||
|
||||
@@ -629,7 +629,7 @@ class Module(HandledItem, HandledCharge, ItemAttrShortcut, ChargeAttrShortcut):
|
||||
|
||||
@property
|
||||
def rawCycleTime(self):
|
||||
speed = self.getModifiedItemAttr("speed") or self.getModifiedItemAttr("duration")
|
||||
speed = self.getModifiedItemAttr("speed") or self.getModifiedItemAttr("duration")
|
||||
return speed
|
||||
|
||||
@property
|
||||
|
||||
@@ -210,42 +210,44 @@ class Miscellanea(ViewColumn):
|
||||
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:
|
||||
displayMax = max(grav, ladar, radar, magnet)
|
||||
displayMin = min(grav, ladar, radar, magnet)
|
||||
if grav is None or ladar is None or radar is None or magnet is None or displayMax is None:
|
||||
return "", None
|
||||
display = max(grav, ladar, radar, magnet)
|
||||
if not display:
|
||||
return "", None
|
||||
text = "{0}".format(formatAmount(display, 3, 0, 3))
|
||||
ttEntries = []
|
||||
if display == grav:
|
||||
ttEntries.append("gravimetric")
|
||||
if display == ladar:
|
||||
ttEntries.append("ladar")
|
||||
if display == magnet:
|
||||
ttEntries.append("magnetometric")
|
||||
if display == radar:
|
||||
ttEntries.append("radar")
|
||||
plu = "" if len(ttEntries) == 1 else "s"
|
||||
tooltip = "{0} strength{1}".format(formatList(ttEntries), plu).capitalize()
|
||||
|
||||
if displayMax == displayMin or displayMin is None:
|
||||
text = "{0}".format(
|
||||
formatAmount(displayMax, 3, 0, 3),
|
||||
)
|
||||
else:
|
||||
text = "{0} | {1}".format(
|
||||
formatAmount(displayMax, 3, 0, 3),
|
||||
formatAmount(displayMin, 3, 0, 3),
|
||||
)
|
||||
tooltip = "ECM Jammer Strength:\n{0} Gravimetric | {1} Ladar | {2} Magnetometric | {3} Radar".format(
|
||||
formatAmount(grav, 3, 0, 3),
|
||||
formatAmount(ladar, 3, 0, 3),
|
||||
formatAmount(radar, 3, 0, 3),
|
||||
formatAmount(magnet, 3, 0, 3),
|
||||
)
|
||||
return text, tooltip
|
||||
elif itemGroup in ("Remote Sensor Booster", "Sensor Booster", "Signal Amplifier"):
|
||||
scanResBonus = stuff.getModifiedItemAttr("scanResolutionBonus")
|
||||
lockRangeBonus = stuff.getModifiedItemAttr("maxTargetRangeBonus")
|
||||
if scanResBonus is None or lockRangeBonus is None:
|
||||
gravBonus = stuff.getModifiedItemAttr("scanGravimetricStrengthPercent")
|
||||
if scanResBonus is None or lockRangeBonus is None or gravBonus is None:
|
||||
return "", None
|
||||
display = 0
|
||||
for bonus in (scanResBonus, lockRangeBonus):
|
||||
if abs(bonus) > abs(display):
|
||||
display = bonus
|
||||
if not display:
|
||||
return "", None
|
||||
text = "{0}%".format(formatAmount(display, 3, 0, 3, forceSign=True))
|
||||
ttEntries = []
|
||||
if display == lockRangeBonus:
|
||||
ttEntries.append("lock range")
|
||||
if display == scanResBonus:
|
||||
ttEntries.append("scan resolution")
|
||||
tooltip = "{0} bonus".format(formatList(ttEntries)).capitalize()
|
||||
|
||||
text = "{0}% | {1}% | {2}%".format(
|
||||
formatAmount(scanResBonus, 3, 0, 3),
|
||||
formatAmount(lockRangeBonus, 3, 0, 3),
|
||||
formatAmount(gravBonus, 3, 0, 3),
|
||||
)
|
||||
tooltip = "Applied bonuses:\n{0}% scan resolution | {1}% lock range | {2}% sensor strength".format(
|
||||
formatAmount(scanResBonus, 3, 0, 3),
|
||||
formatAmount(lockRangeBonus, 3, 0, 3),
|
||||
formatAmount(gravBonus, 3, 0, 3),
|
||||
)
|
||||
return text, tooltip
|
||||
elif itemGroup in ("Projected ECCM", "ECCM", "Sensor Backup Array"):
|
||||
grav = stuff.getModifiedItemAttr("scanGravimetricStrengthPercent")
|
||||
@@ -483,6 +485,25 @@ class Miscellanea(ViewColumn):
|
||||
duration = cycles * cycleTime / 1000
|
||||
text = "{0} / {1}s".format(formatAmount(ehp, 3, 0, 9), formatAmount(duration, 3, 0, 3))
|
||||
|
||||
return text, tooltip
|
||||
elif itemGroup == "Armor Resistance Shift Hardener":
|
||||
itemArmorResistanceShiftHardenerEM = (1-stuff.getModifiedItemAttr("armorEmDamageResonance"))*100
|
||||
itemArmorResistanceShiftHardenerTherm = (1-stuff.getModifiedItemAttr("armorThermalDamageResonance")) * 100
|
||||
itemArmorResistanceShiftHardenerKin = (1-stuff.getModifiedItemAttr("armorKineticDamageResonance")) * 100
|
||||
itemArmorResistanceShiftHardenerExp = (1-stuff.getModifiedItemAttr("armorExplosiveDamageResonance")) * 100
|
||||
|
||||
text = "{0}% | {1}% | {2}% | {3}%".format(
|
||||
formatAmount(itemArmorResistanceShiftHardenerEM, 3, 0, 3),
|
||||
formatAmount(itemArmorResistanceShiftHardenerTherm, 3, 0, 3),
|
||||
formatAmount(itemArmorResistanceShiftHardenerKin, 3, 0, 3),
|
||||
formatAmount(itemArmorResistanceShiftHardenerExp, 3, 0, 3),
|
||||
)
|
||||
tooltip = "Resistances Shifted to Damage Profile:\n{0}% EM | {1}% Therm | {2}% Kin | {3}% Exp".format(
|
||||
formatAmount(itemArmorResistanceShiftHardenerEM, 3, 0, 3),
|
||||
formatAmount(itemArmorResistanceShiftHardenerTherm, 3, 0, 3),
|
||||
formatAmount(itemArmorResistanceShiftHardenerKin, 3, 0, 3),
|
||||
formatAmount(itemArmorResistanceShiftHardenerExp, 3, 0, 3),
|
||||
)
|
||||
return text, tooltip
|
||||
elif stuff.charge is not None:
|
||||
chargeGroup = stuff.charge.group.name
|
||||
|
||||
@@ -84,9 +84,9 @@ class ItemStatsDialog(wx.Dialog):
|
||||
|
||||
self.SetMinSize((300, 200))
|
||||
if "wxGTK" in wx.PlatformInfo: # GTK has huge tab widgets, give it a bit more room
|
||||
self.SetSize((530, 300))
|
||||
self.SetSize((580, 500))
|
||||
else:
|
||||
self.SetSize((500, 300))
|
||||
self.SetSize((550, 500))
|
||||
#self.SetMaxSize((500, -1))
|
||||
self.mainSizer = wx.BoxSizer(wx.VERTICAL)
|
||||
self.container = ItemStatsContainer(self, victim, item, itmContext)
|
||||
@@ -341,9 +341,14 @@ class ItemParams (wx.Panel):
|
||||
|
||||
def PopulateList(self):
|
||||
self.paramList.InsertColumn(0,"Attribute")
|
||||
self.paramList.InsertColumn(1,"Value")
|
||||
self.paramList.SetColumnWidth(1,150)
|
||||
self.paramList.setResizeColumn(1)
|
||||
self.paramList.InsertColumn(1,"Current Value")
|
||||
if self.stuff is not None:
|
||||
self.paramList.InsertColumn(2,"Base Value")
|
||||
self.paramList.SetColumnWidth(0,110)
|
||||
self.paramList.SetColumnWidth(1,90)
|
||||
if self.stuff is not None:
|
||||
self.paramList.SetColumnWidth(2,90)
|
||||
self.paramList.setResizeColumn(0)
|
||||
self.imageList = wx.ImageList(16, 16)
|
||||
self.paramList.SetImageList(self.imageList,wx.IMAGE_LIST_SMALL)
|
||||
|
||||
@@ -354,9 +359,11 @@ class ItemParams (wx.Panel):
|
||||
idCount = 0
|
||||
for name in names:
|
||||
info = self.attrInfo.get(name)
|
||||
|
||||
|
||||
att = self.attrValues[name]
|
||||
|
||||
valDefault = getattr(info, "value", None)
|
||||
valueDefault = valDefault if valDefault is not None else att
|
||||
|
||||
val = getattr(att, "value", None)
|
||||
value = val if val is not None else att
|
||||
|
||||
@@ -395,8 +402,16 @@ class ItemParams (wx.Panel):
|
||||
else:
|
||||
valueUnit = formatAmount(value, 3, 0, 0)
|
||||
|
||||
if self.toggleView != 1:
|
||||
valueUnitDefault = str(valueDefault)
|
||||
elif info and info.unit:
|
||||
valueUnitDefault = self.TranslateValueUnit(valueDefault, info.unit.displayName, info.unit.name)
|
||||
else:
|
||||
valueUnitDefault = formatAmount(valueDefault, 3, 0, 0)
|
||||
|
||||
self.paramList.SetStringItem(index, 1, valueUnit)
|
||||
if self.stuff is not None:
|
||||
self.paramList.SetStringItem(index, 2, valueUnitDefault)
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -74,8 +74,6 @@ class MainMenuBar(wx.MenuBar):
|
||||
fileMenu.Append(self.exportSkillsNeededId, "Export &Skills Needed", "Export skills needed for this fitting")
|
||||
fileMenu.Append(self.importCharacterId, "Import C&haracter File", "Import characters into pyfa from file")
|
||||
fileMenu.AppendSeparator()
|
||||
fileMenu.Append(self.importDatabaseDefaultsId, "Import D&atabase Defaults", "Imports missing database defaults")
|
||||
fileMenu.AppendSeparator()
|
||||
fileMenu.Append(wx.ID_EXIT)
|
||||
|
||||
# Edit menu
|
||||
@@ -139,11 +137,11 @@ class MainMenuBar(wx.MenuBar):
|
||||
self.Enable(self.exportToEveId, False)
|
||||
|
||||
if not gui.mainFrame.disableOverrideEditor:
|
||||
windowMenu.AppendSeparator()
|
||||
attrItem = wx.MenuItem(windowMenu, self.attrEditorId, "Attribute Overrides\tCTRL+B")
|
||||
attrItem.SetBitmap(BitmapLoader.getBitmap("fit_rename_small", "gui"))
|
||||
windowMenu.AppendItem(attrItem)
|
||||
editMenu.AppendSeparator()
|
||||
editMenu.Append(self.toggleOverridesId, "Turn Overrides On")
|
||||
windowMenu.Append(self.toggleOverridesId, "Turn Overrides On")
|
||||
|
||||
# Help menu
|
||||
helpMenu = wx.Menu()
|
||||
@@ -151,6 +149,8 @@ class MainMenuBar(wx.MenuBar):
|
||||
helpMenu.Append(self.wikiId, "Wiki", "Go to wiki on GitHub")
|
||||
helpMenu.Append(self.forumId, "Forums", "Go to EVE Online Forum thread")
|
||||
helpMenu.AppendSeparator()
|
||||
helpMenu.Append(self.importDatabaseDefaultsId, "Import D&atabase Defaults", "Imports missing database defaults")
|
||||
helpMenu.AppendSeparator()
|
||||
helpMenu.Append(wx.ID_ABOUT)
|
||||
|
||||
if config.debug:
|
||||
|
||||
Reference in New Issue
Block a user