Fix turrent ammo type grouping (using English names for grouping). Also made missile damage type grouping translation-aware

This commit is contained in:
blitzmann
2020-06-27 21:06:16 -04:00
parent 1d0c890c23
commit 546a3b6e01
3 changed files with 20 additions and 13 deletions

View File

@@ -19,6 +19,14 @@ class ChangeModuleAmmo(ContextMenuCombined):
self.mainFrame = gui.mainFrame.MainFrame.getInstance()
# Format: {type ID: set(loadable, charges)}
self.loadableChargesCache = {}
# Translations for the missile categories, as the text here is auto-generated via damage attributes
self.ddMissileChargeCatTrans = {
'em': _t('EM'),
'thermal': _t('Thermal'),
'explosive': _t('Explosive'),
'kinetic': _t('Kinetic'),
'mixed': _t('Mixed')
}
def display(self, callingWindow, srcContext, mainItem, selection):
if srcContext not in ('fittingModule', 'projectedModule'):
@@ -48,7 +56,7 @@ class ChangeModuleAmmo(ContextMenuCombined):
def _addCharge(self, menu, charge):
id_ = ContextMenuCombined.nextID()
name = charge.name if charge is not None else 'Empty'
name = charge.name if charge is not None else _t('Empty')
self.chargeEventMap[id_] = charge
item = wx.MenuItem(menu, id_, name)
menu.Bind(wx.EVT_MENU, self.handleAmmoSwitch, item)
@@ -71,7 +79,7 @@ class ChangeModuleAmmo(ContextMenuCombined):
self.chargeEventMap = {}
modType, chargeDict = Ammo.getInstance().getModuleStructuredAmmo(self.module, ammo=self.mainCharges)
if modType == 'ddTurret':
self._addSeparator(menu, 'Long Range')
self._addSeparator(menu, _t('Long Range'))
menuItems = []
for charges in chargeDict.values():
if len(charges) == 1:
@@ -83,25 +91,25 @@ class ChangeModuleAmmo(ContextMenuCombined):
subMenu = wx.Menu()
subMenu.Bind(wx.EVT_MENU, self.handleAmmoSwitch)
menuItem.SetSubMenu(subMenu)
self._addSeparator(subMenu, 'Less Damage')
self._addSeparator(subMenu, _t('Less Damage'))
for charge in charges:
subMenu.Append(self._addCharge(rootMenu if msw else subMenu, charge))
self._addSeparator(subMenu, 'More Damage')
self._addSeparator(subMenu, _t('More Damage'))
for menuItem in menuItems:
menu.Append(menuItem)
self._addSeparator(menu, 'Short Range')
self._addSeparator(menu, _t('Short Range'))
elif modType == 'ddMissile':
menuItems = []
for chargeCatName, charges in chargeDict.items():
menuItem = wx.MenuItem(menu, wx.ID_ANY, chargeCatName.capitalize())
menuItem = wx.MenuItem(menu, wx.ID_ANY, self.ddMissileChargeCatTrans.get(chargeCatName, chargeCatName))
menuItems.append(menuItem)
subMenu = wx.Menu()
subMenu.Bind(wx.EVT_MENU, self.handleAmmoSwitch)
menuItem.SetSubMenu(subMenu)
self._addSeparator(subMenu, 'Less Damage')
self._addSeparator(subMenu, _t('Less Damage'))
for charge in charges:
subMenu.Append(self._addCharge(rootMenu if msw else subMenu, charge))
self._addSeparator(subMenu, 'More Damage')
self._addSeparator(subMenu, _t('More Damage'))
for menuItem in menuItems:
menu.Append(menuItem)
elif modType == 'general':

View File

@@ -106,8 +106,7 @@ if __name__ == "__main__":
config.debug = options.debug
config.loggingLevel = config.LOGLEVEL_MAP.get(options.logginglevel.lower(), config.LOGLEVEL_MAP['error'])
from service.settings import LocaleSettings
config.language = options.language or LocaleSettings.getInstance().get('locale')
config.language = options.language
config.defPaths(options.savepath)
config.defLogging()

View File

@@ -69,16 +69,16 @@ class Ammo:
damage += d
# Take optimal and falloff as range factor
rangeFactor = range_ + falloff
return -rangeFactor, charge.name.rsplit()[-2:], damage, charge.name
return -rangeFactor, charge.typeName.rsplit()[-2:], damage, charge.name
all = OrderedDict()
sub = []
prevNameBase = None
prevRange = None
for charge in sorted(chargesFlat, key=turretSorter):
if 'civilian' in charge.name.lower():
if 'civilian' in charge.typeName.lower():
continue
currNameBase = ' '.join(charge.name.rsplit()[-2:])
currNameBase = ' '.join(charge.typeName.rsplit()[-2:])
currRange = charge.getAttribute('weaponRangeMultiplier')
if sub and (currRange != prevRange or currNameBase != prevNameBase):
all[sub[0].name] = sub