diff --git a/gui/fitCommands/calc/fitAddModule.py b/gui/fitCommands/calc/fitAddModule.py index 75611de28..924cf2cf4 100644 --- a/gui/fitCommands/calc/fitAddModule.py +++ b/gui/fitCommands/calc/fitAddModule.py @@ -1,9 +1,12 @@ import wx -from eos.saveddata.module import Module -from eos.const import FittingModuleState -import eos.db from logbook import Logger + +import eos.db +from eos.saveddata.module import Module +from gui.fitCommands.helpers import stateLimit from service.fit import Fit + + pyfalog = Logger(__name__) @@ -53,8 +56,9 @@ class FitAddModuleCommand(wx.Command): self.module.owner = fit numSlots = len(fit.modules) fit.modules.append(self.module) - if self.module.isValidState(FittingModuleState.ACTIVE): - self.module.state = FittingModuleState.ACTIVE + desiredState = stateLimit(self.module.item) + if self.module.isValidState(desiredState): + self.module.state = desiredState # todo: fix these # As some items may affect state-limiting attributes of the ship, calculate new attributes first diff --git a/gui/fitCommands/calc/fitReplaceModule.py b/gui/fitCommands/calc/fitReplaceModule.py index 1a171ea3b..2474d1119 100644 --- a/gui/fitCommands/calc/fitReplaceModule.py +++ b/gui/fitCommands/calc/fitReplaceModule.py @@ -3,8 +3,7 @@ from logbook import Logger import eos.db from eos.saveddata.module import Module -from eos.const import FittingModuleState -from gui.fitCommands.helpers import ModuleInfoCache +from gui.fitCommands.helpers import ModuleInfoCache, stateLimit pyfalog = Logger(__name__) @@ -79,8 +78,9 @@ class FitReplaceModuleCommand(wx.Command): self.module.owner = fit fit.modules.toModule(self.position, self.module) - if self.module.isValidState(FittingModuleState.ACTIVE): - self.module.state = FittingModuleState.ACTIVE + desiredState = stateLimit(self.module.item) + if self.module.isValidState(desiredState): + self.module.state = desiredState if self.old_module and self.old_module.charge and self.module.isValidCharge(self.old_module.charge): self.module.charge = self.old_module.charge diff --git a/gui/fitCommands/helpers.py b/gui/fitCommands/helpers.py index 63aaf4b76..3beeee434 100644 --- a/gui/fitCommands/helpers.py +++ b/gui/fitCommands/helpers.py @@ -1,3 +1,12 @@ from collections import namedtuple +from eos.const import FittingModuleState + + ModuleInfoCache = namedtuple('ModuleInfoCache', ['modPosition', 'itemID', 'state', 'charge', 'baseID', 'mutaplasmidID']) + + +def stateLimit(item): + if {'moduleBonusAssaultDamageControl', 'moduleBonusIndustrialInvulnerability'}.intersection(item.effects): + return FittingModuleState.ONLINE + return FittingModuleState.ACTIVE diff --git a/service/jargon/defaults.yaml b/service/jargon/defaults.yaml index 19003e753..921eaca68 100644 --- a/service/jargon/defaults.yaml +++ b/service/jargon/defaults.yaml @@ -161,6 +161,8 @@ car: Capital Armor Repairer cpl: 25000mm Plates dc: Damage Control dcu: Damage Control +adc: Assault Damage Control +adcu: Assault Damage Control eanm: Energized Adaptive Nano Membrane enam: Energized Adaptive Nano Membrane laar: Large Ancillary Armor Repairer