Skip to content

Commit 546a3b6

Browse files
committed
Fix turrent ammo type grouping (using English names for grouping). Also made missile damage type grouping translation-aware
1 parent 1d0c890 commit 546a3b6

File tree

3 files changed

+20
-13
lines changed

3 files changed

+20
-13
lines changed

gui/builtinContextMenus/moduleAmmoChange.py

+16-8
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,14 @@ def __init__(self):
1919
self.mainFrame = gui.mainFrame.MainFrame.getInstance()
2020
# Format: {type ID: set(loadable, charges)}
2121
self.loadableChargesCache = {}
22+
# Translations for the missile categories, as the text here is auto-generated via damage attributes
23+
self.ddMissileChargeCatTrans = {
24+
'em': _t('EM'),
25+
'thermal': _t('Thermal'),
26+
'explosive': _t('Explosive'),
27+
'kinetic': _t('Kinetic'),
28+
'mixed': _t('Mixed')
29+
}
2230

2331
def display(self, callingWindow, srcContext, mainItem, selection):
2432
if srcContext not in ('fittingModule', 'projectedModule'):
@@ -48,7 +56,7 @@ def _getAmmo(self, mod):
4856

4957
def _addCharge(self, menu, charge):
5058
id_ = ContextMenuCombined.nextID()
51-
name = charge.name if charge is not None else 'Empty'
59+
name = charge.name if charge is not None else _t('Empty')
5260
self.chargeEventMap[id_] = charge
5361
item = wx.MenuItem(menu, id_, name)
5462
menu.Bind(wx.EVT_MENU, self.handleAmmoSwitch, item)
@@ -71,7 +79,7 @@ def getSubMenu(self, callingWindow, context, mainItem, selection, rootMenu, i, p
7179
self.chargeEventMap = {}
7280
modType, chargeDict = Ammo.getInstance().getModuleStructuredAmmo(self.module, ammo=self.mainCharges)
7381
if modType == 'ddTurret':
74-
self._addSeparator(menu, 'Long Range')
82+
self._addSeparator(menu, _t('Long Range'))
7583
menuItems = []
7684
for charges in chargeDict.values():
7785
if len(charges) == 1:
@@ -83,25 +91,25 @@ def getSubMenu(self, callingWindow, context, mainItem, selection, rootMenu, i, p
8391
subMenu = wx.Menu()
8492
subMenu.Bind(wx.EVT_MENU, self.handleAmmoSwitch)
8593
menuItem.SetSubMenu(subMenu)
86-
self._addSeparator(subMenu, 'Less Damage')
94+
self._addSeparator(subMenu, _t('Less Damage'))
8795
for charge in charges:
8896
subMenu.Append(self._addCharge(rootMenu if msw else subMenu, charge))
89-
self._addSeparator(subMenu, 'More Damage')
97+
self._addSeparator(subMenu, _t('More Damage'))
9098
for menuItem in menuItems:
9199
menu.Append(menuItem)
92-
self._addSeparator(menu, 'Short Range')
100+
self._addSeparator(menu, _t('Short Range'))
93101
elif modType == 'ddMissile':
94102
menuItems = []
95103
for chargeCatName, charges in chargeDict.items():
96-
menuItem = wx.MenuItem(menu, wx.ID_ANY, chargeCatName.capitalize())
104+
menuItem = wx.MenuItem(menu, wx.ID_ANY, self.ddMissileChargeCatTrans.get(chargeCatName, chargeCatName))
97105
menuItems.append(menuItem)
98106
subMenu = wx.Menu()
99107
subMenu.Bind(wx.EVT_MENU, self.handleAmmoSwitch)
100108
menuItem.SetSubMenu(subMenu)
101-
self._addSeparator(subMenu, 'Less Damage')
109+
self._addSeparator(subMenu, _t('Less Damage'))
102110
for charge in charges:
103111
subMenu.Append(self._addCharge(rootMenu if msw else subMenu, charge))
104-
self._addSeparator(subMenu, 'More Damage')
112+
self._addSeparator(subMenu, _t('More Damage'))
105113
for menuItem in menuItems:
106114
menu.Append(menuItem)
107115
elif modType == 'general':

pyfa.py

+1-2
Original file line numberDiff line numberDiff line change
@@ -106,8 +106,7 @@ def _process_args(self, largs, rargs, values):
106106
config.debug = options.debug
107107
config.loggingLevel = config.LOGLEVEL_MAP.get(options.logginglevel.lower(), config.LOGLEVEL_MAP['error'])
108108

109-
from service.settings import LocaleSettings
110-
config.language = options.language or LocaleSettings.getInstance().get('locale')
109+
config.language = options.language
111110

112111
config.defPaths(options.savepath)
113112
config.defLogging()

service/ammo.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -69,16 +69,16 @@ def turretSorter(charge):
6969
damage += d
7070
# Take optimal and falloff as range factor
7171
rangeFactor = range_ + falloff
72-
return -rangeFactor, charge.name.rsplit()[-2:], damage, charge.name
72+
return -rangeFactor, charge.typeName.rsplit()[-2:], damage, charge.name
7373

7474
all = OrderedDict()
7575
sub = []
7676
prevNameBase = None
7777
prevRange = None
7878
for charge in sorted(chargesFlat, key=turretSorter):
79-
if 'civilian' in charge.name.lower():
79+
if 'civilian' in charge.typeName.lower():
8080
continue
81-
currNameBase = ' '.join(charge.name.rsplit()[-2:])
81+
currNameBase = ' '.join(charge.typeName.rsplit()[-2:])
8282
currRange = charge.getAttribute('weaponRangeMultiplier')
8383
if sub and (currRange != prevRange or currNameBase != prevNameBase):
8484
all[sub[0].name] = sub

0 commit comments

Comments
 (0)