Merge branch 'master' into ammo_graph

This commit is contained in:
DarkPhoenix
2019-11-25 13:56:16 +03:00
12 changed files with 74 additions and 17 deletions

View File

@@ -10689,6 +10689,7 @@ class Effect3526(BaseEffect):
Used by:
Ships from group: Force Recon Ship (8 of 9)
Ship: Venture
Skill: Cynosural Field Theory
"""

View File

@@ -318,10 +318,15 @@ class Module(HandledItem, HandledCharge, ItemAttrShortcut, ChargeAttrShortcut):
"energyDestabilizationRange", "empFieldRange",
"ecmBurstRange", "warpScrambleRange", "cargoScanRange",
"shipScanRange", "surveyScanRange")
maxRange = None
for attr in attrs:
maxRange = self.getModifiedItemAttr(attr, None)
if maxRange is not None:
return maxRange
break
if maxRange is not None:
if 'burst projector' in self.item.name.lower():
maxRange -= self.owner.ship.getModifiedItemAttr("radius")
return maxRange
missileMaxRangeData = self.missileMaxRangeData
if missileMaxRangeData is None:
return None

View File

@@ -89,7 +89,7 @@ class BitmapLoader:
@classmethod
def loadBitmap(cls, name, location):
if cls.scaling_factor is None:
cls.scaling_factor = int(wx.GetApp().GetTopWindow().GetContentScaleFactor())
cls.scaling_factor = 1 if 'wxGTK' in wx.PlatformInfo else int(wx.GetApp().GetTopWindow().GetContentScaleFactor())
scale = cls.scaling_factor
filename, img = cls.loadScaledBitmap(name, location, scale)

View File

@@ -83,12 +83,12 @@ class MaxRange(ViewColumn):
lines.append('Missile flight range')
lowerRange, higherRange, higherChance = missileRangeData
if roundToPrec(higherChance, 3) not in (0, 1):
lines.append('{}% chance to fly {}'.format(
lines.append('{}% chance to fly {}m'.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(lowerRange, prec=3, lowest=0, highest=3)))
lines.append('{}% chance to fly {}m'.format(
formatAmount(higherChance * 100, prec=3, lowest=0, highest=0),
formatAmount(higherRange, prec=3, lowest=0, highest=3, unitName='m')))
formatAmount(higherRange, prec=3, lowest=0, highest=3)))
else:
lines.append("Optimal + Falloff")
return '\n'.join(lines)

View File

@@ -428,6 +428,31 @@ class SkillTreeView(wx.Panel):
# This cuases issues with GTK, see #1866
# self.Layout()
# For level keyboard shortcuts
self.ChangeLevelEvent, CHANGE_LEVEL_EVENT = wx.lib.newevent.NewEvent()
self.Bind(wx.EVT_CHAR_HOOK, self.kbEvent)
self.Bind(CHANGE_LEVEL_EVENT, self.changeLevel)
def kbEvent(self, event):
keyLevelMap = {
# Regular number keys
48: 0, 49: 1, 50: 2, 51: 3, 52: 4, 53: 5,
# Numpad keys
wx.WXK_NUMPAD0: 0, wx.WXK_NUMPAD1: 1, wx.WXK_NUMPAD2: 2,
wx.WXK_NUMPAD3: 3, wx.WXK_NUMPAD4: 4, wx.WXK_NUMPAD5: 5}
keycode = event.GetKeyCode()
if keycode in keyLevelMap and event.GetModifiers() == wx.MOD_NONE:
level = keyLevelMap[keycode]
selection = self.skillTreeListCtrl.GetSelection()
if selection:
dataType, skillID = self.skillTreeListCtrl.GetItemData(selection)
if dataType == 'skill':
event = self.ChangeLevelEvent()
event.SetId(self.idLevels[level])
wx.PostEvent(self, event)
return
event.Skip()
def importSkills(self, evt):
with wx.MessageDialog(
@@ -611,6 +636,8 @@ class SkillTreeView(wx.Panel):
sChar = Character.getInstance()
char = self.charEditor.entityEditor.getActiveEntity()
if char.name in ("All 0", "All 5"):
return
selection = self.skillTreeListCtrl.GetSelection()
dataType, skillID = self.skillTreeListCtrl.GetItemData(selection)

View File

@@ -47,7 +47,7 @@ from service.port.muta import parseMutant
pyfalog = Logger(__name__)
# 2017/04/05 NOTE: simple validation, for xml file
RE_XML_START = r'<\?xml\s+version="1.0"\s*\?>'
RE_XML_START = r'<\?xml\s+version="1.0"[^<>]*\?>'
class Port:
@@ -182,7 +182,8 @@ class Port:
pyfalog.critical(e)
# TypeError: not all arguments converted during string formatting
# return False, "Unknown Error while processing {0}" % path
return False, "Unknown error while processing %s\n\n Error: %s" % (path, e.message)
return False, "Unknown error while processing {}\n\n Error: {} {}".format(
path, type(e).__name__, getattr(e, 'message', ''))
return True, fit_list
@@ -321,4 +322,4 @@ class Port:
@staticmethod
def exportFitStats(fit, callback=None):
return exportFitStats(fit, callback=callback)
return exportFitStats(fit, callback=callback)

View File

@@ -82,9 +82,13 @@ def fetchItem(typeName, eagerCat=False):
eager = 'group.category' if eagerCat else None
try:
item = sMkt.getItem(typeName, eager=eager)
except (KeyboardInterrupt, SystemExit):
raise
except:
pyfalog.warning('service.port.shared: unable to fetch item "{}"'.format(typeName))
return None
if item is None:
return None
if sMkt.getPublicityByItem(item):
return item
else:

View File

@@ -215747,7 +215747,7 @@
{
"attributeID": 9,
"typeID": 4308,
"value": 2170.0
"value": 2180.0
},
{
"attributeID": 11,
@@ -2361009,6 +2361009,11 @@
"typeID": 32880,
"value": 1.0
},
{
"attributeID": 1296,
"typeID": 32880,
"value": -50.0
},
{
"attributeID": 1547,
"typeID": 32880,
@@ -2890019,6 +2890024,11 @@
"typeID": 52694,
"value": 380.0
},
{
"attributeID": 1302,
"typeID": 52694,
"value": 32880.0
},
{
"attributeID": 1333,
"typeID": 52694,

View File

@@ -167469,6 +167469,11 @@
"isDefault": false,
"typeID": 32878
},
{
"effectID": 3526,
"isDefault": false,
"typeID": 32880
},
{
"effectID": 5058,
"isDefault": false,

View File

@@ -1,10 +1,10 @@
[
{
"field_name": "client_build",
"field_value": 1604553
"field_value": 1610407
},
{
"field_name": "dump_time",
"field_value": 1573560935
"field_value": 1574329773
}
]

View File

@@ -733,7 +733,7 @@
"text": "reduction in Small Energy Turret activation cost"
},
{
"number": "5%",
"number": "10%",
"text": "bonus to Small Energy Turret damage"
}
],
@@ -10287,6 +10287,10 @@
{
"number": "2+",
"text": "bonus to ship warp core strength"
},
{
"number": "50%",
"text": "reduction in Industrial Cynosural Field Generator liquid ozone consumption"
}
],
"header": "Role Bonus:"
@@ -10405,7 +10409,7 @@
{
"bonuses": [
{
"number": "10%",
"number": "15%",
"text": "bonus to Small Hybrid Turret damage"
}
],
@@ -14922,7 +14926,7 @@
"text": "reduction in Microwarpdrive signature radius penalty"
},
{
"number": "5%",
"number": "10%",
"text": "bonus to Small Projectile Turret damage"
}
],
@@ -18810,7 +18814,7 @@
{
"bonuses": [
{
"number": "5%",
"number": "10%",
"text": "bonus to Small Hybrid Turret damage"
},
{

View File

@@ -1 +1 @@
version: v2.14.2
version: v2.14.3