From 436bee1e85f2379d012b133d4afdcd4b626c922b Mon Sep 17 00:00:00 2001 From: blitzmann Date: Sat, 5 Jan 2019 22:26:17 -0500 Subject: [PATCH 01/88] Start working on a gui to set spoolup options --- gui/builtinContextMenus/spoolUp.py | 122 +++++++++++++++++++++++++++++ gui/contextMenu.py | 1 + 2 files changed, 123 insertions(+) create mode 100644 gui/builtinContextMenus/spoolUp.py diff --git a/gui/builtinContextMenus/spoolUp.py b/gui/builtinContextMenus/spoolUp.py new file mode 100644 index 000000000..0d6f04452 --- /dev/null +++ b/gui/builtinContextMenus/spoolUp.py @@ -0,0 +1,122 @@ +import gui.mainFrame +from gui.contextMenu import ContextMenu +# noinspection PyPackageRequirements +from service.settings import ContextMenuSettings +import wx +from eos.utils.spoolSupport import SpoolType + +class SpoolUp(ContextMenu): + def __init__(self): + self.mainFrame = gui.mainFrame.MainFrame.getInstance() + self.settings = ContextMenuSettings.getInstance() + + def display(self, srcContext, selection): + if not self.settings.get('project'): + return False + + if srcContext not in ("fittingModule") or self.mainFrame.getActiveFit() is None: + return False + + item = selection[0] + + return item.item.group.name in ('Precursor Weapon') + + def getText(self, itmContext, selection): + return "Set Spoolup".format(itmContext) + + def activate(self, fullContext, selection, i): + thing = selection[0] + mainFrame = gui.mainFrame.MainFrame.getInstance() + fitID = mainFrame.getActiveFit() + srcContext = fullContext[0] + + while True: + dlg = SpoolUpChanger(self.mainFrame, thing) + if dlg.ShowModal() != wx.ID_OK: + break + + type = dlg.spoolChoice.GetClientData(dlg.spoolChoice.GetSelection()) + amount = dlg.input.GetValue() + + if type == SpoolType.SCALE: + if amount < 0 or amount > 100: + dlg = wx.MessageDialog(self.mainFrame, "The amount provided isn't within the range of 0 - 100.", "Error", wx.OK | wx.ICON_ERROR) + dlg.ShowModal() + continue + amount = amount / 100 + if type is None: + amount = None + + thing.spoolType = type + thing.spoolAmount = amount + break + + + +SpoolUp.register() + + +class SpoolUpChanger(wx.Dialog): + + spoolTypes = { + None: ("Default", "pyfa defaults to using 'scale' calculation with 100%"), + SpoolType.SCALE: ("Scale", "Amount is a percentage from 0 - 100; rounds down to closest module cycle."), + SpoolType.TIME: ("Time (s)", "Amount defines time in seconds since spoolup module was activated."), + SpoolType.CYCLES: ("Cycles", "Amount is number of cycles module went through since being activated.") + } + + def __init__(self, parent, module): + wx.Dialog.__init__(self, parent, title="Change Spool-Up") + self.SetMinSize((346, 156)) + + bSizer1 = wx.BoxSizer(wx.VERTICAL) + + bSizer2 = wx.BoxSizer(wx.VERTICAL) + + text = wx.StaticText(self, wx.ID_ANY, "Type:") + bSizer2.Add(text, 0) + + self.spoolChoice = wx.Choice(self, wx.ID_ANY, style=0) + + for k, v in self.spoolTypes.items(): + i = self.spoolChoice.Append(v[0], k) + if module.spoolType == k: + self.spoolChoice.SetSelection(i) + + self.spoolChoice.Bind(wx.EVT_CHOICE, self.spoolTypeChanged) + + + bSizer2.Add(self.spoolChoice, 0, wx.TOP | wx.BOTTOM | wx.EXPAND, 5) + + self.spoolDesc = wx.StaticText(self, wx.ID_ANY, self.spoolTypes[module.spoolType][1]) + bSizer2.Add(self.spoolDesc, 1) + + text1 = wx.StaticText(self, wx.ID_ANY, "Amount:") + bSizer2.Add(text1, 0, wx.TOP, 10) + + bSizer1.Add(bSizer2, 0, wx.ALL, 10) + + self.input = wx.SpinCtrlDouble(self, min=0, max=1000) + + bSizer1.Add(self.input, 0, wx.LEFT | wx.RIGHT | wx.EXPAND, 10) + + bSizer3 = wx.BoxSizer(wx.VERTICAL) + bSizer3.Add(wx.StaticLine(self, wx.ID_ANY), 0, wx.BOTTOM | wx.EXPAND, 15) + + bSizer3.Add(self.CreateStdDialogButtonSizer(wx.OK | wx.CANCEL), 0, wx.EXPAND) + bSizer1.Add(bSizer3, 0, wx.ALL | wx.EXPAND, 10) + + self.input.SetFocus() + self.input.Bind(wx.EVT_TEXT_ENTER, self.processEnter) + self.SetSizer(bSizer1) + self.CenterOnParent() + self.Fit() + + def spoolTypeChanged(self, evt): + if evt.ClientData is None: + self.input.Enable(False) + self.spoolDesc.SetLabel(self.spoolTypes[evt.ClientData][1]) + self.Layout() + + def processEnter(self, evt): + self.EndModal(wx.ID_OK) diff --git a/gui/contextMenu.py b/gui/contextMenu.py index be972b0f8..6a97481a2 100644 --- a/gui/contextMenu.py +++ b/gui/contextMenu.py @@ -184,6 +184,7 @@ from gui.builtinContextMenus import ( # noqa: E402,F401 moduleGlobalAmmoPicker, moduleAmmoPicker, itemStats, + spoolUp, damagePattern, marketJump, # droneSplit, From c645c089ddeefc4a8cd79ad0d55ced91b4003ccb Mon Sep 17 00:00:00 2001 From: blitzmann Date: Thu, 10 Jan 2019 23:13:22 -0500 Subject: [PATCH 02/88] More work on the spoolup gui, including support for commands and some other nicities (recalc fit when changing, load the input with previous) --- gui/builtinContextMenus/spoolUp.py | 12 ++++----- gui/fitCommands/__init__.py | 1 + gui/fitCommands/calc/fitSetSpoolup.py | 37 +++++++++++++++++++++++++++ gui/fitCommands/guiSetSpoolup.py | 32 +++++++++++++++++++++++ 4 files changed, 76 insertions(+), 6 deletions(-) create mode 100644 gui/fitCommands/calc/fitSetSpoolup.py create mode 100644 gui/fitCommands/guiSetSpoolup.py diff --git a/gui/builtinContextMenus/spoolUp.py b/gui/builtinContextMenus/spoolUp.py index 0d6f04452..e87becabf 100644 --- a/gui/builtinContextMenus/spoolUp.py +++ b/gui/builtinContextMenus/spoolUp.py @@ -4,6 +4,8 @@ from gui.contextMenu import ContextMenu from service.settings import ContextMenuSettings import wx from eos.utils.spoolSupport import SpoolType +import gui.fitCommands as cmd + class SpoolUp(ContextMenu): def __init__(self): @@ -47,10 +49,8 @@ class SpoolUp(ContextMenu): if type is None: amount = None - thing.spoolType = type - thing.spoolAmount = amount - break - + self.mainFrame.command.Submit(cmd.GuiSetSpoolup(fitID, thing, type, amount)) + return SpoolUp.register() @@ -106,6 +106,7 @@ class SpoolUpChanger(wx.Dialog): bSizer3.Add(self.CreateStdDialogButtonSizer(wx.OK | wx.CANCEL), 0, wx.EXPAND) bSizer1.Add(bSizer3, 0, wx.ALL | wx.EXPAND, 10) + self.input.SetValue(module.spoolAmount or 0) self.input.SetFocus() self.input.Bind(wx.EVT_TEXT_ENTER, self.processEnter) self.SetSizer(bSizer1) @@ -113,8 +114,7 @@ class SpoolUpChanger(wx.Dialog): self.Fit() def spoolTypeChanged(self, evt): - if evt.ClientData is None: - self.input.Enable(False) + self.input.Enable(evt.ClientData is not None) self.spoolDesc.SetLabel(self.spoolTypes[evt.ClientData][1]) self.Layout() diff --git a/gui/fitCommands/__init__.py b/gui/fitCommands/__init__.py index 3501e8089..2598f8bfb 100644 --- a/gui/fitCommands/__init__.py +++ b/gui/fitCommands/__init__.py @@ -34,3 +34,4 @@ from .guiToggleDrone import GuiToggleDroneCommand from .guiFitRename import GuiFitRenameCommand from .guiChangeImplantLocation import GuiChangeImplantLocation from .guiImportMutatedModule import GuiImportMutatedModuleCommand +from .guiSetSpoolup import GuiSetSpoolup diff --git a/gui/fitCommands/calc/fitSetSpoolup.py b/gui/fitCommands/calc/fitSetSpoolup.py new file mode 100644 index 000000000..9274d94bc --- /dev/null +++ b/gui/fitCommands/calc/fitSetSpoolup.py @@ -0,0 +1,37 @@ +import wx +import eos.db +from logbook import Logger +from eos.saveddata.booster import Booster +pyfalog = Logger(__name__) + + +class FitSetSpoolupCommand(wx.Command): + def __init__(self, fitID, position, spoolType, spoolAmount): + wx.Command.__init__(self, True) + self.fitID = fitID + self.position = position + self.spoolType = spoolType + self.spoolAmount = spoolAmount + self.projected = False # todo: get this to work with projected modules? Is that a thing? + self.cache = None + + def Do(self): + return self.__set(self.spoolType, self.spoolAmount) + + def Undo(self): + if self.cache: + self.__set(*self.cache) + return True + + def __set(self, type, amount): + fit = eos.db.getFit(self.fitID) + source = fit.modules if not self.projected else fit.projectedModules + + mod = source[self.position] + self.cache = mod.spoolType, mod.spoolAmount + + mod.spoolType = type + mod.spoolAmount = amount + + eos.db.commit() + return True diff --git a/gui/fitCommands/guiSetSpoolup.py b/gui/fitCommands/guiSetSpoolup.py new file mode 100644 index 000000000..60f0c6f1e --- /dev/null +++ b/gui/fitCommands/guiSetSpoolup.py @@ -0,0 +1,32 @@ +import wx +from service.fit import Fit + +import gui.mainFrame +from gui import globalEvents as GE +from .calc.fitSetSpoolup import FitSetSpoolupCommand + + +class GuiSetSpoolup(wx.Command): + def __init__(self, fitID, module, spoolupType, spoolupAmount): + wx.Command.__init__(self, True, "Booster Add") + self.mainFrame = gui.mainFrame.MainFrame.getInstance() + self.sFit = Fit.getInstance() + self.internal_history = wx.CommandProcessor() + self.fitID = fitID + self.position = module.modPosition + self.spoolType = spoolupType + self.spoolupAmount = spoolupAmount + + def Do(self): + if self.internal_history.Submit(FitSetSpoolupCommand(self.fitID, self.position, self.spoolType, self.spoolupAmount)): + self.sFit.recalc(self.fitID) + wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.fitID)) + return True + return False + + def Undo(self): + for _ in self.internal_history.Commands: + self.internal_history.Undo() + self.sFit.recalc(self.fitID) + wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.fitID)) + return True From 5f237e578bfa167bbc7f7e56d276026827b0cc90 Mon Sep 17 00:00:00 2001 From: blitzmann Date: Thu, 10 Jan 2019 23:16:04 -0500 Subject: [PATCH 03/88] use spoolup dialog with remote reps --- gui/builtinContextMenus/spoolUp.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gui/builtinContextMenus/spoolUp.py b/gui/builtinContextMenus/spoolUp.py index e87becabf..5206ea713 100644 --- a/gui/builtinContextMenus/spoolUp.py +++ b/gui/builtinContextMenus/spoolUp.py @@ -21,7 +21,7 @@ class SpoolUp(ContextMenu): item = selection[0] - return item.item.group.name in ('Precursor Weapon') + return item.item.group.name in ("Precursor Weapon", "Mutadaptive Remote Armor Repairer", "Mutadaptive Remote Armor Repairer Blueprint") def getText(self, itmContext, selection): return "Set Spoolup".format(itmContext) From 3259cc3e50a93ff3b47c3d6677d698df07ee974d Mon Sep 17 00:00:00 2001 From: blitzmann Date: Thu, 10 Jan 2019 23:24:34 -0500 Subject: [PATCH 04/88] Rename Scale to percentage --- gui/builtinContextMenus/spoolUp.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gui/builtinContextMenus/spoolUp.py b/gui/builtinContextMenus/spoolUp.py index 5206ea713..0ea4c6253 100644 --- a/gui/builtinContextMenus/spoolUp.py +++ b/gui/builtinContextMenus/spoolUp.py @@ -60,7 +60,7 @@ class SpoolUpChanger(wx.Dialog): spoolTypes = { None: ("Default", "pyfa defaults to using 'scale' calculation with 100%"), - SpoolType.SCALE: ("Scale", "Amount is a percentage from 0 - 100; rounds down to closest module cycle."), + SpoolType.SCALE: ("Percentage", "Amount is a percentage from 0 - 100; rounds down to closest module cycle."), SpoolType.TIME: ("Time (s)", "Amount defines time in seconds since spoolup module was activated."), SpoolType.CYCLES: ("Cycles", "Amount is number of cycles module went through since being activated.") } From d507927ba3216198d6ee2106a137bb0ab5cefe35 Mon Sep 17 00:00:00 2001 From: DarkPhoenix Date: Sun, 17 Feb 2019 01:53:56 +0300 Subject: [PATCH 05/88] Do not consider items the same if they have no attributes defined --- scripts/jsonToSql.py | 27 +++++++++++++++------------ 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/scripts/jsonToSql.py b/scripts/jsonToSql.py index 913b74b1c..e26ab9617 100755 --- a/scripts/jsonToSql.py +++ b/scripts/jsonToSql.py @@ -181,28 +181,31 @@ def main(db, json_path): def compareAttrs(attrs1, attrs2, attrHig): """ Compares received attribute sets. Returns: - - 0 if sets are different - - 1 if sets are exactly the same - - 2 if first set is strictly better - - 3 if second set is strictly better + - 0 if sets have no attributes for comparison + - 1 if sets are different + - 2 if sets are exactly the same + - 3 if first set is strictly better + - 4 if second set is strictly better """ - if set(attrs1) != set(attrs2): + if len(attrs1) == 0 and len(attrs2) == 0: return 0 - if all(attrs1[aid] == attrs2[aid] for aid in attrs1): + if set(attrs1) != set(attrs2): return 1 + if all(attrs1[aid] == attrs2[aid] for aid in attrs1): + return 2 if all( (attrs1[aid] >= attrs2[aid] and attrHig[aid]) or (attrs1[aid] <= attrs2[aid] and not attrHig[aid]) for aid in attrs1 ): - return 2 + return 3 if all( (attrs2[aid] >= attrs1[aid] and attrHig[aid]) or (attrs2[aid] <= attrs1[aid] and not attrHig[aid]) for aid in attrs1 ): - return 3 - return 0 + return 4 + return 1 skillReqAttribs = { 182: 277, @@ -274,14 +277,14 @@ def main(db, json_path): for type1, type2 in itertools.combinations(groupData, 2): comparisonResult = compareAttrs(type1[1], type2[1], attrHig) # Equal - if comparisonResult == 1: + if comparisonResult == 2: same.setdefault(type1[0], set()).add(type2[0]) same.setdefault(type2[0], set()).add(type1[0]) # First is better - elif comparisonResult == 2: + elif comparisonResult == 3: better.setdefault(type2[0], set()).add(type1[0]) # Second is better - elif comparisonResult == 3: + elif comparisonResult == 4: better.setdefault(type1[0], set()).add(type2[0]) # Put this data into types table so that normal process hooks it up for row in tables['evetypes']: From c8eef489da01a10af2a4f4e59d93e5a87a6098e4 Mon Sep 17 00:00:00 2001 From: DarkPhoenix Date: Sun, 17 Feb 2019 12:26:44 +0300 Subject: [PATCH 06/88] Exclude more attributes from consideration, and do some overrides to not have incorrect optimizations --- scripts/jsonToSql.py | 30 ++++++++++++++++++++++++------ 1 file changed, 24 insertions(+), 6 deletions(-) diff --git a/scripts/jsonToSql.py b/scripts/jsonToSql.py index e26ab9617..907bf8ca2 100755 --- a/scripts/jsonToSql.py +++ b/scripts/jsonToSql.py @@ -189,24 +189,29 @@ def main(db, json_path): """ if len(attrs1) == 0 and len(attrs2) == 0: return 0 - if set(attrs1) != set(attrs2): + if ( + set(attrs1) != set(attrs2) or any( + attrs1[aid] != attrs2[aid] and + attrHig[aid] == 2 for aid in attrs1) + ): return 1 if all(attrs1[aid] == attrs2[aid] for aid in attrs1): return 2 if all( - (attrs1[aid] >= attrs2[aid] and attrHig[aid]) or - (attrs1[aid] <= attrs2[aid] and not attrHig[aid]) + (attrs1[aid] >= attrs2[aid] and attrHig[aid] == 1) or + (attrs1[aid] <= attrs2[aid] and attrHig[aid] == 0) for aid in attrs1 ): return 3 if all( - (attrs2[aid] >= attrs1[aid] and attrHig[aid]) or - (attrs2[aid] <= attrs1[aid] and not attrHig[aid]) + (attrs2[aid] >= attrs1[aid] and attrHig[aid] == 1) or + (attrs2[aid] <= attrs1[aid] and attrHig[aid] == 0) for aid in attrs1 ): return 4 return 1 + print('finding replacements') skillReqAttribs = { 182: 277, 183: 278, @@ -216,10 +221,12 @@ def main(db, json_path): 1290: 1288} skillReqAttribsFlat = set(skillReqAttribs.keys()).union(skillReqAttribs.values()) # Get data on type groups + # Format: {type ID: group ID} typesGroups = {} for row in tables['evetypes']: typesGroups[row['typeID']] = row['groupID'] # Get data on type attributes + # Format: {type ID: {attribute ID: attribute value}} typesNormalAttribs = {} typesSkillAttribs = {} for row in tables['dgmtypeattribs']: @@ -229,6 +236,7 @@ def main(db, json_path): typeSkillAttribs[row['attributeID']] = row['value'] # Ignore these attributes for comparison purposes elif attributeID in ( + 124, # mainColor 422, # techLevel 633, # metaLevel 1692 # metaGroupID @@ -238,6 +246,7 @@ def main(db, json_path): typeNormalAttribs = typesNormalAttribs.setdefault(row['typeID'], {}) typeNormalAttribs[row['attributeID']] = row['value'] # Get data on skill requirements + # Format: {type ID: {skill type ID: skill level}} typesSkillReqs = {} for typeID, typeAttribs in typesSkillAttribs.items(): typeSkillAttribs = typesSkillAttribs.get(typeID, {}) @@ -252,11 +261,19 @@ def main(db, json_path): continue typeSkillReqs[skillType] = skillLevel # Get data on attribute highIsGood flag + # Format: {type ID: 0 if high is bad, 1 if high is good, 2 if neither} attrHig = {} for row in tables['dgmattribs']: - attrHig[row['attributeID']] = bool(row['highIsGood']) + attrHig[row['attributeID']] = 1 if row['highIsGood'] else 0 + # As CCP data is not really consistent, do some overrides + attrHig[4] = 0 # mass + attrHig[161] = 0 # volume + # Also do some customizations; some attributes are neither good nor bad when they change + attrHig[128] = 2 # chargeSize + attrHig[1547] = 2 # rigSize # As EVE affects various types mostly depending on their group or skill requirements, # we're going to group various types up this way + # Format: {(group ID, frozenset(skillreq, type, IDs)): [type ID, {attribute ID: attribute value}]} groupedData = {} for row in tables['evetypes']: typeID = row['typeID'] @@ -269,6 +286,7 @@ def main(db, json_path): typeGroup = typesGroups[typeID] groupData = groupedData.setdefault((typeGroup, typeSkillreqs), []) groupData.append((typeID, typeAttribs)) + # Format: {type ID: set(type IDs)} same = {} better = {} # Now, go through composed groups and for every item within it find items which are From d02623e36575d15398cc27ed81038f413e6f8203 Mon Sep 17 00:00:00 2001 From: DarkPhoenix Date: Sun, 17 Feb 2019 12:45:40 +0300 Subject: [PATCH 07/88] Fix oversight --- scripts/jsonToSql.py | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/scripts/jsonToSql.py b/scripts/jsonToSql.py index 907bf8ca2..cec160fce 100755 --- a/scripts/jsonToSql.py +++ b/scripts/jsonToSql.py @@ -189,23 +189,21 @@ def main(db, json_path): """ if len(attrs1) == 0 and len(attrs2) == 0: return 0 - if ( - set(attrs1) != set(attrs2) or any( - attrs1[aid] != attrs2[aid] and - attrHig[aid] == 2 for aid in attrs1) - ): + if set(attrs1) != set(attrs2): return 1 if all(attrs1[aid] == attrs2[aid] for aid in attrs1): return 2 if all( + (attrs1[aid] <= attrs2[aid] and attrHig[aid] == 0) or (attrs1[aid] >= attrs2[aid] and attrHig[aid] == 1) or - (attrs1[aid] <= attrs2[aid] and attrHig[aid] == 0) + (attrs1[aid] == attrs2[aid] and attrHig[aid] == 2) for aid in attrs1 ): return 3 if all( + (attrs2[aid] <= attrs1[aid] and attrHig[aid] == 0) or (attrs2[aid] >= attrs1[aid] and attrHig[aid] == 1) or - (attrs2[aid] <= attrs1[aid] and attrHig[aid] == 0) + (attrs1[aid] == attrs2[aid] and attrHig[aid] == 2) for aid in attrs1 ): return 4 From 4cbafb5559202c8e67f065844746b5e5928dbd21 Mon Sep 17 00:00:00 2001 From: DarkPhoenix Date: Sun, 17 Feb 2019 13:36:52 +0300 Subject: [PATCH 08/88] Update database again and add method which finds replacements for passed item --- eve.db | Bin 19111936 -> 19087360 bytes service/market.py | 11 +++++++++++ 2 files changed, 11 insertions(+) diff --git a/eve.db b/eve.db index 417b53d1c86b90acd4ff778cd5610e1fa1316edf..bbb39f15e15ccdac9509e714a2684bd71bb4b32b 100644 GIT binary patch delta 123050 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
OKY*jkOhZr^B~76xs`8uLyOBhquh(Y@?o5 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 delta 152007 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ⅆ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%0Dqlym~w57nRuh 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 Ln`X}^EhYaCqBc5M diff --git a/service/market.py b/service/market.py index 745909e23..4d94498a2 100644 --- a/service/market.py +++ b/service/market.py @@ -795,3 +795,14 @@ class Market(object): """Filter items by meta lvl""" filtered = set([item for item in items if self.getMetaGroupIdByItem(item) in metas]) return filtered + + def getReplacements(self, identity, includeBetter=False): + item = self.getItem(identity) + replTypeIDs = {int(i) for i in item.replaceSame.split(",") if i} + if includeBetter: + replTypeIDs.update({int(i) for i in item.replaceBetter.split(",") if i}) + if not replTypeIDs: + return () + variationItems = self.getVariationsByItems([item]) + replacementItems = {i for i in variationItems if i.ID in replTypeIDs} + return replacementItems From 2b16a8ed76dd01a2c20773083d1ed6520e7d64fe Mon Sep 17 00:00:00 2001 From: DarkPhoenix Date: Sun, 17 Feb 2019 14:29:44 +0300 Subject: [PATCH 09/88] Add some comments to variations fetcher --- service/market.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/service/market.py b/service/market.py index 4d94498a2..92010b618 100644 --- a/service/market.py +++ b/service/market.py @@ -798,11 +798,16 @@ class Market(object): def getReplacements(self, identity, includeBetter=False): item = self.getItem(identity) + # We already store needed type IDs in database replTypeIDs = {int(i) for i in item.replaceSame.split(",") if i} if includeBetter: replTypeIDs.update({int(i) for i in item.replaceBetter.split(",") if i}) if not replTypeIDs: return () + # But as these replacements were generated with only item group and item skill + # requirements in mind, they sometimes include stuff we do not want to include. + # So here we also filter by variation group (implementing it during database + # generation is not trivial and here it can be customized by overrides) variationItems = self.getVariationsByItems([item]) replacementItems = {i for i in variationItems if i.ID in replTypeIDs} return replacementItems From 704042b4b79074968716d778e077bb28dd606993 Mon Sep 17 00:00:00 2001 From: DarkPhoenix Date: Tue, 19 Feb 2019 19:02:50 +0300 Subject: [PATCH 10/88] Change the way we work with prices --- eos/db/saveddata/price.py | 4 +- eos/saveddata/price.py | 50 +++++++++++------ gui/builtinViewColumns/price.py | 31 +++++------ service/marketSources/evemarketdata.py | 31 ++++------- service/marketSources/evemarketer.py | 25 ++++----- service/network.py | 2 +- service/price.py | 74 ++++++++++++-------------- 7 files changed, 102 insertions(+), 115 deletions(-) diff --git a/eos/db/saveddata/price.py b/eos/db/saveddata/price.py index 8abd07132..e0e0f530a 100644 --- a/eos/db/saveddata/price.py +++ b/eos/db/saveddata/price.py @@ -32,6 +32,4 @@ prices_table = Table("prices", saveddata_meta, Column("status", Integer, nullable=False)) -mapper(Price, prices_table, properties={ - "_Price__price": prices_table.c.price, -}) +mapper(Price, prices_table) diff --git a/eos/saveddata/price.py b/eos/saveddata/price.py index a2a630c30..79f8cd590 100644 --- a/eos/saveddata/price.py +++ b/eos/saveddata/price.py @@ -19,41 +19,57 @@ # =============================================================================== -import time from enum import IntEnum, unique +from time import time from logbook import Logger +VALIDITY = 24 * 60 * 60 # Price validity period, 24 hours +REREQUEST = 4 * 60 * 60 # Re-request delay for failed fetches, 4 hours +TIMEOUT = 15 * 60 # Network timeout delay for connection issues, 15 minutes + + pyfalog = Logger(__name__) @unique class PriceStatus(IntEnum): - notFetched = 0 - success = 1 - fail = 2 - notSupported = 3 + initialized = 0 + notSupported = 1 + fetchSuccess = 2 + fetchFail = 3 + fetchTimeout = 4 class Price(object): def __init__(self, typeID): self.typeID = typeID self.time = 0 - self.__price = 0 - self.status = PriceStatus.notFetched + self.price = 0 + self.status = PriceStatus.initialized @property def isValid(self): - return self.time >= time.time() - - @property - def price(self): - if self.status != PriceStatus.success: - return 0 + # Always attempt to update prices which were just initialized, and prices + # of unsupported items (maybe we start supporting them at some point) + if self.status in (PriceStatus.initialized, PriceStatus.notSupported): + return False + elif self.status == PriceStatus.fetchSuccess: + return time() <= self.time + VALIDITY + elif self.status == PriceStatus.fetchFail: + return time() <= self.time + REREQUEST + elif self.status == PriceStatus.fetchTimeout: + return time() <= self.time + TIMEOUT else: - return self.__price or 0 + return False - @price.setter - def price(self, price): - self.__price = price + def update(self, status, price=0): + # Keep old price if we failed to fetch new one + if status in (PriceStatus.fetchFail, PriceStatus.fetchTimeout): + price = self.price + elif status != PriceStatus.fetchSuccess: + price = 0 + self.time = time() + self.price = price + self.status = status diff --git a/gui/builtinViewColumns/price.py b/gui/builtinViewColumns/price.py index 56901c172..f4083438e 100644 --- a/gui/builtinViewColumns/price.py +++ b/gui/builtinViewColumns/price.py @@ -22,6 +22,7 @@ import wx from eos.saveddata.cargo import Cargo from eos.saveddata.drone import Drone +from eos.saveddata.fighter import Fighter from eos.saveddata.price import PriceStatus from service.price import Price as ServicePrice from gui.viewColumn import ViewColumn @@ -29,6 +30,16 @@ from gui.bitmap_loader import BitmapLoader from gui.utils.numberFormatter import formatAmount +def formatPrice(stuff, priceObj): + textItems = [] + if priceObj.price: + mult = stuff.amount if isinstance(stuff, (Drone, Cargo, Fighter)) else 1 + textItems.append(formatAmount(priceObj.price * mult, 3, 3, 9, currency=True)) + if priceObj.status in (PriceStatus.fetchFail, PriceStatus.fetchTimeout): + textItems.append("(!)") + return " ".join(textItems) + + class Price(ViewColumn): name = "Price" @@ -51,28 +62,14 @@ class Price(ViewColumn): if not priceObj.isValid: return False - # Fetch actual price as float to not modify its value on Price object - price = priceObj.price - - if price == 0: - return "" - - if isinstance(stuff, Drone) or isinstance(stuff, Cargo): - price *= stuff.amount - - return formatAmount(price, 3, 3, 9, currency=True) + return formatPrice(stuff, priceObj) def delayedText(self, mod, display, colItem): sPrice = ServicePrice.getInstance() def callback(item): - price = item[0] - textItems = [] - if price.price: - textItems.append(formatAmount(price.price, 3, 3, 9, currency=True)) - if price.status == PriceStatus.fail: - textItems.append("(!)") - colItem.SetText(" ".join(textItems)) + priceObj = item[0] + colItem.SetText(formatPrice(mod, priceObj)) display.SetItem(colItem) diff --git a/service/marketSources/evemarketdata.py b/service/marketSources/evemarketdata.py index 15edc92ef..af8a83991 100644 --- a/service/marketSources/evemarketdata.py +++ b/service/marketSources/evemarketdata.py @@ -17,30 +17,30 @@ # along with pyfa. If not, see . # ============================================================================= -import time + from xml.dom import minidom from logbook import Logger from eos.saveddata.price import PriceStatus from service.network import Network -from service.price import Price, TIMEOUT, VALIDITY +from service.price import Price pyfalog = Logger(__name__) -class EveMarketData(object): +class EveMarketData: name = "eve-marketdata.com" - def __init__(self, types, system, priceMap): + def __init__(self, priceMap, system, timeout): data = {} baseurl = "https://eve-marketdata.com/api/item_prices.xml" - data["system_id"] = system # Use Jita for market - data["type_ids"] = ','.join(str(x) for x in types) + data["system_id"] = system + data["type_ids"] = ','.join(str(typeID) for typeID in priceMap) network = Network.getInstance() - data = network.request(baseurl, network.PRICES, params=data) + data = network.request(baseurl, network.PRICES, params=data, timeout=timeout) xml = minidom.parseString(data.text) types = xml.getElementsByTagName("eve").item(0).getElementsByTagName("price") @@ -55,19 +55,10 @@ class EveMarketData(object): pyfalog.warning("Failed to get price for: {0}", type_) continue - # Fill price data - priceobj = priceMap[typeID] - - # eve-marketdata returns 0 if price data doesn't even exist for the item. In this case, don't reset the - # cached price, and set the price timeout to TIMEOUT (every 15 minutes currently). Se GH issue #1334 - if price != 0: - priceobj.price = price - priceobj.time = time.time() + VALIDITY - priceobj.status = PriceStatus.success - else: - priceobj.time = time.time() + TIMEOUT - - # delete price from working dict + # eve-marketdata returns 0 if price data doesn't even exist for the item + if price == 0: + continue + priceMap[typeID].update(PriceStatus.fetchSuccess, price) del priceMap[typeID] diff --git a/service/marketSources/evemarketer.py b/service/marketSources/evemarketer.py index 478de4371..07a0b2dc0 100644 --- a/service/marketSources/evemarketer.py +++ b/service/marketSources/evemarketer.py @@ -17,33 +17,31 @@ # along with pyfa. If not, see . # ============================================================================= -import time + from xml.dom import minidom from logbook import Logger from eos.saveddata.price import PriceStatus from service.network import Network -from service.price import Price, VALIDITY +from service.price import Price pyfalog = Logger(__name__) -class EveMarketer(object): +class EveMarketer: name = "evemarketer" - def __init__(self, types, system, priceMap): + def __init__(self, priceMap, system, timeout): data = {} baseurl = "https://api.evemarketer.com/ec/marketstat" - data["usesystem"] = system # Use Jita for market - data["typeid"] = set() - for typeID in types: # Add all typeID arguments - data["typeid"].add(typeID) + data["usesystem"] = system + data["typeid"] = {typeID for typeID in priceMap} network = Network.getInstance() - data = network.request(baseurl, network.PRICES, params=data) + data = network.request(baseurl, network.PRICES, params=data, timeout=timeout) xml = minidom.parseString(data.text) types = xml.getElementsByTagName("marketstat").item(0).getElementsByTagName("type") # Cycle through all types we've got from request @@ -56,15 +54,10 @@ class EveMarketer(object): percprice = float(sell.getElementsByTagName("percentile").item(0).firstChild.data) except (TypeError, ValueError): pyfalog.warning("Failed to get price for: {0}", type_) - percprice = 0 + continue # Fill price data - priceobj = priceMap[typeID] - priceobj.price = percprice - priceobj.time = time.time() + VALIDITY - priceobj.status = PriceStatus.success - - # delete price from working dict + priceMap[typeID].update(PriceStatus.fetchSuccess, percprice) del priceMap[typeID] diff --git a/service/network.py b/service/network.py index 5554eadec..5ce413445 100644 --- a/service/network.py +++ b/service/network.py @@ -53,7 +53,7 @@ class TimeoutError(Exception): pass -class Network(object): +class Network: # Request constants - every request must supply this, as it is checked if # enabled or not via settings ENABLED = 1 diff --git a/service/price.py b/service/price.py index 3028b74ad..039a5a2d4 100644 --- a/service/price.py +++ b/service/price.py @@ -20,7 +20,6 @@ import queue import threading -import time import wx from logbook import Logger @@ -31,15 +30,11 @@ from service.fit import Fit from service.market import Market from service.network import TimeoutError + pyfalog = Logger(__name__) -VALIDITY = 24 * 60 * 60 # Price validity period, 24 hours -REREQUEST = 4 * 60 * 60 # Re-request delay for failed fetches, 4 hours -TIMEOUT = 15 * 60 # Network timeout delay for connection issues, 15 minutes - - -class Price(object): +class Price: instance = None systemsList = { @@ -69,38 +64,34 @@ class Price(object): return cls.instance @classmethod - def fetchPrices(cls, prices): + def fetchPrices(cls, prices, timeout=5): """Fetch all prices passed to this method""" # Dictionary for our price objects priceMap = {} - # Check all provided price objects, and add invalid ones to dictionary + # Check all provided price objects, and add those we want to update to + # dictionary for price in prices: if not price.isValid: priceMap[price.typeID] = price - if len(priceMap) == 0: + if not priceMap: return - # Set of items which are still to be requested from this service - toRequest = set() - # Compose list of items we're going to request for typeID in tuple(priceMap): # Get item object item = db.getItem(typeID) - # We're not going to request items only with market group, as eve-central - # doesn't provide any data for items not on the market + # We're not going to request items only with market group, as our current market + # sources do not provide any data for items not on the market if item is None: continue if not item.marketGroupID: - priceMap[typeID].status = PriceStatus.notSupported + priceMap[typeID].update(PriceStatus.notSupported) del priceMap[typeID] continue - toRequest.add(typeID) - # Do not waste our time if all items are not on the market - if len(toRequest) == 0: + if not priceMap: return sFit = Fit.getInstance() @@ -113,33 +104,34 @@ class Price(object): sourcesToTry = list(cls.sources.keys()) curr = sFit.serviceFittingOptions["priceSource"] if sFit.serviceFittingOptions["priceSource"] in sourcesToTry else sourcesToTry[0] - while len(sourcesToTry) > 0: + # Record timeouts as it will affect our final decision + timeouts = {} + + while priceMap and sourcesToTry: + timeouts[curr] = False sourcesToTry.remove(curr) try: sourceCls = cls.sources.get(curr) - sourceCls(toRequest, cls.systemsList[sFit.serviceFittingOptions["priceSystem"]], priceMap) - break - # If getting or processing data returned any errors + sourceCls(priceMap, cls.systemsList[sFit.serviceFittingOptions["priceSystem"]], timeout) except TimeoutError: - # Timeout error deserves special treatment - pyfalog.warning("Price fetch timout") - for typeID in tuple(priceMap): - priceobj = priceMap[typeID] - priceobj.time = time.time() + TIMEOUT - priceobj.status = PriceStatus.fail - del priceMap[typeID] - except Exception as ex: - # something happened, try another source - pyfalog.warn('Failed to fetch prices from price source {}: {}'.format(curr, ex, sourcesToTry[0])) - if len(sourcesToTry) > 0: - pyfalog.warn('Trying {}'.format(sourcesToTry[0])) - curr = sourcesToTry[0] + pyfalog.warning("Price fetch timeout for source {}".format(curr)) + timeouts[curr] = True + except Exception as e: + pyfalog.warn('Failed to fetch prices from price source {}: {}'.format(curr, e)) + if sourcesToTry: + curr = sourcesToTry[0] + pyfalog.warn('Trying {}'.format(curr)) - # if we get to this point, then we've got an error in all of our sources. Set to REREQUEST delay - for typeID in priceMap.keys(): - priceobj = priceMap[typeID] - priceobj.time = time.time() + REREQUEST - priceobj.status = PriceStatus.fail + # If we get to this point, then we've failed to get price with all our sources + # If all sources failed due to timeouts, set one status + if all(to is True for to in timeouts.values()): + for typeID in priceMap.keys(): + priceMap[typeID].update(PriceStatus.fetchTimeout) + # If some sources failed due to any other reason, then it's definitely not network + # timeout and we just set another status + else: + for typeID in priceMap.keys(): + priceMap[typeID].update(PriceStatus.fetchFail) @classmethod def fitItemsList(cls, fit): From 7aba11142f1c72f94492b21a40e08ce7fa198eaf Mon Sep 17 00:00:00 2001 From: DarkPhoenix Date: Tue, 19 Feb 2019 19:08:09 +0300 Subject: [PATCH 11/88] Enable price column in fighters tab --- gui/builtinAdditionPanes/fighterView.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gui/builtinAdditionPanes/fighterView.py b/gui/builtinAdditionPanes/fighterView.py index bf797ae15..44e47095e 100644 --- a/gui/builtinAdditionPanes/fighterView.py +++ b/gui/builtinAdditionPanes/fighterView.py @@ -122,8 +122,8 @@ class FighterDisplay(d.Display): # "Max Range", # "Miscellanea", "attr:maxVelocity", - "Fighter Abilities" - # "Price", + "Fighter Abilities", + "Price", ] def __init__(self, parent): From 7ac24ff7ee9224fb8a5ea3a72de93d2642c11d2d Mon Sep 17 00:00:00 2001 From: DarkPhoenix Date: Tue, 19 Feb 2019 20:40:03 +0300 Subject: [PATCH 12/88] Allow to customize fetch timeout when requesting prices --- gui/builtinItemStatsViews/itemCompare.py | 2 +- gui/builtinStatsViews/priceViewFull.py | 2 +- gui/builtinStatsViews/priceViewMinimal.py | 2 +- gui/builtinViewColumns/price.py | 8 ++++++-- service/marketSources/evemarketdata.py | 4 ++-- service/marketSources/evemarketer.py | 4 ++-- service/price.py | 23 +++++++++++------------ 7 files changed, 24 insertions(+), 21 deletions(-) diff --git a/gui/builtinItemStatsViews/itemCompare.py b/gui/builtinItemStatsViews/itemCompare.py index 97a4b953d..3c6ad76ed 100644 --- a/gui/builtinItemStatsViews/itemCompare.py +++ b/gui/builtinItemStatsViews/itemCompare.py @@ -16,7 +16,7 @@ class ItemCompare(wx.Panel): def __init__(self, parent, stuff, item, items, context=None): # Start dealing with Price stuff to get that thread going sPrice = ServicePrice.getInstance() - sPrice.getPrices(items, self.UpdateList) + sPrice.getPrices(items, self.UpdateList, fetchTimeout=90) wx.Panel.__init__(self, parent) mainSizer = wx.BoxSizer(wx.VERTICAL) diff --git a/gui/builtinStatsViews/priceViewFull.py b/gui/builtinStatsViews/priceViewFull.py index 767ad958f..ebb6acac8 100644 --- a/gui/builtinStatsViews/priceViewFull.py +++ b/gui/builtinStatsViews/priceViewFull.py @@ -83,7 +83,7 @@ class PriceViewFull(StatsView): fit_items = Price.fitItemsList(fit) sPrice = Price.getInstance() - sPrice.getPrices(fit_items, self.processPrices) + sPrice.getPrices(fit_items, self.processPrices, fetchTimeout=30) self.labelEMStatus.SetLabel("Updating prices...") self.refreshPanelPrices(fit) diff --git a/gui/builtinStatsViews/priceViewMinimal.py b/gui/builtinStatsViews/priceViewMinimal.py index 8d6a5ce83..41c837c04 100644 --- a/gui/builtinStatsViews/priceViewMinimal.py +++ b/gui/builtinStatsViews/priceViewMinimal.py @@ -77,7 +77,7 @@ class PriceViewMinimal(StatsView): fit_items = Price.fitItemsList(fit) sPrice = Price.getInstance() - sPrice.getPrices(fit_items, self.processPrices) + sPrice.getPrices(fit_items, self.processPrices, fetchTimeout=30) self.labelEMStatus.SetLabel("Updating prices...") self.refreshPanelPrices(fit) diff --git a/gui/builtinViewColumns/price.py b/gui/builtinViewColumns/price.py index f4083438e..6d96fab4a 100644 --- a/gui/builtinViewColumns/price.py +++ b/gui/builtinViewColumns/price.py @@ -33,7 +33,11 @@ from gui.utils.numberFormatter import formatAmount def formatPrice(stuff, priceObj): textItems = [] if priceObj.price: - mult = stuff.amount if isinstance(stuff, (Drone, Cargo, Fighter)) else 1 + mult = 1 + if isinstance(stuff, (Drone, Cargo)): + mult = stuff.amount + elif isinstance(stuff, Fighter): + mult = stuff.amountActive textItems.append(formatAmount(priceObj.price * mult, 3, 3, 9, currency=True)) if priceObj.status in (PriceStatus.fetchFail, PriceStatus.fetchTimeout): textItems.append("(!)") @@ -73,7 +77,7 @@ class Price(ViewColumn): display.SetItem(colItem) - sPrice.getPrices([mod.item], callback, True) + sPrice.getPrices([mod.item], callback, waitforthread=True) def getImageId(self, mod): return -1 diff --git a/service/marketSources/evemarketdata.py b/service/marketSources/evemarketdata.py index af8a83991..de2089e10 100644 --- a/service/marketSources/evemarketdata.py +++ b/service/marketSources/evemarketdata.py @@ -33,14 +33,14 @@ class EveMarketData: name = "eve-marketdata.com" - def __init__(self, priceMap, system, timeout): + def __init__(self, priceMap, system, fetchTimeout): data = {} baseurl = "https://eve-marketdata.com/api/item_prices.xml" data["system_id"] = system data["type_ids"] = ','.join(str(typeID) for typeID in priceMap) network = Network.getInstance() - data = network.request(baseurl, network.PRICES, params=data, timeout=timeout) + data = network.request(baseurl, network.PRICES, params=data, timeout=fetchTimeout) xml = minidom.parseString(data.text) types = xml.getElementsByTagName("eve").item(0).getElementsByTagName("price") diff --git a/service/marketSources/evemarketer.py b/service/marketSources/evemarketer.py index 07a0b2dc0..d000a1d2e 100644 --- a/service/marketSources/evemarketer.py +++ b/service/marketSources/evemarketer.py @@ -33,7 +33,7 @@ class EveMarketer: name = "evemarketer" - def __init__(self, priceMap, system, timeout): + def __init__(self, priceMap, system, fetchTimeout): data = {} baseurl = "https://api.evemarketer.com/ec/marketstat" @@ -41,7 +41,7 @@ class EveMarketer: data["typeid"] = {typeID for typeID in priceMap} network = Network.getInstance() - data = network.request(baseurl, network.PRICES, params=data, timeout=timeout) + data = network.request(baseurl, network.PRICES, params=data, timeout=fetchTimeout) xml = minidom.parseString(data.text) types = xml.getElementsByTagName("marketstat").item(0).getElementsByTagName("type") # Cycle through all types we've got from request diff --git a/service/price.py b/service/price.py index 039a5a2d4..f9acfff60 100644 --- a/service/price.py +++ b/service/price.py @@ -64,7 +64,7 @@ class Price: return cls.instance @classmethod - def fetchPrices(cls, prices, timeout=5): + def fetchPrices(cls, prices, fetchTimeout): """Fetch all prices passed to this method""" # Dictionary for our price objects @@ -112,7 +112,7 @@ class Price: sourcesToTry.remove(curr) try: sourceCls = cls.sources.get(curr) - sourceCls(priceMap, cls.systemsList[sFit.serviceFittingOptions["priceSystem"]], timeout) + sourceCls(priceMap, cls.systemsList[sFit.serviceFittingOptions["priceSystem"]], fetchTimeout) except TimeoutError: pyfalog.warning("Price fetch timeout for source {}".format(curr)) timeouts[curr] = True @@ -166,7 +166,7 @@ class Price: return item.price.price - def getPrices(self, objitems, callback, waitforthread=False): + def getPrices(self, objitems, callback, fetchTimeout=30, waitforthread=False): """Get prices for multiple typeIDs""" requests = [] sMkt = Market.getInstance() @@ -186,7 +186,7 @@ class Price: if waitforthread: self.priceWorkerThread.setToWait(requests, cb) else: - self.priceWorkerThread.trigger(requests, cb) + self.priceWorkerThread.trigger(requests, cb, fetchTimeout) def clearPriceCache(self): pyfalog.debug("Clearing Prices") @@ -206,11 +206,11 @@ class PriceWorkerThread(threading.Thread): queue = self.queue while True: # Grab our data - callback, requests = queue.get() + callback, requests, fetchTimeout = queue.get() # Grab prices, this is the time-consuming part if len(requests) > 0: - Price.fetchPrices(requests) + Price.fetchPrices(requests, fetchTimeout) wx.CallAfter(callback) queue.task_done() @@ -222,14 +222,13 @@ class PriceWorkerThread(threading.Thread): for callback in callbacks: wx.CallAfter(callback) - def trigger(self, prices, callbacks): - self.queue.put((callbacks, prices)) + def trigger(self, prices, callbacks, fetchTimeout): + self.queue.put((callbacks, prices, fetchTimeout)) def setToWait(self, prices, callback): - for x in prices: - if x.typeID not in self.wait: - self.wait[x.typeID] = [] - self.wait[x.typeID].append(callback) + for price in prices: + callbacks = self.wait.setdefault(price.typeID, []) + callbacks.append(callback) # Import market sources only to initialize price source modules, they register on their own From f9eef5ee077481e9e9836f3da5333d7cc0e823cb Mon Sep 17 00:00:00 2001 From: DarkPhoenix Date: Thu, 21 Feb 2019 13:05:43 +0300 Subject: [PATCH 13/88] Fetch item price globally if failed to get sensible data for specified system --- service/marketSources/evemarketdata.py | 15 ++++++++++----- service/marketSources/evemarketer.py | 23 ++++++++++++++++------- 2 files changed, 26 insertions(+), 12 deletions(-) diff --git a/service/marketSources/evemarketdata.py b/service/marketSources/evemarketdata.py index de2089e10..9ba93d73f 100644 --- a/service/marketSources/evemarketdata.py +++ b/service/marketSources/evemarketdata.py @@ -34,13 +34,18 @@ class EveMarketData: name = "eve-marketdata.com" def __init__(self, priceMap, system, fetchTimeout): - data = {} - baseurl = "https://eve-marketdata.com/api/item_prices.xml" - data["system_id"] = system - data["type_ids"] = ','.join(str(typeID) for typeID in priceMap) + # Try selected system first + self.fetchPrices(priceMap, fetchTimeout, system) + # If price was not available - try globally + self.fetchPrices(priceMap, fetchTimeout) + def fetchPrices(self, priceMap, fetchTimeout, system=None): + params = {"type_ids": ','.join(str(typeID) for typeID in priceMap)} + if system is not None: + params["system_id"] = system + baseurl = "https://eve-marketdata.com/api/item_prices.xml" network = Network.getInstance() - data = network.request(baseurl, network.PRICES, params=data, timeout=fetchTimeout) + data = network.request(baseurl, network.PRICES, params=params, timeout=fetchTimeout) xml = minidom.parseString(data.text) types = xml.getElementsByTagName("eve").item(0).getElementsByTagName("price") diff --git a/service/marketSources/evemarketer.py b/service/marketSources/evemarketer.py index d000a1d2e..61e87b55a 100644 --- a/service/marketSources/evemarketer.py +++ b/service/marketSources/evemarketer.py @@ -34,14 +34,18 @@ class EveMarketer: name = "evemarketer" def __init__(self, priceMap, system, fetchTimeout): - data = {} + # Try selected system first + self.fetchPrices(priceMap, fetchTimeout, system) + # If price was not available - try globally + self.fetchPrices(priceMap, fetchTimeout) + + def fetchPrices(self, priceMap, fetchTimeout, system=None): + params = {"typeid": {typeID for typeID in priceMap}} + if system is not None: + params["usesystem"] = system baseurl = "https://api.evemarketer.com/ec/marketstat" - - data["usesystem"] = system - data["typeid"] = {typeID for typeID in priceMap} - network = Network.getInstance() - data = network.request(baseurl, network.PRICES, params=data, timeout=fetchTimeout) + data = network.request(baseurl, network.PRICES, params=params, timeout=fetchTimeout) xml = minidom.parseString(data.text) types = xml.getElementsByTagName("marketstat").item(0).getElementsByTagName("type") # Cycle through all types we've got from request @@ -56,7 +60,12 @@ class EveMarketer: pyfalog.warning("Failed to get price for: {0}", type_) continue - # Fill price data + # Price is 0 if evemarketer has info on this item, but it is not available + # for current scope limit. If we provided scope limit - make sure to skip + # such items to check globally, and do not skip if requested globally + if percprice == 0 and system is not None: + continue + priceMap[typeID].update(PriceStatus.fetchSuccess, percprice) del priceMap[typeID] From c66f80d6e5918c23e8b50ab300120eb68912ca04 Mon Sep 17 00:00:00 2001 From: DarkPhoenix Date: Thu, 21 Feb 2019 16:05:35 +0300 Subject: [PATCH 14/88] Allocate passed timeout across multiple fetches to avoid exceeding it, with focus on primary data source --- service/marketSources/evemarketdata.py | 4 +-- service/marketSources/evemarketer.py | 4 +-- service/price.py | 39 ++++++++++++++++---------- 3 files changed, 28 insertions(+), 19 deletions(-) diff --git a/service/marketSources/evemarketdata.py b/service/marketSources/evemarketdata.py index 9ba93d73f..c05528989 100644 --- a/service/marketSources/evemarketdata.py +++ b/service/marketSources/evemarketdata.py @@ -35,9 +35,9 @@ class EveMarketData: def __init__(self, priceMap, system, fetchTimeout): # Try selected system first - self.fetchPrices(priceMap, fetchTimeout, system) + self.fetchPrices(priceMap, max(2 * fetchTimeout / 3, 2), system) # If price was not available - try globally - self.fetchPrices(priceMap, fetchTimeout) + self.fetchPrices(priceMap, max(fetchTimeout / 3, 2)) def fetchPrices(self, priceMap, fetchTimeout, system=None): params = {"type_ids": ','.join(str(typeID) for typeID in priceMap)} diff --git a/service/marketSources/evemarketer.py b/service/marketSources/evemarketer.py index 61e87b55a..894abcb83 100644 --- a/service/marketSources/evemarketer.py +++ b/service/marketSources/evemarketer.py @@ -35,9 +35,9 @@ class EveMarketer: def __init__(self, priceMap, system, fetchTimeout): # Try selected system first - self.fetchPrices(priceMap, fetchTimeout, system) + self.fetchPrices(priceMap, max(2 * fetchTimeout / 3, 2), system) # If price was not available - try globally - self.fetchPrices(priceMap, fetchTimeout) + self.fetchPrices(priceMap, max(fetchTimeout / 3, 2)) def fetchPrices(self, priceMap, fetchTimeout, system=None): params = {"typeid": {typeID for typeID in priceMap}} diff --git a/service/price.py b/service/price.py index f9acfff60..b7f88dd4d 100644 --- a/service/price.py +++ b/service/price.py @@ -101,30 +101,39 @@ class Price: return # attempt to find user's selected price source, otherwise get first one - sourcesToTry = list(cls.sources.keys()) - curr = sFit.serviceFittingOptions["priceSource"] if sFit.serviceFittingOptions["priceSource"] in sourcesToTry else sourcesToTry[0] + sourceAll = list(cls.sources.keys()) + sourcePrimary = sFit.serviceFittingOptions["priceSource"] if sFit.serviceFittingOptions["priceSource"] in sourceAll else sourceAll[0] + + # Format: {source name: timeout weight} + sources = {sourcePrimary: len(sourceAll)} + for source in sourceAll: + if source == sourcePrimary: + continue + sources[source] = min(sources.values()) - 1 + timeoutWeightMult = fetchTimeout / sum(sources.values()) # Record timeouts as it will affect our final decision - timeouts = {} + timedOutSources = {} - while priceMap and sourcesToTry: - timeouts[curr] = False - sourcesToTry.remove(curr) + for source, timeoutWeight in sources.items(): + pyfalog.info('Trying {}'.format(source)) + timedOutSources[source] = False + sourceFetchTimeout = timeoutWeight * timeoutWeightMult try: - sourceCls = cls.sources.get(curr) - sourceCls(priceMap, cls.systemsList[sFit.serviceFittingOptions["priceSystem"]], fetchTimeout) + sourceCls = cls.sources.get(source) + sourceCls(priceMap, cls.systemsList[sFit.serviceFittingOptions["priceSystem"]], sourceFetchTimeout) except TimeoutError: - pyfalog.warning("Price fetch timeout for source {}".format(curr)) - timeouts[curr] = True + pyfalog.warning("Price fetch timeout for source {}".format(source)) + timedOutSources[source] = True except Exception as e: - pyfalog.warn('Failed to fetch prices from price source {}: {}'.format(curr, e)) - if sourcesToTry: - curr = sourcesToTry[0] - pyfalog.warn('Trying {}'.format(curr)) + pyfalog.warn('Failed to fetch prices from price source {}: {}'.format(source, e)) + # Sources remove price map items as they fetch info, if none remain then we're done + if not priceMap: + break # If we get to this point, then we've failed to get price with all our sources # If all sources failed due to timeouts, set one status - if all(to is True for to in timeouts.values()): + if all(to is True for to in timedOutSources.values()): for typeID in priceMap.keys(): priceMap[typeID].update(PriceStatus.fetchTimeout) # If some sources failed due to any other reason, then it's definitely not network From e36b9661f0411af2d71d7eeb307579e36ec2748c Mon Sep 17 00:00:00 2001 From: DarkPhoenix Date: Thu, 21 Feb 2019 16:50:10 +0300 Subject: [PATCH 15/88] Do not generate empty fetches when everything has been requested --- service/marketSources/evemarketdata.py | 3 ++- service/marketSources/evemarketer.py | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/service/marketSources/evemarketdata.py b/service/marketSources/evemarketdata.py index c05528989..3bfbc50c2 100644 --- a/service/marketSources/evemarketdata.py +++ b/service/marketSources/evemarketdata.py @@ -37,7 +37,8 @@ class EveMarketData: # Try selected system first self.fetchPrices(priceMap, max(2 * fetchTimeout / 3, 2), system) # If price was not available - try globally - self.fetchPrices(priceMap, max(fetchTimeout / 3, 2)) + if priceMap: + self.fetchPrices(priceMap, max(fetchTimeout / 3, 2)) def fetchPrices(self, priceMap, fetchTimeout, system=None): params = {"type_ids": ','.join(str(typeID) for typeID in priceMap)} diff --git a/service/marketSources/evemarketer.py b/service/marketSources/evemarketer.py index 894abcb83..1c4d08f1a 100644 --- a/service/marketSources/evemarketer.py +++ b/service/marketSources/evemarketer.py @@ -37,7 +37,8 @@ class EveMarketer: # Try selected system first self.fetchPrices(priceMap, max(2 * fetchTimeout / 3, 2), system) # If price was not available - try globally - self.fetchPrices(priceMap, max(fetchTimeout / 3, 2)) + if priceMap: + self.fetchPrices(priceMap, max(fetchTimeout / 3, 2)) def fetchPrices(self, priceMap, fetchTimeout, system=None): params = {"typeid": {typeID for typeID in priceMap}} From ef7195a7cc0991681dd09938407c3f8a6564a337 Mon Sep 17 00:00:00 2001 From: DarkPhoenix Date: Fri, 22 Feb 2019 19:04:37 +0300 Subject: [PATCH 16/88] Change database generation script to rely on type effects and parent type for grouping --- scripts/jsonToSql.py | 33 ++++++++++++++++++++------------- 1 file changed, 20 insertions(+), 13 deletions(-) diff --git a/scripts/jsonToSql.py b/scripts/jsonToSql.py index cec160fce..dc0c74056 100755 --- a/scripts/jsonToSql.py +++ b/scripts/jsonToSql.py @@ -194,16 +194,14 @@ def main(db, json_path): if all(attrs1[aid] == attrs2[aid] for aid in attrs1): return 2 if all( - (attrs1[aid] <= attrs2[aid] and attrHig[aid] == 0) or - (attrs1[aid] >= attrs2[aid] and attrHig[aid] == 1) or - (attrs1[aid] == attrs2[aid] and attrHig[aid] == 2) + (attrs1[aid] <= attrs2[aid] and not attrHig[aid]) or + (attrs1[aid] >= attrs2[aid] and attrHig[aid]) for aid in attrs1 ): return 3 if all( - (attrs2[aid] <= attrs1[aid] and attrHig[aid] == 0) or - (attrs2[aid] >= attrs1[aid] and attrHig[aid] == 1) or - (attrs1[aid] == attrs2[aid] and attrHig[aid] == 2) + (attrs2[aid] <= attrs1[aid] and not attrHig[aid]) or + (attrs2[aid] >= attrs1[aid] and attrHig[aid]) for aid in attrs1 ): return 4 @@ -223,6 +221,11 @@ def main(db, json_path): typesGroups = {} for row in tables['evetypes']: typesGroups[row['typeID']] = row['groupID'] + # Get data on item effects + # Format: {type ID: set(effect, IDs)} + typesEffects = {} + for row in tables['dgmtypeeffects']: + typesEffects.setdefault(row['typeID'], set()).add(row['effectID']) # Get data on type attributes # Format: {type ID: {attribute ID: attribute value}} typesNormalAttribs = {} @@ -258,17 +261,19 @@ def main(db, json_path): except (KeyError, ValueError): continue typeSkillReqs[skillType] = skillLevel + # Get data on type parent types + # Format: {type ID: parent type ID} + typesParents = {} + for row in tables['invmetatypes']: + typesParents[row['typeID']] = row['parentTypeID'] # Get data on attribute highIsGood flag # Format: {type ID: 0 if high is bad, 1 if high is good, 2 if neither} attrHig = {} for row in tables['dgmattribs']: - attrHig[row['attributeID']] = 1 if row['highIsGood'] else 0 + attrHig[row['attributeID']] = bool(row['highIsGood']) # As CCP data is not really consistent, do some overrides - attrHig[4] = 0 # mass - attrHig[161] = 0 # volume - # Also do some customizations; some attributes are neither good nor bad when they change - attrHig[128] = 2 # chargeSize - attrHig[1547] = 2 # rigSize + attrHig[4] = False # mass + attrHig[161] = False # volume # As EVE affects various types mostly depending on their group or skill requirements, # we're going to group various types up this way # Format: {(group ID, frozenset(skillreq, type, IDs)): [type ID, {attribute ID: attribute value}]} @@ -282,7 +287,9 @@ def main(db, json_path): # We need only skill types, not levels for keys typeSkillreqs = frozenset(typesSkillReqs.get(typeID, {})) typeGroup = typesGroups[typeID] - groupData = groupedData.setdefault((typeGroup, typeSkillreqs), []) + typeParent = typesParents.get(typeID, typeID) + typeEffects = frozenset(typesEffects.get(typeID, ())) + groupData = groupedData.setdefault((typeGroup, typeSkillreqs, typeParent, typeEffects), []) groupData.append((typeID, typeAttribs)) # Format: {type ID: set(type IDs)} same = {} From 8b86f14ee2f0df57848bfdc89749ca1d1181f90e Mon Sep 17 00:00:00 2001 From: DarkPhoenix Date: Sat, 23 Feb 2019 14:49:07 +0300 Subject: [PATCH 17/88] Ignore more attributes when finding similar items --- scripts/jsonToSql.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/scripts/jsonToSql.py b/scripts/jsonToSql.py index dc0c74056..248d23072 100755 --- a/scripts/jsonToSql.py +++ b/scripts/jsonToSql.py @@ -237,7 +237,11 @@ def main(db, json_path): typeSkillAttribs[row['attributeID']] = row['value'] # Ignore these attributes for comparison purposes elif attributeID in ( + # We do not need mass as it participates in calculations only when carried by ships + # (and we're not going to replace ships), but it's wildly inconsistent for other items + 4, # mass 124, # mainColor + 162, # radius 422, # techLevel 633, # metaLevel 1692 # metaGroupID From 7d42f8dba680ee37b8d86b6df9700a2e8f425564 Mon Sep 17 00:00:00 2001 From: DarkPhoenix Date: Sat, 23 Feb 2019 15:20:56 +0300 Subject: [PATCH 18/88] Update db and how we generate list of replacements --- eve.db | Bin 19087360 -> 17072128 bytes service/market.py | 17 ++++++++++------- 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/eve.db b/eve.db index bbb39f15e15ccdac9509e714a2684bd71bb4b32b..59ddd9ce89ca66d965aaa56aa9543f36402c0438 100644 GIT binary patch delta 468166 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�(JN_;qy41nyZTv6B>4A^tQnLY=8PM|G)TNw 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�La^SVuv-toj2TCfm(1s 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ξ?TQXv1D$i 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 q```vbS*9Z;PqtzKu*rl<~ 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�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 zΝy)uY{M)h2hlX~(6#yv7Vw9$# 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 z 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 W!2VQJRF42}G;c_~iHf#zP96Z7E$rg} diff --git a/service/market.py b/service/market.py index 92010b618..18792dc2f 100644 --- a/service/market.py +++ b/service/market.py @@ -804,10 +804,13 @@ class Market(object): replTypeIDs.update({int(i) for i in item.replaceBetter.split(",") if i}) if not replTypeIDs: return () - # But as these replacements were generated with only item group and item skill - # requirements in mind, they sometimes include stuff we do not want to include. - # So here we also filter by variation group (implementing it during database - # generation is not trivial and here it can be customized by overrides) - variationItems = self.getVariationsByItems([item]) - replacementItems = {i for i in variationItems if i.ID in replTypeIDs} - return replacementItems + # As replacements were generated without keeping track which items were published, + # filter them out here + items = [] + for typeID in replTypeIDs: + item = self.getItem(typeID) + if not item: + continue + if self.getPublicityByItem(item): + items.append(item) + return items From c6f2072bb97bd8183ed002a61b0bdba542d417cb Mon Sep 17 00:00:00 2001 From: DarkPhoenix Date: Sun, 24 Feb 2019 03:36:56 +0300 Subject: [PATCH 19/88] Add method which prepares items for fetching --- eve.db | Bin 17072128 -> 16683008 bytes service/price.py | 45 ++++++++++++++++++++++++++++++++------------- 2 files changed, 32 insertions(+), 13 deletions(-) diff --git a/eve.db b/eve.db index 59ddd9ce89ca66d965aaa56aa9543f36402c0438..bd5c17a370135143d4e63bf31b0686083157c1b3 100644 GIT binary patch delta 272619 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

fzy~^O~_1IjuG>WcB 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 delta 316502 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⪚d@be4=P=M+l6An}0*Y6IZGjwy)u)io$F3@C~m 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 z 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

-s=^GyaAY3V& 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%0Ai1DL(pm@OK;2rh2X&OQ2+%$#IuWp&% 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 wSBrW53zP$aZfoj-A;C3$Fe!ZBdhGK8PH?FAh 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 diff --git a/service/price.py b/service/price.py index b7f88dd4d..9f18b06a3 100644 --- a/service/price.py +++ b/service/price.py @@ -20,6 +20,7 @@ import queue import threading +from itertools import chain import wx from logbook import Logger @@ -144,29 +145,36 @@ class Price: @classmethod def fitItemsList(cls, fit): - # Compose a list of all the data we need & request it - fit_items = [fit.ship.item] + return list(set(cls.fitItemIter(fit, includeShip=True))) + + @classmethod + def fitObjectIter(cls, fit, includeShip=True): + if includeShip: + yield fit.ship for mod in fit.modules: if not mod.isEmpty: - fit_items.append(mod.item) + yield mod for drone in fit.drones: - fit_items.append(drone.item) + yield drone for fighter in fit.fighters: - fit_items.append(fighter.item) + yield fighter + + for implant in fit.implants: + yield implant + + for booster in fit.boosters: + yield booster for cargo in fit.cargo: - fit_items.append(cargo.item) + yield cargo - for boosters in fit.boosters: - fit_items.append(boosters.item) - - for implants in fit.implants: - fit_items.append(implants.item) - - return list(set(fit_items)) + @classmethod + def fitItemIter(cls, fit, includeShip=True): + for fitobj in cls.fitObjectIter(fit, includeShip=includeShip): + yield fitobj.item def getPriceNow(self, objitem): """Get price for provided typeID""" @@ -201,6 +209,17 @@ class Price: pyfalog.debug("Clearing Prices") db.clearPrices() + def findCheaperReplacements(self, fit, includeBetter=False): + sMkt = Market.getInstance() + itemsRepls = {} + for item in self.fitItemIter(fit, includeShip=False): + if item in itemsRepls: + continue + itemRepls = sMkt.getReplacements(item, includeBetter=includeBetter) + if itemRepls: + itemsRepls[item] = itemRepls + itemsToFetch = {i for i in chain(itemsRepls.keys(), *itemsRepls.values())} + # self.getPrices(itemsToFetch, None, fetchTimeout=10) class PriceWorkerThread(threading.Thread): From 8d183a859dd2bdc00cf7a680ed245cb819da895b Mon Sep 17 00:00:00 2001 From: DarkPhoenix Date: Sun, 24 Feb 2019 12:22:29 +0300 Subject: [PATCH 20/88] Add method to fetch price optimizations --- service/price.py | 35 ++++++++++++++++++++++++++++------- 1 file changed, 28 insertions(+), 7 deletions(-) diff --git a/service/price.py b/service/price.py index 9f18b06a3..9c7d5954d 100644 --- a/service/price.py +++ b/service/price.py @@ -18,6 +18,7 @@ # ============================================================================= +import math import queue import threading from itertools import chain @@ -175,6 +176,9 @@ class Price: def fitItemIter(cls, fit, includeShip=True): for fitobj in cls.fitObjectIter(fit, includeShip=includeShip): yield fitobj.item + charge = getattr(fitobj, 'charge', None) + if charge: + yield charge def getPriceNow(self, objitem): """Get price for provided typeID""" @@ -195,7 +199,7 @@ class Price: try: callback(requests) except Exception as e: - pyfalog.critical("Callback failed.") + pyfalog.critical("Execution of callback from getPrices failed.") pyfalog.critical(e) db.commit() @@ -209,17 +213,34 @@ class Price: pyfalog.debug("Clearing Prices") db.clearPrices() - def findCheaperReplacements(self, fit, includeBetter=False): + def findCheaperReplacements(self, callback, fit, includeBetter=False, fetchTimeout=10): sMkt = Market.getInstance() - itemsRepls = {} + + potential = {} # All possible item replacements for item in self.fitItemIter(fit, includeShip=False): - if item in itemsRepls: + if item in potential: continue itemRepls = sMkt.getReplacements(item, includeBetter=includeBetter) if itemRepls: - itemsRepls[item] = itemRepls - itemsToFetch = {i for i in chain(itemsRepls.keys(), *itemsRepls.values())} - # self.getPrices(itemsToFetch, None, fetchTimeout=10) + potential[item] = itemRepls + itemsToFetch = {i for i in chain(potential.keys(), *potential.values())} + + def cb(): + # Decide what we are going to replace + actual = {} # Items which should be replaced + for replacee, replacers in potential.items(): + replacer = min(replacers, key=lambda i: i.price.price or math.inf) + if (replacer.price.price or math.inf) < (replacee.price.price or math.inf): + actual[replacee] = replacer + try: + callback(actual) + except Exception as e: + pyfalog.critical("Execution of callback from findCheaperReplacements failed.") + pyfalog.critical(e) + + # TODO: add validity override + self.getPrices(itemsToFetch, cb, fetchTimeout=fetchTimeout) + class PriceWorkerThread(threading.Thread): From 839d0258858e0fff55287178e4f112d3e1d9c9bd Mon Sep 17 00:00:00 2001 From: DarkPhoenix Date: Sun, 24 Feb 2019 12:50:34 +0300 Subject: [PATCH 21/88] Add price optimization option to multibuy Doesn't work yet --- service/port/eft.py | 5 +++-- service/port/multibuy.py | 17 +++++++++++++++-- service/price.py | 34 +++++++++++----------------------- 3 files changed, 29 insertions(+), 27 deletions(-) diff --git a/service/port/eft.py b/service/port/eft.py index 0d8a0a706..8407e3ae7 100644 --- a/service/port/eft.py +++ b/service/port/eft.py @@ -19,7 +19,7 @@ import re -from enum import Enum +from enum import IntEnum, unique from logbook import Logger @@ -42,7 +42,8 @@ from service.port.shared import IPortUser, fetchItem, processing_notify pyfalog = Logger(__name__) -class Options(Enum): +@unique +class Options(IntEnum): IMPLANTS = 1 MUTATIONS = 2 LOADED_CHARGES = 3 diff --git a/service/port/multibuy.py b/service/port/multibuy.py index 1c6b78836..05beaaedc 100644 --- a/service/port/multibuy.py +++ b/service/port/multibuy.py @@ -18,19 +18,24 @@ # ============================================================================= -from enum import Enum +from enum import IntEnum, unique + +from service.price import Price as sPrc -class Options(Enum): +@unique +class Options(IntEnum): IMPLANTS = 1 CARGO = 2 LOADED_CHARGES = 3 + OPTIMIZE_PRICES = 4 MULTIBUY_OPTIONS = ( (Options.LOADED_CHARGES.value, 'Loaded Charges', 'Export charges loaded into modules', True), (Options.IMPLANTS.value, 'Implants && Boosters', 'Export implants and boosters', False), (Options.CARGO.value, 'Cargo', 'Export cargo contents', True), + (Options.OPTIMIZE_PRICES.value, 'Optimize Prices', 'Replace items by cheaper alternatives', False), ) @@ -68,6 +73,14 @@ def exportMultiBuy(fit, options): for booster in fit.boosters: addItem(booster.item) + if options[Options.OPTIMIZE_PRICES.value]: + + def cb(replacements): + pass + + priceSvc = sPrc.getInstance() + priceSvc.findCheaperReplacements(itemCounts, cb) + exportLines = [] exportLines.append(fit.ship.item.name) for item in sorted(itemCounts, key=lambda i: (i.group.category.name, i.group.name, i.name)): diff --git a/service/price.py b/service/price.py index 9c7d5954d..f987b8978 100644 --- a/service/price.py +++ b/service/price.py @@ -146,35 +146,23 @@ class Price: @classmethod def fitItemsList(cls, fit): - return list(set(cls.fitItemIter(fit, includeShip=True))) + return list(set(cls.fitItemIter(fit))) @classmethod - def fitObjectIter(cls, fit, includeShip=True): - if includeShip: - yield fit.ship + def fitObjectIter(cls, fit): + yield fit.ship for mod in fit.modules: if not mod.isEmpty: yield mod - for drone in fit.drones: - yield drone - - for fighter in fit.fighters: - yield fighter - - for implant in fit.implants: - yield implant - - for booster in fit.boosters: - yield booster - - for cargo in fit.cargo: - yield cargo + for container in (fit.drones, fit.fighters, fit.implants, fit.boosters, fit.cargo): + for obj in container: + yield obj @classmethod - def fitItemIter(cls, fit, includeShip=True): - for fitobj in cls.fitObjectIter(fit, includeShip=includeShip): + def fitItemIter(cls, fit): + for fitobj in cls.fitObjectIter(fit): yield fitobj.item charge = getattr(fitobj, 'charge', None) if charge: @@ -213,11 +201,11 @@ class Price: pyfalog.debug("Clearing Prices") db.clearPrices() - def findCheaperReplacements(self, callback, fit, includeBetter=False, fetchTimeout=10): + def findCheaperReplacements(self, items, callback, includeBetter=False, fetchTimeout=10): sMkt = Market.getInstance() potential = {} # All possible item replacements - for item in self.fitItemIter(fit, includeShip=False): + for item in items: if item in potential: continue itemRepls = sMkt.getReplacements(item, includeBetter=includeBetter) @@ -225,7 +213,7 @@ class Price: potential[item] = itemRepls itemsToFetch = {i for i in chain(potential.keys(), *potential.values())} - def cb(): + def cb(requests): # Decide what we are going to replace actual = {} # Items which should be replaced for replacee, replacers in potential.items(): From b9e68504ed8e52ae961712cdfba4d84cfb2d5e90 Mon Sep 17 00:00:00 2001 From: DarkPhoenix Date: Mon, 25 Feb 2019 08:35:35 +0300 Subject: [PATCH 22/88] Add support for multibuy price optimization option --- gui/mainFrame.py | 54 +++++++++++++++++++++++----------------- service/port/dna.py | 9 +++++-- service/port/efs.py | 8 ++++-- service/port/eft.py | 9 +++++-- service/port/esi.py | 9 +++++-- service/port/multibuy.py | 51 +++++++++++++++++++++++-------------- service/port/port.py | 20 +++++++-------- service/port/xml.py | 10 +++++--- 8 files changed, 107 insertions(+), 63 deletions(-) diff --git a/gui/mainFrame.py b/gui/mainFrame.py index d5bc8f0e9..c56986944 100644 --- a/gui/mainFrame.py +++ b/gui/mainFrame.py @@ -699,29 +699,29 @@ class MainFrame(wx.Frame): else: self.marketBrowser.search.Focus() - def clipboardEft(self, options): + def exportEft(self, options, callback): fit = db_getFit(self.getActiveFit()) - toClipboard(Port.exportEft(fit, options)) + Port.exportEft(fit, options, callback) - def clipboardDna(self, options): + def exportDna(self, options, callback): fit = db_getFit(self.getActiveFit()) - toClipboard(Port.exportDna(fit)) + Port.exportDna(fit, callback) - def clipboardEsi(self, options): + def exportEsi(self, options, callback): fit = db_getFit(self.getActiveFit()) - toClipboard(Port.exportESI(fit)) + Port.exportESI(fit, callback) - def clipboardXml(self, options): + def exportXml(self, options, callback): fit = db_getFit(self.getActiveFit()) - toClipboard(Port.exportXml(None, fit)) + Port.exportXml(None, fit, callback) - def clipboardMultiBuy(self, options): + def exportMultiBuy(self, options, callback): fit = db_getFit(self.getActiveFit()) - toClipboard(Port.exportMultiBuy(fit, options)) + Port.exportMultiBuy(fit, options, callback) - def clipboardEfs(self, options): + def exportEfs(self, options, callback): fit = db_getFit(self.getActiveFit()) - toClipboard(EfsPort.exportEfs(fit, 0)) + EfsPort.exportEfs(fit, 0, callback) def importFromClipboard(self, event): clipboard = fromClipboard() @@ -739,15 +739,21 @@ class MainFrame(wx.Frame): self._openAfterImport(importData) def exportToClipboard(self, event): - CopySelectDict = {CopySelectDialog.copyFormatEft: self.clipboardEft, - CopySelectDialog.copyFormatXml: self.clipboardXml, - CopySelectDialog.copyFormatDna: self.clipboardDna, - CopySelectDialog.copyFormatEsi: self.clipboardEsi, - CopySelectDialog.copyFormatMultiBuy: self.clipboardMultiBuy, - CopySelectDialog.copyFormatEfs: self.clipboardEfs} + CopySelectDict = {CopySelectDialog.copyFormatEft: self.exportEft, + CopySelectDialog.copyFormatXml: self.exportXml, + CopySelectDialog.copyFormatDna: self.exportDna, + CopySelectDialog.copyFormatEsi: self.exportEsi, + CopySelectDialog.copyFormatMultiBuy: self.exportMultiBuy, + CopySelectDialog.copyFormatEfs: self.exportEfs} dlg = CopySelectDialog(self) btnPressed = dlg.ShowModal() + def killDialog(): + try: + dlg.Destroy() + except RuntimeError: + pyfalog.error("Tried to destroy an object that doesn't exist in .") + if btnPressed == wx.ID_OK: selected = dlg.GetSelected() options = dlg.GetOptions() @@ -755,12 +761,14 @@ class MainFrame(wx.Frame): settings = SettingsProvider.getInstance().getSettings("pyfaExport") settings["format"] = selected settings["options"] = options - CopySelectDict[selected](options.get(selected)) - try: - dlg.Destroy() - except RuntimeError: - pyfalog.error("Tried to destroy an object that doesn't exist in .") + def cb(text): + toClipboard(text) + killDialog() + + CopySelectDict[selected](options.get(selected), callback=cb) + else: + killDialog() def exportSkillsNeeded(self, event): """ Exports skills needed for active fit and active character """ diff --git a/service/port/dna.py b/service/port/dna.py index bc64e9e99..7e310f936 100644 --- a/service/port/dna.py +++ b/service/port/dna.py @@ -123,7 +123,7 @@ def importDna(string): return f -def exportDna(fit): +def exportDna(fit, callback): dna = str(fit.shipID) subsystems = [] # EVE cares which order you put these in mods = OrderedDict() @@ -173,4 +173,9 @@ def exportDna(fit): for charge in charges: dna += ":{0};{1}".format(charge, charges[charge]) - return dna + "::" + text = dna + "::" + + if callback: + callback(text) + else: + return text diff --git a/service/port/efs.py b/service/port/efs.py index c93c7d87d..94e6471f3 100755 --- a/service/port/efs.py +++ b/service/port/efs.py @@ -583,7 +583,7 @@ class EfsPort: return sizeNotFoundMsg @staticmethod - def exportEfs(fit, typeNotFitFlag): + def exportEfs(fit, typeNotFitFlag, callback): sFit = Fit.getInstance() includeShipTypeData = typeNotFitFlag > 0 if includeShipTypeData: @@ -680,4 +680,8 @@ class EfsPort: pyfalog.error(e) dataDict = {"name": fitName + "Fit could not be correctly parsed"} export = json.dumps(dataDict, skipkeys=True) - return export + + if callback: + callback(export) + else: + return export diff --git a/service/port/eft.py b/service/port/eft.py index 8407e3ae7..5dfec9968 100644 --- a/service/port/eft.py +++ b/service/port/eft.py @@ -61,7 +61,7 @@ SLOT_ORDER = (Slot.LOW, Slot.MED, Slot.HIGH, Slot.RIG, Slot.SUBSYSTEM, Slot.SERV OFFLINE_SUFFIX = '/OFFLINE' -def exportEft(fit, options): +def exportEft(fit, options, callback): # EFT formatted export is split in several sections, each section is # separated from another using 2 blank lines. Sections might have several # sub-sections, which are separated by 1 blank line @@ -157,7 +157,12 @@ def exportEft(fit, options): if mutationLines: sections.append('\n'.join(mutationLines)) - return '{}\n\n{}'.format(header, '\n\n\n'.join(sections)) + text = '{}\n\n{}'.format(header, '\n\n\n'.join(sections)) + + if callback: + callback(text) + else: + return text def importEft(lines): diff --git a/service/port/esi.py b/service/port/esi.py index a97480624..9847cbf05 100644 --- a/service/port/esi.py +++ b/service/port/esi.py @@ -54,7 +54,7 @@ INV_FLAG_DRONEBAY = 87 INV_FLAG_FIGHTER = 158 -def exportESI(ofit): +def exportESI(ofit, callback): # A few notes: # max fit name length is 50 characters # Most keys are created simply because they are required, but bogus data is okay @@ -134,7 +134,12 @@ def exportESI(ofit): if len(fit['items']) == 0: raise ESIExportException("Cannot export fitting: module list cannot be empty.") - return json.dumps(fit) + text = json.dumps(fit) + + if callback: + callback(text) + else: + return text def importESI(string): diff --git a/service/port/multibuy.py b/service/port/multibuy.py index 05beaaedc..392b656ed 100644 --- a/service/port/multibuy.py +++ b/service/port/multibuy.py @@ -39,52 +39,65 @@ MULTIBUY_OPTIONS = ( ) -def exportMultiBuy(fit, options): - itemCounts = {} - - def addItem(item, quantity=1): - if item not in itemCounts: - itemCounts[item] = 0 - itemCounts[item] += quantity +def exportMultiBuy(fit, options, callback): + itemAmounts = {} for module in fit.modules: if module.item: # Mutated items are of no use for multibuy if module.isMutated: continue - addItem(module.item) + _addItem(itemAmounts, module.item) if module.charge and options[Options.LOADED_CHARGES.value]: - addItem(module.charge, module.numCharges) + _addItem(itemAmounts, module.charge, module.numCharges) for drone in fit.drones: - addItem(drone.item, drone.amount) + _addItem(itemAmounts, drone.item, drone.amount) for fighter in fit.fighters: - addItem(fighter.item, fighter.amountActive) + _addItem(itemAmounts, fighter.item, fighter.amountActive) if options[Options.CARGO.value]: for cargo in fit.cargo: - addItem(cargo.item, cargo.amount) + _addItem(itemAmounts, cargo.item, cargo.amount) if options[Options.IMPLANTS.value]: for implant in fit.implants: - addItem(implant.item) + _addItem(itemAmounts, implant.item) for booster in fit.boosters: - addItem(booster.item) + _addItem(itemAmounts, booster.item) if options[Options.OPTIMIZE_PRICES.value]: def cb(replacements): - pass + updatedAmounts = {} + for item, itemAmount in itemAmounts.items(): + _addItem(updatedAmounts, replacements.get(item, item), itemAmount) + string = _prepareString(fit.ship.item, updatedAmounts) + callback(string) priceSvc = sPrc.getInstance() - priceSvc.findCheaperReplacements(itemCounts, cb) + priceSvc.findCheaperReplacements(itemAmounts, cb) + else: + string = _prepareString(fit.ship.item, itemAmounts) + if callback: + callback(string) + else: + return string + +def _addItem(container, item, quantity=1): + if item not in container: + container[item] = 0 + container[item] += quantity + + +def _prepareString(shipItem, itemAmounts): exportLines = [] - exportLines.append(fit.ship.item.name) - for item in sorted(itemCounts, key=lambda i: (i.group.category.name, i.group.name, i.name)): - count = itemCounts[item] + exportLines.append(shipItem.name) + for item in sorted(itemAmounts, key=lambda i: (i.group.category.name, i.group.name, i.name)): + count = itemAmounts[item] if count == 1: exportLines.append(item.name) else: diff --git a/service/port/port.py b/service/port/port.py index 8038cab8e..0b2420003 100644 --- a/service/port/port.py +++ b/service/port/port.py @@ -257,8 +257,8 @@ class Port(object): return importEftCfg(shipname, lines, iportuser) @classmethod - def exportEft(cls, fit, options): - return exportEft(fit, options) + def exportEft(cls, fit, options, callback=None): + return exportEft(fit, options, callback=callback) # DNA-related methods @staticmethod @@ -266,8 +266,8 @@ class Port(object): return importDna(string) @staticmethod - def exportDna(fit): - return exportDna(fit) + def exportDna(fit, callback=None): + return exportDna(fit, callback=callback) # ESI-related methods @staticmethod @@ -275,8 +275,8 @@ class Port(object): return importESI(string) @staticmethod - def exportESI(fit): - return exportESI(fit) + def exportESI(fit, callback=None): + return exportESI(fit, callback=callback) # XML-related methods @staticmethod @@ -284,10 +284,10 @@ class Port(object): return importXml(text, iportuser) @staticmethod - def exportXml(iportuser=None, *fits): - return exportXml(iportuser, *fits) + def exportXml(iportuser=None, callback=None, *fits): + return exportXml(iportuser, callback=callback, *fits) # Multibuy-related methods @staticmethod - def exportMultiBuy(fit, options): - return exportMultiBuy(fit, options) + def exportMultiBuy(fit, options, callback=None): + return exportMultiBuy(fit, options, callback=callback) diff --git a/service/port/xml.py b/service/port/xml.py index 432bbcdd8..01da634c2 100644 --- a/service/port/xml.py +++ b/service/port/xml.py @@ -225,14 +225,13 @@ def importXml(text, iportuser): return fit_list -def exportXml(iportuser, *fits): +def exportXml(iportuser, callback, *fits): doc = xml.dom.minidom.Document() fittings = doc.createElement("fittings") # fit count fit_count = len(fits) fittings.setAttribute("count", "%s" % fit_count) doc.appendChild(fittings) - sFit = svcFit.getInstance() for i, fit in enumerate(fits): try: @@ -323,4 +322,9 @@ def exportXml(iportuser, *fits): iportuser, IPortUser.PROCESS_EXPORT | IPortUser.ID_UPDATE, (i, "convert to xml (%s/%s) %s" % (i + 1, fit_count, fit.ship.name)) ) - return doc.toprettyxml() + text = doc.toprettyxml() + + if callback: + callback(text) + else: + return text From ed24e7a2a37fc1b7ad9af78b8242dc38ac7720e6 Mon Sep 17 00:00:00 2001 From: DarkPhoenix Date: Mon, 25 Feb 2019 08:43:27 +0300 Subject: [PATCH 23/88] Add validity override of 2 hours for prices --- eos/saveddata/price.py | 5 ++--- gui/builtinViewColumns/price.py | 2 +- service/port/multibuy.py | 2 +- service/price.py | 21 +++++++++++---------- 4 files changed, 15 insertions(+), 15 deletions(-) diff --git a/eos/saveddata/price.py b/eos/saveddata/price.py index 79f8cd590..0a2a7ce9d 100644 --- a/eos/saveddata/price.py +++ b/eos/saveddata/price.py @@ -49,14 +49,13 @@ class Price(object): self.price = 0 self.status = PriceStatus.initialized - @property - def isValid(self): + def isValid(self, validityOverride=None): # Always attempt to update prices which were just initialized, and prices # of unsupported items (maybe we start supporting them at some point) if self.status in (PriceStatus.initialized, PriceStatus.notSupported): return False elif self.status == PriceStatus.fetchSuccess: - return time() <= self.time + VALIDITY + return time() <= self.time + (validityOverride if validityOverride is not None else VALIDITY) elif self.status == PriceStatus.fetchFail: return time() <= self.time + REREQUEST elif self.status == PriceStatus.fetchTimeout: diff --git a/gui/builtinViewColumns/price.py b/gui/builtinViewColumns/price.py index 6d96fab4a..563d0b1c0 100644 --- a/gui/builtinViewColumns/price.py +++ b/gui/builtinViewColumns/price.py @@ -63,7 +63,7 @@ class Price(ViewColumn): priceObj = stuff.item.price - if not priceObj.isValid: + if not priceObj.isValid(): return False return formatPrice(stuff, priceObj) diff --git a/service/port/multibuy.py b/service/port/multibuy.py index 392b656ed..da2326086 100644 --- a/service/port/multibuy.py +++ b/service/port/multibuy.py @@ -78,7 +78,7 @@ def exportMultiBuy(fit, options, callback): callback(string) priceSvc = sPrc.getInstance() - priceSvc.findCheaperReplacements(itemAmounts, cb) + priceSvc.findCheaperReplacements(itemAmounts, cb, includeBetter=True) else: string = _prepareString(fit.ship.item, itemAmounts) if callback: diff --git a/service/price.py b/service/price.py index f987b8978..06f3936b3 100644 --- a/service/price.py +++ b/service/price.py @@ -66,7 +66,7 @@ class Price: return cls.instance @classmethod - def fetchPrices(cls, prices, fetchTimeout): + def fetchPrices(cls, prices, fetchTimeout, validityOverride): """Fetch all prices passed to this method""" # Dictionary for our price objects @@ -74,7 +74,7 @@ class Price: # Check all provided price objects, and add those we want to update to # dictionary for price in prices: - if not price.isValid: + if not price.isValid(validityOverride): priceMap[price.typeID] = price if not priceMap: @@ -175,7 +175,7 @@ class Price: return item.price.price - def getPrices(self, objitems, callback, fetchTimeout=30, waitforthread=False): + def getPrices(self, objitems, callback, fetchTimeout=30, waitforthread=False, validityOverride=None): """Get prices for multiple typeIDs""" requests = [] sMkt = Market.getInstance() @@ -195,7 +195,7 @@ class Price: if waitforthread: self.priceWorkerThread.setToWait(requests, cb) else: - self.priceWorkerThread.trigger(requests, cb, fetchTimeout) + self.priceWorkerThread.trigger(requests, cb, fetchTimeout, validityOverride) def clearPriceCache(self): pyfalog.debug("Clearing Prices") @@ -226,8 +226,9 @@ class Price: pyfalog.critical("Execution of callback from findCheaperReplacements failed.") pyfalog.critical(e) - # TODO: add validity override - self.getPrices(itemsToFetch, cb, fetchTimeout=fetchTimeout) + # Prices older than 2 hours have to be refetched + validityOverride = 2 * 60 * 60 + self.getPrices(itemsToFetch, cb, fetchTimeout=fetchTimeout, validityOverride=validityOverride) class PriceWorkerThread(threading.Thread): @@ -243,11 +244,11 @@ class PriceWorkerThread(threading.Thread): queue = self.queue while True: # Grab our data - callback, requests, fetchTimeout = queue.get() + callback, requests, fetchTimeout, validityOverride = queue.get() # Grab prices, this is the time-consuming part if len(requests) > 0: - Price.fetchPrices(requests, fetchTimeout) + Price.fetchPrices(requests, fetchTimeout, validityOverride) wx.CallAfter(callback) queue.task_done() @@ -259,8 +260,8 @@ class PriceWorkerThread(threading.Thread): for callback in callbacks: wx.CallAfter(callback) - def trigger(self, prices, callbacks, fetchTimeout): - self.queue.put((callbacks, prices, fetchTimeout)) + def trigger(self, prices, callbacks, fetchTimeout, validityOverride): + self.queue.put((callbacks, prices, fetchTimeout, validityOverride)) def setToWait(self, prices, callback): for price in prices: From 4385b3651fa63c1514939e1ca5c0ee0ea249c57c Mon Sep 17 00:00:00 2001 From: DarkPhoenix Date: Mon, 25 Feb 2019 09:04:59 +0300 Subject: [PATCH 24/88] Attempt to get rid of codacy warnings --- service/marketSources/evemarketdata.py | 3 ++- service/marketSources/evemarketer.py | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/service/marketSources/evemarketdata.py b/service/marketSources/evemarketdata.py index 3bfbc50c2..b592c9067 100644 --- a/service/marketSources/evemarketdata.py +++ b/service/marketSources/evemarketdata.py @@ -40,7 +40,8 @@ class EveMarketData: if priceMap: self.fetchPrices(priceMap, max(fetchTimeout / 3, 2)) - def fetchPrices(self, priceMap, fetchTimeout, system=None): + @staticmethod + def fetchPrices(priceMap, fetchTimeout, system=None): params = {"type_ids": ','.join(str(typeID) for typeID in priceMap)} if system is not None: params["system_id"] = system diff --git a/service/marketSources/evemarketer.py b/service/marketSources/evemarketer.py index 1c4d08f1a..6d85380ab 100644 --- a/service/marketSources/evemarketer.py +++ b/service/marketSources/evemarketer.py @@ -40,7 +40,8 @@ class EveMarketer: if priceMap: self.fetchPrices(priceMap, max(fetchTimeout / 3, 2)) - def fetchPrices(self, priceMap, fetchTimeout, system=None): + @staticmethod + def fetchPrices(priceMap, fetchTimeout, system=None): params = {"typeid": {typeID for typeID in priceMap}} if system is not None: params["usesystem"] = system From d9941945e0daa8a229a284841e7b1b3e2c087a9e Mon Sep 17 00:00:00 2001 From: DarkPhoenix Date: Thu, 28 Feb 2019 00:12:53 +0300 Subject: [PATCH 25/88] Add method which supposedly will update fit to optimize its price --- service/fit.py | 1 + service/market.py | 2 +- service/price.py | 27 +++++++++++++++++++++++++-- 3 files changed, 27 insertions(+), 3 deletions(-) diff --git a/service/fit.py b/service/fit.py index 035bb50ee..6271287d4 100644 --- a/service/fit.py +++ b/service/fit.py @@ -36,6 +36,7 @@ from eos.saveddata.ship import Ship as es_Ship from service.character import Character from service.damagePattern import DamagePattern from service.fitDeprecated import FitDeprecated +from service.price import Price from service.settings import SettingsProvider from utils.deprecated import deprecated diff --git a/service/market.py b/service/market.py index 18792dc2f..384efad82 100644 --- a/service/market.py +++ b/service/market.py @@ -796,7 +796,7 @@ class Market(object): filtered = set([item for item in items if self.getMetaGroupIdByItem(item) in metas]) return filtered - def getReplacements(self, identity, includeBetter=False): + def getReplacements(self, identity, includeBetter): item = self.getItem(identity) # We already store needed type IDs in database replTypeIDs = {int(i) for i in item.replaceSame.split(",") if i} diff --git a/service/price.py b/service/price.py index 06f3936b3..558e59760 100644 --- a/service/price.py +++ b/service/price.py @@ -201,14 +201,14 @@ class Price: pyfalog.debug("Clearing Prices") db.clearPrices() - def findCheaperReplacements(self, items, callback, includeBetter=False, fetchTimeout=10): + def findCheaperReplacements(self, items, callback, includeBetter, fetchTimeout=10): sMkt = Market.getInstance() potential = {} # All possible item replacements for item in items: if item in potential: continue - itemRepls = sMkt.getReplacements(item, includeBetter=includeBetter) + itemRepls = sMkt.getReplacements(item, includeBetter) if itemRepls: potential[item] = itemRepls itemsToFetch = {i for i in chain(potential.keys(), *potential.values())} @@ -230,6 +230,29 @@ class Price: validityOverride = 2 * 60 * 60 self.getPrices(itemsToFetch, cb, fetchTimeout=fetchTimeout, validityOverride=validityOverride) + def optimizeFitPrice(self, fit, callback, includeBetter, fetchTimeout=10): + + def cb(replacementMap): + changes = False + for fitobj in self.fitObjectIter(fit): + if fitobj.item in replacementMap: + fitobj.item = replacementMap[fitobj.item] + changes = True + charge = getattr(fitobj, 'charge', None) + if charge and charge in replacementMap: + fitobj.charge = replacementMap[charge] + changes = True + if changes: + Fit.getInstance().refreshFit(fit.ID) + try: + callback() + except Exception as e: + pyfalog.critical("Execution of callback from optimizeFitPrice failed.") + pyfalog.critical(e) + + fitItems = {i for i in self.fitItemIter(fit) if i is not fit.ship.item} + self.findCheaperReplacements(fitItems, cb, includeBetter, fetchTimeout=fetchTimeout) + class PriceWorkerThread(threading.Thread): From 18e03e46c3f5a24cf5997efb317d7d3148f36ddd Mon Sep 17 00:00:00 2001 From: DarkPhoenix Date: Thu, 28 Feb 2019 21:44:04 +0300 Subject: [PATCH 26/88] Wire functionality to menu item Still doesn't work --- gui/mainFrame.py | 14 ++++++++++++++ gui/mainMenuBar.py | 8 ++++---- service/fit.py | 1 - 3 files changed, 18 insertions(+), 5 deletions(-) diff --git a/gui/mainFrame.py b/gui/mainFrame.py index c56986944..bbb30835f 100644 --- a/gui/mainFrame.py +++ b/gui/mainFrame.py @@ -71,6 +71,7 @@ from service.esi import Esi, LoginMethod from service.esiAccess import SsoMode from service.fit import Fit from service.port import EfsPort, IPortUser, Port +from service.price import Price from service.settings import HTMLExportSettings, SettingsProvider from service.update import Update import gui.fitCommands as cmd @@ -519,6 +520,8 @@ class MainFrame(wx.Frame): self.Bind(wx.EVT_MENU, self.saveCharAs, id=menuBar.saveCharAsId) # Save current character self.Bind(wx.EVT_MENU, self.revertChar, id=menuBar.revertCharId) + # Optimize fit price + self.Bind(wx.EVT_MENU, self.optimizeFitPrice, id=menuBar.optimizeFitPrice) # Browse fittings self.Bind(wx.EVT_MENU, self.eveFittings, id=menuBar.eveFittingsId) @@ -666,6 +669,17 @@ class MainFrame(wx.Frame): sChr.revertCharacter(charID) wx.PostEvent(self, GE.CharListUpdated()) + def optimizeFitPrice(self, event): + sPrice = Price.getInstance() + fit = Fit.getInstance().getFit(self.getActiveFit()) + if fit: + # TODO: block/unblock UI while pyfa is working + + def cb(): + pass + + sPrice.optimizeFitPrice(fit, cb, includeBetter=True, fetchTimeout=10) + def AdditionsTabSelect(self, event): selTab = self.additionsSelect.index(event.GetId()) diff --git a/gui/mainMenuBar.py b/gui/mainMenuBar.py index c0a28f1dc..413098b61 100644 --- a/gui/mainMenuBar.py +++ b/gui/mainMenuBar.py @@ -28,8 +28,6 @@ import gui.globalEvents as GE from gui.bitmap_loader import BitmapLoader from logbook import Logger -# from service.crest import Crest -# from service.crest import CrestModes pyfalog = Logger(__name__) @@ -59,6 +57,7 @@ class MainMenuBar(wx.MenuBar): self.importDatabaseDefaultsId = wx.NewId() self.toggleIgnoreRestrictionID = wx.NewId() self.devToolsId = wx.NewId() + self.optimizeFitPrice = wx.NewId() # pheonix: evaluate if this is needed if 'wxMac' in wx.PlatformInfo and wx.VERSION >= (3, 0): @@ -101,6 +100,9 @@ class MainMenuBar(wx.MenuBar): editMenu.Append(self.revertCharId, "Revert Character") editMenu.AppendSeparator() self.ignoreRestrictionItem = editMenu.Append(self.toggleIgnoreRestrictionID, "Ignore Fitting Restrictions") + editMenu.AppendSeparator() + editMenu.Append(self.optimizeFitPrice, "Optimize Fit Price") + # Character menu windowMenu = wx.Menu() @@ -134,8 +136,6 @@ class MainMenuBar(wx.MenuBar): preferencesItem.SetBitmap(BitmapLoader.getBitmap("preferences_small", "gui")) windowMenu.Append(preferencesItem) - # self.sEsi = Crest.getInstance() - # CREST Menu esiMMenu = wx.Menu() self.Append(esiMMenu, "EVE &SSO") diff --git a/service/fit.py b/service/fit.py index 6271287d4..035bb50ee 100644 --- a/service/fit.py +++ b/service/fit.py @@ -36,7 +36,6 @@ from eos.saveddata.ship import Ship as es_Ship from service.character import Character from service.damagePattern import DamagePattern from service.fitDeprecated import FitDeprecated -from service.price import Price from service.settings import SettingsProvider from utils.deprecated import deprecated From 986ae16eafc5659a0681fb6335aa30ab3895a917 Mon Sep 17 00:00:00 2001 From: Ryan Holmes Date: Sat, 2 Mar 2019 21:31:13 -0500 Subject: [PATCH 27/88] Allow global spoolup value to be editable via preferences --- eos/config.py | 1 + ...hipmoduleremotearmormutadaptiverepairer.py | 5 ++-- .../pyfaEnginePreferences.py | 23 +++++++++++++++++++ gui/builtinStatsViews/firepowerViewFull.py | 5 ++-- gui/builtinStatsViews/outgoingViewFull.py | 4 ++-- gui/builtinStatsViews/outgoingViewMinimal.py | 4 ++-- gui/builtinViewColumns/misc.py | 8 +++---- 7 files changed, 36 insertions(+), 14 deletions(-) diff --git a/eos/config.py b/eos/config.py index c6c53f748..a570a1926 100644 --- a/eos/config.py +++ b/eos/config.py @@ -26,6 +26,7 @@ pyfalog.debug("Saveddata connection string: {0}", saveddata_connectionstring) settings = { "useStaticAdaptiveArmorHardener": False, "strictSkillLevels": True, + "globalDefaultSpoolupPercentage": 1.0 } # Autodetect path, only change if the autodetection bugs out. diff --git a/eos/effects/shipmoduleremotearmormutadaptiverepairer.py b/eos/effects/shipmoduleremotearmormutadaptiverepairer.py index ec98c1e23..29d52fb47 100644 --- a/eos/effects/shipmoduleremotearmormutadaptiverepairer.py +++ b/eos/effects/shipmoduleremotearmormutadaptiverepairer.py @@ -5,7 +5,7 @@ from eos.utils.spoolSupport import SpoolType, SpoolOptions, calculateSpoolup, resolveSpoolOptions - +import eos.config type = "projected", "active" runTime = "late" @@ -17,8 +17,7 @@ def handler(fit, container, context, **kwargs): cycleTime = container.getModifiedItemAttr("duration") / 1000.0 repSpoolMax = container.getModifiedItemAttr("repairMultiplierBonusMax") repSpoolPerCycle = container.getModifiedItemAttr("repairMultiplierBonusPerCycle") - # TODO: fetch spoolup option - defaultSpoolValue = 1 + defaultSpoolValue = eos.config.settings['globalDefaultSpoolupPercentage'] spoolType, spoolAmount = resolveSpoolOptions(SpoolOptions(SpoolType.SCALE, defaultSpoolValue, False), container) rps = repAmountBase * (1 + calculateSpoolup(repSpoolMax, repSpoolPerCycle, cycleTime, spoolType, spoolAmount)[0]) / cycleTime rpsPreSpool = repAmountBase * (1 + calculateSpoolup(repSpoolMax, repSpoolPerCycle, cycleTime, SpoolType.SCALE, 0)[0]) / cycleTime diff --git a/gui/builtinPreferenceViews/pyfaEnginePreferences.py b/gui/builtinPreferenceViews/pyfaEnginePreferences.py index c41921393..fe5bcc5cb 100644 --- a/gui/builtinPreferenceViews/pyfaEnginePreferences.py +++ b/gui/builtinPreferenceViews/pyfaEnginePreferences.py @@ -8,6 +8,7 @@ import gui.globalEvents as GE from gui.preferenceView import PreferenceView from service.settings import EOSSettings import gui.mainFrame +from wx.lib.intctrl import IntCtrl logger = logging.getLogger(__name__) @@ -61,6 +62,22 @@ class PFFittingEnginePref(PreferenceView): wx.DefaultPosition, wx.DefaultSize, 0) mainSizer.Add(self.cbUniversalAdaptiveArmorHardener, 0, wx.ALL | wx.EXPAND, 5) + + spoolup_sizer = wx.BoxSizer(wx.HORIZONTAL) + + self.spool_up_label = wx.StaticText(panel, wx.ID_ANY, "Global Default Spoolup Percentage:", wx.DefaultPosition, wx.DefaultSize, 0) + self.spool_up_label.Wrap(-1) + self.spool_up_label.SetCursor(helpCursor) + self.spool_up_label.SetToolTip( + wx.ToolTip('The amount of spoolup to use by default on module which support it. Can be changed on a per-module basis')) + + spoolup_sizer.Add(self.spool_up_label, 0, wx.ALL | wx.ALIGN_CENTER_VERTICAL, 5) + + self.spoolup_value = IntCtrl(panel, min=0, max=100, limited=True) + spoolup_sizer.Add(self.spoolup_value , 0, wx.ALL, 5) + + mainSizer.Add(spoolup_sizer, 0, wx.ALL | wx.EXPAND, 0) + # Future code once new cap sim is implemented ''' self.cbGlobalForceReactivationTimer = wx.CheckBox( panel, wx.ID_ANY, u"Factor in reactivation timer", wx.DefaultPosition, wx.DefaultSize, 0 ) @@ -96,9 +113,15 @@ class PFFittingEnginePref(PreferenceView): self.cbUniversalAdaptiveArmorHardener.SetValue(self.engine_settings.get("useStaticAdaptiveArmorHardener")) self.cbUniversalAdaptiveArmorHardener.Bind(wx.EVT_CHECKBOX, self.OnCBUniversalAdaptiveArmorHardenerChange) + self.spoolup_value.SetValue(int(self.engine_settings.get("globalDefaultSpoolupPercentage") * 100)) + self.spoolup_value.Bind(wx.lib.intctrl.EVT_INT, self.OnSpoolupChange) + panel.SetSizer(mainSizer) panel.Layout() + def OnSpoolupChange(self, event): + self.engine_settings.set("globalDefaultSpoolupPercentage", self.spoolup_value.GetValue() / 100) + def OnCBGlobalForceReloadStateChange(self, event): self.sFit.serviceFittingOptions["useGlobalForceReload"] = self.cbGlobalForceReload.GetValue() fitID = self.mainFrame.getActiveFit() diff --git a/gui/builtinStatsViews/firepowerViewFull.py b/gui/builtinStatsViews/firepowerViewFull.py index 4c773c9f1..c678e0b61 100644 --- a/gui/builtinStatsViews/firepowerViewFull.py +++ b/gui/builtinStatsViews/firepowerViewFull.py @@ -25,7 +25,7 @@ from gui.bitmap_loader import BitmapLoader from gui.utils.numberFormatter import formatAmount, roundToPrec from eos.utils.spoolSupport import SpoolType, SpoolOptions from service.fit import Fit - +import eos.config class FirepowerViewFull(StatsView): name = "firepowerViewFull" @@ -157,8 +157,7 @@ class FirepowerViewFull(StatsView): formatAmount(preSpool, prec, lowest, highest), formatAmount(fullSpool, prec, lowest, highest)) - # TODO: fetch spoolup option - defaultSpoolValue = 1 + defaultSpoolValue = eos.config.settings['globalDefaultSpoolupPercentage'] stats = ( ( "labelFullDpsWeapon", diff --git a/gui/builtinStatsViews/outgoingViewFull.py b/gui/builtinStatsViews/outgoingViewFull.py index 3b6a6ce58..740042b8c 100644 --- a/gui/builtinStatsViews/outgoingViewFull.py +++ b/gui/builtinStatsViews/outgoingViewFull.py @@ -23,6 +23,7 @@ from gui.statsView import StatsView from gui.bitmap_loader import BitmapLoader from gui.utils.numberFormatter import formatAmount, roundToPrec from eos.utils.spoolSupport import SpoolType, SpoolOptions +import eos.config stats = [ @@ -101,8 +102,7 @@ class OutgoingViewFull(StatsView): formatAmount(preSpool, prec, lowest, highest), formatAmount(fullSpool, prec, lowest, highest)) - # TODO: fetch spoolup option - defaultSpoolValue = 1 + defaultSpoolValue = eos.config.settings['globalDefaultSpoolupPercentage'] counter = 0 for labelName, labelDesc, valueFormat, image, tooltip, val, preSpoolVal, fullSpoolVal, prec, lowest, highest in stats: label = getattr(self, labelName) diff --git a/gui/builtinStatsViews/outgoingViewMinimal.py b/gui/builtinStatsViews/outgoingViewMinimal.py index 055a65e9e..4ed86831f 100644 --- a/gui/builtinStatsViews/outgoingViewMinimal.py +++ b/gui/builtinStatsViews/outgoingViewMinimal.py @@ -22,6 +22,7 @@ import wx from gui.statsView import StatsView from gui.utils.numberFormatter import formatAmount, roundToPrec from eos.utils.spoolSupport import SpoolType, SpoolOptions +import eos.config stats = [ @@ -100,8 +101,7 @@ class OutgoingViewMinimal(StatsView): formatAmount(preSpool, prec, lowest, highest), formatAmount(fullSpool, prec, lowest, highest)) - # TODO: fetch spoolup option - defaultSpoolValue = 1 + defaultSpoolValue = eos.config.settings['globalDefaultSpoolupPercentage'] counter = 0 for labelName, labelDesc, valueFormat, image, tooltip, val, preSpoolVal, fullSpoolVal, prec, lowest, highest in stats: label = getattr(self, labelName) diff --git a/gui/builtinViewColumns/misc.py b/gui/builtinViewColumns/misc.py index e9bff3d56..24c5d7a55 100644 --- a/gui/builtinViewColumns/misc.py +++ b/gui/builtinViewColumns/misc.py @@ -28,6 +28,7 @@ from gui.bitmap_loader import BitmapLoader from gui.utils.numberFormatter import formatAmount from gui.utils.listFormatter import formatList from eos.utils.spoolSupport import SpoolType, SpoolOptions +import eos.config class Miscellanea(ViewColumn): @@ -117,8 +118,8 @@ class Miscellanea(ViewColumn): text = "{0}".format(formatAmount(trackingSpeed, 3, 0, 3)) tooltip = "tracking speed" info.append((text, tooltip)) - # TODO: fetch spoolup option - defaultSpoolValue = 1 + + defaultSpoolValue = eos.config.settings['globalDefaultSpoolupPercentage'] spoolTime = stuff.getSpoolData(spoolOptions=SpoolOptions(SpoolType.SCALE, defaultSpoolValue, False))[1] if spoolTime: text = "{0}s".format(formatAmount(spoolTime, 3, 0, 3)) @@ -339,8 +340,7 @@ class Miscellanea(ViewColumn): tooltip = "Armor repaired per second" return text, tooltip elif itemGroup == "Mutadaptive Remote Armor Repairer": - # TODO: fetch spoolup option - defaultSpoolValue = 1 + defaultSpoolValue = eos.config.settings['globalDefaultSpoolupPercentage'] spoolOptDefault = SpoolOptions(SpoolType.SCALE, defaultSpoolValue, False) spoolOptPre = SpoolOptions(SpoolType.SCALE, 0, True) spoolOptFull = SpoolOptions(SpoolType.SCALE, 1, True) From df80449b0b9e544adf818aec93cf7f64136b349b Mon Sep 17 00:00:00 2001 From: Ryan Holmes Date: Sat, 2 Mar 2019 22:11:55 -0500 Subject: [PATCH 28/88] Simplify the spoolup dialog --- gui/builtinContextMenus/spoolUp.py | 79 +++++++++++++++++++++--------- 1 file changed, 55 insertions(+), 24 deletions(-) diff --git a/gui/builtinContextMenus/spoolUp.py b/gui/builtinContextMenus/spoolUp.py index 0ea4c6253..9fbb78225 100644 --- a/gui/builtinContextMenus/spoolUp.py +++ b/gui/builtinContextMenus/spoolUp.py @@ -34,11 +34,16 @@ class SpoolUp(ContextMenu): while True: dlg = SpoolUpChanger(self.mainFrame, thing) - if dlg.ShowModal() != wx.ID_OK: - break + result = dlg.ShowModal() - type = dlg.spoolChoice.GetClientData(dlg.spoolChoice.GetSelection()) - amount = dlg.input.GetValue() + if result == wx.ID_CANCEL: + break + if result == wx.ID_DEFAULT: + type = None + amount = None + else: + type = SpoolType.CYCLES # dlg.spoolChoice.GetClientData(dlg.spoolChoice.GetSelection()) + amount = dlg.input.GetValue() if type == SpoolType.SCALE: if amount < 0 or amount > 100: @@ -73,37 +78,54 @@ class SpoolUpChanger(wx.Dialog): bSizer2 = wx.BoxSizer(wx.VERTICAL) - text = wx.StaticText(self, wx.ID_ANY, "Type:") - bSizer2.Add(text, 0) + # This code allows the user to select the type of spoolup. Commented out to keep simpple, can introduce an + # text = wx.StaticText(self, wx.ID_ANY, "Type:") + # bSizer2.Add(text, 0) + # + # "advanced" functionality later + # self.spoolChoice = wx.Choice(self, wx.ID_ANY, style=0) + # + # for k, v in self.spoolTypes.items(): + # i = self.spoolChoice.Append(v[0], k) + # if module.spoolType == k: + # self.spoolChoice.SetSelection(i) + # + # self.spoolChoice.Bind(wx.EVT_CHOICE, self.spoolTypeChanged) + # + # bSizer2.Add(self.spoolChoice, 0, wx.TOP | wx.BOTTOM | wx.EXPAND, 5) + # + # self.spoolDesc = wx.StaticText(self, wx.ID_ANY, self.spoolTypes[module.spoolType][1]) - self.spoolChoice = wx.Choice(self, wx.ID_ANY, style=0) - - for k, v in self.spoolTypes.items(): - i = self.spoolChoice.Append(v[0], k) - if module.spoolType == k: - self.spoolChoice.SetSelection(i) - - self.spoolChoice.Bind(wx.EVT_CHOICE, self.spoolTypeChanged) - - - bSizer2.Add(self.spoolChoice, 0, wx.TOP | wx.BOTTOM | wx.EXPAND, 5) - - self.spoolDesc = wx.StaticText(self, wx.ID_ANY, self.spoolTypes[module.spoolType][1]) + self.spoolDesc = wx.StaticText(self, wx.ID_ANY, "Specify the number of cycles that you wish to set the module to") bSizer2.Add(self.spoolDesc, 1) - - text1 = wx.StaticText(self, wx.ID_ANY, "Amount:") - bSizer2.Add(text1, 0, wx.TOP, 10) + # + # text1 = wx.StaticText(self, wx.ID_ANY, "Amount:") + # bSizer2.Add(text1, 0, wx.TOP, 10) bSizer1.Add(bSizer2, 0, wx.ALL, 10) self.input = wx.SpinCtrlDouble(self, min=0, max=1000) - bSizer1.Add(self.input, 0, wx.LEFT | wx.RIGHT | wx.EXPAND, 10) bSizer3 = wx.BoxSizer(wx.VERTICAL) bSizer3.Add(wx.StaticLine(self, wx.ID_ANY), 0, wx.BOTTOM | wx.EXPAND, 15) - bSizer3.Add(self.CreateStdDialogButtonSizer(wx.OK | wx.CANCEL), 0, wx.EXPAND) + bSizerButtons = wx.BoxSizer(wx.HORIZONTAL) + + self.btnRevert = wx.Button(self, wx.ID_DEFAULT, "Reset to Global Default") + self.btnOK = wx.Button(self, wx.ID_OK) + self.btnCancel = wx.Button(self, wx.ID_CANCEL) + + bSizerButtons.Add(self.btnRevert, 0, wx.ALL, 5) + bSizerButtons.AddStretchSpacer() + bSizerButtons.Add(self.btnOK, 0, wx.ALL, 5) + bSizerButtons.Add(self.btnCancel, 0, wx.ALL, 5) + + self.btnCancel.Bind(wx.EVT_BUTTON, self.OnBtnCancel) + self.btnRevert.Bind(wx.EVT_BUTTON, self.OnBtnRevert) + self.btnOK.Bind(wx.EVT_BUTTON, self.OnBtnOk) + + bSizer3.Add(bSizerButtons, 0, wx.EXPAND, 5) bSizer1.Add(bSizer3, 0, wx.ALL | wx.EXPAND, 10) self.input.SetValue(module.spoolAmount or 0) @@ -113,6 +135,15 @@ class SpoolUpChanger(wx.Dialog): self.CenterOnParent() self.Fit() + def OnBtnCancel(self, event): + self.EndModal(wx.ID_CANCEL) + + def OnBtnOk(self, event): + self.EndModal(wx.ID_OK) + + def OnBtnRevert(self, event): + self.EndModal(wx.ID_DEFAULT) + def spoolTypeChanged(self, evt): self.input.Enable(evt.ClientData is not None) self.spoolDesc.SetLabel(self.spoolTypes[evt.ClientData][1]) From b944f27fc86c5661b7b35485f8f54a69d3e34871 Mon Sep 17 00:00:00 2001 From: Ryan Holmes Date: Sat, 2 Mar 2019 22:14:39 -0500 Subject: [PATCH 29/88] tweak --- gui/builtinContextMenus/spoolUp.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gui/builtinContextMenus/spoolUp.py b/gui/builtinContextMenus/spoolUp.py index 9fbb78225..ba901ede4 100644 --- a/gui/builtinContextMenus/spoolUp.py +++ b/gui/builtinContextMenus/spoolUp.py @@ -112,7 +112,7 @@ class SpoolUpChanger(wx.Dialog): bSizerButtons = wx.BoxSizer(wx.HORIZONTAL) - self.btnRevert = wx.Button(self, wx.ID_DEFAULT, "Reset to Global Default") + self.btnRevert = wx.Button(self, wx.ID_DEFAULT, "Reset to Default") self.btnOK = wx.Button(self, wx.ID_OK) self.btnCancel = wx.Button(self, wx.ID_CANCEL) From d96146034a56db2fb04195637b26b0858aaec7fd Mon Sep 17 00:00:00 2001 From: DarkPhoenix Date: Sun, 3 Mar 2019 09:46:27 +0300 Subject: [PATCH 30/88] Fix replacing of modules --- eos/saveddata/module.py | 9 +++++++++ gui/mainFrame.py | 9 +++++---- service/price.py | 19 ++++++++++--------- 3 files changed, 24 insertions(+), 13 deletions(-) diff --git a/eos/saveddata/module.py b/eos/saveddata/module.py index c4c2f0b00..df1048ce3 100644 --- a/eos/saveddata/module.py +++ b/eos/saveddata/module.py @@ -979,6 +979,15 @@ class Module(HandledItem, HandledCharge, ItemAttrShortcut, ChargeAttrShortcut): return copy + def rebase(self, item): + state = self.state + charge = self.charge + Module.__init__(self, item, self.baseItem, self.mutaplasmid) + self.state = state + self.charge = charge + for x in self.mutators.values(): + Mutator(self, x.attribute, x.value) + def __repr__(self): if self.item: return "Module(ID={}, name={}) at {}".format( diff --git a/gui/mainFrame.py b/gui/mainFrame.py index bbb30835f..2aac8eaa1 100644 --- a/gui/mainFrame.py +++ b/gui/mainFrame.py @@ -671,12 +671,13 @@ class MainFrame(wx.Frame): def optimizeFitPrice(self, event): sPrice = Price.getInstance() - fit = Fit.getInstance().getFit(self.getActiveFit()) + fitID = self.getActiveFit() + fit = Fit.getInstance().getFit(fitID) if fit: # TODO: block/unblock UI while pyfa is working - - def cb(): - pass + def cb(changes): + if changes: + wx.PostEvent(self, GE.FitChanged(fitID=fitID)) sPrice.optimizeFitPrice(fit, cb, includeBetter=True, fetchTimeout=10) diff --git a/service/price.py b/service/price.py index 558e59760..447d1112c 100644 --- a/service/price.py +++ b/service/price.py @@ -234,18 +234,19 @@ class Price: def cb(replacementMap): changes = False - for fitobj in self.fitObjectIter(fit): - if fitobj.item in replacementMap: - fitobj.item = replacementMap[fitobj.item] - changes = True - charge = getattr(fitobj, 'charge', None) - if charge and charge in replacementMap: - fitobj.charge = replacementMap[charge] - changes = True + for container in (fit.modules,): + for obj in container: + charge = getattr(obj, 'charge', None) + if charge is not None and charge in replacementMap: + obj.charge = replacementMap[charge] + changes = True + if obj.item in replacementMap: + obj.rebase(replacementMap[obj.item]) + changes = True if changes: Fit.getInstance().refreshFit(fit.ID) try: - callback() + callback(changes) except Exception as e: pyfalog.critical("Execution of callback from optimizeFitPrice failed.") pyfalog.critical(e) From 647c0934510c1323515a21b2bd51126118cd65c7 Mon Sep 17 00:00:00 2001 From: DarkPhoenix Date: Sun, 3 Mar 2019 10:00:23 +0300 Subject: [PATCH 31/88] Add drones and fighters to fit optimization --- eos/saveddata/drone.py | 7 +++++++ eos/saveddata/fighter.py | 11 +++++++++++ service/price.py | 2 +- 3 files changed, 19 insertions(+), 1 deletion(-) diff --git a/eos/saveddata/drone.py b/eos/saveddata/drone.py index 2fec27fc9..65ef5d327 100644 --- a/eos/saveddata/drone.py +++ b/eos/saveddata/drone.py @@ -296,6 +296,13 @@ class Drone(HandledItem, HandledCharge, ItemAttrShortcut, ChargeAttrShortcut): copy.amountActive = self.amountActive return copy + def rebase(self, item): + amount = self.amount + amountActive = self.amountActive + Drone.__init__(self, item) + self.amount = amount + self.amountActive = amountActive + def fits(self, fit): fitDroneGroupLimits = set() for i in range(1, 3): diff --git a/eos/saveddata/fighter.py b/eos/saveddata/fighter.py index 4b929d594..c453f09fc 100644 --- a/eos/saveddata/fighter.py +++ b/eos/saveddata/fighter.py @@ -355,6 +355,17 @@ class Fighter(HandledItem, HandledCharge, ItemAttrShortcut, ChargeAttrShortcut): copyAbility.active = ability.active return copy + def rebase(self, item): + amount = self.amount + active = self.active + abilityEffectStates = {a.effectID: a.active for a in self.abilities} + Fighter.__init__(self, item) + self.amount = amount + self.active = active + for ability in self.abilities: + if ability.effectID in abilityEffectStates: + ability.active = abilityEffectStates[ability.effectID] + def fits(self, fit): # If ships doesn't support this type of fighter, don't add it if fit.getNumSlots(self.slot) == 0: diff --git a/service/price.py b/service/price.py index 447d1112c..6340ffcd8 100644 --- a/service/price.py +++ b/service/price.py @@ -234,7 +234,7 @@ class Price: def cb(replacementMap): changes = False - for container in (fit.modules,): + for container in (fit.modules, fit.drones, fit.fighters): for obj in container: charge = getattr(obj, 'charge', None) if charge is not None and charge in replacementMap: From 2e49aa14196844bbb65ac8c7a6b26ef2a0cc544e Mon Sep 17 00:00:00 2001 From: Ryan Holmes Date: Sun, 3 Mar 2019 08:26:39 -0500 Subject: [PATCH 32/88] #1863 dont attempt to remove character implants --- gui/builtinAdditionPanes/implantView.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/gui/builtinAdditionPanes/implantView.py b/gui/builtinAdditionPanes/implantView.py index 0b8521cea..8ea9495dd 100644 --- a/gui/builtinAdditionPanes/implantView.py +++ b/gui/builtinAdditionPanes/implantView.py @@ -204,7 +204,10 @@ class ImplantDisplay(d.Display): def removeImplant(self, implant): fitID = self.mainFrame.getActiveFit() - self.mainFrame.command.Submit(cmd.GuiRemoveImplantCommand(fitID, self.original.index(implant))) + sFit = Fit.getInstance() + fit = sFit.getFit(fitID) + if fit.implantLocation == ImplantLocation.FIT: + self.mainFrame.command.Submit(cmd.GuiRemoveImplantCommand(fitID, self.original.index(implant))) def click(self, event): event.Skip() From b03860e765a88619576222f3f22552ce4ad670f1 Mon Sep 17 00:00:00 2001 From: DarkPhoenix Date: Sun, 3 Mar 2019 19:57:59 +0300 Subject: [PATCH 33/88] Add implant, booster and cargo support to fit price optimization --- eos/saveddata/booster.py | 15 +++++++++++++++ eos/saveddata/cargo.py | 10 ++++++++++ eos/saveddata/implant.py | 5 +++++ service/price.py | 2 +- 4 files changed, 31 insertions(+), 1 deletion(-) diff --git a/eos/saveddata/booster.py b/eos/saveddata/booster.py index 4c6bf23db..3258fcfe3 100644 --- a/eos/saveddata/booster.py +++ b/eos/saveddata/booster.py @@ -30,6 +30,7 @@ pyfalog = Logger(__name__) class Booster(HandledItem, ItemAttrShortcut): + def __init__(self, item): self.__item = item @@ -147,3 +148,17 @@ class Booster(HandledItem, ItemAttrShortcut): copyEffect.active = sideEffect.active return copy + + def rebase(self, item): + active = self.active + sideEffectStates = {se.effectID: se.active for se in self.sideEffects} + Booster.__init__(self, item) + self.active = active + for sideEffect in self.sideEffects: + if sideEffect.effectID in sideEffectStates: + sideEffect.active = sideEffectStates[sideEffect.effectID] + + def __repr__(self): + return "Booster(ID={}, name={}) at {}".format( + self.item.ID, self.item.name, hex(id(self)) + ) diff --git a/eos/saveddata/cargo.py b/eos/saveddata/cargo.py index 11c017370..3fbfe29f0 100644 --- a/eos/saveddata/cargo.py +++ b/eos/saveddata/cargo.py @@ -89,3 +89,13 @@ class Cargo(HandledItem, ItemAttrShortcut): copy = Cargo(self.item) copy.amount = self.amount return copy + + def rebase(self, item): + amount = self.amount + Cargo.__init__(self, item) + self.amount = amount + + def __repr__(self): + return "Cargo(ID={}, name={}) at {}".format( + self.item.ID, self.item.name, hex(id(self)) + ) diff --git a/eos/saveddata/implant.py b/eos/saveddata/implant.py index d61b9c43b..5da13d28c 100644 --- a/eos/saveddata/implant.py +++ b/eos/saveddata/implant.py @@ -115,6 +115,11 @@ class Implant(HandledItem, ItemAttrShortcut): copy.active = self.active return copy + def rebase(self, item): + active = self.active + Implant.__init__(self, item) + self.active = active + def __repr__(self): return "Implant(ID={}, name={}) at {}".format( self.item.ID, self.item.name, hex(id(self)) diff --git a/service/price.py b/service/price.py index 6340ffcd8..8595cef26 100644 --- a/service/price.py +++ b/service/price.py @@ -234,7 +234,7 @@ class Price: def cb(replacementMap): changes = False - for container in (fit.modules, fit.drones, fit.fighters): + for container in (fit.modules, fit.drones, fit.fighters, fit.implants, fit.boosters, fit.cargo): for obj in container: charge = getattr(obj, 'charge', None) if charge is not None and charge in replacementMap: From 4d31c2a2a3e3220b0e77d36c3debf0e067481e43 Mon Sep 17 00:00:00 2001 From: DarkPhoenix Date: Sun, 3 Mar 2019 21:06:12 +0300 Subject: [PATCH 34/88] Change the way we generate replacements and update database --- eve.db | Bin 16683008 -> 16715776 bytes scripts/jsonToSql.py | 34 ++++++++++++++++++++++++---------- 2 files changed, 24 insertions(+), 10 deletions(-) diff --git a/eve.db b/eve.db index bd5c17a370135143d4e63bf31b0686083157c1b3..ba539d66cfc819f7de1f15b84fd3f86480a508d3 100644 GIT binary patch delta 138188 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 delta 105254 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 Date: Sun, 3 Mar 2019 23:39:55 +0300 Subject: [PATCH 35/88] Fix em- implant series replacement --- scripts/jsonToSql.py | 1 + 1 file changed, 1 insertion(+) diff --git a/scripts/jsonToSql.py b/scripts/jsonToSql.py index b8697b733..0e591401d 100755 --- a/scripts/jsonToSql.py +++ b/scripts/jsonToSql.py @@ -272,6 +272,7 @@ def main(db, json_path): attrHig[row['attributeID']] = bool(row['highIsGood']) # As CCP data is not really consistent, do some overrides attrHig[4] = False # mass + attrHig[151] = False # agilityBonus attrHig[161] = False # volume # Format: {group ID: category ID} groupCategories = {} From 8641c41da602ce74733b6ec1b3e0e5733525d6f6 Mon Sep 17 00:00:00 2001 From: DarkPhoenix Date: Mon, 4 Mar 2019 18:35:06 +0300 Subject: [PATCH 36/88] Add bunch of overrides to make sure hardwirings are upgraded as expected --- eve.db | Bin 16715776 -> 16723968 bytes scripts/jsonToSql.py | 43 +++++++++++++++++++++++++++++++++++-------- service/price.py | 32 ++++++++++++++++---------------- 3 files changed, 51 insertions(+), 24 deletions(-) diff --git a/eve.db b/eve.db index ba539d66cfc819f7de1f15b84fd3f86480a508d3..a63d57b6fe7b85dfda245d7afd1e617d0d8e46ca 100644 GIT binary patch delta 99162 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�fvH~w*iE6`W!YDAP+h>Y2YuUG^3 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 WNdF;yLi&vK1?lUqf}7v0)&CFSWVspu delta 93363 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 diff --git a/scripts/jsonToSql.py b/scripts/jsonToSql.py index 0e591401d..e700cdfcb 100755 --- a/scripts/jsonToSql.py +++ b/scripts/jsonToSql.py @@ -194,14 +194,16 @@ def main(db, json_path): if all(attrs1[aid] == attrs2[aid] for aid in attrs1): return 2 if all( - (attrs1[aid] <= attrs2[aid] and not attrHig[aid]) or - (attrs1[aid] >= attrs2[aid] and attrHig[aid]) + (attrs1[aid] <= attrs2[aid] and attrHig[aid] == 0) or + (attrs1[aid] >= attrs2[aid] and attrHig[aid] == 1) or + (attrs1[aid] == attrs2[aid] and attrHig[aid] == 2) for aid in attrs1 ): return 3 if all( - (attrs2[aid] <= attrs1[aid] and not attrHig[aid]) or - (attrs2[aid] >= attrs1[aid] and attrHig[aid]) + (attrs2[aid] <= attrs1[aid] and attrHig[aid] == 0) or + (attrs2[aid] >= attrs1[aid] and attrHig[aid] == 1) or + (attrs2[aid] == attrs1[aid] and attrHig[aid] == 2) for aid in attrs1 ): return 4 @@ -269,11 +271,36 @@ def main(db, json_path): # Format: {type ID: 0 if high is bad, 1 if high is good, 2 if neither} attrHig = {} for row in tables['dgmattribs']: - attrHig[row['attributeID']] = bool(row['highIsGood']) + attrHig[row['attributeID']] = 1 if row['highIsGood'] else 0 # As CCP data is not really consistent, do some overrides - attrHig[4] = False # mass - attrHig[151] = False # agilityBonus - attrHig[161] = False # volume + attrHig[4] = 0 # mass + # Sometimes high is positive, sometimes it's not (e.g. AB cycle bonus vs smartbomb cycle bonus) + attrHig[66] = 2 # durationBonus + # Sometimes high is positive, sometimes it's not (e.g. invuln cycle vs rep cycle) + attrHig[73] = 2 # duration + attrHig[151] = 0 # agilityBonus + attrHig[161] = 0 # volume + attrHig[293] = 0 # rofBonus + attrHig[310] = 0 # cpuNeedBonus + attrHig[312] = 0 # durationSkillBonus + attrHig[314] = 0 # capRechargeBonus + attrHig[317] = 0 # capNeedBonus + attrHig[319] = 0 # warpCapacitorNeedBonus + attrHig[323] = 0 # powerNeedBonus + attrHig[331] = 2 # implantness + attrHig[338] = 0 # rechargeratebonus + attrHig[440] = 0 # manufacturingTimeBonus + attrHig[441] = 0 # turretSpeeBonus + attrHig[452] = 0 # copySpeedBonus + attrHig[453] = 0 # blueprintmanufactureTimeBonus + attrHig[468] = 0 # mineralNeedResearchBonus + attrHig[780] = 0 # iceHarvestCycleBonus + attrHig[848] = 0 # aoeCloudSizeBonus + attrHig[927] = 0 # miningUpgradeCPUReductionBonus + attrHig[1087] = 2 # boosterness + attrHig[1125] = 0 # boosterChanceBonus + attrHig[1126] = 0 # boosterAttributeModifier + attrHig[1156] = 0 # maxScanDeviationModifier # Format: {group ID: category ID} groupCategories = {} for row in tables['evegroups']: diff --git a/service/price.py b/service/price.py index 8595cef26..c4b9a3cc9 100644 --- a/service/price.py +++ b/service/price.py @@ -204,44 +204,44 @@ class Price: def findCheaperReplacements(self, items, callback, includeBetter, fetchTimeout=10): sMkt = Market.getInstance() - potential = {} # All possible item replacements + replacementsAll = {} # All possible item replacements for item in items: - if item in potential: + if item in replacementsAll: continue itemRepls = sMkt.getReplacements(item, includeBetter) if itemRepls: - potential[item] = itemRepls - itemsToFetch = {i for i in chain(potential.keys(), *potential.values())} + replacementsAll[item] = itemRepls + itemsToFetch = {i for i in chain(replacementsAll.keys(), *replacementsAll.values())} - def cb(requests): + def makeCheapMapCb(requests): # Decide what we are going to replace - actual = {} # Items which should be replaced - for replacee, replacers in potential.items(): + replacementsCheaper = {} # Items which should be replaced + for replacee, replacers in replacementsAll.items(): replacer = min(replacers, key=lambda i: i.price.price or math.inf) if (replacer.price.price or math.inf) < (replacee.price.price or math.inf): - actual[replacee] = replacer + replacementsCheaper[replacee] = replacer try: - callback(actual) + callback(replacementsCheaper) except Exception as e: pyfalog.critical("Execution of callback from findCheaperReplacements failed.") pyfalog.critical(e) # Prices older than 2 hours have to be refetched validityOverride = 2 * 60 * 60 - self.getPrices(itemsToFetch, cb, fetchTimeout=fetchTimeout, validityOverride=validityOverride) + self.getPrices(itemsToFetch, makeCheapMapCb, fetchTimeout=fetchTimeout, validityOverride=validityOverride) def optimizeFitPrice(self, fit, callback, includeBetter, fetchTimeout=10): - def cb(replacementMap): + def updateFitCb(replacementsCheaper): changes = False for container in (fit.modules, fit.drones, fit.fighters, fit.implants, fit.boosters, fit.cargo): for obj in container: charge = getattr(obj, 'charge', None) - if charge is not None and charge in replacementMap: - obj.charge = replacementMap[charge] + if charge is not None and charge in replacementsCheaper: + obj.charge = replacementsCheaper[charge] changes = True - if obj.item in replacementMap: - obj.rebase(replacementMap[obj.item]) + if obj.item in replacementsCheaper: + obj.rebase(replacementsCheaper[obj.item]) changes = True if changes: Fit.getInstance().refreshFit(fit.ID) @@ -252,7 +252,7 @@ class Price: pyfalog.critical(e) fitItems = {i for i in self.fitItemIter(fit) if i is not fit.ship.item} - self.findCheaperReplacements(fitItems, cb, includeBetter, fetchTimeout=fetchTimeout) + self.findCheaperReplacements(fitItems, updateFitCb, includeBetter, fetchTimeout=fetchTimeout) class PriceWorkerThread(threading.Thread): From 257df58c3a0a116c180190f85cea18101a27f6ce Mon Sep 17 00:00:00 2001 From: DarkPhoenix Date: Wed, 6 Mar 2019 00:43:19 +0300 Subject: [PATCH 37/88] Get rid of idea of "better" replacements It turned out to be maintenance hell and it's just hard to find all the dual-action attributes (like crash vs GD sig attr, AB cycle time modification vs rep cycle time modification etc) --- eos/db/gamedata/item.py | 3 +- eos/saveddata/module.py | 3 +- eve.db | Bin 16723968 -> 16621568 bytes gui/mainFrame.py | 2 +- scripts/jsonToSql.py | 98 +++++++-------------------------------- service/market.py | 6 +-- service/port/multibuy.py | 6 +-- service/price.py | 21 +++++---- 8 files changed, 38 insertions(+), 101 deletions(-) diff --git a/eos/db/gamedata/item.py b/eos/db/gamedata/item.py index fd7be477d..2683a41e9 100644 --- a/eos/db/gamedata/item.py +++ b/eos/db/gamedata/item.py @@ -41,8 +41,7 @@ items_table = Table("invtypes", gamedata_meta, Column("iconID", Integer), Column("graphicID", Integer), Column("groupID", Integer, ForeignKey("invgroups.groupID"), index=True), - Column("replaceSame", String), - Column("replaceBetter", String)) + Column("replacements", String)) from .metaGroup import metatypes_table # noqa from .traits import traits_table # noqa diff --git a/eos/saveddata/module.py b/eos/saveddata/module.py index df1048ce3..338c13676 100644 --- a/eos/saveddata/module.py +++ b/eos/saveddata/module.py @@ -984,7 +984,8 @@ class Module(HandledItem, HandledCharge, ItemAttrShortcut, ChargeAttrShortcut): charge = self.charge Module.__init__(self, item, self.baseItem, self.mutaplasmid) self.state = state - self.charge = charge + if self.isValidCharge(charge): + self.charge = charge for x in self.mutators.values(): Mutator(self, x.attribute, x.value) diff --git a/eve.db b/eve.db index a63d57b6fe7b85dfda245d7afd1e617d0d8e46ca..aa3cfee9c30be73312a27401b55a270d47c1d7db 100644 GIT binary patch delta 662272 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%0AtJwF*|IbZ=_Sq0 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 z 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 Q)xloCUgp;})a&8@193nqKmY&$ delta 760186 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 urA2gxn3~#0Lt>l@5?_$5tlAG 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

6D7q@z;2?r|OT8{R)1 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

fslT;nr(Ip8GPMeW$yP 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 attrs2[aid] and attrHig[aid] == 1) or - (attrs1[aid] == attrs2[aid] and attrHig[aid] == 2) - for aid in attrs1 - ): - return 3 - if all( - (attrs2[aid] <= attrs1[aid] and attrHig[aid] == 0) or - (attrs2[aid] >= attrs1[aid] and attrHig[aid] == 1) or - (attrs2[aid] == attrs1[aid] and attrHig[aid] == 2) - for aid in attrs1 - ): - return 4 - return 1 + return True + return False print('finding replacements') skillReqAttribs = { @@ -240,13 +219,15 @@ def main(db, json_path): # Ignore these attributes for comparison purposes elif attributeID in ( # We do not need mass as it affects final ship stats only when carried by ship itself - # (and we're not going to replace ships), but it's wildly inconsistent for other items + # (and we're not going to replace ships), but it's wildly inconsistent for other items, + # which otherwise would be the same 4, # mass 124, # mainColor 162, # radius 422, # techLevel 633, # metaLevel - 1692 # metaGroupID + 1692, # metaGroupID + 1768 # typeColorScheme ): continue else: @@ -267,40 +248,6 @@ def main(db, json_path): except (KeyError, ValueError): continue typeSkillReqs[skillType] = skillLevel - # Get data on attribute highIsGood flag - # Format: {type ID: 0 if high is bad, 1 if high is good, 2 if neither} - attrHig = {} - for row in tables['dgmattribs']: - attrHig[row['attributeID']] = 1 if row['highIsGood'] else 0 - # As CCP data is not really consistent, do some overrides - attrHig[4] = 0 # mass - # Sometimes high is positive, sometimes it's not (e.g. AB cycle bonus vs smartbomb cycle bonus) - attrHig[66] = 2 # durationBonus - # Sometimes high is positive, sometimes it's not (e.g. invuln cycle vs rep cycle) - attrHig[73] = 2 # duration - attrHig[151] = 0 # agilityBonus - attrHig[161] = 0 # volume - attrHig[293] = 0 # rofBonus - attrHig[310] = 0 # cpuNeedBonus - attrHig[312] = 0 # durationSkillBonus - attrHig[314] = 0 # capRechargeBonus - attrHig[317] = 0 # capNeedBonus - attrHig[319] = 0 # warpCapacitorNeedBonus - attrHig[323] = 0 # powerNeedBonus - attrHig[331] = 2 # implantness - attrHig[338] = 0 # rechargeratebonus - attrHig[440] = 0 # manufacturingTimeBonus - attrHig[441] = 0 # turretSpeeBonus - attrHig[452] = 0 # copySpeedBonus - attrHig[453] = 0 # blueprintmanufactureTimeBonus - attrHig[468] = 0 # mineralNeedResearchBonus - attrHig[780] = 0 # iceHarvestCycleBonus - attrHig[848] = 0 # aoeCloudSizeBonus - attrHig[927] = 0 # miningUpgradeCPUReductionBonus - attrHig[1087] = 2 # boosterness - attrHig[1125] = 0 # boosterChanceBonus - attrHig[1126] = 0 # boosterAttributeModifier - attrHig[1156] = 0 # maxScanDeviationModifier # Format: {group ID: category ID} groupCategories = {} for row in tables['evegroups']: @@ -338,28 +285,17 @@ def main(db, json_path): groupData = groupedData.setdefault((typeGroup, typeSkillreqs, typeEffects), []) groupData.append((typeID, typeAttribs)) # Format: {type ID: set(type IDs)} - same = {} - better = {} - # Now, go through composed groups and for every item within it find items which are - # the same and which are better + replacements = {} + # Now, go through composed groups and for every item within it + # find items which are the same for groupData in groupedData.values(): for type1, type2 in itertools.combinations(groupData, 2): - comparisonResult = compareAttrs(type1[1], type2[1], attrHig) - # Equal - if comparisonResult == 2: - same.setdefault(type1[0], set()).add(type2[0]) - same.setdefault(type2[0], set()).add(type1[0]) - # First is better - elif comparisonResult == 3: - better.setdefault(type2[0], set()).add(type1[0]) - # Second is better - elif comparisonResult == 4: - better.setdefault(type1[0], set()).add(type2[0]) + if compareAttrs(type1[1], type2[1]): + replacements.setdefault(type1[0], set()).add(type2[0]) + replacements.setdefault(type2[0], set()).add(type1[0]) # Put this data into types table so that normal process hooks it up for row in tables['evetypes']: - typeID = row['typeID'] - row['replaceSame'] = ','.join('{}'.format(tid) for tid in sorted(same.get(typeID, ()))) - row['replaceBetter'] = ','.join('{}'.format(tid) for tid in sorted(better.get(typeID, ()))) + row['replacements'] = ','.join('{}'.format(tid) for tid in sorted(replacements.get(row['typeID'], ()))) data = {} diff --git a/service/market.py b/service/market.py index 384efad82..085fef624 100644 --- a/service/market.py +++ b/service/market.py @@ -796,12 +796,10 @@ class Market(object): filtered = set([item for item in items if self.getMetaGroupIdByItem(item) in metas]) return filtered - def getReplacements(self, identity, includeBetter): + def getReplacements(self, identity): item = self.getItem(identity) # We already store needed type IDs in database - replTypeIDs = {int(i) for i in item.replaceSame.split(",") if i} - if includeBetter: - replTypeIDs.update({int(i) for i in item.replaceBetter.split(",") if i}) + replTypeIDs = {int(i) for i in item.replacements.split(",") if i} if not replTypeIDs: return () # As replacements were generated without keeping track which items were published, diff --git a/service/port/multibuy.py b/service/port/multibuy.py index da2326086..6c4074e82 100644 --- a/service/port/multibuy.py +++ b/service/port/multibuy.py @@ -70,15 +70,15 @@ def exportMultiBuy(fit, options, callback): if options[Options.OPTIMIZE_PRICES.value]: - def cb(replacements): + def processCheaperMapCb(replacementsCheaper): updatedAmounts = {} for item, itemAmount in itemAmounts.items(): - _addItem(updatedAmounts, replacements.get(item, item), itemAmount) + _addItem(updatedAmounts, replacementsCheaper.get(item, item), itemAmount) string = _prepareString(fit.ship.item, updatedAmounts) callback(string) priceSvc = sPrc.getInstance() - priceSvc.findCheaperReplacements(itemAmounts, cb, includeBetter=True) + priceSvc.findCheaperReplacements(itemAmounts, processCheaperMapCb) else: string = _prepareString(fit.ship.item, itemAmounts) if callback: diff --git a/service/price.py b/service/price.py index c4b9a3cc9..0f0f11ce6 100644 --- a/service/price.py +++ b/service/price.py @@ -201,14 +201,14 @@ class Price: pyfalog.debug("Clearing Prices") db.clearPrices() - def findCheaperReplacements(self, items, callback, includeBetter, fetchTimeout=10): + def findCheaperReplacements(self, items, callback, fetchTimeout=10): sMkt = Market.getInstance() replacementsAll = {} # All possible item replacements for item in items: if item in replacementsAll: continue - itemRepls = sMkt.getReplacements(item, includeBetter) + itemRepls = sMkt.getReplacements(item) if itemRepls: replacementsAll[item] = itemRepls itemsToFetch = {i for i in chain(replacementsAll.keys(), *replacementsAll.values())} @@ -230,16 +230,19 @@ class Price: validityOverride = 2 * 60 * 60 self.getPrices(itemsToFetch, makeCheapMapCb, fetchTimeout=fetchTimeout, validityOverride=validityOverride) - def optimizeFitPrice(self, fit, callback, includeBetter, fetchTimeout=10): + def optimizeFitPrice(self, fit, callback, fetchTimeout=10): def updateFitCb(replacementsCheaper): changes = False - for container in (fit.modules, fit.drones, fit.fighters, fit.implants, fit.boosters, fit.cargo): + for mod in fit.modules: + if mod.item in replacementsCheaper: + mod.rebase(replacementsCheaper[mod.item]) + changes = True + if mod.charge in replacementsCheaper: + mod.charge = replacementsCheaper[mod.charge] + changes = True + for container in (fit.drones, fit.fighters, fit.implants, fit.boosters, fit.cargo): for obj in container: - charge = getattr(obj, 'charge', None) - if charge is not None and charge in replacementsCheaper: - obj.charge = replacementsCheaper[charge] - changes = True if obj.item in replacementsCheaper: obj.rebase(replacementsCheaper[obj.item]) changes = True @@ -252,7 +255,7 @@ class Price: pyfalog.critical(e) fitItems = {i for i in self.fitItemIter(fit) if i is not fit.ship.item} - self.findCheaperReplacements(fitItems, updateFitCb, includeBetter, fetchTimeout=fetchTimeout) + self.findCheaperReplacements(fitItems, updateFitCb, fetchTimeout=fetchTimeout) class PriceWorkerThread(threading.Thread): From becf7c3ff2cced0e42ff57e5a21260da6f137327 Mon Sep 17 00:00:00 2001 From: DarkPhoenix Date: Wed, 6 Mar 2019 23:59:11 +0300 Subject: [PATCH 38/88] Commit stub of price optimization command --- gui/fitCommands/guiAddDrone.py | 2 +- gui/fitCommands/guiAddFighter.py | 2 +- gui/fitCommands/guiCargoToModule.py | 2 +- gui/fitCommands/guiFillWithModule.py | 2 +- gui/fitCommands/guiModuleToCargo.py | 2 +- gui/fitCommands/guiOptimizePrice.py | 12 ++++++++++++ gui/fitCommands/guiRemoveCargo.py | 2 +- gui/fitCommands/guiRemoveDrone.py | 2 +- gui/fitCommands/guiRemoveFighter.py | 2 +- gui/fitCommands/guiRemoveProjected.py | 2 +- gui/fitCommands/guiSetMode.py | 2 +- service/port/multibuy.py | 4 ++-- 12 files changed, 24 insertions(+), 12 deletions(-) create mode 100644 gui/fitCommands/guiOptimizePrice.py diff --git a/gui/fitCommands/guiAddDrone.py b/gui/fitCommands/guiAddDrone.py index 6549d1e21..3c1bec21e 100644 --- a/gui/fitCommands/guiAddDrone.py +++ b/gui/fitCommands/guiAddDrone.py @@ -8,7 +8,7 @@ from .calc.fitAddDrone import FitAddDroneCommand class GuiAddDroneCommand(wx.Command): def __init__(self, fitID, itemID): - wx.Command.__init__(self, True, "Cargo Add") + wx.Command.__init__(self, True, "Drone Add") self.mainFrame = gui.mainFrame.MainFrame.getInstance() self.sFit = Fit.getInstance() self.internal_history = wx.CommandProcessor() diff --git a/gui/fitCommands/guiAddFighter.py b/gui/fitCommands/guiAddFighter.py index 01024e706..7a69ebc28 100644 --- a/gui/fitCommands/guiAddFighter.py +++ b/gui/fitCommands/guiAddFighter.py @@ -8,7 +8,7 @@ from .calc.fitAddFighter import FitAddFighterCommand class GuiAddFighterCommand(wx.Command): def __init__(self, fitID, itemID): - wx.Command.__init__(self, True, "Cargo Add") + wx.Command.__init__(self, True, "Fighter Add") self.mainFrame = gui.mainFrame.MainFrame.getInstance() self.sFit = Fit.getInstance() self.internal_history = wx.CommandProcessor() diff --git a/gui/fitCommands/guiCargoToModule.py b/gui/fitCommands/guiCargoToModule.py index a2583e47c..d77abbc3b 100644 --- a/gui/fitCommands/guiCargoToModule.py +++ b/gui/fitCommands/guiCargoToModule.py @@ -21,7 +21,7 @@ class GuiCargoToModuleCommand(wx.Command): """ def __init__(self, fitID, moduleIdx, cargoIdx, copy=False): - wx.Command.__init__(self, True, "Module State Change") + wx.Command.__init__(self, True, "Cargo to Module") self.mainFrame = gui.mainFrame.MainFrame.getInstance() self.sFit = Fit.getInstance() self.fitID = fitID diff --git a/gui/fitCommands/guiFillWithModule.py b/gui/fitCommands/guiFillWithModule.py index 0fa962bef..5b7bf95e3 100644 --- a/gui/fitCommands/guiFillWithModule.py +++ b/gui/fitCommands/guiFillWithModule.py @@ -17,7 +17,7 @@ class GuiFillWithModuleCommand(wx.Command): set the charge on the underlying module (requires position) :param position: Optional. The position in fit.modules that we are attempting to set the item to """ - wx.Command.__init__(self, True, "Module Add: {}".format(itemID)) + wx.Command.__init__(self, True, "Module Fill: {}".format(itemID)) self.mainFrame = gui.mainFrame.MainFrame.getInstance() self.sFit = Fit.getInstance() self.fitID = fitID diff --git a/gui/fitCommands/guiModuleToCargo.py b/gui/fitCommands/guiModuleToCargo.py index 66a9f9833..4f5b6bcf8 100644 --- a/gui/fitCommands/guiModuleToCargo.py +++ b/gui/fitCommands/guiModuleToCargo.py @@ -14,7 +14,7 @@ pyfalog = Logger(__name__) class GuiModuleToCargoCommand(wx.Command): def __init__(self, fitID, moduleIdx, cargoIdx, copy=False): - wx.Command.__init__(self, True, "Module State Change") + wx.Command.__init__(self, True, "Module to Cargo") self.mainFrame = gui.mainFrame.MainFrame.getInstance() self.sFit = Fit.getInstance() self.fitID = fitID diff --git a/gui/fitCommands/guiOptimizePrice.py b/gui/fitCommands/guiOptimizePrice.py new file mode 100644 index 000000000..e41edab81 --- /dev/null +++ b/gui/fitCommands/guiOptimizePrice.py @@ -0,0 +1,12 @@ +import wx + + +class GuiOptimizePriceCommand(wx.Command): + def __init__(self): + wx.Command.__init__(self, True, "Optimize Price") + + def Do(self): + pass + + def Undo(self): + pass diff --git a/gui/fitCommands/guiRemoveCargo.py b/gui/fitCommands/guiRemoveCargo.py index f9aa5872a..54323a30e 100644 --- a/gui/fitCommands/guiRemoveCargo.py +++ b/gui/fitCommands/guiRemoveCargo.py @@ -8,7 +8,7 @@ from .calc.fitRemoveCargo import FitRemoveCargoCommand class GuiRemoveCargoCommand(wx.Command): def __init__(self, fitID, itemID): - wx.Command.__init__(self, True, "Module Charge Add") + wx.Command.__init__(self, True, "Cargo Remove") self.mainFrame = gui.mainFrame.MainFrame.getInstance() self.sFit = Fit.getInstance() self.internal_history = wx.CommandProcessor() diff --git a/gui/fitCommands/guiRemoveDrone.py b/gui/fitCommands/guiRemoveDrone.py index 42e651e3d..0d3f9770d 100644 --- a/gui/fitCommands/guiRemoveDrone.py +++ b/gui/fitCommands/guiRemoveDrone.py @@ -8,7 +8,7 @@ from .calc.fitRemoveDrone import FitRemoveDroneCommand class GuiRemoveDroneCommand(wx.Command): def __init__(self, fitID, position, amount=1): - wx.Command.__init__(self, True, "Cargo Add") + wx.Command.__init__(self, True, "Drone Remove") self.mainFrame = gui.mainFrame.MainFrame.getInstance() self.sFit = Fit.getInstance() self.internal_history = wx.CommandProcessor() diff --git a/gui/fitCommands/guiRemoveFighter.py b/gui/fitCommands/guiRemoveFighter.py index f1b983ec5..c1f283700 100644 --- a/gui/fitCommands/guiRemoveFighter.py +++ b/gui/fitCommands/guiRemoveFighter.py @@ -8,7 +8,7 @@ from .calc.fitRemoveFighter import FitRemoveFighterCommand class GuiRemoveFighterCommand(wx.Command): def __init__(self, fitID, position): - wx.Command.__init__(self, True, "Module Remove") + wx.Command.__init__(self, True, "Fighter Remove") self.mainFrame = gui.mainFrame.MainFrame.getInstance() self.sFit = Fit.getInstance() self.fitID = fitID diff --git a/gui/fitCommands/guiRemoveProjected.py b/gui/fitCommands/guiRemoveProjected.py index 74d1ab308..7fb54e5fc 100644 --- a/gui/fitCommands/guiRemoveProjected.py +++ b/gui/fitCommands/guiRemoveProjected.py @@ -27,7 +27,7 @@ class GuiRemoveProjectedCommand(wx.Command): } def __init__(self, fitID, thing): - wx.Command.__init__(self, True, "Projected Add") + wx.Command.__init__(self, True, "Projected Remove") self.mainFrame = gui.mainFrame.MainFrame.getInstance() self.sFit = Fit.getInstance() self.internal_history = wx.CommandProcessor() diff --git a/gui/fitCommands/guiSetMode.py b/gui/fitCommands/guiSetMode.py index 9639028f9..f7e5e09be 100644 --- a/gui/fitCommands/guiSetMode.py +++ b/gui/fitCommands/guiSetMode.py @@ -8,7 +8,7 @@ from .calc.fitSetMode import FitSetModeCommand class GuiSetModeCommand(wx.Command): def __init__(self, fitID, mode): - wx.Command.__init__(self, True, "Cargo Add") + wx.Command.__init__(self, True, "Mode Set") self.mainFrame = gui.mainFrame.MainFrame.getInstance() self.sFit = Fit.getInstance() self.internal_history = wx.CommandProcessor() diff --git a/service/port/multibuy.py b/service/port/multibuy.py index 6c4074e82..69f82e4e7 100644 --- a/service/port/multibuy.py +++ b/service/port/multibuy.py @@ -70,7 +70,7 @@ def exportMultiBuy(fit, options, callback): if options[Options.OPTIMIZE_PRICES.value]: - def processCheaperMapCb(replacementsCheaper): + def formatCheaperExportCb(replacementsCheaper): updatedAmounts = {} for item, itemAmount in itemAmounts.items(): _addItem(updatedAmounts, replacementsCheaper.get(item, item), itemAmount) @@ -78,7 +78,7 @@ def exportMultiBuy(fit, options, callback): callback(string) priceSvc = sPrc.getInstance() - priceSvc.findCheaperReplacements(itemAmounts, processCheaperMapCb) + priceSvc.findCheaperReplacements(itemAmounts, formatCheaperExportCb) else: string = _prepareString(fit.ship.item, itemAmounts) if callback: From e6309bb8bbe79e2cedfb70ff641e529effc02eed Mon Sep 17 00:00:00 2001 From: Indiction Date: Thu, 7 Mar 2019 00:14:48 +0100 Subject: [PATCH 39/88] Copy Enums to const.py Switching to IntEnum where necessary. --- eos/const.py | 55 ++++++++++++++++++- eos/saveddata/fit.py | 13 +---- eos/saveddata/module.py | 16 +----- .../attributeGrouping.py | 1 - service/esi.py | 6 +- service/esiAccess.py | 13 +---- service/port/efs.py | 8 --- service/port/eft.py | 9 +-- service/port/multibuy.py | 18 +++--- 9 files changed, 68 insertions(+), 71 deletions(-) diff --git a/eos/const.py b/eos/const.py index 95dd8a888..3db2dea03 100644 --- a/eos/const.py +++ b/eos/const.py @@ -1,5 +1,5 @@ from eos.enum import Enum - +from enum import IntEnum class Slot(Enum): @@ -24,3 +24,56 @@ class Slot(Enum): FS_LIGHT = 13 FS_SUPPORT = 14 FS_HEAVY = 15 + + +class ImplantLocation(Enum): + FIT = 0 + CHARACTER = 1 + + +class CalcType(Enum): + LOCAL = 0 + PROJECTED = 1 + COMMAND = 2 + +class State(Enum): + OFFLINE = -1 + ONLINE = 0 + ACTIVE = 1 + OVERHEATED = 2 + +class Hardpoint(Enum): + NONE = 0 + MISSILE = 1 + TURRET = 2 + +class LoginMethod(Enum): + SERVER = 0 + MANUAL = 1 + +class SsoMode(Enum): + AUTO = 0 + CUSTOM = 1 + +class ESIEndpoints(Enum): + CHAR = "/v4/characters/{character_id}/" + CHAR_SKILLS = "/v4/characters/{character_id}/skills/" + CHAR_FITTINGS = "/v1/characters/{character_id}/fittings/" + CHAR_DEL_FIT = "/v1/characters/{character_id}/fittings/{fitting_id}/" + +class MultiBuy_ItemType(IntEnum): + IMPLANTS = 1 + CARGO = 2 + LOADED_CHARGES = 3 + +class Options(IntEnum): + IMPLANTS = 1 + MUTATIONS = 2 + LOADED_CHARGES = 3 + +class RigSize(Enum): + # Matches to item attribute "rigSize" on ship and rig items + SMALL = 1 + MEDIUM = 2 + LARGE = 3 + CAPITAL = 4 diff --git a/eos/saveddata/fit.py b/eos/saveddata/fit.py index f33a78651..49c2c4dbf 100644 --- a/eos/saveddata/fit.py +++ b/eos/saveddata/fit.py @@ -29,6 +29,7 @@ import eos.db from eos import capSim from eos.effectHandlerHelpers import HandledModuleList, HandledDroneCargoList, HandledImplantBoosterList, HandledProjectedDroneList, HandledProjectedModList from eos.enum import Enum +from eos.const import ImplantLocation, CalcType from eos.saveddata.ship import Ship from eos.saveddata.drone import Drone from eos.saveddata.character import Character @@ -36,20 +37,10 @@ from eos.saveddata.citadel import Citadel from eos.saveddata.module import Module, State, Slot, Hardpoint from eos.utils.stats import DmgTypes from logbook import Logger + pyfalog = Logger(__name__) -class ImplantLocation(Enum): - FIT = 0 - CHARACTER = 1 - - -class CalcType(Enum): - LOCAL = 0 - PROJECTED = 1 - COMMAND = 2 - - class Fit(object): """Represents a fitting, with modules, ship, implants, etc.""" diff --git a/eos/saveddata/module.py b/eos/saveddata/module.py index 25b15e147..ef7312e64 100644 --- a/eos/saveddata/module.py +++ b/eos/saveddata/module.py @@ -23,7 +23,7 @@ from logbook import Logger from sqlalchemy.orm import reconstructor, validates import eos.db -from eos.const import Slot +from eos.const import Slot, State, Hardpoint from eos.effectHandlerHelpers import HandledCharge, HandledItem from eos.enum import Enum from eos.modifiedAttributeDict import ChargeAttrShortcut, ItemAttrShortcut, ModifiedAttributeDict @@ -35,14 +35,6 @@ from eos.utils.stats import DmgTypes pyfalog = Logger(__name__) - -class State(Enum): - OFFLINE = -1 - ONLINE = 0 - ACTIVE = 1 - OVERHEATED = 2 - - ProjectedMap = { State.OVERHEATED: State.ACTIVE, State.ACTIVE: State.OFFLINE, @@ -67,12 +59,6 @@ ProjectedSystem = { } -class Hardpoint(Enum): - NONE = 0 - MISSILE = 1 - TURRET = 2 - - class Module(HandledItem, HandledCharge, ItemAttrShortcut, ChargeAttrShortcut): """An instance of this class represents a module together with its charge and modified attributes""" MINING_ATTRIBUTES = ("miningAmount",) diff --git a/gui/builtinItemStatsViews/attributeGrouping.py b/gui/builtinItemStatsViews/attributeGrouping.py index de466cf73..0edccd8ca 100644 --- a/gui/builtinItemStatsViews/attributeGrouping.py +++ b/gui/builtinItemStatsViews/attributeGrouping.py @@ -1,6 +1,5 @@ from enum import Enum, auto - # Define the various groups of attributes class AttrGroup(Enum): FITTING = auto() diff --git a/service/esi.py b/service/esi.py index 8162c6844..da11e4792 100644 --- a/service/esi.py +++ b/service/esi.py @@ -10,6 +10,7 @@ import webbrowser import eos.db from eos.enum import Enum +from eos.const import LoginMethod from eos.saveddata.ssocharacter import SsoCharacter from service.esiAccess import APIException, SsoMode import gui.globalEvents as GE @@ -24,11 +25,6 @@ from requests import Session pyfalog = Logger(__name__) -class LoginMethod(Enum): - SERVER = 0 - MANUAL = 1 - - class Esi(EsiAccess): _instance = None diff --git a/service/esiAccess.py b/service/esiAccess.py index 8ec3dd95d..bd5eb5307 100644 --- a/service/esiAccess.py +++ b/service/esiAccess.py @@ -18,6 +18,7 @@ import base64 import datetime from eos.enum import Enum +from eos.const import SsoMode, ESIEndpoints from service.settings import EsiSettings, NetworkSettings from requests import Session @@ -42,11 +43,6 @@ scopes = [ ] -class SsoMode(Enum): - AUTO = 0 - CUSTOM = 1 - - class APIException(Exception): """ Exception for SSO related errors """ @@ -66,13 +62,6 @@ class APIException(Exception): return 'HTTP Error %s' % self.status_code -class ESIEndpoints(Enum): - CHAR = "/v4/characters/{character_id}/" - CHAR_SKILLS = "/v4/characters/{character_id}/skills/" - CHAR_FITTINGS = "/v1/characters/{character_id}/fittings/" - CHAR_DEL_FIT = "/v1/characters/{character_id}/fittings/{fitting_id}/" - - class EsiAccess(object): def __init__(self): self.settings = EsiSettings.getInstance() diff --git a/service/port/efs.py b/service/port/efs.py index c93c7d87d..fe84ccb52 100755 --- a/service/port/efs.py +++ b/service/port/efs.py @@ -19,14 +19,6 @@ from logbook import Logger pyfalog = Logger(__name__) -class RigSize(Enum): - # Matches to item attribute "rigSize" on ship and rig items - SMALL = 1 - MEDIUM = 2 - LARGE = 3 - CAPITAL = 4 - - class EfsPort: wepTestSet = {} version = 0.03 diff --git a/service/port/eft.py b/service/port/eft.py index 0d8a0a706..d8ac8e7f1 100644 --- a/service/port/eft.py +++ b/service/port/eft.py @@ -20,6 +20,8 @@ import re from enum import Enum +from eos.const import RigSize +from eos.const import Options from logbook import Logger @@ -41,13 +43,6 @@ from service.port.shared import IPortUser, fetchItem, processing_notify pyfalog = Logger(__name__) - -class Options(Enum): - IMPLANTS = 1 - MUTATIONS = 2 - LOADED_CHARGES = 3 - - EFT_OPTIONS = ( (Options.LOADED_CHARGES.value, 'Loaded Charges', 'Export charges loaded into modules', True), (Options.MUTATIONS.value, 'Mutated Attributes', 'Export mutated modules\' stats', True), diff --git a/service/port/multibuy.py b/service/port/multibuy.py index 1c6b78836..fcaa5902d 100644 --- a/service/port/multibuy.py +++ b/service/port/multibuy.py @@ -19,18 +19,14 @@ from enum import Enum +from eos.const import MultiBuy_ItemType -class Options(Enum): - IMPLANTS = 1 - CARGO = 2 - LOADED_CHARGES = 3 - MULTIBUY_OPTIONS = ( - (Options.LOADED_CHARGES.value, 'Loaded Charges', 'Export charges loaded into modules', True), - (Options.IMPLANTS.value, 'Implants && Boosters', 'Export implants and boosters', False), - (Options.CARGO.value, 'Cargo', 'Export cargo contents', True), + (MultiBuy_ItemType.LOADED_CHARGES.value, 'Loaded Charges', 'Export charges loaded into modules', True), + (MultiBuy_ItemType.IMPLANTS.value, 'Implants && Boosters', 'Export implants and boosters', False), + (MultiBuy_ItemType.CARGO.value, 'Cargo', 'Export cargo contents', True), ) @@ -48,7 +44,7 @@ def exportMultiBuy(fit, options): if module.isMutated: continue addItem(module.item) - if module.charge and options[Options.LOADED_CHARGES.value]: + if module.charge and options[MultiBuy_ItemType.LOADED_CHARGES.value]: addItem(module.charge, module.numCharges) for drone in fit.drones: @@ -57,11 +53,11 @@ def exportMultiBuy(fit, options): for fighter in fit.fighters: addItem(fighter.item, fighter.amountActive) - if options[Options.CARGO.value]: + if options[MultiBuy_ItemType.CARGO.value]: for cargo in fit.cargo: addItem(cargo.item, cargo.amount) - if options[Options.IMPLANTS.value]: + if options[MultiBuy_ItemType.IMPLANTS.value]: for implant in fit.implants: addItem(implant.item) From 6333a0c74b311820e65b6cd388227774210e4fe4 Mon Sep 17 00:00:00 2001 From: Indiction Date: Thu, 7 Mar 2019 22:30:51 +0100 Subject: [PATCH 40/88] Adding descriptions to enums. Renaming Enums into more useful names. --- _development/helpers.py | 4 +- config.py | 12 +-- eos/const.py | 74 +++++++++++++--- eos/effects/doomsdayaoeneut.py | 6 +- eos/effects/energyneutralizerfalloff.py | 6 +- eos/effects/entityenergyneutralizerfalloff.py | 6 +- .../structureenergyneutralizerfalloff.py | 4 +- ...ucturewarpscrambleblockmwdwithnpceffect.py | 10 +-- eos/effects/warpdisruptsphere.py | 10 +-- .../warpscrambleblockmwdwithnpceffect.py | 10 +-- eos/graph/fitDps.py | 12 +-- eos/saveddata/fighter.py | 14 +-- eos/saveddata/fit.py | 48 +++++----- eos/saveddata/module.py | 88 +++++++++---------- gui/builtinAdditionPanes/fighterView.py | 6 +- gui/builtinContextMenus/moduleAmmoPicker.py | 6 +- gui/builtinStatsViews/resourcesViewFull.py | 6 +- gui/builtinViewColumns/baseIcon.py | 4 +- gui/builtinViewColumns/baseName.py | 8 +- gui/builtinViewColumns/state.py | 2 +- gui/builtinViews/fittingView.py | 14 +-- gui/fitCommands/calc/fitAddModule.py | 6 +- gui/fitCommands/calc/fitAddProjectedEnv.py | 4 +- gui/fitCommands/calc/fitAddProjectedModule.py | 6 +- .../calc/fitImportMutatedModule.py | 6 +- gui/fitCommands/calc/fitReplaceModule.py | 6 +- service/character.py | 2 +- service/esi.py | 10 +-- service/esiAccess.py | 18 ++-- service/fit.py | 12 +-- service/fitDeprecated.py | 20 ++--- service/port/dna.py | 12 +-- service/port/efs.py | 34 +++---- service/port/eft.py | 50 +++++------ service/port/esi.py | 20 ++--- service/port/multibuy.py | 14 +-- service/port/xml.py | 10 +-- 37 files changed, 314 insertions(+), 266 deletions(-) diff --git a/_development/helpers.py b/_development/helpers.py index ad1447371..53d44201f 100644 --- a/_development/helpers.py +++ b/_development/helpers.py @@ -129,7 +129,7 @@ def Saveddata(): from eos.saveddata.ship import Ship from eos.saveddata.fit import Fit from eos.saveddata.character import Character - from eos.saveddata.module import Module, State + from eos.saveddata.module import Module, FittingModuleState from eos.saveddata.citadel import Citadel from eos.saveddata.booster import Booster @@ -139,7 +139,7 @@ def Saveddata(): 'Fit' : Fit, 'Character': Character, 'Module' : Module, - 'State' : State, + 'State' : FittingModuleState, 'Booster' : Booster, } return helper diff --git a/config.py b/config.py index 7f347eb3c..f8027af9b 100644 --- a/config.py +++ b/config.py @@ -6,7 +6,7 @@ import wx from logbook import CRITICAL, DEBUG, ERROR, FingersCrossedHandler, INFO, Logger, NestedSetup, NullHandler, \ StreamHandler, TimedRotatingFileHandler, WARNING import hashlib -from eos.const import Slot +from eos.const import FittingSlot from cryptography.fernet import Fernet @@ -50,11 +50,11 @@ LOGLEVEL_MAP = { } slotColourMap = { - Slot.LOW: wx.Colour(250, 235, 204), # yellow = low slots - Slot.MED: wx.Colour(188, 215, 241), # blue = mid slots - Slot.HIGH: wx.Colour(235, 204, 209), # red = high slots - Slot.RIG: '', - Slot.SUBSYSTEM: '' + FittingSlot.LOW: wx.Colour(250, 235, 204), # yellow = low slots + FittingSlot.MED: wx.Colour(188, 215, 241), # blue = mid slots + FittingSlot.HIGH: wx.Colour(235, 204, 209), # red = high slots + FittingSlot.RIG: '', + FittingSlot.SUBSYSTEM: '' } def getClientSecret(): diff --git a/eos/const.py b/eos/const.py index 3db2dea03..29b443846 100644 --- a/eos/const.py +++ b/eos/const.py @@ -1,8 +1,29 @@ +# ============================================================================= +# Copyright (C) 2019 Ryan Holmes +# +# This file is part of pyfa. +# +# pyfa is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# pyfa is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with pyfa. If not, see . +# ============================================================================= + from eos.enum import Enum from enum import IntEnum - -class Slot(Enum): +class FittingSlot(Enum): + """ + Contains slots for ship fittings + """ # These are self-explanatory LOW = 1 MED = 2 @@ -25,54 +46,81 @@ class Slot(Enum): FS_SUPPORT = 14 FS_HEAVY = 15 - class ImplantLocation(Enum): + """ + Contains location of the implant + """ FIT = 0 CHARACTER = 1 - class CalcType(Enum): + """ + Contains location of the calculation + """ LOCAL = 0 PROJECTED = 1 COMMAND = 2 -class State(Enum): +class FittingModuleState(Enum): + """ + Contains the state of a fitting module + """ OFFLINE = -1 ONLINE = 0 ACTIVE = 1 OVERHEATED = 2 -class Hardpoint(Enum): +class FittingHardpoint(Enum): + """ + Contains the types of a fitting hardpoint + """ NONE = 0 MISSILE = 1 TURRET = 2 -class LoginMethod(Enum): +class EsiLoginMethod(Enum): + """ + Contains the method of ESI login + """ SERVER = 0 MANUAL = 1 -class SsoMode(Enum): +class EsiSsoMode(Enum): + """ + Contains the mode of ESI sso mode + """ AUTO = 0 CUSTOM = 1 -class ESIEndpoints(Enum): +class EsiEndpoints(Enum): + """ + Contains the endpoint paths for the ESI access + """ CHAR = "/v4/characters/{character_id}/" CHAR_SKILLS = "/v4/characters/{character_id}/skills/" CHAR_FITTINGS = "/v1/characters/{character_id}/fittings/" CHAR_DEL_FIT = "/v1/characters/{character_id}/fittings/{fitting_id}/" -class MultiBuy_ItemType(IntEnum): +class PortMultiBuyItemType(IntEnum): + """ + Contains different types of items to multibuy export + """ IMPLANTS = 1 CARGO = 2 LOADED_CHARGES = 3 -class Options(IntEnum): +class PortEftOptions(IntEnum): + """ + Contains different options for eft-export + """ IMPLANTS = 1 MUTATIONS = 2 LOADED_CHARGES = 3 -class RigSize(Enum): - # Matches to item attribute "rigSize" on ship and rig items +class PortEftRigSize(Enum): + """ + Contains different sizes of ship rigs + """ SMALL = 1 MEDIUM = 2 LARGE = 3 diff --git a/eos/effects/doomsdayaoeneut.py b/eos/effects/doomsdayaoeneut.py index 1be85f6bd..d5263e15b 100644 --- a/eos/effects/doomsdayaoeneut.py +++ b/eos/effects/doomsdayaoeneut.py @@ -3,15 +3,15 @@ # Used by: # Module: Energy Neutralization Burst Projector # Structure Module: Standup Energy Neutralization Burst Projector -from eos.saveddata.module import State +from eos.saveddata.module import FittingModuleState from eos.modifiedAttributeDict import ModifiedAttributeDict type = "active", "projected" def handler(fit, src, context, **kwargs): - if "projected" in context and ((hasattr(src, "state") and src.state >= State.ACTIVE) or - hasattr(src, "amountActive")): + if "projected" in context and ((hasattr(src, "state") and src.state >= FittingModuleState.ACTIVE) or + hasattr(src, "amountActive")): amount = src.getModifiedItemAttr("energyNeutralizerAmount") if 'effect' in kwargs: diff --git a/eos/effects/energyneutralizerfalloff.py b/eos/effects/energyneutralizerfalloff.py index 67e55e7ad..31f94fa5e 100644 --- a/eos/effects/energyneutralizerfalloff.py +++ b/eos/effects/energyneutralizerfalloff.py @@ -2,15 +2,15 @@ # # Used by: # Modules from group: Energy Neutralizer (54 of 54) -from eos.saveddata.module import State +from eos.saveddata.module import FittingModuleState from eos.modifiedAttributeDict import ModifiedAttributeDict type = "active", "projected" def handler(fit, src, context, **kwargs): - if "projected" in context and ((hasattr(src, "state") and src.state >= State.ACTIVE) or - hasattr(src, "amountActive")): + if "projected" in context and ((hasattr(src, "state") and src.state >= FittingModuleState.ACTIVE) or + hasattr(src, "amountActive")): amount = src.getModifiedItemAttr("energyNeutralizerAmount") if 'effect' in kwargs: diff --git a/eos/effects/entityenergyneutralizerfalloff.py b/eos/effects/entityenergyneutralizerfalloff.py index 751cd540c..8edfe8adf 100644 --- a/eos/effects/entityenergyneutralizerfalloff.py +++ b/eos/effects/entityenergyneutralizerfalloff.py @@ -2,15 +2,15 @@ # # Used by: # Drones from group: Energy Neutralizer Drone (3 of 3) -from eos.saveddata.module import State +from eos.saveddata.module import FittingModuleState from eos.modifiedAttributeDict import ModifiedAttributeDict type = "active", "projected" def handler(fit, src, context, **kwargs): - if "projected" in context and ((hasattr(src, "state") and src.state >= State.ACTIVE) or - hasattr(src, "amountActive")): + if "projected" in context and ((hasattr(src, "state") and src.state >= FittingModuleState.ACTIVE) or + hasattr(src, "amountActive")): amount = src.getModifiedItemAttr("energyNeutralizerAmount") time = src.getModifiedItemAttr("energyNeutralizerDuration") diff --git a/eos/effects/structureenergyneutralizerfalloff.py b/eos/effects/structureenergyneutralizerfalloff.py index c9cdd769e..73d7db41d 100644 --- a/eos/effects/structureenergyneutralizerfalloff.py +++ b/eos/effects/structureenergyneutralizerfalloff.py @@ -2,7 +2,7 @@ # # Used by: # Structure Modules from group: Structure Energy Neutralizer (5 of 5) -from eos.saveddata.module import State +from eos.saveddata.module import FittingModuleState from eos.modifiedAttributeDict import ModifiedAttributeDict type = "active", "projected" @@ -11,7 +11,7 @@ type = "active", "projected" def handler(fit, src, context, **kwargs): amount = 0 if "projected" in context: - if (hasattr(src, "state") and src.state >= State.ACTIVE) or hasattr(src, "amountActive"): + if (hasattr(src, "state") and src.state >= FittingModuleState.ACTIVE) or hasattr(src, "amountActive"): amount = src.getModifiedItemAttr("energyNeutralizerAmount") if 'effect' in kwargs: diff --git a/eos/effects/structurewarpscrambleblockmwdwithnpceffect.py b/eos/effects/structurewarpscrambleblockmwdwithnpceffect.py index e6ab9536e..abe0c562b 100644 --- a/eos/effects/structurewarpscrambleblockmwdwithnpceffect.py +++ b/eos/effects/structurewarpscrambleblockmwdwithnpceffect.py @@ -2,7 +2,7 @@ # # Used by: # Structure Modules from group: Structure Warp Scrambler (2 of 2) -from eos.saveddata.module import State +from eos.saveddata.module import FittingModuleState # Not used by any item runTime = "early" @@ -14,7 +14,7 @@ def handler(fit, module, context): fit.ship.increaseItemAttr("warpScrambleStatus", module.getModifiedItemAttr("warpScrambleStrength")) if module.charge is not None and module.charge.ID == 47336: for mod in fit.modules: - if not mod.isEmpty and mod.item.requiresSkill("High Speed Maneuvering") and mod.state > State.ONLINE: - mod.state = State.ONLINE - if not mod.isEmpty and mod.item.requiresSkill("Micro Jump Drive Operation") and mod.state > State.ONLINE: - mod.state = State.ONLINE + if not mod.isEmpty and mod.item.requiresSkill("High Speed Maneuvering") and mod.state > FittingModuleState.ONLINE: + mod.state = FittingModuleState.ONLINE + if not mod.isEmpty and mod.item.requiresSkill("Micro Jump Drive Operation") and mod.state > FittingModuleState.ONLINE: + mod.state = FittingModuleState.ONLINE diff --git a/eos/effects/warpdisruptsphere.py b/eos/effects/warpdisruptsphere.py index f8ce29992..e131b9d0c 100644 --- a/eos/effects/warpdisruptsphere.py +++ b/eos/effects/warpdisruptsphere.py @@ -7,7 +7,7 @@ # # Used by: # Modules from group: Warp Disrupt Field Generator (7 of 7) -from eos.saveddata.module import State +from eos.saveddata.module import FittingModuleState type = "projected", "active" runTime = "early" @@ -19,10 +19,10 @@ def handler(fit, module, context): fit.ship.increaseItemAttr("warpScrambleStatus", module.getModifiedItemAttr("warpScrambleStrength")) if module.charge is not None and module.charge.ID == 45010: for mod in fit.modules: - if not mod.isEmpty and mod.item.requiresSkill("High Speed Maneuvering") and mod.state > State.ONLINE: - mod.state = State.ONLINE - if not mod.isEmpty and mod.item.requiresSkill("Micro Jump Drive Operation") and mod.state > State.ONLINE: - mod.state = State.ONLINE + if not mod.isEmpty and mod.item.requiresSkill("High Speed Maneuvering") and mod.state > FittingModuleState.ONLINE: + mod.state = FittingModuleState.ONLINE + if not mod.isEmpty and mod.item.requiresSkill("Micro Jump Drive Operation") and mod.state > FittingModuleState.ONLINE: + mod.state = FittingModuleState.ONLINE else: if module.charge is None: fit.ship.boostItemAttr("mass", module.getModifiedItemAttr("massBonusPercentage")) diff --git a/eos/effects/warpscrambleblockmwdwithnpceffect.py b/eos/effects/warpscrambleblockmwdwithnpceffect.py index 0985d4673..cf47a4ed9 100644 --- a/eos/effects/warpscrambleblockmwdwithnpceffect.py +++ b/eos/effects/warpscrambleblockmwdwithnpceffect.py @@ -2,7 +2,7 @@ # # Used by: # Modules named like: Warp Scrambler (27 of 27) -from eos.saveddata.module import State +from eos.saveddata.module import FittingModuleState runTime = "early" type = "projected", "active" @@ -16,10 +16,10 @@ def handler(fit, module, context): # this is such a dirty hack for mod in fit.modules: - if not mod.isEmpty and mod.state > State.ONLINE and ( + if not mod.isEmpty and mod.state > FittingModuleState.ONLINE and ( mod.item.requiresSkill("Micro Jump Drive Operation") or mod.item.requiresSkill("High Speed Maneuvering") ): - mod.state = State.ONLINE - if not mod.isEmpty and mod.item.requiresSkill("Micro Jump Drive Operation") and mod.state > State.ONLINE: - mod.state = State.ONLINE + mod.state = FittingModuleState.ONLINE + if not mod.isEmpty and mod.item.requiresSkill("Micro Jump Drive Operation") and mod.state > FittingModuleState.ONLINE: + mod.state = FittingModuleState.ONLINE diff --git a/eos/graph/fitDps.py b/eos/graph/fitDps.py index a8d6c4ec3..65b855dbd 100644 --- a/eos/graph/fitDps.py +++ b/eos/graph/fitDps.py @@ -20,7 +20,7 @@ from math import log, sin, radians, exp from eos.graph import Graph -from eos.saveddata.module import State, Hardpoint +from eos.saveddata.module import FittingModuleState, FittingHardpoint from logbook import Logger pyfalog = Logger(__name__) @@ -46,7 +46,7 @@ class FitDpsGraph(Graph): abssort = lambda _val: -abs(_val - 1) for mod in fit.modules: - if not mod.isEmpty and mod.state >= State.ACTIVE: + if not mod.isEmpty and mod.state >= FittingModuleState.ACTIVE: if "remoteTargetPaintFalloff" in mod.item.effects or "structureModuleEffectTargetPainter" in mod.item.effects: ew['signatureRadius'].append( 1 + (mod.getModifiedItemAttr("signatureRadiusBonus") / 100) * self.calculateModuleMultiplier( @@ -76,12 +76,12 @@ class FitDpsGraph(Graph): for mod in fit.modules: dps = mod.getDps(targetResists=fit.targetResists).total - if mod.hardpoint == Hardpoint.TURRET: - if mod.state >= State.ACTIVE: + if mod.hardpoint == FittingHardpoint.TURRET: + if mod.state >= FittingModuleState.ACTIVE: total += dps * self.calculateTurretMultiplier(mod, data) - elif mod.hardpoint == Hardpoint.MISSILE: - if mod.state >= State.ACTIVE and mod.maxRange is not None and mod.maxRange >= distance: + elif mod.hardpoint == FittingHardpoint.MISSILE: + if mod.state >= FittingModuleState.ACTIVE and mod.maxRange is not None and mod.maxRange >= distance: total += dps * self.calculateMissileMultiplier(mod, data) if distance <= fit.extraAttributes["droneControlRange"]: diff --git a/eos/saveddata/fighter.py b/eos/saveddata/fighter.py index 4b929d594..b11ced0fd 100644 --- a/eos/saveddata/fighter.py +++ b/eos/saveddata/fighter.py @@ -25,7 +25,7 @@ import eos.db from eos.effectHandlerHelpers import HandledItem, HandledCharge from eos.modifiedAttributeDict import ModifiedAttributeDict, ItemAttrShortcut, ChargeAttrShortcut from eos.saveddata.fighterAbility import FighterAbility -from eos.saveddata.module import Slot +from eos.saveddata.module import FittingSlot from eos.utils.stats import DmgTypes pyfalog = Logger(__name__) @@ -116,12 +116,12 @@ class Fighter(HandledItem, HandledCharge, ItemAttrShortcut, ChargeAttrShortcut): def __calculateSlot(self, item): types = { - "Light" : Slot.F_LIGHT, - "Support": Slot.F_SUPPORT, - "Heavy" : Slot.F_HEAVY, - "StandupLight": Slot.FS_LIGHT, - "StandupSupport": Slot.FS_SUPPORT, - "StandupHeavy": Slot.FS_HEAVY + "Light" : FittingSlot.F_LIGHT, + "Support": FittingSlot.F_SUPPORT, + "Heavy" : FittingSlot.F_HEAVY, + "StandupLight": FittingSlot.FS_LIGHT, + "StandupSupport": FittingSlot.FS_SUPPORT, + "StandupHeavy": FittingSlot.FS_HEAVY } for t, slot in types.items(): diff --git a/eos/saveddata/fit.py b/eos/saveddata/fit.py index 49c2c4dbf..eb3a1c7d8 100644 --- a/eos/saveddata/fit.py +++ b/eos/saveddata/fit.py @@ -34,7 +34,7 @@ from eos.saveddata.ship import Ship from eos.saveddata.drone import Drone from eos.saveddata.character import Character from eos.saveddata.citadel import Citadel -from eos.saveddata.module import Module, State, Slot, Hardpoint +from eos.saveddata.module import Module, FittingModuleState, FittingSlot, FittingHardpoint from eos.utils.stats import DmgTypes from logbook import Logger @@ -892,7 +892,7 @@ class Fit(object): if self.ship is None: return - for slotType in (Slot.LOW, Slot.MED, Slot.HIGH, Slot.RIG, Slot.SUBSYSTEM, Slot.SERVICE): + for slotType in (FittingSlot.LOW, FittingSlot.MED, FittingSlot.HIGH, FittingSlot.RIG, FittingSlot.SUBSYSTEM, FittingSlot.SERVICE): amount = self.getSlotsFree(slotType, True) if amount > 0: for _ in range(int(amount)): @@ -939,7 +939,7 @@ class Fit(object): def getItemAttrOnlineSum(dict, attr): amount = 0 for mod in dict: - add = mod.getModifiedItemAttr(attr) if mod.state >= State.ONLINE else None + add = mod.getModifiedItemAttr(attr) if mod.state >= FittingModuleState.ONLINE else None if add is not None: amount += add @@ -958,29 +958,29 @@ class Fit(object): for mod in chain(self.modules, self.fighters): if mod.slot is type and (not getattr(mod, "isEmpty", False) or countDummies): - if type in (Slot.F_HEAVY, Slot.F_SUPPORT, Slot.F_LIGHT, Slot.FS_HEAVY, Slot.FS_LIGHT, Slot.FS_SUPPORT) and not mod.active: + if type in (FittingSlot.F_HEAVY, FittingSlot.F_SUPPORT, FittingSlot.F_LIGHT, FittingSlot.FS_HEAVY, FittingSlot.FS_LIGHT, FittingSlot.FS_SUPPORT) and not mod.active: continue amount += 1 return amount slots = { - Slot.LOW : "lowSlots", - Slot.MED : "medSlots", - Slot.HIGH : "hiSlots", - Slot.RIG : "rigSlots", - Slot.SUBSYSTEM: "maxSubSystems", - Slot.SERVICE : "serviceSlots", - Slot.F_LIGHT : "fighterLightSlots", - Slot.F_SUPPORT: "fighterSupportSlots", - Slot.F_HEAVY : "fighterHeavySlots", - Slot.FS_LIGHT: "fighterStandupLightSlots", - Slot.FS_SUPPORT: "fighterStandupSupportSlots", - Slot.FS_HEAVY: "fighterStandupHeavySlots", + FittingSlot.LOW : "lowSlots", + FittingSlot.MED : "medSlots", + FittingSlot.HIGH : "hiSlots", + FittingSlot.RIG : "rigSlots", + FittingSlot.SUBSYSTEM: "maxSubSystems", + FittingSlot.SERVICE : "serviceSlots", + FittingSlot.F_LIGHT : "fighterLightSlots", + FittingSlot.F_SUPPORT: "fighterSupportSlots", + FittingSlot.F_HEAVY : "fighterHeavySlots", + FittingSlot.FS_LIGHT: "fighterStandupLightSlots", + FittingSlot.FS_SUPPORT: "fighterStandupSupportSlots", + FittingSlot.FS_HEAVY: "fighterStandupHeavySlots", } def getSlotsFree(self, type, countDummies=False): - if type in (Slot.MODE, Slot.SYSTEM): + if type in (FittingSlot.MODE, FittingSlot.SYSTEM): # These slots don't really exist, return default 0 return 0 @@ -992,12 +992,12 @@ class Fit(object): return self.ship.getModifiedItemAttr(self.slots[type]) or 0 def getHardpointsFree(self, type): - if type == Hardpoint.NONE: + if type == FittingHardpoint.NONE: return 1 - elif type == Hardpoint.TURRET: - return self.ship.getModifiedItemAttr('turretSlotsLeft') - self.getHardpointsUsed(Hardpoint.TURRET) - elif type == Hardpoint.MISSILE: - return self.ship.getModifiedItemAttr('launcherSlotsLeft') - self.getHardpointsUsed(Hardpoint.MISSILE) + elif type == FittingHardpoint.TURRET: + return self.ship.getModifiedItemAttr('turretSlotsLeft') - self.getHardpointsUsed(FittingHardpoint.TURRET) + elif type == FittingHardpoint.MISSILE: + return self.ship.getModifiedItemAttr('launcherSlotsLeft') - self.getHardpointsUsed(FittingHardpoint.MISSILE) else: raise ValueError("%d is not a valid value for Hardpoint Enum", type) @@ -1159,7 +1159,7 @@ class Fit(object): capUsed = 0 capAdded = 0 for mod in self.modules: - if mod.state >= State.ACTIVE: + if mod.state >= FittingModuleState.ACTIVE: if (mod.getModifiedItemAttr("capacitorNeed") or 0) != 0: cycleTime = mod.rawCycleTime or 0 reactivationTime = mod.getModifiedItemAttr("moduleReactivationDelay") or 0 @@ -1173,7 +1173,7 @@ class Fit(object): capAdded -= capNeed # If this is a turret, don't stagger activations - disableStagger = mod.hardpoint == Hardpoint.TURRET + disableStagger = mod.hardpoint == FittingHardpoint.TURRET drains.append((int(fullCycleTime), mod.getModifiedItemAttr("capacitorNeed") or 0, mod.numShots or 0, disableStagger, reloadTime)) diff --git a/eos/saveddata/module.py b/eos/saveddata/module.py index ef7312e64..34b8143c1 100644 --- a/eos/saveddata/module.py +++ b/eos/saveddata/module.py @@ -23,7 +23,7 @@ from logbook import Logger from sqlalchemy.orm import reconstructor, validates import eos.db -from eos.const import Slot, State, Hardpoint +from eos.const import FittingSlot, FittingModuleState, FittingHardpoint from eos.effectHandlerHelpers import HandledCharge, HandledItem from eos.enum import Enum from eos.modifiedAttributeDict import ChargeAttrShortcut, ItemAttrShortcut, ModifiedAttributeDict @@ -36,26 +36,26 @@ from eos.utils.stats import DmgTypes pyfalog = Logger(__name__) ProjectedMap = { - State.OVERHEATED: State.ACTIVE, - State.ACTIVE: State.OFFLINE, - State.OFFLINE: State.ACTIVE, - State.ONLINE: State.ACTIVE # Just in case + FittingModuleState.OVERHEATED: FittingModuleState.ACTIVE, + FittingModuleState.ACTIVE: FittingModuleState.OFFLINE, + FittingModuleState.OFFLINE: FittingModuleState.ACTIVE, + FittingModuleState.ONLINE: FittingModuleState.ACTIVE # Just in case } # Old state : New State LocalMap = { - State.OVERHEATED: State.ACTIVE, - State.ACTIVE: State.ONLINE, - State.OFFLINE: State.ONLINE, - State.ONLINE: State.ACTIVE + FittingModuleState.OVERHEATED: FittingModuleState.ACTIVE, + FittingModuleState.ACTIVE: FittingModuleState.ONLINE, + FittingModuleState.OFFLINE: FittingModuleState.ONLINE, + FittingModuleState.ONLINE: FittingModuleState.ACTIVE } # For system effects. They should only ever be online or offline ProjectedSystem = { - State.OFFLINE: State.ONLINE, - State.ONLINE: State.OFFLINE + FittingModuleState.OFFLINE: FittingModuleState.ONLINE, + FittingModuleState.ONLINE: FittingModuleState.OFFLINE } @@ -90,7 +90,7 @@ class Module(HandledItem, HandledCharge, ItemAttrShortcut, ChargeAttrShortcut): self.__charge = None self.projected = False - self.state = State.ONLINE + self.state = FittingModuleState.ONLINE self.build() @reconstructor @@ -139,7 +139,7 @@ class Module(HandledItem, HandledCharge, ItemAttrShortcut, ChargeAttrShortcut): self.__reloadTime = None self.__reloadForce = None self.__chargeCycles = None - self.__hardpoint = Hardpoint.NONE + self.__hardpoint = FittingHardpoint.NONE self.__itemModifiedAttributes = ModifiedAttributeDict(parent=self) self.__chargeModifiedAttributes = ModifiedAttributeDict(parent=self) self.__slot = self.dummySlot # defaults to None @@ -382,7 +382,7 @@ class Module(HandledItem, HandledCharge, ItemAttrShortcut, ChargeAttrShortcut): if self.isEmpty: self.__miningyield = 0 else: - if self.state >= State.ACTIVE: + if self.state >= FittingModuleState.ACTIVE: volley = self.getModifiedItemAttr("specialtyMiningAmount") or self.getModifiedItemAttr( "miningAmount") or 0 if volley: @@ -396,7 +396,7 @@ class Module(HandledItem, HandledCharge, ItemAttrShortcut, ChargeAttrShortcut): return self.__miningyield def getVolley(self, spoolOptions=None, targetResists=None, ignoreState=False): - if self.isEmpty or (self.state < State.ACTIVE and not ignoreState): + if self.isEmpty or (self.state < FittingModuleState.ACTIVE and not ignoreState): return DmgTypes(0, 0, 0, 0) if self.__baseVolley is None: dmgGetter = self.getModifiedChargeAttr if self.charge else self.getModifiedItemAttr @@ -434,7 +434,7 @@ class Module(HandledItem, HandledCharge, ItemAttrShortcut, ChargeAttrShortcut): return dps def getRemoteReps(self, spoolOptions=None, ignoreState=False): - if self.isEmpty or (self.state < State.ACTIVE and not ignoreState): + if self.isEmpty or (self.state < FittingModuleState.ACTIVE and not ignoreState): return None, 0 def getBaseRemoteReps(module): @@ -576,14 +576,14 @@ class Module(HandledItem, HandledCharge, ItemAttrShortcut, ChargeAttrShortcut): return False # If the mod is a subsystem, don't let two subs in the same slot fit - if self.slot == Slot.SUBSYSTEM: + if self.slot == FittingSlot.SUBSYSTEM: subSlot = self.getModifiedItemAttr("subSystemSlot") for mod in fit.modules: if mod.getModifiedItemAttr("subSystemSlot") == subSlot: return False # Check rig sizes - if self.slot == Slot.RIG: + if self.slot == FittingSlot.RIG: if self.getModifiedItemAttr("rigSize") != fit.ship.getModifiedItemAttr("rigSize"): return False @@ -613,9 +613,9 @@ class Module(HandledItem, HandledCharge, ItemAttrShortcut, ChargeAttrShortcut): # Check if we're within bounds if state < -1 or state > 2: return False - elif state >= State.ACTIVE and not self.item.isType("active"): + elif state >= FittingModuleState.ACTIVE and not self.item.isType("active"): return False - elif state == State.OVERHEATED and not self.item.isType("overheat"): + elif state == FittingModuleState.OVERHEATED and not self.item.isType("overheat"): return False else: return True @@ -627,7 +627,7 @@ class Module(HandledItem, HandledCharge, ItemAttrShortcut, ChargeAttrShortcut): # If we're going to set module to offline or online for local modules or offline for projected, # it should be fine for all cases item = self.item - if (state <= State.ONLINE and projectedOnto is None) or (state <= State.OFFLINE): + if (state <= FittingModuleState.ONLINE and projectedOnto is None) or (state <= FittingModuleState.OFFLINE): return True # Check if the local module is over it's max limit; if it's not, we're fine @@ -641,7 +641,7 @@ class Module(HandledItem, HandledCharge, ItemAttrShortcut, ChargeAttrShortcut): group = item.group.name for mod in self.owner.modules: currItem = getattr(mod, "item", None) - if mod.state >= State.ACTIVE and currItem is not None and currItem.group.name == group: + if mod.state >= FittingModuleState.ACTIVE and currItem is not None and currItem.group.name == group: currActive += 1 if currActive > maxGroupActive: break @@ -704,28 +704,28 @@ class Module(HandledItem, HandledCharge, ItemAttrShortcut, ChargeAttrShortcut): @staticmethod def __calculateHardpoint(item): effectHardpointMap = { - "turretFitted" : Hardpoint.TURRET, - "launcherFitted": Hardpoint.MISSILE + "turretFitted" : FittingHardpoint.TURRET, + "launcherFitted": FittingHardpoint.MISSILE } if item is None: - return Hardpoint.NONE + return FittingHardpoint.NONE for effectName, slot in effectHardpointMap.items(): if effectName in item.effects: return slot - return Hardpoint.NONE + return FittingHardpoint.NONE @staticmethod def calculateSlot(item): effectSlotMap = { - "rigSlot" : Slot.RIG, - "loPower" : Slot.LOW, - "medPower" : Slot.MED, - "hiPower" : Slot.HIGH, - "subSystem" : Slot.SUBSYSTEM, - "serviceSlot": Slot.SERVICE + "rigSlot" : FittingSlot.RIG, + "loPower" : FittingSlot.LOW, + "medPower" : FittingSlot.MED, + "hiPower" : FittingSlot.HIGH, + "subSystem" : FittingSlot.SUBSYSTEM, + "serviceSlot": FittingSlot.SERVICE } if item is None: return None @@ -733,7 +733,7 @@ class Module(HandledItem, HandledCharge, ItemAttrShortcut, ChargeAttrShortcut): if effectName in item.effects: return slot if item.group.name in Module.SYSTEM_GROUPS: - return Slot.SYSTEM + return FittingSlot.SYSTEM return None @@ -787,8 +787,8 @@ class Module(HandledItem, HandledCharge, ItemAttrShortcut, ChargeAttrShortcut): if effect.runTime == runTime and \ effect.activeByDefault and \ (effect.isType("offline") or - (effect.isType("passive") and self.state >= State.ONLINE) or - (effect.isType("active") and self.state >= State.ACTIVE)) and \ + (effect.isType("passive") and self.state >= FittingModuleState.ONLINE) or + (effect.isType("active") and self.state >= FittingModuleState.ACTIVE)) and \ (not gang or (gang and effect.isType("gang"))): chargeContext = ("moduleCharge",) @@ -801,7 +801,7 @@ class Module(HandledItem, HandledCharge, ItemAttrShortcut, ChargeAttrShortcut): effect.handler(fit, self, chargeContext) if self.item: - if self.state >= State.OVERHEATED: + if self.state >= FittingModuleState.OVERHEATED: for effect in self.item.effects.values(): if effect.runTime == runTime and \ effect.isType("overheat") \ @@ -814,8 +814,8 @@ class Module(HandledItem, HandledCharge, ItemAttrShortcut, ChargeAttrShortcut): if effect.runTime == runTime and \ effect.activeByDefault and \ (effect.isType("offline") or - (effect.isType("passive") and self.state >= State.ONLINE) or - (effect.isType("active") and self.state >= State.ACTIVE)) \ + (effect.isType("passive") and self.state >= FittingModuleState.ONLINE) or + (effect.isType("active") and self.state >= FittingModuleState.ACTIVE)) \ and ((projected and effect.isType("projected")) or not projected) \ and ((gang and effect.isType("gang")) or not gang): try: @@ -890,7 +890,7 @@ class Module(HandledItem, HandledCharge, ItemAttrShortcut, ChargeAttrShortcut): @property def capUse(self): capNeed = self.getModifiedItemAttr("capacitorNeed") - if capNeed and self.state >= State.ACTIVE: + if capNeed and self.state >= FittingModuleState.ACTIVE: cycleTime = self.cycleTime if cycleTime > 0: capUsed = capNeed / (cycleTime / 1000.0) @@ -902,10 +902,10 @@ class Module(HandledItem, HandledCharge, ItemAttrShortcut, ChargeAttrShortcut): def getProposedState(mod, click, proposedState=None): # todo: instead of passing in module, make this a instanced function. pyfalog.debug("Get proposed state for module.") - if mod.slot == Slot.SUBSYSTEM or mod.isEmpty: - return State.ONLINE + if mod.slot == FittingSlot.SUBSYSTEM or mod.isEmpty: + return FittingModuleState.ONLINE - if mod.slot == Slot.SYSTEM: + if mod.slot == FittingSlot.SYSTEM: transitionMap = ProjectedSystem else: transitionMap = ProjectedMap if mod.projected else LocalMap @@ -915,9 +915,9 @@ class Module(HandledItem, HandledCharge, ItemAttrShortcut, ChargeAttrShortcut): if proposedState is not None: state = proposedState elif click == "right": - state = State.OVERHEATED + state = FittingModuleState.OVERHEATED elif click == "ctrl": - state = State.OFFLINE + state = FittingModuleState.OFFLINE else: state = transitionMap[currState] if not mod.isValidState(state): diff --git a/gui/builtinAdditionPanes/fighterView.py b/gui/builtinAdditionPanes/fighterView.py index bf797ae15..60b31536d 100644 --- a/gui/builtinAdditionPanes/fighterView.py +++ b/gui/builtinAdditionPanes/fighterView.py @@ -25,7 +25,7 @@ from gui.builtinMarketBrowser.events import ItemSelected, ITEM_SELECTED import gui.mainFrame import gui.display as d from gui.builtinViewColumns.state import State -from eos.saveddata.module import Slot +from eos.saveddata.module import FittingSlot from gui.contextMenu import ContextMenu from gui.utils.staticHelpers import DragDropHelper from service.fit import Fit @@ -93,9 +93,9 @@ class FighterView(wx.Panel): if fit: for x in self.labels: if fit.isStructure: - slot = getattr(Slot, "FS_{}".format(x.upper())) + slot = getattr(FittingSlot, "FS_{}".format(x.upper())) else: - slot = getattr(Slot, "F_{}".format(x.upper())) + slot = getattr(FittingSlot, "F_{}".format(x.upper())) used = fit.getSlotsUsed(slot) total = fit.getNumSlots(slot) color = wx.Colour(204, 51, 51) if used > total else wx.SystemSettings.GetColour( diff --git a/gui/builtinContextMenus/moduleAmmoPicker.py b/gui/builtinContextMenus/moduleAmmoPicker.py index f4de653b4..fec9ab4e0 100644 --- a/gui/builtinContextMenus/moduleAmmoPicker.py +++ b/gui/builtinContextMenus/moduleAmmoPicker.py @@ -5,7 +5,7 @@ import wx import gui.fitCommands as cmd import gui.mainFrame -from eos.saveddata.module import Hardpoint +from eos.saveddata.module import FittingHardpoint from gui.bitmap_loader import BitmapLoader from gui.contextMenu import ContextMenu from service.market import Market @@ -136,7 +136,7 @@ class ModuleAmmoPicker(ContextMenu): hardpoint = self.module.hardpoint moduleName = self.module.item.name # Make sure we do not consider mining turrets as combat turrets - if hardpoint == Hardpoint.TURRET and self.module.getModifiedItemAttr("miningAmount", None) is None: + if hardpoint == FittingHardpoint.TURRET and self.module.getModifiedItemAttr("miningAmount", None) is None: self.addSeperator(m, "Long Range") items = [] range_ = None @@ -180,7 +180,7 @@ class ModuleAmmoPicker(ContextMenu): m.Append(item) self.addSeperator(m, "Short Range") - elif hardpoint == Hardpoint.MISSILE and moduleName != 'Festival Launcher': + elif hardpoint == FittingHardpoint.MISSILE and moduleName != 'Festival Launcher': self.charges.sort(key=self.missileSorter) type_ = None sub = None diff --git a/gui/builtinStatsViews/resourcesViewFull.py b/gui/builtinStatsViews/resourcesViewFull.py index 77a1eaae5..79bc9533c 100644 --- a/gui/builtinStatsViews/resourcesViewFull.py +++ b/gui/builtinStatsViews/resourcesViewFull.py @@ -26,7 +26,7 @@ import gui.mainFrame from gui.chrome_tabs import EVT_NOTEBOOK_PAGE_CHANGED from gui.utils import fonts -from eos.saveddata.module import Hardpoint +from eos.saveddata.module import FittingHardpoint from gui.utils.numberFormatter import formatAmount @@ -196,9 +196,9 @@ class ResourcesViewFull(StatsView): # If we did anything intresting, we'd update our labels to reflect the new fit's stats here stats = ( - ("label%sUsedTurretHardpoints", lambda: fit.getHardpointsUsed(Hardpoint.TURRET), 0, 0, 0), + ("label%sUsedTurretHardpoints", lambda: fit.getHardpointsUsed(FittingHardpoint.TURRET), 0, 0, 0), ("label%sTotalTurretHardpoints", lambda: fit.ship.getModifiedItemAttr('turretSlotsLeft'), 0, 0, 0), - ("label%sUsedLauncherHardpoints", lambda: fit.getHardpointsUsed(Hardpoint.MISSILE), 0, 0, 0), + ("label%sUsedLauncherHardpoints", lambda: fit.getHardpointsUsed(FittingHardpoint.MISSILE), 0, 0, 0), ("label%sTotalLauncherHardpoints", lambda: fit.ship.getModifiedItemAttr('launcherSlotsLeft'), 0, 0, 0), ("label%sUsedDronesActive", lambda: fit.activeDrones, 0, 0, 0), ("label%sTotalDronesActive", lambda: fit.extraAttributes["maxActiveDrones"], 0, 0, 0), diff --git a/gui/builtinViewColumns/baseIcon.py b/gui/builtinViewColumns/baseIcon.py index 207d639c5..536d90da9 100644 --- a/gui/builtinViewColumns/baseIcon.py +++ b/gui/builtinViewColumns/baseIcon.py @@ -2,7 +2,7 @@ import wx from eos.saveddata.implant import Implant from eos.saveddata.drone import Drone -from eos.saveddata.module import Module, Slot, Rack +from eos.saveddata.module import Module, FittingSlot, Rack from eos.saveddata.fit import Fit from gui.viewColumn import ViewColumn @@ -32,7 +32,7 @@ class BaseIcon(ViewColumn): return self.shipImage elif isinstance(stuff, Module): if stuff.isEmpty: - return self.fittingView.imageList.GetImageIndex("slot_%s_small" % Slot.getName(stuff.slot).lower(), + return self.fittingView.imageList.GetImageIndex("slot_%s_small" % FittingSlot.getName(stuff.slot).lower(), "gui") else: return self.loadIconFile(stuff.item.iconID or "") diff --git a/gui/builtinViewColumns/baseName.py b/gui/builtinViewColumns/baseName.py index 368dd74b6..d6710c782 100644 --- a/gui/builtinViewColumns/baseName.py +++ b/gui/builtinViewColumns/baseName.py @@ -25,7 +25,7 @@ from eos.saveddata.cargo import Cargo from eos.saveddata.implant import Implant from eos.saveddata.drone import Drone from eos.saveddata.fighter import Fighter -from eos.saveddata.module import Module, Slot, Rack +from eos.saveddata.module import Module, FittingSlot, Rack from eos.saveddata.fit import Fit from service.fit import Fit as FitSvc from service.market import Market @@ -72,10 +72,10 @@ class BaseName(ViewColumn): return "%s (%s)" % (stuff.name, stuff.ship.item.name) elif isinstance(stuff, Rack): if FitSvc.getInstance().serviceFittingOptions["rackLabels"]: - if stuff.slot == Slot.MODE: + if stuff.slot == FittingSlot.MODE: return '─ Tactical Mode ─' else: - return '─ {} {} Slot{}─'.format(stuff.num, Slot.getName(stuff.slot).capitalize(), '' if stuff.num == 1 else 's') + return '─ {} {} Slot{}─'.format(stuff.num, FittingSlot.getName(stuff.slot).capitalize(), '' if stuff.num == 1 else 's') else: return "" elif isinstance(stuff, Module): @@ -89,7 +89,7 @@ class BaseName(ViewColumn): return "{} {}".format(type.name, stuff.item.name[-1:]) if stuff.isEmpty: - return "%s Slot" % Slot.getName(stuff.slot).capitalize() + return "%s Slot" % FittingSlot.getName(stuff.slot).capitalize() else: return stuff.item.name elif isinstance(stuff, Implant): diff --git a/gui/builtinViewColumns/state.py b/gui/builtinViewColumns/state.py index c99ae2947..67aa483f6 100644 --- a/gui/builtinViewColumns/state.py +++ b/gui/builtinViewColumns/state.py @@ -24,7 +24,7 @@ import wx from eos.saveddata.fit import Fit from eos.saveddata.implant import Implant from eos.saveddata.drone import Drone -from eos.saveddata.module import Module, State as State_, Rack +from eos.saveddata.module import Module, FittingModuleState as State_, Rack from gui.viewColumn import ViewColumn import gui.mainFrame diff --git a/gui/builtinViews/fittingView.py b/gui/builtinViews/fittingView.py index 372ea6a2e..83d9e43df 100644 --- a/gui/builtinViews/fittingView.py +++ b/gui/builtinViews/fittingView.py @@ -30,7 +30,7 @@ import gui.globalEvents as GE import gui.mainFrame import gui.multiSwitch from eos.saveddata.mode import Mode -from eos.saveddata.module import Module, Rack, Slot +from eos.saveddata.module import Module, Rack, FittingSlot from gui.bitmap_loader import BitmapLoader from gui.builtinMarketBrowser.events import ITEM_SELECTED from gui.builtinShipBrowser.events import EVT_FIT_REMOVED, EVT_FIT_RENAMED, EVT_FIT_SELECTED, FitSelected @@ -474,7 +474,7 @@ class FittingView(d.Display): sFit = Fit.getInstance() fit = sFit.getFit(self.activeFitID) - slotOrder = [Slot.SUBSYSTEM, Slot.HIGH, Slot.MED, Slot.LOW, Slot.RIG, Slot.SERVICE] + slotOrder = [FittingSlot.SUBSYSTEM, FittingSlot.HIGH, FittingSlot.MED, FittingSlot.LOW, FittingSlot.RIG, FittingSlot.SERVICE] if fit is not None: self.mods = fit.modules[:] @@ -507,7 +507,7 @@ class FittingView(d.Display): # while also marking the mode header position in the Blanks list if sFit.serviceFittingOptions["rackSlots"]: self.blanks.append(len(self.mods)) - self.mods.append(Rack.buildRack(Slot.MODE, None)) + self.mods.append(Rack.buildRack(FittingSlot.MODE, None)) self.mods.append(fit.mode) else: @@ -648,8 +648,8 @@ class FittingView(d.Display): slotMap = {} # test for too many modules (happens with t3s / CCP change in slot layout) - for slotType in Slot.getTypes(): - slot = Slot.getValue(slotType) + for slotType in FittingSlot.getTypes(): + slot = FittingSlot.getValue(slotType) slotMap[slot] = fit.getSlotsFree(slot) < 0 for i, mod in enumerate(self.mods): @@ -735,8 +735,8 @@ class FittingView(d.Display): return slotMap = {} - for slotType in Slot.getTypes(): - slot = Slot.getValue(slotType) + for slotType in FittingSlot.getTypes(): + slot = FittingSlot.getValue(slotType) slotMap[slot] = fit.getSlotsFree(slot) < 0 padding = 2 diff --git a/gui/fitCommands/calc/fitAddModule.py b/gui/fitCommands/calc/fitAddModule.py index cd96b6d4f..4bdf057c7 100644 --- a/gui/fitCommands/calc/fitAddModule.py +++ b/gui/fitCommands/calc/fitAddModule.py @@ -1,5 +1,5 @@ import wx -from eos.saveddata.module import Module, State +from eos.saveddata.module import Module, FittingModuleState import eos.db from logbook import Logger from service.fit import Fit @@ -52,8 +52,8 @@ class FitAddModuleCommand(wx.Command): self.module.owner = fit numSlots = len(fit.modules) fit.modules.append(self.module) - if self.module.isValidState(State.ACTIVE): - self.module.state = State.ACTIVE + if self.module.isValidState(FittingModuleState.ACTIVE): + self.module.state = FittingModuleState.ACTIVE # todo: fix these # As some items may affect state-limiting attributes of the ship, calculate new attributes first diff --git a/gui/fitCommands/calc/fitAddProjectedEnv.py b/gui/fitCommands/calc/fitAddProjectedEnv.py index dc1a0443a..90af881a9 100644 --- a/gui/fitCommands/calc/fitAddProjectedEnv.py +++ b/gui/fitCommands/calc/fitAddProjectedEnv.py @@ -1,5 +1,5 @@ import wx -from eos.saveddata.module import Module, State +from eos.saveddata.module import Module, FittingModuleState import eos.db from logbook import Logger pyfalog = Logger(__name__) @@ -28,7 +28,7 @@ class FitAddProjectedEnvCommand(wx.Command): # todo: thing to check for existing environmental effects - module.state = State.ONLINE + module.state = FittingModuleState.ONLINE if module.isExclusiveSystemEffect: # if this is an exclusive system effect, we need to cache the old one. We make room for the new one here, which returns the old one self.old_item = fit.projectedModules.makeRoom(module) diff --git a/gui/fitCommands/calc/fitAddProjectedModule.py b/gui/fitCommands/calc/fitAddProjectedModule.py index 6d2ad3f4f..4531ea8b5 100644 --- a/gui/fitCommands/calc/fitAddProjectedModule.py +++ b/gui/fitCommands/calc/fitAddProjectedModule.py @@ -1,7 +1,7 @@ import wx import eos.db from logbook import Logger -from eos.saveddata.module import Module, State +from eos.saveddata.module import Module, FittingModuleState pyfalog = Logger(__name__) @@ -27,9 +27,9 @@ class FitAddProjectedModuleCommand(wx.Command): except ValueError: return False - module.state = State.ACTIVE + module.state = FittingModuleState.ACTIVE if not module.canHaveState(module.state, fit): - module.state = State.OFFLINE + module.state = FittingModuleState.OFFLINE fit.projectedModules.append(module) eos.db.commit() diff --git a/gui/fitCommands/calc/fitImportMutatedModule.py b/gui/fitCommands/calc/fitImportMutatedModule.py index 3a28c68ea..b5e323d0e 100644 --- a/gui/fitCommands/calc/fitImportMutatedModule.py +++ b/gui/fitCommands/calc/fitImportMutatedModule.py @@ -1,5 +1,5 @@ import wx -from eos.saveddata.module import Module, State +from eos.saveddata.module import Module, FittingModuleState import eos.db from eos.db.gamedata.queries import getDynamicItem from logbook import Logger @@ -62,8 +62,8 @@ class FitImportMutatedCommand(wx.Command): module.owner = fit numSlots = len(fit.modules) fit.modules.append(module) - if module.isValidState(State.ACTIVE): - module.state = State.ACTIVE + if module.isValidState(FittingModuleState.ACTIVE): + module.state = FittingModuleState.ACTIVE # 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 286bd9451..3ccf371e7 100644 --- a/gui/fitCommands/calc/fitReplaceModule.py +++ b/gui/fitCommands/calc/fitReplaceModule.py @@ -2,7 +2,7 @@ import wx from logbook import Logger import eos.db -from eos.saveddata.module import Module, State +from eos.saveddata.module import Module, FittingModuleState from gui.fitCommands.helpers import ModuleInfoCache pyfalog = Logger(__name__) @@ -75,8 +75,8 @@ class FitReplaceModuleCommand(wx.Command): if self.module.fits(fit): self.module.owner = fit fit.modules.toModule(self.position, self.module) - if self.module.isValidState(State.ACTIVE): - self.module.state = State.ACTIVE + if self.module.isValidState(FittingModuleState.ACTIVE): + self.module.state = FittingModuleState.ACTIVE 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/service/character.py b/service/character.py index 565d7d329..1dc14c7c6 100644 --- a/service/character.py +++ b/service/character.py @@ -37,7 +37,7 @@ from service.esi import Esi from eos.saveddata.implant import Implant as es_Implant from eos.saveddata.character import Character as es_Character, Skill -from eos.saveddata.module import Slot as es_Slot, Module as es_Module +from eos.saveddata.module import FittingSlot as es_Slot, Module as es_Module from eos.saveddata.fighter import Fighter as es_Fighter pyfalog = Logger(__name__) diff --git a/service/esi.py b/service/esi.py index da11e4792..ce7d9a0cf 100644 --- a/service/esi.py +++ b/service/esi.py @@ -10,9 +10,9 @@ import webbrowser import eos.db from eos.enum import Enum -from eos.const import LoginMethod +from eos.const import EsiLoginMethod from eos.saveddata.ssocharacter import SsoCharacter -from service.esiAccess import APIException, SsoMode +from service.esiAccess import APIException, EsiSsoMode import gui.globalEvents as GE from gui.ssoLogin import SsoLogin, SsoLoginServer from service.server import StoppableHTTPServer, AuthHandler @@ -103,8 +103,8 @@ class Esi(EsiAccess): def login(self): # always start the local server if user is using client details. Otherwise, start only if they choose to do so. - if self.settings.get('ssoMode') == SsoMode.CUSTOM or self.settings.get('loginMode') == LoginMethod.SERVER: - dlg = gui.ssoLogin.SsoLoginServer(6461 if self.settings.get('ssoMode') == SsoMode.CUSTOM else 0) + if self.settings.get('ssoMode') == EsiSsoMode.CUSTOM or self.settings.get('loginMode') == EsiLoginMethod.SERVER: + dlg = gui.ssoLogin.SsoLoginServer(6461 if self.settings.get('ssoMode') == EsiSsoMode.CUSTOM else 0) dlg.ShowModal() else: dlg = gui.ssoLogin.SsoLogin() @@ -138,7 +138,7 @@ class Esi(EsiAccess): def handleLogin(self, message): # we already have authenticated stuff for the auto mode - if self.settings.get('ssoMode') == SsoMode.AUTO: + if self.settings.get('ssoMode') == EsiSsoMode.AUTO: ssoInfo = message['SSOInfo'][0] auth_response = json.loads(base64.b64decode(ssoInfo)) else: diff --git a/service/esiAccess.py b/service/esiAccess.py index bd5eb5307..0afe2bbc3 100644 --- a/service/esiAccess.py +++ b/service/esiAccess.py @@ -18,7 +18,7 @@ import base64 import datetime from eos.enum import Enum -from eos.const import SsoMode, ESIEndpoints +from eos.const import EsiSsoMode, EsiEndpoints from service.settings import EsiSettings, NetworkSettings from requests import Session @@ -78,7 +78,7 @@ class EsiAccess(object): @property def sso_url(self): - if self.settings.get("ssoMode") == SsoMode.CUSTOM: + if self.settings.get("ssoMode") == EsiSsoMode.CUSTOM: return "https://login.eveonline.com" return "https://www.pyfa.io" @@ -99,20 +99,20 @@ class EsiAccess(object): return '%s/oauth/token' % self.sso_url def getSkills(self, char): - return self.get(char, ESIEndpoints.CHAR_SKILLS, character_id=char.characterID) + return self.get(char, EsiEndpoints.CHAR_SKILLS, character_id=char.characterID) def getSecStatus(self, char): - return self.get(char, ESIEndpoints.CHAR, character_id=char.characterID) + return self.get(char, EsiEndpoints.CHAR, character_id=char.characterID) def getFittings(self, char): - return self.get(char, ESIEndpoints.CHAR_FITTINGS, character_id=char.characterID) + return self.get(char, EsiEndpoints.CHAR_FITTINGS, character_id=char.characterID) def postFitting(self, char, json_str): # @todo: new fitting ID can be recovered from resp.data, - return self.post(char, ESIEndpoints.CHAR_FITTINGS, json_str, character_id=char.characterID) + return self.post(char, EsiEndpoints.CHAR_FITTINGS, json_str, character_id=char.characterID) def delFitting(self, char, fittingID): - return self.delete(char, ESIEndpoints.CHAR_DEL_FIT, character_id=char.characterID, fitting_id=fittingID) + return self.delete(char, EsiEndpoints.CHAR_DEL_FIT, character_id=char.characterID, fitting_id=fittingID) @staticmethod def update_token(char, tokenResponse): @@ -125,7 +125,7 @@ class EsiAccess(object): def getLoginURI(self, redirect=None): self.state = str(uuid.uuid4()) - if self.settings.get("ssoMode") == SsoMode.AUTO: + if self.settings.get("ssoMode") == EsiSsoMode.AUTO: args = { 'state': self.state, 'pyfa_version': config.version, @@ -172,7 +172,7 @@ class EsiAccess(object): 'refresh_token': refreshToken, } - if self.settings.get('ssoMode') == SsoMode.AUTO: + if self.settings.get('ssoMode') == EsiSsoMode.AUTO: # data is all we really need, the rest is handled automatically by pyfa.io return { 'data': data, diff --git a/service/fit.py b/service/fit.py index 035bb50ee..44686dc00 100644 --- a/service/fit.py +++ b/service/fit.py @@ -31,7 +31,7 @@ from eos.saveddata.damagePattern import DamagePattern as es_DamagePattern from eos.saveddata.drone import Drone as es_Drone from eos.saveddata.fighter import Fighter as es_Fighter from eos.saveddata.fit import Fit as FitType, ImplantLocation -from eos.saveddata.module import Module as es_Module, State +from eos.saveddata.module import Module as es_Module, FittingModuleState from eos.saveddata.ship import Ship as es_Ship from service.character import Character from service.damagePattern import DamagePattern @@ -347,7 +347,7 @@ class Fit(FitDeprecated): elif isinstance(thing, es_Module): thing.state = es_Module.getProposedState(thing, click) if not thing.canHaveState(thing.state, fit): - thing.state = State.OFFLINE + thing.state = FittingModuleState.OFFLINE elif isinstance(thing, FitType): projectionInfo = thing.getProjectionInfo(fitID) if projectionInfo: @@ -379,8 +379,8 @@ class Fit(FitDeprecated): if m.fits(fit): m.owner = fit fit.modules.toModule(position, m) - if m.isValidState(State.ACTIVE): - m.state = State.ACTIVE + if m.isValidState(FittingModuleState.ACTIVE): + m.state = FittingModuleState.ACTIVE # As some items may affect state-limiting attributes of the ship, calculate new attributes first self.recalc(fit) @@ -534,13 +534,13 @@ class Fit(FitDeprecated): if mod != base: # fix for #529, where a module may be in incorrect state after CCP changes mechanics of module if not mod.canHaveState(mod.state) or not mod.isValidState(mod.state): - mod.state = State.ONLINE + mod.state = FittingModuleState.ONLINE changed = True for mod in fit.projectedModules: # fix for #529, where a module may be in incorrect state after CCP changes mechanics of module if not mod.canHaveState(mod.state, fit) or not mod.isValidState(mod.state): - mod.state = State.OFFLINE + mod.state = FittingModuleState.OFFLINE changed = True for drone in fit.projectedDrones: diff --git a/service/fitDeprecated.py b/service/fitDeprecated.py index 4f0d79b0d..0e1569deb 100644 --- a/service/fitDeprecated.py +++ b/service/fitDeprecated.py @@ -27,7 +27,7 @@ from eos.saveddata.cargo import Cargo as es_Cargo from eos.saveddata.drone import Drone as es_Drone from eos.saveddata.fighter import Fighter as es_Fighter from eos.saveddata.implant import Implant as es_Implant -from eos.saveddata.module import Module as es_Module, State +from eos.saveddata.module import Module as es_Module, FittingModuleState from eos.saveddata.fit import Fit as FitType from utils.deprecated import deprecated @@ -304,16 +304,16 @@ class FitDeprecated(object): fit.projectedFighters.append(fighter) elif thing.group.name in es_Module.SYSTEM_GROUPS: module = es_Module(thing) - module.state = State.ONLINE + module.state = FittingModuleState.ONLINE fit.projectedModules.append(module) else: try: module = es_Module(thing) except ValueError: return False - module.state = State.ACTIVE + module.state = FittingModuleState.ACTIVE if not module.canHaveState(module.state, fit): - module.state = State.OFFLINE + module.state = FittingModuleState.OFFLINE fit.projectedModules.append(module) eos.db.commit() @@ -396,8 +396,8 @@ class FitDeprecated(object): m.owner = fit numSlots = len(fit.modules) fit.modules.append(m) - if m.isValidState(State.ACTIVE): - m.state = State.ACTIVE + if m.isValidState(FittingModuleState.ACTIVE): + m.state = FittingModuleState.ACTIVE # As some items may affect state-limiting attributes of the ship, calculate new attributes first self.recalc(fit) @@ -465,8 +465,8 @@ class FitDeprecated(object): if m.fits(fit): m.owner = fit fit.modules.toModule(position, m) - if m.isValidState(State.ACTIVE): - m.state = State.ACTIVE + if m.isValidState(FittingModuleState.ACTIVE): + m.state = FittingModuleState.ACTIVE if recalc: # As some items may affect state-limiting attributes of the ship, calculate new attributes first @@ -508,8 +508,8 @@ class FitDeprecated(object): try: cargoP = es_Module(cargo.item) cargoP.owner = fit - if cargoP.isValidState(State.ACTIVE): - cargoP.state = State.ACTIVE + if cargoP.isValidState(FittingModuleState.ACTIVE): + cargoP.state = FittingModuleState.ACTIVE except: pyfalog.warning("Invalid item: {0}", cargo.item) return diff --git a/service/port/dna.py b/service/port/dna.py index bc64e9e99..6181a0d76 100644 --- a/service/port/dna.py +++ b/service/port/dna.py @@ -28,7 +28,7 @@ from eos.saveddata.citadel import Citadel from eos.saveddata.drone import Drone from eos.saveddata.fighter import Fighter from eos.saveddata.fit import Fit -from eos.saveddata.module import Module, State, Slot +from eos.saveddata.module import Module, FittingModuleState, FittingSlot from eos.saveddata.ship import Ship from service.fit import Fit as svcFit from service.market import Market @@ -106,8 +106,8 @@ def importDna(string): f.modules.append(m) else: m.owner = f - if m.isValidState(State.ACTIVE): - m.state = State.ACTIVE + if m.isValidState(FittingModuleState.ACTIVE): + m.state = FittingModuleState.ACTIVE moduleList.append(m) # Recalc to get slot numbers correct for T3 cruisers @@ -116,8 +116,8 @@ def importDna(string): for module in moduleList: if module.fits(f): module.owner = f - if module.isValidState(State.ACTIVE): - module.state = State.ACTIVE + if module.isValidState(FittingModuleState.ACTIVE): + module.state = FittingModuleState.ACTIVE f.modules.append(module) return f @@ -131,7 +131,7 @@ def exportDna(fit): sFit = svcFit.getInstance() for mod in fit.modules: if not mod.isEmpty: - if mod.slot == Slot.SUBSYSTEM: + if mod.slot == FittingSlot.SUBSYSTEM: subsystems.append(mod) continue if mod.itemID not in mods: diff --git a/service/port/efs.py b/service/port/efs.py index fe84ccb52..84c8a7001 100755 --- a/service/port/efs.py +++ b/service/port/efs.py @@ -7,7 +7,7 @@ from config import version as pyfaVersion from service.fit import Fit from service.market import Market from eos.enum import Enum -from eos.saveddata.module import Hardpoint, Slot, Module, State +from eos.saveddata.module import FittingHardpoint, FittingSlot, Module, FittingModuleState from eos.saveddata.drone import Drone from eos.effectHandlerHelpers import HandledList from eos.db import gamedata_session, getCategory, getAttributeInfo, getGroup @@ -78,7 +78,7 @@ class EfsPort: propWithBloom = next(filter(activePropWBloomFilter, propMods), None) if propWithBloom is not None: oldPropState = propWithBloom.state - propWithBloom.state = State.ONLINE + propWithBloom.state = FittingModuleState.ONLINE sFit.recalc(fit) sp = fit.maxSpeed sig = fit.ship.getModifiedItemAttr("signatureRadius") @@ -190,8 +190,8 @@ class EfsPort: def getModuleInfo(fit, padTypeIDs=False): moduleNames = [] modTypeIDs = [] - moduleNameSets = {Slot.LOW: [], Slot.MED: [], Slot.HIGH: [], Slot.RIG: [], Slot.SUBSYSTEM: []} - modTypeIDSets = {Slot.LOW: [], Slot.MED: [], Slot.HIGH: [], Slot.RIG: [], Slot.SUBSYSTEM: []} + moduleNameSets = {FittingSlot.LOW: [], FittingSlot.MED: [], FittingSlot.HIGH: [], FittingSlot.RIG: [], FittingSlot.SUBSYSTEM: []} + modTypeIDSets = {FittingSlot.LOW: [], FittingSlot.MED: [], FittingSlot.HIGH: [], FittingSlot.RIG: [], FittingSlot.SUBSYSTEM: []} for mod in fit.modules: try: if mod.item is not None: @@ -208,17 +208,17 @@ class EfsPort: pyfalog.error("Could not find name for module {0}".format(vars(mod))) for modInfo in [ - ["High Slots:"], moduleNameSets[Slot.HIGH], ["", "Med Slots:"], moduleNameSets[Slot.MED], - ["", "Low Slots:"], moduleNameSets[Slot.LOW], ["", "Rig Slots:"], moduleNameSets[Slot.RIG] + ["High Slots:"], moduleNameSets[FittingSlot.HIGH], ["", "Med Slots:"], moduleNameSets[FittingSlot.MED], + ["", "Low Slots:"], moduleNameSets[FittingSlot.LOW], ["", "Rig Slots:"], moduleNameSets[FittingSlot.RIG] ]: moduleNames.extend(modInfo) - if len(moduleNameSets[Slot.SUBSYSTEM]) > 0: + if len(moduleNameSets[FittingSlot.SUBSYSTEM]) > 0: moduleNames.extend(["", "Subsystems:"]) - moduleNames.extend(moduleNameSets[Slot.SUBSYSTEM]) + moduleNames.extend(moduleNameSets[FittingSlot.SUBSYSTEM]) - for slotType in [Slot.HIGH, Slot.MED, Slot.LOW, Slot.RIG, Slot.SUBSYSTEM]: - if slotType is not Slot.SUBSYSTEM or len(modTypeIDSets[slotType]) > 0: - modTypeIDs.extend([0, 0] if slotType is not Slot.HIGH else [0]) + for slotType in [FittingSlot.HIGH, FittingSlot.MED, FittingSlot.LOW, FittingSlot.RIG, FittingSlot.SUBSYSTEM]: + if slotType is not FittingSlot.SUBSYSTEM or len(modTypeIDSets[slotType]) > 0: + modTypeIDs.extend([0, 0] if slotType is not FittingSlot.HIGH else [0]) modTypeIDs.extend(modTypeIDSets[slotType]) droneNames = [] @@ -323,18 +323,18 @@ class EfsPort: name = stats.item.name + ", " + stats.charge.name else: name = stats.item.name - if stats.hardpoint == Hardpoint.TURRET: + if stats.hardpoint == FittingHardpoint.TURRET: tracking = stats.getModifiedItemAttr("trackingSpeed") typeing = "Turret" # Bombs share most attributes with missiles despite not needing the hardpoint - elif stats.hardpoint == Hardpoint.MISSILE or "Bomb Launcher" in stats.item.name: + elif stats.hardpoint == FittingHardpoint.MISSILE or "Bomb Launcher" in stats.item.name: maxVelocity = stats.getModifiedChargeAttr("maxVelocity") explosionDelay = stats.getModifiedChargeAttr("explosionDelay") damageReductionFactor = stats.getModifiedChargeAttr("aoeDamageReductionFactor") explosionRadius = stats.getModifiedChargeAttr("aoeCloudSize") explosionVelocity = stats.getModifiedChargeAttr("aoeVelocity") typeing = "Missile" - elif stats.hardpoint == Hardpoint.NONE: + elif stats.hardpoint == FittingHardpoint.NONE: aoeFieldRange = stats.getModifiedItemAttr("empFieldRange") # This also covers non-bomb weapons with dps values and no hardpoints, most notably targeted doomsdays. typeing = "SmartBomb" @@ -488,11 +488,11 @@ class EfsPort: getDroneMulti = lambda d: sumDamage(d.getModifiedItemAttr) * d.getModifiedItemAttr("damageMultiplier") fitMultipliers["drones"] = list(map(getDroneMulti, tf.drones)) - getFitTurrets = lambda f: filter(lambda mod: mod.hardpoint == Hardpoint.TURRET, f.modules) + getFitTurrets = lambda f: filter(lambda mod: mod.hardpoint == FittingHardpoint.TURRET, f.modules) getTurretMulti = lambda mod: mod.getModifiedItemAttr("damageMultiplier") / mod.cycleTime fitMultipliers["turrets"] = list(map(getTurretMulti, getFitTurrets(tf))) - getFitLaunchers = lambda f: filter(lambda mod: mod.hardpoint == Hardpoint.MISSILE, f.modules) + getFitLaunchers = lambda f: filter(lambda mod: mod.hardpoint == FittingHardpoint.MISSILE, f.modules) getLauncherMulti = lambda mod: sumDamage(mod.getModifiedChargeAttr) / mod.cycleTime fitMultipliers["launchers"] = list(map(getLauncherMulti, getFitLaunchers(tf))) return fitMultipliers @@ -530,7 +530,7 @@ class EfsPort: if effect._Effect__effectModule is not None: effect.handler(tf, fit.mode, []) if fit.ship.item.groupID == getGroup("Strategic Cruiser").ID: - subSystems = list(filter(lambda mod: mod.slot == Slot.SUBSYSTEM and mod.item, fit.modules)) + subSystems = list(filter(lambda mod: mod.slot == FittingSlot.SUBSYSTEM and mod.item, fit.modules)) for sub in subSystems: for effect in sub.item.effects.values(): if effect._Effect__effectModule is not None: diff --git a/service/port/eft.py b/service/port/eft.py index d8ac8e7f1..43a936529 100644 --- a/service/port/eft.py +++ b/service/port/eft.py @@ -20,8 +20,8 @@ import re from enum import Enum -from eos.const import RigSize -from eos.const import Options +from eos.const import PortEftRigSize +from eos.const import PortEftOptions from logbook import Logger @@ -32,7 +32,7 @@ from eos.saveddata.booster import Booster from eos.saveddata.drone import Drone from eos.saveddata.fighter import Fighter from eos.saveddata.implant import Implant -from eos.saveddata.module import Module, State, Slot +from eos.saveddata.module import Module, FittingModuleState, FittingSlot from eos.saveddata.ship import Ship from eos.saveddata.fit import Fit from service.fit import Fit as svcFit @@ -44,14 +44,14 @@ from service.port.shared import IPortUser, fetchItem, processing_notify pyfalog = Logger(__name__) EFT_OPTIONS = ( - (Options.LOADED_CHARGES.value, 'Loaded Charges', 'Export charges loaded into modules', True), - (Options.MUTATIONS.value, 'Mutated Attributes', 'Export mutated modules\' stats', True), - (Options.IMPLANTS.value, 'Implants && Boosters', 'Export implants and boosters', True), + (PortEftOptions.LOADED_CHARGES.value, 'Loaded Charges', 'Export charges loaded into modules', True), + (PortEftOptions.MUTATIONS.value, 'Mutated Attributes', 'Export mutated modules\' stats', True), + (PortEftOptions.IMPLANTS.value, 'Implants && Boosters', 'Export implants and boosters', True), ) MODULE_CATS = ('Module', 'Subsystem', 'Structure Module') -SLOT_ORDER = (Slot.LOW, Slot.MED, Slot.HIGH, Slot.RIG, Slot.SUBSYSTEM, Slot.SERVICE) +SLOT_ORDER = (FittingSlot.LOW, FittingSlot.MED, FittingSlot.HIGH, FittingSlot.RIG, FittingSlot.SUBSYSTEM, FittingSlot.SERVICE) OFFLINE_SUFFIX = '/OFFLINE' @@ -81,21 +81,21 @@ def exportEft(fit, options): modName = module.baseItem.name else: modName = module.item.name - if module.isMutated and options[Options.MUTATIONS.value]: + if module.isMutated and options[PortEftOptions.MUTATIONS.value]: mutants[mutantReference] = module mutationSuffix = ' [{}]'.format(mutantReference) mutantReference += 1 else: mutationSuffix = '' - modOfflineSuffix = ' {}'.format(OFFLINE_SUFFIX) if module.state == State.OFFLINE else '' - if module.charge and options[Options.LOADED_CHARGES.value]: + modOfflineSuffix = ' {}'.format(OFFLINE_SUFFIX) if module.state == FittingModuleState.OFFLINE else '' + if module.charge and options[PortEftOptions.LOADED_CHARGES.value]: rackLines.append('{}, {}{}{}'.format( modName, module.charge.name, modOfflineSuffix, mutationSuffix)) else: rackLines.append('{}{}{}'.format(modName, modOfflineSuffix, mutationSuffix)) else: rackLines.append('[Empty {} slot]'.format( - Slot.getName(slotType).capitalize() if slotType is not None else '')) + FittingSlot.getName(slotType).capitalize() if slotType is not None else '')) if rackLines: modSection.append('\n'.join(rackLines)) if modSection: @@ -117,7 +117,7 @@ def exportEft(fit, options): sections.append('\n\n'.join(minionSection)) # Section 3: implants, boosters - if options[Options.IMPLANTS.value]: + if options[PortEftOptions.IMPLANTS.value]: charSection = [] implantLines = [] for implant in fit.implants: @@ -144,7 +144,7 @@ def exportEft(fit, options): # Section 5: mutated modules' details mutationLines = [] - if mutants and options[Options.MUTATIONS.value]: + if mutants and options[PortEftOptions.MUTATIONS.value]: for mutantReference in sorted(mutants): mutant = mutants[mutantReference] mutationLines.append(renderMutant(mutant, firstPrefix='[{}] '.format(mutantReference), prefix=' ')) @@ -436,8 +436,8 @@ def importEftCfg(shipname, lines, iportuser): else: m.owner = fitobj # Activate mod if it is activable - if m.isValidState(State.ACTIVE): - m.state = State.ACTIVE + if m.isValidState(FittingModuleState.ACTIVE): + m.state = FittingModuleState.ACTIVE # Add charge to mod if applicable, on any errors just don't add anything if chargeName: try: @@ -717,12 +717,12 @@ class AbstractFit: @property def __slotContainerMap(self): return { - Slot.HIGH: self.modulesHigh, - Slot.MED: self.modulesMed, - Slot.LOW: self.modulesLow, - Slot.RIG: self.rigs, - Slot.SUBSYSTEM: self.subsystems, - Slot.SERVICE: self.services} + FittingSlot.HIGH: self.modulesHigh, + FittingSlot.MED: self.modulesMed, + FittingSlot.LOW: self.modulesLow, + FittingSlot.RIG: self.rigs, + FittingSlot.SUBSYSTEM: self.subsystems, + FittingSlot.SERVICE: self.services} def getContainerBySlot(self, slotType): return self.__slotContainerMap.get(slotType) @@ -793,10 +793,10 @@ class AbstractFit: if itemSpec.charge is not None and m.isValidCharge(itemSpec.charge): m.charge = itemSpec.charge - if itemSpec.offline and m.isValidState(State.OFFLINE): - m.state = State.OFFLINE - elif m.isValidState(State.ACTIVE): - m.state = State.ACTIVE + if itemSpec.offline and m.isValidState(FittingModuleState.OFFLINE): + m.state = FittingModuleState.OFFLINE + elif m.isValidState(FittingModuleState.ACTIVE): + m.state = FittingModuleState.ACTIVE return m def addImplant(self, itemSpec): diff --git a/service/port/esi.py b/service/port/esi.py index a97480624..b1cc8aee7 100644 --- a/service/port/esi.py +++ b/service/port/esi.py @@ -28,7 +28,7 @@ from eos.saveddata.citadel import Citadel from eos.saveddata.drone import Drone from eos.saveddata.fighter import Fighter from eos.saveddata.fit import Fit -from eos.saveddata.module import Module, State, Slot +from eos.saveddata.module import Module, FittingModuleState, FittingSlot from eos.saveddata.ship import Ship from service.fit import Fit as svcFit from service.market import Market @@ -41,12 +41,12 @@ class ESIExportException(Exception): pyfalog = Logger(__name__) INV_FLAGS = { - Slot.LOW: 11, - Slot.MED: 19, - Slot.HIGH: 27, - Slot.RIG: 92, - Slot.SUBSYSTEM: 125, - Slot.SERVICE: 164 + FittingSlot.LOW: 11, + FittingSlot.MED: 19, + FittingSlot.HIGH: 27, + FittingSlot.RIG: 92, + FittingSlot.SUBSYSTEM: 125, + FittingSlot.SERVICE: 164 } INV_FLAG_CARGOBAY = 5 @@ -82,7 +82,7 @@ def exportESI(ofit): item = nested_dict() slot = module.slot - if slot == Slot.SUBSYSTEM: + if slot == FittingSlot.SUBSYSTEM: # Order of subsystem matters based on this attr. See GH issue #130 slot = int(module.getModifiedItemAttr("subSystemSlot")) item['flag'] = slot @@ -189,8 +189,8 @@ def importESI(string): if m.fits(fitobj): fitobj.modules.append(m) else: - if m.isValidState(State.ACTIVE): - m.state = State.ACTIVE + if m.isValidState(FittingModuleState.ACTIVE): + m.state = FittingModuleState.ACTIVE moduleList.append(m) diff --git a/service/port/multibuy.py b/service/port/multibuy.py index fcaa5902d..a2ecb7706 100644 --- a/service/port/multibuy.py +++ b/service/port/multibuy.py @@ -19,14 +19,14 @@ from enum import Enum -from eos.const import MultiBuy_ItemType +from eos.const import PortMultiBuyItemType MULTIBUY_OPTIONS = ( - (MultiBuy_ItemType.LOADED_CHARGES.value, 'Loaded Charges', 'Export charges loaded into modules', True), - (MultiBuy_ItemType.IMPLANTS.value, 'Implants && Boosters', 'Export implants and boosters', False), - (MultiBuy_ItemType.CARGO.value, 'Cargo', 'Export cargo contents', True), + (PortMultiBuyItemType.LOADED_CHARGES.value, 'Loaded Charges', 'Export charges loaded into modules', True), + (PortMultiBuyItemType.IMPLANTS.value, 'Implants && Boosters', 'Export implants and boosters', False), + (PortMultiBuyItemType.CARGO.value, 'Cargo', 'Export cargo contents', True), ) @@ -44,7 +44,7 @@ def exportMultiBuy(fit, options): if module.isMutated: continue addItem(module.item) - if module.charge and options[MultiBuy_ItemType.LOADED_CHARGES.value]: + if module.charge and options[PortMultiBuyItemType.LOADED_CHARGES.value]: addItem(module.charge, module.numCharges) for drone in fit.drones: @@ -53,11 +53,11 @@ def exportMultiBuy(fit, options): for fighter in fit.fighters: addItem(fighter.item, fighter.amountActive) - if options[MultiBuy_ItemType.CARGO.value]: + if options[PortMultiBuyItemType.CARGO.value]: for cargo in fit.cargo: addItem(cargo.item, cargo.amount) - if options[MultiBuy_ItemType.IMPLANTS.value]: + if options[PortMultiBuyItemType.IMPLANTS.value]: for implant in fit.implants: addItem(implant.item) diff --git a/service/port/xml.py b/service/port/xml.py index 432bbcdd8..5f708cc64 100644 --- a/service/port/xml.py +++ b/service/port/xml.py @@ -28,7 +28,7 @@ from eos.saveddata.citadel import Citadel from eos.saveddata.drone import Drone from eos.saveddata.fighter import Fighter from eos.saveddata.fit import Fit -from eos.saveddata.module import Module, State, Slot +from eos.saveddata.module import Module, FittingModuleState, FittingSlot from eos.saveddata.ship import Ship from service.fit import Fit as svcFit from service.market import Market @@ -198,8 +198,8 @@ def importXml(text, iportuser): m.owner = fitobj fitobj.modules.append(m) else: - if m.isValidState(State.ACTIVE): - m.state = State.ACTIVE + if m.isValidState(FittingModuleState.ACTIVE): + m.state = FittingModuleState.ACTIVE moduleList.append(m) @@ -266,7 +266,7 @@ def exportXml(iportuser, *fits): slot = module.slot - if slot == Slot.SUBSYSTEM: + if slot == FittingSlot.SUBSYSTEM: # Order of subsystem matters based on this attr. See GH issue #130 slotId = module.getModifiedItemAttr("subSystemSlot") - 125 else: @@ -278,7 +278,7 @@ def exportXml(iportuser, *fits): hardware = doc.createElement("hardware") hardware.setAttribute("type", module.item.name) - slotName = Slot.getName(slot).lower() + slotName = FittingSlot.getName(slot).lower() slotName = slotName if slotName != "high" else "hi" hardware.setAttribute("slot", "%s slot %d" % (slotName, slotId)) fitting.appendChild(hardware) From aaec82e493e2f5af7a390114e7b0a014a6a92bf9 Mon Sep 17 00:00:00 2001 From: Indiction Date: Sat, 9 Mar 2019 12:30:05 +0100 Subject: [PATCH 41/88] Added unique to current IntEnums Renamed PortMultiBuyItemType to PortMultiBuyOptions --- eos/const.py | 6 ++++-- service/port/multibuy.py | 14 +++++++------- 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/eos/const.py b/eos/const.py index 29b443846..b88e02c26 100644 --- a/eos/const.py +++ b/eos/const.py @@ -18,7 +18,7 @@ # ============================================================================= from eos.enum import Enum -from enum import IntEnum +from enum import IntEnum,unique class FittingSlot(Enum): """ @@ -101,7 +101,8 @@ class EsiEndpoints(Enum): CHAR_FITTINGS = "/v1/characters/{character_id}/fittings/" CHAR_DEL_FIT = "/v1/characters/{character_id}/fittings/{fitting_id}/" -class PortMultiBuyItemType(IntEnum): +@unique +class PortMultiBuyOptions(IntEnum): """ Contains different types of items to multibuy export """ @@ -109,6 +110,7 @@ class PortMultiBuyItemType(IntEnum): CARGO = 2 LOADED_CHARGES = 3 +@unique class PortEftOptions(IntEnum): """ Contains different options for eft-export diff --git a/service/port/multibuy.py b/service/port/multibuy.py index a2ecb7706..5ea6e7afa 100644 --- a/service/port/multibuy.py +++ b/service/port/multibuy.py @@ -19,14 +19,14 @@ from enum import Enum -from eos.const import PortMultiBuyItemType +from eos.const import PortMultiBuyOptions MULTIBUY_OPTIONS = ( - (PortMultiBuyItemType.LOADED_CHARGES.value, 'Loaded Charges', 'Export charges loaded into modules', True), - (PortMultiBuyItemType.IMPLANTS.value, 'Implants && Boosters', 'Export implants and boosters', False), - (PortMultiBuyItemType.CARGO.value, 'Cargo', 'Export cargo contents', True), + (PortMultiBuyOptions.LOADED_CHARGES.value, 'Loaded Charges', 'Export charges loaded into modules', True), + (PortMultiBuyOptions.IMPLANTS.value, 'Implants && Boosters', 'Export implants and boosters', False), + (PortMultiBuyOptions.CARGO.value, 'Cargo', 'Export cargo contents', True), ) @@ -44,7 +44,7 @@ def exportMultiBuy(fit, options): if module.isMutated: continue addItem(module.item) - if module.charge and options[PortMultiBuyItemType.LOADED_CHARGES.value]: + if module.charge and options[PortMultiBuyOptions.LOADED_CHARGES.value]: addItem(module.charge, module.numCharges) for drone in fit.drones: @@ -53,11 +53,11 @@ def exportMultiBuy(fit, options): for fighter in fit.fighters: addItem(fighter.item, fighter.amountActive) - if options[PortMultiBuyItemType.CARGO.value]: + if options[PortMultiBuyOptions.CARGO.value]: for cargo in fit.cargo: addItem(cargo.item, cargo.amount) - if options[PortMultiBuyItemType.IMPLANTS.value]: + if options[PortMultiBuyOptions.IMPLANTS.value]: for implant in fit.implants: addItem(implant.item) From 22fc6cb13c93267770fa5e51c22fed401cab499f Mon Sep 17 00:00:00 2001 From: DarkPhoenix Date: Sat, 9 Mar 2019 15:44:50 +0300 Subject: [PATCH 42/88] Integrate price optimization with undo/redo --- gui/builtinStatsViews/priceViewFull.py | 9 ++-- gui/builtinStatsViews/priceViewMinimal.py | 9 ++-- gui/fitCommands/__init__.py | 1 + gui/fitCommands/calc/fitRebaseItem.py | 31 ++++++++++++++ gui/fitCommands/guiOptimizePrice.py | 12 ------ gui/fitCommands/guiRebaseItems.py | 46 +++++++++++++++++++++ gui/mainFrame.py | 17 ++++---- service/fit.py | 23 +++++++++-- service/price.py | 50 +---------------------- 9 files changed, 115 insertions(+), 83 deletions(-) create mode 100644 gui/fitCommands/calc/fitRebaseItem.py delete mode 100644 gui/fitCommands/guiOptimizePrice.py create mode 100644 gui/fitCommands/guiRebaseItems.py diff --git a/gui/builtinStatsViews/priceViewFull.py b/gui/builtinStatsViews/priceViewFull.py index ebb6acac8..0e17ed85c 100644 --- a/gui/builtinStatsViews/priceViewFull.py +++ b/gui/builtinStatsViews/priceViewFull.py @@ -22,7 +22,7 @@ import wx from gui.statsView import StatsView from gui.bitmap_loader import BitmapLoader from gui.utils.numberFormatter import formatAmount -from service.price import Price +from service.price import Fit, Price from service.settings import PriceMenuSettings @@ -79,11 +79,8 @@ class PriceViewFull(StatsView): def refreshPanel(self, fit): if fit is not None: self.fit = fit - - fit_items = Price.fitItemsList(fit) - - sPrice = Price.getInstance() - sPrice.getPrices(fit_items, self.processPrices, fetchTimeout=30) + fit_items = set(Fit.fitItemIter(fit)) + Price.getInstance().getPrices(fit_items, self.processPrices, fetchTimeout=30) self.labelEMStatus.SetLabel("Updating prices...") self.refreshPanelPrices(fit) diff --git a/gui/builtinStatsViews/priceViewMinimal.py b/gui/builtinStatsViews/priceViewMinimal.py index 41c837c04..4506f2686 100644 --- a/gui/builtinStatsViews/priceViewMinimal.py +++ b/gui/builtinStatsViews/priceViewMinimal.py @@ -22,7 +22,7 @@ import wx from gui.statsView import StatsView from gui.bitmap_loader import BitmapLoader from gui.utils.numberFormatter import formatAmount -from service.price import Price +from service.price import Fit, Price from service.settings import PriceMenuSettings @@ -73,11 +73,8 @@ class PriceViewMinimal(StatsView): def refreshPanel(self, fit): if fit is not None: self.fit = fit - - fit_items = Price.fitItemsList(fit) - - sPrice = Price.getInstance() - sPrice.getPrices(fit_items, self.processPrices, fetchTimeout=30) + fit_items = set(Fit.fitItemIter(fit)) + Price.getInstance().getPrices(fit_items, self.processPrices, fetchTimeout=30) self.labelEMStatus.SetLabel("Updating prices...") self.refreshPanelPrices(fit) diff --git a/gui/fitCommands/__init__.py b/gui/fitCommands/__init__.py index 42b718c5d..f1e3a4de8 100644 --- a/gui/fitCommands/__init__.py +++ b/gui/fitCommands/__init__.py @@ -35,3 +35,4 @@ from .guiToggleDrone import GuiToggleDroneCommand from .guiFitRename import GuiFitRenameCommand from .guiChangeImplantLocation import GuiChangeImplantLocation from .guiImportMutatedModule import GuiImportMutatedModuleCommand +from .guiRebaseItems import GuiRebaseItemsCommand diff --git a/gui/fitCommands/calc/fitRebaseItem.py b/gui/fitCommands/calc/fitRebaseItem.py new file mode 100644 index 000000000..1fb44b266 --- /dev/null +++ b/gui/fitCommands/calc/fitRebaseItem.py @@ -0,0 +1,31 @@ +import wx + +from logbook import Logger + +import eos.db + + +pyfalog = Logger(__name__) + + +class FitRebaseItemCommand(wx.Command): + + def __init__(self, fitID, containerName, position, newTypeID): + wx.Command.__init__(self, True, "Rebase Item") + self.fitID = fitID + self.containerName = containerName + self.position = position + self.newTypeID = newTypeID + self.oldTypeID = None + + def Do(self): + fit = eos.db.getFit(self.fitID) + obj = getattr(fit, self.containerName)[self.position] + self.oldTypeID = getattr(obj.item, "ID", None) + newItem = eos.db.getItem(self.newTypeID) + obj.rebase(newItem) + return True + + def Undo(self): + cmd = FitRebaseItemCommand(self.fitID, self.containerName, self.position, self.oldTypeID) + return cmd.Do() diff --git a/gui/fitCommands/guiOptimizePrice.py b/gui/fitCommands/guiOptimizePrice.py deleted file mode 100644 index e41edab81..000000000 --- a/gui/fitCommands/guiOptimizePrice.py +++ /dev/null @@ -1,12 +0,0 @@ -import wx - - -class GuiOptimizePriceCommand(wx.Command): - def __init__(self): - wx.Command.__init__(self, True, "Optimize Price") - - def Do(self): - pass - - def Undo(self): - pass diff --git a/gui/fitCommands/guiRebaseItems.py b/gui/fitCommands/guiRebaseItems.py new file mode 100644 index 000000000..8a69a78f5 --- /dev/null +++ b/gui/fitCommands/guiRebaseItems.py @@ -0,0 +1,46 @@ +import wx + +import eos.db +import gui.mainFrame +from gui import globalEvents as GE +from service.fit import Fit +from .calc.fitRebaseItem import FitRebaseItemCommand +from .calc.fitSetCharge import FitSetChargeCommand + + +class GuiRebaseItemsCommand(wx.Command): + + def __init__(self, fitID, rebaseMap): + wx.Command.__init__(self, True, "Mass Rebase Item") + self.mainFrame = gui.mainFrame.MainFrame.getInstance() + self.fitID = fitID + self.rebaseMap = rebaseMap + self.internal_history = wx.CommandProcessor() + + def Do(self): + fit = eos.db.getFit(self.fitID) + for mod in fit.modules: + if mod.item is not None and mod.item.ID in self.rebaseMap: + self.internal_history.Submit(FitRebaseItemCommand(self.fitID, "modules", mod.modPosition, self.rebaseMap[mod.item.ID])) + if mod.charge is not None and mod.charge.ID in self.rebaseMap: + self.internal_history.Submit(FitSetChargeCommand(self.fitID, [mod.modPosition], self.rebaseMap[mod.charge.ID])) + for containerName in ("drones", "fighters", "implants", "boosters", "cargo"): + container = getattr(fit, containerName) + for obj in container: + if obj.item is not None and obj.item.ID in self.rebaseMap: + self.internal_history.Submit(FitRebaseItemCommand(self.fitID, containerName, container.index(obj), self.rebaseMap[obj.item.ID])) + if self.internal_history.Commands: + eos.db.commit() + Fit.getInstance().recalc(self.fitID) + wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.fitID)) + return True + else: + return False + + def Undo(self): + for _ in self.internal_history.Commands: + self.internal_history.Undo() + eos.db.commit() + Fit.getInstance().recalc(self.fitID) + wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.fitID)) + return True diff --git a/gui/mainFrame.py b/gui/mainFrame.py index 45dd20e35..61fe7ceac 100644 --- a/gui/mainFrame.py +++ b/gui/mainFrame.py @@ -659,16 +659,19 @@ class MainFrame(wx.Frame): wx.PostEvent(self, GE.CharListUpdated()) def optimizeFitPrice(self, event): - sPrice = Price.getInstance() fitID = self.getActiveFit() - fit = Fit.getInstance().getFit(fitID) + sFit = Fit.getInstance() + fit = sFit.getFit(fitID) if fit: - # TODO: block/unblock UI while pyfa is working - def cb(changes): - if changes: - wx.PostEvent(self, GE.FitChanged(fitID=fitID)) - sPrice.optimizeFitPrice(fit, cb, fetchTimeout=10) + def updateFitCb(replacementsCheaper): + rebaseMap = {k.ID: v.ID for k, v in replacementsCheaper.items()} + self.command.Submit(cmd.GuiRebaseItemsCommand(fitID, rebaseMap)) + + # TODO: block/unblock UI while pyfa is working + fitItems = {i for i in Fit.fitItemIter(fit) if i is not fit.ship.item} + Price.getInstance().findCheaperReplacements(fitItems, updateFitCb, fetchTimeout=10) + def AdditionsTabSelect(self, event): selTab = self.additionsSelect.index(event.GetId()) diff --git a/service/fit.py b/service/fit.py index 035bb50ee..d3bc0a0c1 100644 --- a/service/fit.py +++ b/service/fit.py @@ -549,9 +549,26 @@ class Fit(FitDeprecated): changed = True return changed - # If any state was changed, recalculate attributes again - # if changed: - # self.recalc(fit) + + @classmethod + def fitObjectIter(cls, fit): + yield fit.ship + + for mod in fit.modules: + if not mod.isEmpty: + yield mod + + for container in (fit.drones, fit.fighters, fit.implants, fit.boosters, fit.cargo): + for obj in container: + yield obj + + @classmethod + def fitItemIter(cls, fit): + for fitobj in cls.fitObjectIter(fit): + yield fitobj.item + charge = getattr(fitobj, 'charge', None) + if charge: + yield charge def refreshFit(self, fitID): pyfalog.debug("Refresh fit for fit ID: {0}", fitID) diff --git a/service/price.py b/service/price.py index 0f0f11ce6..5cfdf09c8 100644 --- a/service/price.py +++ b/service/price.py @@ -28,6 +28,7 @@ from logbook import Logger from eos import db from eos.saveddata.price import PriceStatus +from gui.fitCommands.guiRebaseItems import GuiRebaseItemsCommand from service.fit import Fit from service.market import Market from service.network import TimeoutError @@ -144,30 +145,6 @@ class Price: for typeID in priceMap.keys(): priceMap[typeID].update(PriceStatus.fetchFail) - @classmethod - def fitItemsList(cls, fit): - return list(set(cls.fitItemIter(fit))) - - @classmethod - def fitObjectIter(cls, fit): - yield fit.ship - - for mod in fit.modules: - if not mod.isEmpty: - yield mod - - for container in (fit.drones, fit.fighters, fit.implants, fit.boosters, fit.cargo): - for obj in container: - yield obj - - @classmethod - def fitItemIter(cls, fit): - for fitobj in cls.fitObjectIter(fit): - yield fitobj.item - charge = getattr(fitobj, 'charge', None) - if charge: - yield charge - def getPriceNow(self, objitem): """Get price for provided typeID""" sMkt = Market.getInstance() @@ -230,32 +207,7 @@ class Price: validityOverride = 2 * 60 * 60 self.getPrices(itemsToFetch, makeCheapMapCb, fetchTimeout=fetchTimeout, validityOverride=validityOverride) - def optimizeFitPrice(self, fit, callback, fetchTimeout=10): - def updateFitCb(replacementsCheaper): - changes = False - for mod in fit.modules: - if mod.item in replacementsCheaper: - mod.rebase(replacementsCheaper[mod.item]) - changes = True - if mod.charge in replacementsCheaper: - mod.charge = replacementsCheaper[mod.charge] - changes = True - for container in (fit.drones, fit.fighters, fit.implants, fit.boosters, fit.cargo): - for obj in container: - if obj.item in replacementsCheaper: - obj.rebase(replacementsCheaper[obj.item]) - changes = True - if changes: - Fit.getInstance().refreshFit(fit.ID) - try: - callback(changes) - except Exception as e: - pyfalog.critical("Execution of callback from optimizeFitPrice failed.") - pyfalog.critical(e) - - fitItems = {i for i in self.fitItemIter(fit) if i is not fit.ship.item} - self.findCheaperReplacements(fitItems, updateFitCb, fetchTimeout=fetchTimeout) class PriceWorkerThread(threading.Thread): From f58c8ec4f94726d36c2bf43961e37a8913065c13 Mon Sep 17 00:00:00 2001 From: Indiction Date: Sat, 9 Mar 2019 15:18:10 +0100 Subject: [PATCH 43/88] Added unique to rest except Fittingslot --- eos/const.py | 18 ++++++++++++------ eos/saveddata/fit.py | 2 +- gui/builtinViewColumns/state.py | 8 ++++---- 3 files changed, 17 insertions(+), 11 deletions(-) diff --git a/eos/const.py b/eos/const.py index b88e02c26..08a0dc3e1 100644 --- a/eos/const.py +++ b/eos/const.py @@ -46,14 +46,16 @@ class FittingSlot(Enum): FS_SUPPORT = 14 FS_HEAVY = 15 -class ImplantLocation(Enum): +@unique +class ImplantLocation(IntEnum): """ Contains location of the implant """ FIT = 0 CHARACTER = 1 -class CalcType(Enum): +@unique +class CalcType(IntEnum): """ Contains location of the calculation """ @@ -61,7 +63,8 @@ class CalcType(Enum): PROJECTED = 1 COMMAND = 2 -class FittingModuleState(Enum): +@unique +class FittingModuleState(IntEnum): """ Contains the state of a fitting module """ @@ -70,7 +73,8 @@ class FittingModuleState(Enum): ACTIVE = 1 OVERHEATED = 2 -class FittingHardpoint(Enum): +@unique +class FittingHardpoint(IntEnum): """ Contains the types of a fitting hardpoint """ @@ -78,14 +82,16 @@ class FittingHardpoint(Enum): MISSILE = 1 TURRET = 2 -class EsiLoginMethod(Enum): +@unique +class EsiLoginMethod(IntEnum): """ Contains the method of ESI login """ SERVER = 0 MANUAL = 1 -class EsiSsoMode(Enum): +@unique +class EsiSsoMode(IntEnum): """ Contains the mode of ESI sso mode """ diff --git a/eos/saveddata/fit.py b/eos/saveddata/fit.py index eb3a1c7d8..5d7310dfc 100644 --- a/eos/saveddata/fit.py +++ b/eos/saveddata/fit.py @@ -732,7 +732,7 @@ class Fit(object): The type of calculation our current iteration is in. This helps us determine the interactions between fits that rely on others for proper calculations """ - pyfalog.info("Starting fit calculation on: {0}, calc: {1}", repr(self), CalcType.getName(type)) + pyfalog.info("Starting fit calculation on: {0}, calc: {1}", repr(self), CalcType(type).name) # If we are projecting this fit onto another one, collect the projection info for later use diff --git a/gui/builtinViewColumns/state.py b/gui/builtinViewColumns/state.py index 67aa483f6..14a797561 100644 --- a/gui/builtinViewColumns/state.py +++ b/gui/builtinViewColumns/state.py @@ -49,8 +49,8 @@ class State(ViewColumn): return State_.getName(mod.state).title() def getImageId(self, stuff): - generic_active = self.fittingView.imageList.GetImageIndex("state_%s_small" % State_.getName(1).lower(), "gui") - generic_inactive = self.fittingView.imageList.GetImageIndex("state_%s_small" % State_.getName(-1).lower(), + generic_active = self.fittingView.imageList.GetImageIndex("state_%s_small" % State_(1).name.lower(), "gui") + generic_inactive = self.fittingView.imageList.GetImageIndex("state_%s_small" % State_(-1).name.lower(), "gui") if isinstance(stuff, Drone): @@ -64,7 +64,7 @@ class State(ViewColumn): if stuff.isEmpty: return -1 else: - return self.fittingView.imageList.GetImageIndex("state_%s_small" % State_.getName(stuff.state).lower(), + return self.fittingView.imageList.GetImageIndex("state_%s_small" % State_(stuff.state).name.lower(), "gui") elif isinstance(stuff, Fit): fitID = self.mainFrame.getActiveFit() @@ -83,7 +83,7 @@ class State(ViewColumn): return generic_inactive elif isinstance(stuff, Implant) and stuff.character: # if we're showing character implants, show an "online" state, which should not be changed - return self.fittingView.imageList.GetImageIndex("state_%s_small" % State_.getName(0).lower(), "gui") + return self.fittingView.imageList.GetImageIndex("state_%s_small" % State_(0).name.lower(), "gui") else: active = getattr(stuff, "active", None) if active is None: From d2b306d0302d6f66890578373deb0eae32531e96 Mon Sep 17 00:00:00 2001 From: DarkPhoenix Date: Sat, 9 Mar 2019 17:31:02 +0300 Subject: [PATCH 44/88] Fix export window sizing bug --- gui/copySelectDialog.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gui/copySelectDialog.py b/gui/copySelectDialog.py index 91725e048..600526578 100644 --- a/gui/copySelectDialog.py +++ b/gui/copySelectDialog.py @@ -87,8 +87,8 @@ class CopySelectDialog(wx.Dialog): self.options[formatId][optId] = checkbox if self.settings['options'].get(formatId, {}).get(optId, defaultFormatOptions.get(formatId, {}).get(optId)): checkbox.SetValue(True) - bsizer.Add(checkbox, 1, wx.EXPAND | wx.TOP | wx.BOTTOM, 3) - mainSizer.Add(bsizer, 1, wx.EXPAND | wx.LEFT, 20) + bsizer.Add(checkbox, 0, wx.EXPAND | wx.TOP | wx.BOTTOM, 3) + mainSizer.Add(bsizer, 0, wx.EXPAND | wx.LEFT, 20) buttonSizer = self.CreateButtonSizer(wx.OK | wx.CANCEL) if buttonSizer: From f53c8e9efcb3ead8b19bb9e5969d7c72954b35fa Mon Sep 17 00:00:00 2001 From: DarkPhoenix Date: Sat, 9 Mar 2019 17:40:13 +0300 Subject: [PATCH 45/88] Switch "total" and "character" around So that total is bottom-right item --- gui/builtinStatsViews/priceViewFull.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gui/builtinStatsViews/priceViewFull.py b/gui/builtinStatsViews/priceViewFull.py index 0e17ed85c..92aea617f 100644 --- a/gui/builtinStatsViews/priceViewFull.py +++ b/gui/builtinStatsViews/priceViewFull.py @@ -51,7 +51,7 @@ class PriceViewFull(StatsView): gridPrice = wx.GridSizer(2, 3, 0, 0) contentSizer.Add(gridPrice, 0, wx.EXPAND | wx.ALL, 0) - for _type in ("ship", "fittings", "total", "drones", "cargoBay", "character"): + for _type in ("ship", "fittings", "character", "drones", "cargoBay", "total"): if _type in "ship": image = "ship_big" elif _type in ("fittings", "total"): From bd33efa87595119f9a7a41c466cc133863a78477 Mon Sep 17 00:00:00 2001 From: Indiction Date: Sat, 9 Mar 2019 18:45:28 +0100 Subject: [PATCH 46/88] Changed FittingSlot to IntEnum --- eos/const.py | 3 ++- eos/saveddata/fighter.py | 2 +- eos/saveddata/fit.py | 6 +++--- eos/saveddata/module.py | 14 +++++++------- gui/builtinAdditionPanes/fighterView.py | 3 ++- gui/builtinViewColumns/baseIcon.py | 5 +++-- gui/builtinViewColumns/baseName.py | 7 ++++--- gui/builtinViewColumns/state.py | 2 +- gui/builtinViews/fittingView.py | 10 +++++----- service/character.py | 3 ++- service/port/dna.py | 3 ++- service/port/efs.py | 3 ++- service/port/eft.py | 5 +++-- service/port/esi.py | 3 ++- service/port/xml.py | 5 +++-- 15 files changed, 42 insertions(+), 32 deletions(-) diff --git a/eos/const.py b/eos/const.py index 08a0dc3e1..63b7cc533 100644 --- a/eos/const.py +++ b/eos/const.py @@ -20,7 +20,8 @@ from eos.enum import Enum from enum import IntEnum,unique -class FittingSlot(Enum): +@unique +class FittingSlot(IntEnum): """ Contains slots for ship fittings """ diff --git a/eos/saveddata/fighter.py b/eos/saveddata/fighter.py index b11ced0fd..d0e9513f7 100644 --- a/eos/saveddata/fighter.py +++ b/eos/saveddata/fighter.py @@ -25,8 +25,8 @@ import eos.db from eos.effectHandlerHelpers import HandledItem, HandledCharge from eos.modifiedAttributeDict import ModifiedAttributeDict, ItemAttrShortcut, ChargeAttrShortcut from eos.saveddata.fighterAbility import FighterAbility -from eos.saveddata.module import FittingSlot from eos.utils.stats import DmgTypes +from eos.const import FittingSlot pyfalog = Logger(__name__) diff --git a/eos/saveddata/fit.py b/eos/saveddata/fit.py index 5d7310dfc..0daff8b50 100644 --- a/eos/saveddata/fit.py +++ b/eos/saveddata/fit.py @@ -29,12 +29,12 @@ import eos.db from eos import capSim from eos.effectHandlerHelpers import HandledModuleList, HandledDroneCargoList, HandledImplantBoosterList, HandledProjectedDroneList, HandledProjectedModList from eos.enum import Enum -from eos.const import ImplantLocation, CalcType +from eos.const import ImplantLocation, CalcType, FittingSlot from eos.saveddata.ship import Ship from eos.saveddata.drone import Drone from eos.saveddata.character import Character from eos.saveddata.citadel import Citadel -from eos.saveddata.module import Module, FittingModuleState, FittingSlot, FittingHardpoint +from eos.saveddata.module import Module, FittingModuleState, FittingHardpoint from eos.utils.stats import DmgTypes from logbook import Logger @@ -892,7 +892,7 @@ class Fit(object): if self.ship is None: return - for slotType in (FittingSlot.LOW, FittingSlot.MED, FittingSlot.HIGH, FittingSlot.RIG, FittingSlot.SUBSYSTEM, FittingSlot.SERVICE): + for slotType in (FittingSlot.LOW.value, FittingSlot.MED.value, FittingSlot.HIGH.value, FittingSlot.RIG.value, FittingSlot.SUBSYSTEM.value, FittingSlot.SERVICE.value): amount = self.getSlotsFree(slotType, True) if amount > 0: for _ in range(int(amount)): diff --git a/eos/saveddata/module.py b/eos/saveddata/module.py index 34b8143c1..57f61cca8 100644 --- a/eos/saveddata/module.py +++ b/eos/saveddata/module.py @@ -23,7 +23,7 @@ from logbook import Logger from sqlalchemy.orm import reconstructor, validates import eos.db -from eos.const import FittingSlot, FittingModuleState, FittingHardpoint +from eos.const import FittingModuleState, FittingHardpoint, FittingSlot from eos.effectHandlerHelpers import HandledCharge, HandledItem from eos.enum import Enum from eos.modifiedAttributeDict import ChargeAttrShortcut, ItemAttrShortcut, ModifiedAttributeDict @@ -720,12 +720,12 @@ class Module(HandledItem, HandledCharge, ItemAttrShortcut, ChargeAttrShortcut): @staticmethod def calculateSlot(item): effectSlotMap = { - "rigSlot" : FittingSlot.RIG, - "loPower" : FittingSlot.LOW, - "medPower" : FittingSlot.MED, - "hiPower" : FittingSlot.HIGH, - "subSystem" : FittingSlot.SUBSYSTEM, - "serviceSlot": FittingSlot.SERVICE + "rigSlot" : FittingSlot.RIG.value, + "loPower" : FittingSlot.LOW.value, + "medPower" : FittingSlot.MED.value, + "hiPower" : FittingSlot.HIGH.value, + "subSystem" : FittingSlot.SUBSYSTEM.value, + "serviceSlot": FittingSlot.SERVICE.value } if item is None: return None diff --git a/gui/builtinAdditionPanes/fighterView.py b/gui/builtinAdditionPanes/fighterView.py index 60b31536d..61402eb03 100644 --- a/gui/builtinAdditionPanes/fighterView.py +++ b/gui/builtinAdditionPanes/fighterView.py @@ -25,7 +25,8 @@ from gui.builtinMarketBrowser.events import ItemSelected, ITEM_SELECTED import gui.mainFrame import gui.display as d from gui.builtinViewColumns.state import State -from eos.saveddata.module import FittingSlot +#from eos.saveddata.module import FittingSlot +from eos.const import FittingSlot from gui.contextMenu import ContextMenu from gui.utils.staticHelpers import DragDropHelper from service.fit import Fit diff --git a/gui/builtinViewColumns/baseIcon.py b/gui/builtinViewColumns/baseIcon.py index 536d90da9..e5cbd62f2 100644 --- a/gui/builtinViewColumns/baseIcon.py +++ b/gui/builtinViewColumns/baseIcon.py @@ -2,8 +2,9 @@ import wx from eos.saveddata.implant import Implant from eos.saveddata.drone import Drone -from eos.saveddata.module import Module, FittingSlot, Rack +from eos.saveddata.module import Module, Rack from eos.saveddata.fit import Fit +from eos.const import FittingSlot from gui.viewColumn import ViewColumn @@ -32,7 +33,7 @@ class BaseIcon(ViewColumn): return self.shipImage elif isinstance(stuff, Module): if stuff.isEmpty: - return self.fittingView.imageList.GetImageIndex("slot_%s_small" % FittingSlot.getName(stuff.slot).lower(), + return self.fittingView.imageList.GetImageIndex("slot_%s_small" % FittingSlot(stuff.slot).name.lower(), "gui") else: return self.loadIconFile(stuff.item.iconID or "") diff --git a/gui/builtinViewColumns/baseName.py b/gui/builtinViewColumns/baseName.py index d6710c782..cad1eebd0 100644 --- a/gui/builtinViewColumns/baseName.py +++ b/gui/builtinViewColumns/baseName.py @@ -25,8 +25,9 @@ from eos.saveddata.cargo import Cargo from eos.saveddata.implant import Implant from eos.saveddata.drone import Drone from eos.saveddata.fighter import Fighter -from eos.saveddata.module import Module, FittingSlot, Rack +from eos.saveddata.module import Module, Rack from eos.saveddata.fit import Fit +from eos.const import FittingSlot from service.fit import Fit as FitSvc from service.market import Market from gui.viewColumn import ViewColumn @@ -75,7 +76,7 @@ class BaseName(ViewColumn): if stuff.slot == FittingSlot.MODE: return '─ Tactical Mode ─' else: - return '─ {} {} Slot{}─'.format(stuff.num, FittingSlot.getName(stuff.slot).capitalize(), '' if stuff.num == 1 else 's') + return '─ {} {} Slot{}─'.format(stuff.num, FittingSlot(stuff.slot).name.capitalize(), '' if stuff.num == 1 else 's') else: return "" elif isinstance(stuff, Module): @@ -89,7 +90,7 @@ class BaseName(ViewColumn): return "{} {}".format(type.name, stuff.item.name[-1:]) if stuff.isEmpty: - return "%s Slot" % FittingSlot.getName(stuff.slot).capitalize() + return "%s Slot" % FittingSlot(stuff.slot).name.capitalize() else: return stuff.item.name elif isinstance(stuff, Implant): diff --git a/gui/builtinViewColumns/state.py b/gui/builtinViewColumns/state.py index 14a797561..793fbd57e 100644 --- a/gui/builtinViewColumns/state.py +++ b/gui/builtinViewColumns/state.py @@ -46,7 +46,7 @@ class State(ViewColumn): def getToolTip(self, mod): if isinstance(mod, Module) and not mod.isEmpty: - return State_.getName(mod.state).title() + return State_(mod.state).name.title() def getImageId(self, stuff): generic_active = self.fittingView.imageList.GetImageIndex("state_%s_small" % State_(1).name.lower(), "gui") diff --git a/gui/builtinViews/fittingView.py b/gui/builtinViews/fittingView.py index 83d9e43df..7b5646fa4 100644 --- a/gui/builtinViews/fittingView.py +++ b/gui/builtinViews/fittingView.py @@ -30,7 +30,8 @@ import gui.globalEvents as GE import gui.mainFrame import gui.multiSwitch from eos.saveddata.mode import Mode -from eos.saveddata.module import Module, Rack, FittingSlot +from eos.saveddata.module import Module, Rack +from eos.const import FittingSlot from gui.bitmap_loader import BitmapLoader from gui.builtinMarketBrowser.events import ITEM_SELECTED from gui.builtinShipBrowser.events import EVT_FIT_REMOVED, EVT_FIT_RENAMED, EVT_FIT_SELECTED, FitSelected @@ -648,8 +649,7 @@ class FittingView(d.Display): slotMap = {} # test for too many modules (happens with t3s / CCP change in slot layout) - for slotType in FittingSlot.getTypes(): - slot = FittingSlot.getValue(slotType) + for slot in [e.value for e in FittingSlot]: slotMap[slot] = fit.getSlotsFree(slot) < 0 for i, mod in enumerate(self.mods): @@ -735,8 +735,8 @@ class FittingView(d.Display): return slotMap = {} - for slotType in FittingSlot.getTypes(): - slot = FittingSlot.getValue(slotType) + + for slot in [e.value for e in FittingSlot]: slotMap[slot] = fit.getSlotsFree(slot) < 0 padding = 2 diff --git a/service/character.py b/service/character.py index 1dc14c7c6..7e95c5f82 100644 --- a/service/character.py +++ b/service/character.py @@ -37,7 +37,8 @@ from service.esi import Esi from eos.saveddata.implant import Implant as es_Implant from eos.saveddata.character import Character as es_Character, Skill -from eos.saveddata.module import FittingSlot as es_Slot, Module as es_Module +from eos.saveddata.module import Module as es_Module +from eos.const import FittingSlot as es_Slot from eos.saveddata.fighter import Fighter as es_Fighter pyfalog = Logger(__name__) diff --git a/service/port/dna.py b/service/port/dna.py index 6181a0d76..8c383fb82 100644 --- a/service/port/dna.py +++ b/service/port/dna.py @@ -28,8 +28,9 @@ from eos.saveddata.citadel import Citadel from eos.saveddata.drone import Drone from eos.saveddata.fighter import Fighter from eos.saveddata.fit import Fit -from eos.saveddata.module import Module, FittingModuleState, FittingSlot +from eos.saveddata.module import Module, FittingModuleState from eos.saveddata.ship import Ship +from eos.const import FittingSlot from service.fit import Fit as svcFit from service.market import Market diff --git a/service/port/efs.py b/service/port/efs.py index 84c8a7001..8d253c621 100755 --- a/service/port/efs.py +++ b/service/port/efs.py @@ -7,11 +7,12 @@ from config import version as pyfaVersion from service.fit import Fit from service.market import Market from eos.enum import Enum -from eos.saveddata.module import FittingHardpoint, FittingSlot, Module, FittingModuleState +from eos.saveddata.module import FittingHardpoint, Module, FittingModuleState from eos.saveddata.drone import Drone from eos.effectHandlerHelpers import HandledList from eos.db import gamedata_session, getCategory, getAttributeInfo, getGroup from eos.gamedata import Attribute, Effect, Group, Item, ItemEffect +from eos.const import FittingSlot from eos.utils.spoolSupport import SpoolType, SpoolOptions from gui.fitCommands.calc.fitAddModule import FitAddModuleCommand from gui.fitCommands.calc.fitRemoveModule import FitRemoveModuleCommand diff --git a/service/port/eft.py b/service/port/eft.py index 43a936529..a16a77a80 100644 --- a/service/port/eft.py +++ b/service/port/eft.py @@ -32,9 +32,10 @@ from eos.saveddata.booster import Booster from eos.saveddata.drone import Drone from eos.saveddata.fighter import Fighter from eos.saveddata.implant import Implant -from eos.saveddata.module import Module, FittingModuleState, FittingSlot +from eos.saveddata.module import Module, FittingModuleState from eos.saveddata.ship import Ship from eos.saveddata.fit import Fit +from eos.const import FittingSlot from service.fit import Fit as svcFit from service.market import Market from service.port.muta import parseMutant, renderMutant @@ -95,7 +96,7 @@ def exportEft(fit, options): rackLines.append('{}{}{}'.format(modName, modOfflineSuffix, mutationSuffix)) else: rackLines.append('[Empty {} slot]'.format( - FittingSlot.getName(slotType).capitalize() if slotType is not None else '')) + FittingSlot(slotType).name.capitalize() if slotType is not None else '')) if rackLines: modSection.append('\n'.join(rackLines)) if modSection: diff --git a/service/port/esi.py b/service/port/esi.py index b1cc8aee7..c9c8ed708 100644 --- a/service/port/esi.py +++ b/service/port/esi.py @@ -28,7 +28,8 @@ from eos.saveddata.citadel import Citadel from eos.saveddata.drone import Drone from eos.saveddata.fighter import Fighter from eos.saveddata.fit import Fit -from eos.saveddata.module import Module, FittingModuleState, FittingSlot +from eos.saveddata.module import Module, FittingModuleState +from eos.const import FittingSlot from eos.saveddata.ship import Ship from service.fit import Fit as svcFit from service.market import Market diff --git a/service/port/xml.py b/service/port/xml.py index 5f708cc64..7fcb05117 100644 --- a/service/port/xml.py +++ b/service/port/xml.py @@ -28,8 +28,9 @@ from eos.saveddata.citadel import Citadel from eos.saveddata.drone import Drone from eos.saveddata.fighter import Fighter from eos.saveddata.fit import Fit -from eos.saveddata.module import Module, FittingModuleState, FittingSlot +from eos.saveddata.module import Module, FittingModuleState from eos.saveddata.ship import Ship +from eos.const import FittingSlot from service.fit import Fit as svcFit from service.market import Market from utils.strfunctions import sequential_rep, replace_ltgt @@ -278,7 +279,7 @@ def exportXml(iportuser, *fits): hardware = doc.createElement("hardware") hardware.setAttribute("type", module.item.name) - slotName = FittingSlot.getName(slot).lower() + slotName = FittingSlot(slot).name.lower() slotName = slotName if slotName != "high" else "hi" hardware.setAttribute("slot", "%s slot %d" % (slotName, slotId)) fitting.appendChild(hardware) From afa8c3c53ad2ee43cdfc15a8217c81443970e23e Mon Sep 17 00:00:00 2001 From: Indiction Date: Sat, 9 Mar 2019 18:59:43 +0100 Subject: [PATCH 47/88] Replaced eos.enum by enum. Removed unused enum import. Found another Enum to move. --- eos/const.py | 25 ++++++- eos/enum.py | 23 ------ eos/saveddata/fit.py | 1 - eos/saveddata/module.py | 2 +- .../attributeGrouping.py | 75 +++++++------------ gui/builtinItemStatsViews/itemAttributes.py | 2 +- service/esi.py | 1 - service/esiAccess.py | 1 - service/port/efs.py | 1 - service/port/eft.py | 1 - service/port/multibuy.py | 1 - 11 files changed, 53 insertions(+), 80 deletions(-) delete mode 100644 eos/enum.py diff --git a/eos/const.py b/eos/const.py index 63b7cc533..dfb1705ce 100644 --- a/eos/const.py +++ b/eos/const.py @@ -17,8 +17,7 @@ # along with pyfa. If not, see . # ============================================================================= -from eos.enum import Enum -from enum import IntEnum,unique +from enum import Enum,IntEnum,unique,auto @unique class FittingSlot(IntEnum): @@ -83,6 +82,25 @@ class FittingHardpoint(IntEnum): MISSILE = 1 TURRET = 2 +@unique +class FittingAttrGroup(IntEnum): + """ + Define the various groups of attributes + """ + FITTING = auto() + STRUCTURE = auto() + SHIELD = auto() + ARMOR = auto() + TARGETING = auto() + EWAR_RESISTS = auto() + CAPACITOR = auto() + SHARED_FACILITIES = auto() + FIGHTER_FACILITIES = auto() + ON_DEATH = auto() + JUMP_SYSTEMS = auto() + PROPULSIONS = auto() + FIGHTERS = auto() + @unique class EsiLoginMethod(IntEnum): """ @@ -126,7 +144,8 @@ class PortEftOptions(IntEnum): MUTATIONS = 2 LOADED_CHARGES = 3 -class PortEftRigSize(Enum): +@unique +class PortEftRigSize(IntEnum): """ Contains different sizes of ship rigs """ diff --git a/eos/enum.py b/eos/enum.py deleted file mode 100644 index 12e8e09e1..000000000 --- a/eos/enum.py +++ /dev/null @@ -1,23 +0,0 @@ -class Enum(object): - def __init__(self): - pass - - @classmethod - def getTypes(cls): - for stuff in cls.__dict__: - if stuff.upper() == stuff: - yield stuff - - @classmethod - def getName(cls, v): - map = getattr(cls, "_map", None) - if map is None: - map = cls._map = {} - for type in cls.getTypes(): - map[cls.getValue(type)] = type - - return map.get(v) - - @classmethod - def getValue(cls, type): - return cls.__dict__[type] diff --git a/eos/saveddata/fit.py b/eos/saveddata/fit.py index 0daff8b50..028c20379 100644 --- a/eos/saveddata/fit.py +++ b/eos/saveddata/fit.py @@ -28,7 +28,6 @@ from sqlalchemy.orm import validates, reconstructor import eos.db from eos import capSim from eos.effectHandlerHelpers import HandledModuleList, HandledDroneCargoList, HandledImplantBoosterList, HandledProjectedDroneList, HandledProjectedModList -from eos.enum import Enum from eos.const import ImplantLocation, CalcType, FittingSlot from eos.saveddata.ship import Ship from eos.saveddata.drone import Drone diff --git a/eos/saveddata/module.py b/eos/saveddata/module.py index 57f61cca8..8a842d6c6 100644 --- a/eos/saveddata/module.py +++ b/eos/saveddata/module.py @@ -25,7 +25,7 @@ from sqlalchemy.orm import reconstructor, validates import eos.db from eos.const import FittingModuleState, FittingHardpoint, FittingSlot from eos.effectHandlerHelpers import HandledCharge, HandledItem -from eos.enum import Enum +from enum import Enum from eos.modifiedAttributeDict import ChargeAttrShortcut, ItemAttrShortcut, ModifiedAttributeDict from eos.saveddata.citadel import Citadel from eos.saveddata.mutator import Mutator diff --git a/gui/builtinItemStatsViews/attributeGrouping.py b/gui/builtinItemStatsViews/attributeGrouping.py index 0edccd8ca..d27b1231d 100644 --- a/gui/builtinItemStatsViews/attributeGrouping.py +++ b/gui/builtinItemStatsViews/attributeGrouping.py @@ -1,21 +1,4 @@ -from enum import Enum, auto - -# Define the various groups of attributes -class AttrGroup(Enum): - FITTING = auto() - STRUCTURE = auto() - SHIELD = auto() - ARMOR = auto() - TARGETING = auto() - EWAR_RESISTS = auto() - CAPACITOR = auto() - SHARED_FACILITIES = auto() - FIGHTER_FACILITIES = auto() - ON_DEATH = auto() - JUMP_SYSTEMS = auto() - PROPULSIONS = auto() - FIGHTERS = auto() - +from eos.const import FittingAttrGroup RequiredSkillAttrs = sum((["requiredSkill{}".format(x), "requiredSkill{}Level".format(x)] for x in range(1, 7)), []) @@ -44,7 +27,7 @@ for x in AttrGroups: # Start defining all the known attribute groups AttrGroupDict = { - AttrGroup.FITTING : { + FittingAttrGroup.FITTING : { "label" : "Fitting", "attributes": [ # parent-level attributes @@ -66,7 +49,7 @@ AttrGroupDict = { # "mass", ] }, - AttrGroup.STRUCTURE : { + FittingAttrGroup.STRUCTURE : { "label" : "Structure", "attributes": [ "hp", @@ -96,7 +79,7 @@ AttrGroupDict = { "explosiveDamageResonance" ] }, - AttrGroup.ARMOR : { + FittingAttrGroup.ARMOR : { "label": "Armor", "attributes":[ "armorHP", @@ -108,7 +91,7 @@ AttrGroupDict = { ] }, - AttrGroup.SHIELD : { + FittingAttrGroup.SHIELD : { "label": "Shield", "attributes": [ "shieldCapacity", @@ -121,7 +104,7 @@ AttrGroupDict = { ] }, - AttrGroup.EWAR_RESISTS : { + FittingAttrGroup.EWAR_RESISTS : { "label": "Electronic Warfare", "attributes": [ "ECMResistance", @@ -134,14 +117,14 @@ AttrGroupDict = { "weaponDisruptionResistance", ] }, - AttrGroup.CAPACITOR : { + FittingAttrGroup.CAPACITOR : { "label": "Capacitor", "attributes": [ "capacitorCapacity", "rechargeRate", ] }, - AttrGroup.TARGETING : { + FittingAttrGroup.TARGETING : { "label": "Targeting", "attributes": [ "maxTargetRange", @@ -159,7 +142,7 @@ AttrGroupDict = { "scanLadarStrength", ] }, - AttrGroup.SHARED_FACILITIES : { + FittingAttrGroup.SHARED_FACILITIES : { "label" : "Shared Facilities", "attributes": [ "fleetHangarCapacity", @@ -167,7 +150,7 @@ AttrGroupDict = { "maxJumpClones", ] }, - AttrGroup.FIGHTER_FACILITIES: { + FittingAttrGroup.FIGHTER_FACILITIES: { "label": "Fighter Squadron Facilities", "attributes": [ "fighterCapacity", @@ -180,7 +163,7 @@ AttrGroupDict = { "fighterStandupHeavySlots", ] }, - AttrGroup.ON_DEATH : { + FittingAttrGroup.ON_DEATH : { "label": "On Death", "attributes": [ "onDeathDamageEM", @@ -191,7 +174,7 @@ AttrGroupDict = { "onDeathSignatureRadius", ] }, - AttrGroup.JUMP_SYSTEMS : { + FittingAttrGroup.JUMP_SYSTEMS : { "label": "Jump Drive Systems", "attributes": [ "jumpDriveCapacitorNeed", @@ -205,13 +188,13 @@ AttrGroupDict = { "jumpPortalDuration", ] }, - AttrGroup.PROPULSIONS : { + FittingAttrGroup.PROPULSIONS : { "label": "Propulsion", "attributes": [ "maxVelocity" ] }, - AttrGroup.FIGHTERS : { + FittingAttrGroup.FIGHTERS : { "label": "Fighter", "attributes": [ "mass", @@ -227,25 +210,25 @@ AttrGroupDict = { } Group1 = [ - AttrGroup.FITTING, - AttrGroup.STRUCTURE, - AttrGroup.ARMOR, - AttrGroup.SHIELD, - AttrGroup.EWAR_RESISTS, - AttrGroup.CAPACITOR, - AttrGroup.TARGETING, - AttrGroup.SHARED_FACILITIES, - AttrGroup.FIGHTER_FACILITIES, - AttrGroup.ON_DEATH, - AttrGroup.JUMP_SYSTEMS, - AttrGroup.PROPULSIONS, + FittingAttrGroup.FITTING, + FittingAttrGroup.STRUCTURE, + FittingAttrGroup.ARMOR, + FittingAttrGroup.SHIELD, + FittingAttrGroup.EWAR_RESISTS, + FittingAttrGroup.CAPACITOR, + FittingAttrGroup.TARGETING, + FittingAttrGroup.SHARED_FACILITIES, + FittingAttrGroup.FIGHTER_FACILITIES, + FittingAttrGroup.ON_DEATH, + FittingAttrGroup.JUMP_SYSTEMS, + FittingAttrGroup.PROPULSIONS, ] CategoryGroups = { "Fighter" : [ - AttrGroup.FIGHTERS, - AttrGroup.SHIELD, - AttrGroup.TARGETING, + FittingAttrGroup.FIGHTERS, + FittingAttrGroup.SHIELD, + FittingAttrGroup.TARGETING, ], "Ship" : Group1, "Drone" : Group1, diff --git a/gui/builtinItemStatsViews/itemAttributes.py b/gui/builtinItemStatsViews/itemAttributes.py index 747f25066..49149484d 100644 --- a/gui/builtinItemStatsViews/itemAttributes.py +++ b/gui/builtinItemStatsViews/itemAttributes.py @@ -195,7 +195,7 @@ class ItemParams(wx.Panel): misc_parent = root # We must first deet4ermine if it's categorey already has defined groupings set for it. Otherwise, we default to just using the fitting group - order = CategoryGroups.get(self.item.category.categoryName, [AttrGroup.FITTING]) + order = CategoryGroups.get(self.item.category.categoryName, [FittingAttrGroup.FITTING]) # start building out the tree for data in [AttrGroupDict[o] for o in order]: heading = data.get("label") diff --git a/service/esi.py b/service/esi.py index ce7d9a0cf..c67ee76f8 100644 --- a/service/esi.py +++ b/service/esi.py @@ -9,7 +9,6 @@ import config import webbrowser import eos.db -from eos.enum import Enum from eos.const import EsiLoginMethod from eos.saveddata.ssocharacter import SsoCharacter from service.esiAccess import APIException, EsiSsoMode diff --git a/service/esiAccess.py b/service/esiAccess.py index 0afe2bbc3..8bb4aedcd 100644 --- a/service/esiAccess.py +++ b/service/esiAccess.py @@ -17,7 +17,6 @@ import config import base64 import datetime -from eos.enum import Enum from eos.const import EsiSsoMode, EsiEndpoints from service.settings import EsiSettings, NetworkSettings diff --git a/service/port/efs.py b/service/port/efs.py index 8d253c621..5c0a5219f 100755 --- a/service/port/efs.py +++ b/service/port/efs.py @@ -6,7 +6,6 @@ from numbers import Number from config import version as pyfaVersion from service.fit import Fit from service.market import Market -from eos.enum import Enum from eos.saveddata.module import FittingHardpoint, Module, FittingModuleState from eos.saveddata.drone import Drone from eos.effectHandlerHelpers import HandledList diff --git a/service/port/eft.py b/service/port/eft.py index a16a77a80..9b9e97743 100644 --- a/service/port/eft.py +++ b/service/port/eft.py @@ -19,7 +19,6 @@ import re -from enum import Enum from eos.const import PortEftRigSize from eos.const import PortEftOptions diff --git a/service/port/multibuy.py b/service/port/multibuy.py index 5ea6e7afa..46d7a72e1 100644 --- a/service/port/multibuy.py +++ b/service/port/multibuy.py @@ -18,7 +18,6 @@ # ============================================================================= -from enum import Enum from eos.const import PortMultiBuyOptions From 5c2df663358bef6bc74e834b35705473ceb70448 Mon Sep 17 00:00:00 2001 From: Ryan Holmes Date: Sat, 9 Mar 2019 20:38:58 -0500 Subject: [PATCH 48/88] #1867 Fix for the image list crash on linux --- gui/builtinItemStatsViews/itemAttributes.py | 23 ++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/gui/builtinItemStatsViews/itemAttributes.py b/gui/builtinItemStatsViews/itemAttributes.py index 747f25066..3617301a1 100644 --- a/gui/builtinItemStatsViews/itemAttributes.py +++ b/gui/builtinItemStatsViews/itemAttributes.py @@ -62,6 +62,8 @@ class ItemParams(wx.Panel): mainSizer.Add(bSizer, 0, wx.ALIGN_RIGHT) + self.imageList = wx.ImageList(16, 16) + self.PopulateList() self.toggleViewBtn.Bind(wx.EVT_TOGGLEBUTTON, self.ToggleViewMode) @@ -164,6 +166,14 @@ class ItemParams(wx.Panel): ] ) + def SetupImageList(self): + self.imageList.RemoveAll() + + self.blank_icon = self.imageList.Add(BitmapLoader.getBitmap("transparent16x16", "gui")) + self.unknown_icon = self.imageList.Add(BitmapLoader.getBitmap("0", "icons")) + + self.paramList.AssignImageList(self.imageList) + def AddAttribute(self, parent, attr): if attr in self.attrValues and attr not in self.processed_attribs: @@ -188,7 +198,7 @@ class ItemParams(wx.Panel): def PopulateList(self): # self.paramList.setResizeColumn(0) - self.imageList = wx.ImageList(16, 16) + self.SetupImageList() self.processed_attribs = set() root = self.paramList.AddRoot("The Root Item") @@ -243,7 +253,6 @@ class ItemParams(wx.Panel): self.AddAttribute(root, name) - self.paramList.AssignImageList(self.imageList) self.Layout() def GetData(self, attr): @@ -278,13 +287,13 @@ class ItemParams(wx.Panel): icon = BitmapLoader.getBitmap(iconFile, "icons") if icon is None: - icon = BitmapLoader.getBitmap("transparent16x16", "gui") - - attrIcon = self.imageList.Add(icon) + attrIcon = self.blank_icon + else: + attrIcon = self.imageList.Add(icon) else: - attrIcon = self.imageList.Add(BitmapLoader.getBitmap("0", "icons")) + attrIcon = self.unknown_icon else: - attrIcon = self.imageList.Add(BitmapLoader.getBitmap("0", "icons")) + attrIcon = self.unknown_icon # index = self.paramList.AppendItem(root, attrName) # idNameMap[idCount] = attrName From 82c5ae1fe9ade7e2e773dd9dff3b6ac6ff908657 Mon Sep 17 00:00:00 2001 From: Ryan Holmes Date: Sat, 9 Mar 2019 20:43:40 -0500 Subject: [PATCH 49/88] some clean up --- gui/builtinItemStatsViews/itemAttributes.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/gui/builtinItemStatsViews/itemAttributes.py b/gui/builtinItemStatsViews/itemAttributes.py index 3617301a1..dfac034b3 100644 --- a/gui/builtinItemStatsViews/itemAttributes.py +++ b/gui/builtinItemStatsViews/itemAttributes.py @@ -28,7 +28,7 @@ class ItemParams(wx.Panel): mainSizer.Add(self.paramList, 1, wx.ALL | wx.EXPAND, 0) self.SetSizer(mainSizer) - self.toggleView = 1 + self.toggleView = AttributeView.NORMAL self.stuff = stuff self.item = item self.attrInfo = {} @@ -273,7 +273,7 @@ class ItemParams(wx.Panel): if self.toggleView == AttributeView.NORMAL and ((attr not in GroupedAttributes and not value) or info is None or not info.published or attr in RequiredSkillAttrs): return None - if info and info.displayName and self.toggleView == 1: + if info and info.displayName and self.toggleView == AttributeView.NORMAL: attrName = info.displayName else: attrName = attr @@ -300,14 +300,14 @@ class ItemParams(wx.Panel): # self.paramList.SetPyData(index, idCount) # idCount += 1 - if self.toggleView != 1: + if self.toggleView == AttributeView.RAW: valueUnit = str(value) elif info and info.unit: valueUnit = self.FormatValue(*info.unit.PreformatValue(value)) else: valueUnit = formatAmount(value, 3, 0, 0) - if self.toggleView != 1: + if self.toggleView == AttributeView.RAW: valueUnitDefault = str(valueDefault) elif info and info.unit: valueUnitDefault = self.FormatValue(*info.unit.PreformatValue(valueDefault)) From 8b864692fbbd0f5a1b7164e5b2075968c74c3d39 Mon Sep 17 00:00:00 2001 From: Indiction Date: Tue, 12 Mar 2019 23:17:25 +0100 Subject: [PATCH 50/88] Moved non-EOS enum to new service/const.py. Renamed FittingAttrGroup to GuiAttrGroup --- eos/const.py | 74 +------------ .../attributeGrouping.py | 58 +++++----- gui/builtinItemStatsViews/itemAttributes.py | 5 +- service/const.py | 102 ++++++++++++++++++ service/esi.py | 4 +- service/esiAccess.py | 2 +- service/port/eft.py | 3 +- service/port/multibuy.py | 4 +- 8 files changed, 140 insertions(+), 112 deletions(-) create mode 100644 service/const.py diff --git a/eos/const.py b/eos/const.py index dfb1705ce..e0ae7c9ea 100644 --- a/eos/const.py +++ b/eos/const.py @@ -17,7 +17,8 @@ # along with pyfa. If not, see . # ============================================================================= -from enum import Enum,IntEnum,unique,auto +from enum import IntEnum,unique + @unique class FittingSlot(IntEnum): @@ -82,74 +83,3 @@ class FittingHardpoint(IntEnum): MISSILE = 1 TURRET = 2 -@unique -class FittingAttrGroup(IntEnum): - """ - Define the various groups of attributes - """ - FITTING = auto() - STRUCTURE = auto() - SHIELD = auto() - ARMOR = auto() - TARGETING = auto() - EWAR_RESISTS = auto() - CAPACITOR = auto() - SHARED_FACILITIES = auto() - FIGHTER_FACILITIES = auto() - ON_DEATH = auto() - JUMP_SYSTEMS = auto() - PROPULSIONS = auto() - FIGHTERS = auto() - -@unique -class EsiLoginMethod(IntEnum): - """ - Contains the method of ESI login - """ - SERVER = 0 - MANUAL = 1 - -@unique -class EsiSsoMode(IntEnum): - """ - Contains the mode of ESI sso mode - """ - AUTO = 0 - CUSTOM = 1 - -class EsiEndpoints(Enum): - """ - Contains the endpoint paths for the ESI access - """ - CHAR = "/v4/characters/{character_id}/" - CHAR_SKILLS = "/v4/characters/{character_id}/skills/" - CHAR_FITTINGS = "/v1/characters/{character_id}/fittings/" - CHAR_DEL_FIT = "/v1/characters/{character_id}/fittings/{fitting_id}/" - -@unique -class PortMultiBuyOptions(IntEnum): - """ - Contains different types of items to multibuy export - """ - IMPLANTS = 1 - CARGO = 2 - LOADED_CHARGES = 3 - -@unique -class PortEftOptions(IntEnum): - """ - Contains different options for eft-export - """ - IMPLANTS = 1 - MUTATIONS = 2 - LOADED_CHARGES = 3 - -@unique -class PortEftRigSize(IntEnum): - """ - Contains different sizes of ship rigs - """ - SMALL = 1 - MEDIUM = 2 - LARGE = 3 - CAPITAL = 4 diff --git a/gui/builtinItemStatsViews/attributeGrouping.py b/gui/builtinItemStatsViews/attributeGrouping.py index d27b1231d..c93e97010 100644 --- a/gui/builtinItemStatsViews/attributeGrouping.py +++ b/gui/builtinItemStatsViews/attributeGrouping.py @@ -1,4 +1,4 @@ -from eos.const import FittingAttrGroup +from service.const import GuiAttrGroup RequiredSkillAttrs = sum((["requiredSkill{}".format(x), "requiredSkill{}Level".format(x)] for x in range(1, 7)), []) @@ -27,7 +27,7 @@ for x in AttrGroups: # Start defining all the known attribute groups AttrGroupDict = { - FittingAttrGroup.FITTING : { + GuiAttrGroup.FITTING : { "label" : "Fitting", "attributes": [ # parent-level attributes @@ -49,7 +49,7 @@ AttrGroupDict = { # "mass", ] }, - FittingAttrGroup.STRUCTURE : { + GuiAttrGroup.STRUCTURE : { "label" : "Structure", "attributes": [ "hp", @@ -79,7 +79,7 @@ AttrGroupDict = { "explosiveDamageResonance" ] }, - FittingAttrGroup.ARMOR : { + GuiAttrGroup.ARMOR : { "label": "Armor", "attributes":[ "armorHP", @@ -91,7 +91,7 @@ AttrGroupDict = { ] }, - FittingAttrGroup.SHIELD : { + GuiAttrGroup.SHIELD : { "label": "Shield", "attributes": [ "shieldCapacity", @@ -104,7 +104,7 @@ AttrGroupDict = { ] }, - FittingAttrGroup.EWAR_RESISTS : { + GuiAttrGroup.EWAR_RESISTS : { "label": "Electronic Warfare", "attributes": [ "ECMResistance", @@ -117,14 +117,14 @@ AttrGroupDict = { "weaponDisruptionResistance", ] }, - FittingAttrGroup.CAPACITOR : { + GuiAttrGroup.CAPACITOR : { "label": "Capacitor", "attributes": [ "capacitorCapacity", "rechargeRate", ] }, - FittingAttrGroup.TARGETING : { + GuiAttrGroup.TARGETING : { "label": "Targeting", "attributes": [ "maxTargetRange", @@ -142,7 +142,7 @@ AttrGroupDict = { "scanLadarStrength", ] }, - FittingAttrGroup.SHARED_FACILITIES : { + GuiAttrGroup.SHARED_FACILITIES : { "label" : "Shared Facilities", "attributes": [ "fleetHangarCapacity", @@ -150,7 +150,7 @@ AttrGroupDict = { "maxJumpClones", ] }, - FittingAttrGroup.FIGHTER_FACILITIES: { + GuiAttrGroup.FIGHTER_FACILITIES: { "label": "Fighter Squadron Facilities", "attributes": [ "fighterCapacity", @@ -163,7 +163,7 @@ AttrGroupDict = { "fighterStandupHeavySlots", ] }, - FittingAttrGroup.ON_DEATH : { + GuiAttrGroup.ON_DEATH : { "label": "On Death", "attributes": [ "onDeathDamageEM", @@ -174,7 +174,7 @@ AttrGroupDict = { "onDeathSignatureRadius", ] }, - FittingAttrGroup.JUMP_SYSTEMS : { + GuiAttrGroup.JUMP_SYSTEMS : { "label": "Jump Drive Systems", "attributes": [ "jumpDriveCapacitorNeed", @@ -188,13 +188,13 @@ AttrGroupDict = { "jumpPortalDuration", ] }, - FittingAttrGroup.PROPULSIONS : { + GuiAttrGroup.PROPULSIONS : { "label": "Propulsion", "attributes": [ "maxVelocity" ] }, - FittingAttrGroup.FIGHTERS : { + GuiAttrGroup.FIGHTERS : { "label": "Fighter", "attributes": [ "mass", @@ -210,25 +210,25 @@ AttrGroupDict = { } Group1 = [ - FittingAttrGroup.FITTING, - FittingAttrGroup.STRUCTURE, - FittingAttrGroup.ARMOR, - FittingAttrGroup.SHIELD, - FittingAttrGroup.EWAR_RESISTS, - FittingAttrGroup.CAPACITOR, - FittingAttrGroup.TARGETING, - FittingAttrGroup.SHARED_FACILITIES, - FittingAttrGroup.FIGHTER_FACILITIES, - FittingAttrGroup.ON_DEATH, - FittingAttrGroup.JUMP_SYSTEMS, - FittingAttrGroup.PROPULSIONS, + GuiAttrGroup.FITTING, + GuiAttrGroup.STRUCTURE, + GuiAttrGroup.ARMOR, + GuiAttrGroup.SHIELD, + GuiAttrGroup.EWAR_RESISTS, + GuiAttrGroup.CAPACITOR, + GuiAttrGroup.TARGETING, + GuiAttrGroup.SHARED_FACILITIES, + GuiAttrGroup.FIGHTER_FACILITIES, + GuiAttrGroup.ON_DEATH, + GuiAttrGroup.JUMP_SYSTEMS, + GuiAttrGroup.PROPULSIONS, ] CategoryGroups = { "Fighter" : [ - FittingAttrGroup.FIGHTERS, - FittingAttrGroup.SHIELD, - FittingAttrGroup.TARGETING, + GuiAttrGroup.FIGHTERS, + GuiAttrGroup.SHIELD, + GuiAttrGroup.TARGETING, ], "Ship" : Group1, "Drone" : Group1, diff --git a/gui/builtinItemStatsViews/itemAttributes.py b/gui/builtinItemStatsViews/itemAttributes.py index 49149484d..fd1424687 100644 --- a/gui/builtinItemStatsViews/itemAttributes.py +++ b/gui/builtinItemStatsViews/itemAttributes.py @@ -1,15 +1,14 @@ import csv -import config # noinspection PyPackageRequirements import wx import wx.lib.agw.hypertreelist -from gui.builtinItemStatsViews.helpers import AutoListCtrl from gui.bitmap_loader import BitmapLoader from gui.utils.numberFormatter import formatAmount, roundDec from enum import IntEnum from gui.builtinItemStatsViews.attributeGrouping import * +from service.const import GuiAttrGroup class AttributeView(IntEnum): @@ -195,7 +194,7 @@ class ItemParams(wx.Panel): misc_parent = root # We must first deet4ermine if it's categorey already has defined groupings set for it. Otherwise, we default to just using the fitting group - order = CategoryGroups.get(self.item.category.categoryName, [FittingAttrGroup.FITTING]) + order = CategoryGroups.get(self.item.category.categoryName, [GuiAttrGroup.FITTING]) # start building out the tree for data in [AttrGroupDict[o] for o in order]: heading = data.get("label") diff --git a/service/const.py b/service/const.py new file mode 100644 index 000000000..990f71784 --- /dev/null +++ b/service/const.py @@ -0,0 +1,102 @@ +# ============================================================================= +# Copyright (C) 2019 Ryan Holmes +# +# This file is part of pyfa. +# +# pyfa is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# pyfa is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with pyfa. If not, see . +# ============================================================================= + +from enum import Enum, IntEnum, unique, auto + + +@unique +class EsiLoginMethod(IntEnum): + """ + Contains the method of ESI login + """ + SERVER = 0 + MANUAL = 1 + + +@unique +class EsiSsoMode(IntEnum): + """ + Contains the mode of ESI sso mode + """ + AUTO = 0 + CUSTOM = 1 + + +class EsiEndpoints(Enum): + """ + Contains the endpoint paths for the ESI access + """ + CHAR = "/v4/characters/{character_id}/" + CHAR_SKILLS = "/v4/characters/{character_id}/skills/" + CHAR_FITTINGS = "/v1/characters/{character_id}/fittings/" + CHAR_DEL_FIT = "/v1/characters/{character_id}/fittings/{fitting_id}/" + + +@unique +class PortMultiBuyOptions(IntEnum): + """ + Contains different types of items for multibuy export + """ + IMPLANTS = 1 + CARGO = 2 + LOADED_CHARGES = 3 + + +@unique +class PortEftOptions(IntEnum): + """ + Contains different options for eft-export + """ + IMPLANTS = 1 + MUTATIONS = 2 + LOADED_CHARGES = 3 + + +@unique +class PortEftRigSize(IntEnum): + """ + Contains different sizes of ship rigs + This enum is not actively used, but maybe useful someday. + """ + SMALL = 1 + MEDIUM = 2 + LARGE = 3 + CAPITAL = 4 + + +@unique +class GuiAttrGroup(IntEnum): + """ + Define the various groups of attributes. + This enum is used for GUI functions and getting redefined in + /gui/builtinItemStatsViews/attributeGrouping.py + """ + FITTING = auto() + STRUCTURE = auto() + SHIELD = auto() + ARMOR = auto() + TARGETING = auto() + EWAR_RESISTS = auto() + CAPACITOR = auto() + SHARED_FACILITIES = auto() + FIGHTER_FACILITIES = auto() + ON_DEATH = auto() + JUMP_SYSTEMS = auto() + PROPULSIONS = auto() + FIGHTERS = auto() \ No newline at end of file diff --git a/service/esi.py b/service/esi.py index c67ee76f8..88b704664 100644 --- a/service/esi.py +++ b/service/esi.py @@ -9,9 +9,9 @@ import config import webbrowser import eos.db -from eos.const import EsiLoginMethod +from service.const import EsiLoginMethod, EsiSsoMode from eos.saveddata.ssocharacter import SsoCharacter -from service.esiAccess import APIException, EsiSsoMode +from service.esiAccess import APIException import gui.globalEvents as GE from gui.ssoLogin import SsoLogin, SsoLoginServer from service.server import StoppableHTTPServer, AuthHandler diff --git a/service/esiAccess.py b/service/esiAccess.py index 8bb4aedcd..1b7a191c8 100644 --- a/service/esiAccess.py +++ b/service/esiAccess.py @@ -17,7 +17,7 @@ import config import base64 import datetime -from eos.const import EsiSsoMode, EsiEndpoints +from service.const import EsiSsoMode, EsiEndpoints from service.settings import EsiSettings, NetworkSettings from requests import Session diff --git a/service/port/eft.py b/service/port/eft.py index 9b9e97743..66b6aaba9 100644 --- a/service/port/eft.py +++ b/service/port/eft.py @@ -19,8 +19,7 @@ import re -from eos.const import PortEftRigSize -from eos.const import PortEftOptions +from service.const import PortEftOptions, PortEftRigSize from logbook import Logger diff --git a/service/port/multibuy.py b/service/port/multibuy.py index 46d7a72e1..bc63ec6b1 100644 --- a/service/port/multibuy.py +++ b/service/port/multibuy.py @@ -18,9 +18,7 @@ # ============================================================================= -from eos.const import PortMultiBuyOptions - - +from service.const import PortMultiBuyOptions MULTIBUY_OPTIONS = ( (PortMultiBuyOptions.LOADED_CHARGES.value, 'Loaded Charges', 'Export charges loaded into modules', True), From 9a16c579eb8a098274165f22e98e129ecdc58d1f Mon Sep 17 00:00:00 2001 From: Ryan Holmes Date: Thu, 14 Mar 2019 12:30:59 -0400 Subject: [PATCH 51/88] fixing various imports to point to eos.const instead of old locations --- _development/helpers.py | 3 ++- eos/effects/doomsdayaoeneut.py | 2 +- eos/effects/energyneutralizerfalloff.py | 2 +- eos/effects/entityenergyneutralizerfalloff.py | 2 +- eos/effects/structureenergyneutralizerfalloff.py | 2 +- eos/effects/structurewarpscrambleblockmwdwithnpceffect.py | 2 +- eos/effects/warpdisruptsphere.py | 2 +- eos/effects/warpscrambleblockmwdwithnpceffect.py | 2 +- eos/graph/fitDps.py | 2 +- eos/saveddata/fit.py | 3 ++- gui/builtinAdditionPanes/implantView.py | 2 +- gui/builtinContextMenus/moduleAmmoPicker.py | 2 +- gui/builtinStatsViews/resourcesViewFull.py | 2 +- gui/builtinViewColumns/state.py | 3 ++- gui/fitCommands/calc/fitAddModule.py | 3 ++- gui/fitCommands/calc/fitAddProjectedEnv.py | 3 ++- gui/fitCommands/calc/fitAddProjectedModule.py | 3 ++- gui/fitCommands/calc/fitImportMutatedModule.py | 3 ++- gui/fitCommands/calc/fitReplaceModule.py | 3 ++- gui/fitCommands/guiAddImplant.py | 2 +- service/fit.py | 5 +++-- service/fitDeprecated.py | 3 ++- service/port/dna.py | 4 ++-- service/port/efs.py | 3 ++- service/port/eft.py | 4 ++-- service/port/esi.py | 4 ++-- service/port/port.py | 2 +- service/port/xml.py | 4 ++-- 28 files changed, 44 insertions(+), 33 deletions(-) diff --git a/_development/helpers.py b/_development/helpers.py index 53d44201f..3f4635891 100644 --- a/_development/helpers.py +++ b/_development/helpers.py @@ -129,7 +129,8 @@ def Saveddata(): from eos.saveddata.ship import Ship from eos.saveddata.fit import Fit from eos.saveddata.character import Character - from eos.saveddata.module import Module, FittingModuleState + from eos.saveddata.module import Module + from eos.const import FittingModuleState from eos.saveddata.citadel import Citadel from eos.saveddata.booster import Booster diff --git a/eos/effects/doomsdayaoeneut.py b/eos/effects/doomsdayaoeneut.py index d5263e15b..6f9cd2f5e 100644 --- a/eos/effects/doomsdayaoeneut.py +++ b/eos/effects/doomsdayaoeneut.py @@ -3,7 +3,7 @@ # Used by: # Module: Energy Neutralization Burst Projector # Structure Module: Standup Energy Neutralization Burst Projector -from eos.saveddata.module import FittingModuleState +from eos.const import FittingModuleState from eos.modifiedAttributeDict import ModifiedAttributeDict type = "active", "projected" diff --git a/eos/effects/energyneutralizerfalloff.py b/eos/effects/energyneutralizerfalloff.py index 31f94fa5e..2ee279d44 100644 --- a/eos/effects/energyneutralizerfalloff.py +++ b/eos/effects/energyneutralizerfalloff.py @@ -2,7 +2,7 @@ # # Used by: # Modules from group: Energy Neutralizer (54 of 54) -from eos.saveddata.module import FittingModuleState +from eos.const import FittingModuleState from eos.modifiedAttributeDict import ModifiedAttributeDict type = "active", "projected" diff --git a/eos/effects/entityenergyneutralizerfalloff.py b/eos/effects/entityenergyneutralizerfalloff.py index 8edfe8adf..ade55d190 100644 --- a/eos/effects/entityenergyneutralizerfalloff.py +++ b/eos/effects/entityenergyneutralizerfalloff.py @@ -2,7 +2,7 @@ # # Used by: # Drones from group: Energy Neutralizer Drone (3 of 3) -from eos.saveddata.module import FittingModuleState +from eos.const import FittingModuleState from eos.modifiedAttributeDict import ModifiedAttributeDict type = "active", "projected" diff --git a/eos/effects/structureenergyneutralizerfalloff.py b/eos/effects/structureenergyneutralizerfalloff.py index 73d7db41d..284ed616e 100644 --- a/eos/effects/structureenergyneutralizerfalloff.py +++ b/eos/effects/structureenergyneutralizerfalloff.py @@ -2,7 +2,7 @@ # # Used by: # Structure Modules from group: Structure Energy Neutralizer (5 of 5) -from eos.saveddata.module import FittingModuleState +from eos.const import FittingModuleState from eos.modifiedAttributeDict import ModifiedAttributeDict type = "active", "projected" diff --git a/eos/effects/structurewarpscrambleblockmwdwithnpceffect.py b/eos/effects/structurewarpscrambleblockmwdwithnpceffect.py index abe0c562b..4b342e0ec 100644 --- a/eos/effects/structurewarpscrambleblockmwdwithnpceffect.py +++ b/eos/effects/structurewarpscrambleblockmwdwithnpceffect.py @@ -2,7 +2,7 @@ # # Used by: # Structure Modules from group: Structure Warp Scrambler (2 of 2) -from eos.saveddata.module import FittingModuleState +from eos.const import FittingModuleState # Not used by any item runTime = "early" diff --git a/eos/effects/warpdisruptsphere.py b/eos/effects/warpdisruptsphere.py index e131b9d0c..5a5878fd4 100644 --- a/eos/effects/warpdisruptsphere.py +++ b/eos/effects/warpdisruptsphere.py @@ -7,7 +7,7 @@ # # Used by: # Modules from group: Warp Disrupt Field Generator (7 of 7) -from eos.saveddata.module import FittingModuleState +from eos.const import FittingModuleState type = "projected", "active" runTime = "early" diff --git a/eos/effects/warpscrambleblockmwdwithnpceffect.py b/eos/effects/warpscrambleblockmwdwithnpceffect.py index cf47a4ed9..4b3ee34cb 100644 --- a/eos/effects/warpscrambleblockmwdwithnpceffect.py +++ b/eos/effects/warpscrambleblockmwdwithnpceffect.py @@ -2,7 +2,7 @@ # # Used by: # Modules named like: Warp Scrambler (27 of 27) -from eos.saveddata.module import FittingModuleState +from eos.const import FittingModuleState runTime = "early" type = "projected", "active" diff --git a/eos/graph/fitDps.py b/eos/graph/fitDps.py index 65b855dbd..56f0089e1 100644 --- a/eos/graph/fitDps.py +++ b/eos/graph/fitDps.py @@ -20,7 +20,7 @@ from math import log, sin, radians, exp from eos.graph import Graph -from eos.saveddata.module import FittingModuleState, FittingHardpoint +from eos.const import FittingModuleState, FittingHardpoint from logbook import Logger pyfalog = Logger(__name__) diff --git a/eos/saveddata/fit.py b/eos/saveddata/fit.py index 028c20379..ff1ee24e2 100644 --- a/eos/saveddata/fit.py +++ b/eos/saveddata/fit.py @@ -33,7 +33,8 @@ from eos.saveddata.ship import Ship from eos.saveddata.drone import Drone from eos.saveddata.character import Character from eos.saveddata.citadel import Citadel -from eos.saveddata.module import Module, FittingModuleState, FittingHardpoint +from eos.const import FittingModuleState, FittingHardpoint +from eos.saveddata.module import Module from eos.utils.stats import DmgTypes from logbook import Logger diff --git a/gui/builtinAdditionPanes/implantView.py b/gui/builtinAdditionPanes/implantView.py index 0b8521cea..9b7f881f8 100644 --- a/gui/builtinAdditionPanes/implantView.py +++ b/gui/builtinAdditionPanes/implantView.py @@ -26,7 +26,7 @@ from gui.builtinViewColumns.state import State from gui.utils.staticHelpers import DragDropHelper from gui.contextMenu import ContextMenu import gui.globalEvents as GE -from eos.saveddata.fit import ImplantLocation +from eos.const import ImplantLocation from service.fit import Fit from service.market import Market import gui.fitCommands as cmd diff --git a/gui/builtinContextMenus/moduleAmmoPicker.py b/gui/builtinContextMenus/moduleAmmoPicker.py index fec9ab4e0..4b4719ecc 100644 --- a/gui/builtinContextMenus/moduleAmmoPicker.py +++ b/gui/builtinContextMenus/moduleAmmoPicker.py @@ -5,7 +5,7 @@ import wx import gui.fitCommands as cmd import gui.mainFrame -from eos.saveddata.module import FittingHardpoint +from eos.const import FittingHardpoint from gui.bitmap_loader import BitmapLoader from gui.contextMenu import ContextMenu from service.market import Market diff --git a/gui/builtinStatsViews/resourcesViewFull.py b/gui/builtinStatsViews/resourcesViewFull.py index 79bc9533c..2ae4fa9dd 100644 --- a/gui/builtinStatsViews/resourcesViewFull.py +++ b/gui/builtinStatsViews/resourcesViewFull.py @@ -26,7 +26,7 @@ import gui.mainFrame from gui.chrome_tabs import EVT_NOTEBOOK_PAGE_CHANGED from gui.utils import fonts -from eos.saveddata.module import FittingHardpoint +from eos.const import FittingHardpoint from gui.utils.numberFormatter import formatAmount diff --git a/gui/builtinViewColumns/state.py b/gui/builtinViewColumns/state.py index 793fbd57e..7c75baccc 100644 --- a/gui/builtinViewColumns/state.py +++ b/gui/builtinViewColumns/state.py @@ -24,7 +24,8 @@ import wx from eos.saveddata.fit import Fit from eos.saveddata.implant import Implant from eos.saveddata.drone import Drone -from eos.saveddata.module import Module, FittingModuleState as State_, Rack +from eos.saveddata.module import Module, Rack +from eos.const import FittingModuleState as State_ from gui.viewColumn import ViewColumn import gui.mainFrame diff --git a/gui/fitCommands/calc/fitAddModule.py b/gui/fitCommands/calc/fitAddModule.py index 4bdf057c7..75611de28 100644 --- a/gui/fitCommands/calc/fitAddModule.py +++ b/gui/fitCommands/calc/fitAddModule.py @@ -1,5 +1,6 @@ import wx -from eos.saveddata.module import Module, FittingModuleState +from eos.saveddata.module import Module +from eos.const import FittingModuleState import eos.db from logbook import Logger from service.fit import Fit diff --git a/gui/fitCommands/calc/fitAddProjectedEnv.py b/gui/fitCommands/calc/fitAddProjectedEnv.py index 90af881a9..87d1bd890 100644 --- a/gui/fitCommands/calc/fitAddProjectedEnv.py +++ b/gui/fitCommands/calc/fitAddProjectedEnv.py @@ -1,5 +1,6 @@ import wx -from eos.saveddata.module import Module, FittingModuleState +from eos.saveddata.module import Module +from eos.const import FittingModuleState import eos.db from logbook import Logger pyfalog = Logger(__name__) diff --git a/gui/fitCommands/calc/fitAddProjectedModule.py b/gui/fitCommands/calc/fitAddProjectedModule.py index 4531ea8b5..089705ba1 100644 --- a/gui/fitCommands/calc/fitAddProjectedModule.py +++ b/gui/fitCommands/calc/fitAddProjectedModule.py @@ -1,7 +1,8 @@ import wx import eos.db from logbook import Logger -from eos.saveddata.module import Module, FittingModuleState +from eos.saveddata.module import Module +from eos.const import FittingModuleState pyfalog = Logger(__name__) diff --git a/gui/fitCommands/calc/fitImportMutatedModule.py b/gui/fitCommands/calc/fitImportMutatedModule.py index b5e323d0e..bae0ef0d8 100644 --- a/gui/fitCommands/calc/fitImportMutatedModule.py +++ b/gui/fitCommands/calc/fitImportMutatedModule.py @@ -1,5 +1,6 @@ import wx -from eos.saveddata.module import Module, FittingModuleState +from eos.saveddata.module import Module +from eos.const import FittingModuleState import eos.db from eos.db.gamedata.queries import getDynamicItem from logbook import Logger diff --git a/gui/fitCommands/calc/fitReplaceModule.py b/gui/fitCommands/calc/fitReplaceModule.py index 3ccf371e7..b2d36314c 100644 --- a/gui/fitCommands/calc/fitReplaceModule.py +++ b/gui/fitCommands/calc/fitReplaceModule.py @@ -2,7 +2,8 @@ import wx from logbook import Logger import eos.db -from eos.saveddata.module import Module, FittingModuleState +from eos.saveddata.module import Module +from eos.const import FittingModuleState from gui.fitCommands.helpers import ModuleInfoCache pyfalog = Logger(__name__) diff --git a/gui/fitCommands/guiAddImplant.py b/gui/fitCommands/guiAddImplant.py index 79b75f014..52b284071 100644 --- a/gui/fitCommands/guiAddImplant.py +++ b/gui/fitCommands/guiAddImplant.py @@ -3,7 +3,7 @@ from service.fit import Fit import gui.mainFrame from gui import globalEvents as GE -from eos.saveddata.fit import ImplantLocation +from eos.const import ImplantLocation from .calc.fitAddImplant import FitAddImplantCommand from .calc.fitChangeImplantLocation import FitChangeImplantLocation diff --git a/service/fit.py b/service/fit.py index 44686dc00..48085e745 100644 --- a/service/fit.py +++ b/service/fit.py @@ -30,8 +30,9 @@ from eos.saveddata.citadel import Citadel as es_Citadel from eos.saveddata.damagePattern import DamagePattern as es_DamagePattern from eos.saveddata.drone import Drone as es_Drone from eos.saveddata.fighter import Fighter as es_Fighter -from eos.saveddata.fit import Fit as FitType, ImplantLocation -from eos.saveddata.module import Module as es_Module, FittingModuleState +from eos.const import ImplantLocation, FittingModuleState +from eos.saveddata.fit import Fit as FitType +from eos.saveddata.module import Module as es_Module from eos.saveddata.ship import Ship as es_Ship from service.character import Character from service.damagePattern import DamagePattern diff --git a/service/fitDeprecated.py b/service/fitDeprecated.py index 0e1569deb..138da90e6 100644 --- a/service/fitDeprecated.py +++ b/service/fitDeprecated.py @@ -27,7 +27,8 @@ from eos.saveddata.cargo import Cargo as es_Cargo from eos.saveddata.drone import Drone as es_Drone from eos.saveddata.fighter import Fighter as es_Fighter from eos.saveddata.implant import Implant as es_Implant -from eos.saveddata.module import Module as es_Module, FittingModuleState +from eos.saveddata.module import Module as es_Module +from eos.const import FittingModuleState from eos.saveddata.fit import Fit as FitType from utils.deprecated import deprecated diff --git a/service/port/dna.py b/service/port/dna.py index 8c383fb82..27b088e29 100644 --- a/service/port/dna.py +++ b/service/port/dna.py @@ -28,9 +28,9 @@ from eos.saveddata.citadel import Citadel from eos.saveddata.drone import Drone from eos.saveddata.fighter import Fighter from eos.saveddata.fit import Fit -from eos.saveddata.module import Module, FittingModuleState +from eos.saveddata.module import Module from eos.saveddata.ship import Ship -from eos.const import FittingSlot +from eos.const import FittingSlot, FittingModuleState from service.fit import Fit as svcFit from service.market import Market diff --git a/service/port/efs.py b/service/port/efs.py index 5c0a5219f..b42d803f9 100755 --- a/service/port/efs.py +++ b/service/port/efs.py @@ -6,7 +6,8 @@ from numbers import Number from config import version as pyfaVersion from service.fit import Fit from service.market import Market -from eos.saveddata.module import FittingHardpoint, Module, FittingModuleState +from eos.const import FittingModuleState, FittingHardpoint +from eos.saveddata.module import Module from eos.saveddata.drone import Drone from eos.effectHandlerHelpers import HandledList from eos.db import gamedata_session, getCategory, getAttributeInfo, getGroup diff --git a/service/port/eft.py b/service/port/eft.py index 66b6aaba9..b5eba1bc5 100644 --- a/service/port/eft.py +++ b/service/port/eft.py @@ -30,10 +30,10 @@ from eos.saveddata.booster import Booster from eos.saveddata.drone import Drone from eos.saveddata.fighter import Fighter from eos.saveddata.implant import Implant -from eos.saveddata.module import Module, FittingModuleState +from eos.saveddata.module import Module from eos.saveddata.ship import Ship from eos.saveddata.fit import Fit -from eos.const import FittingSlot +from eos.const import FittingSlot, FittingModuleState from service.fit import Fit as svcFit from service.market import Market from service.port.muta import parseMutant, renderMutant diff --git a/service/port/esi.py b/service/port/esi.py index c9c8ed708..80a940c88 100644 --- a/service/port/esi.py +++ b/service/port/esi.py @@ -28,8 +28,8 @@ from eos.saveddata.citadel import Citadel from eos.saveddata.drone import Drone from eos.saveddata.fighter import Fighter from eos.saveddata.fit import Fit -from eos.saveddata.module import Module, FittingModuleState -from eos.const import FittingSlot +from eos.saveddata.module import Module +from eos.const import FittingSlot, FittingModuleState from eos.saveddata.ship import Ship from service.fit import Fit as svcFit from service.market import Market diff --git a/service/port/port.py b/service/port/port.py index 8038cab8e..69c512646 100644 --- a/service/port/port.py +++ b/service/port/port.py @@ -29,7 +29,7 @@ from bs4 import UnicodeDammit from logbook import Logger from eos import db -from eos.saveddata.fit import ImplantLocation +from eos.const import ImplantLocation from service.fit import Fit as svcFit from service.port.dna import exportDna, importDna from service.port.eft import exportEft, importEft, importEftCfg diff --git a/service/port/xml.py b/service/port/xml.py index 7fcb05117..39fce6994 100644 --- a/service/port/xml.py +++ b/service/port/xml.py @@ -28,9 +28,9 @@ from eos.saveddata.citadel import Citadel from eos.saveddata.drone import Drone from eos.saveddata.fighter import Fighter from eos.saveddata.fit import Fit -from eos.saveddata.module import Module, FittingModuleState +from eos.saveddata.module import Module from eos.saveddata.ship import Ship -from eos.const import FittingSlot +from eos.const import FittingSlot, FittingModuleState from service.fit import Fit as svcFit from service.market import Market from utils.strfunctions import sequential_rep, replace_ltgt From 8e98af85170118886f71f72f6e1f93998db480cd Mon Sep 17 00:00:00 2001 From: Ryan Holmes Date: Thu, 14 Mar 2019 14:15:01 -0400 Subject: [PATCH 52/88] Performance improvement when collecting counts for categories. Instead of making n calls for each category to sql, we get a grouped count by shipID, then process this in python, which is much faster. --- eos/config.py | 2 +- eos/db/saveddata/queries.py | 7 +++++++ gui/shipBrowser.py | 5 +++-- service/fit.py | 5 +++++ 4 files changed, 16 insertions(+), 3 deletions(-) diff --git a/eos/config.py b/eos/config.py index c6c53f748..0ea812008 100644 --- a/eos/config.py +++ b/eos/config.py @@ -19,7 +19,7 @@ if istravis is True or hasattr(sys, '_called_from_test'): # Running in Travis. Run saveddata database in memory. saveddata_connectionstring = 'sqlite:///:memory:' else: - saveddata_connectionstring = 'sqlite:///' + realpath(join(dirname(abspath(__file__)), "..", "saveddata", "saveddata-py3-db.db")) + saveddata_connectionstring = 'sqlite:///' + realpath(join(dirname(abspath(__file__)), "..", "saveddata", "saveddata.db")) pyfalog.debug("Saveddata connection string: {0}", saveddata_connectionstring) diff --git a/eos/db/saveddata/queries.py b/eos/db/saveddata/queries.py index 448584420..ae66e9285 100644 --- a/eos/db/saveddata/queries.py +++ b/eos/db/saveddata/queries.py @@ -21,6 +21,7 @@ import sys from sqlalchemy.sql import and_ from sqlalchemy import desc, select +from sqlalchemy import func from eos.db import saveddata_session, sd_lock from eos.db.saveddata.fit import projectedFits_table @@ -283,6 +284,12 @@ def countAllFits(): return count +def countFitGroupedByShip(): + with sd_lock: + count = eos.db.saveddata_session.query(Fit.shipID, func.count(Fit.shipID)).group_by(Fit.shipID).all() + return count + + def countFitsWithShip(lookfor, ownerID=None, where=None, eager=None): """ Get all the fits using a certain ship. diff --git a/gui/shipBrowser.py b/gui/shipBrowser.py index 75152a1b4..f103d9560 100644 --- a/gui/shipBrowser.py +++ b/gui/shipBrowser.py @@ -164,11 +164,12 @@ class ShipBrowser(wx.Panel): self.categoryList = list(sMkt.getShipRoot()) self.categoryList.sort(key=lambda _ship: _ship.name) + counts = sFit.countAllFitsGroupedByShip() + # set map & cache of fittings per category for cat in self.categoryList: itemIDs = [x.ID for x in cat.items] - num = sFit.countFitsWithShip(itemIDs) - self.categoryFitCache[cat.ID] = num > 0 + self.categoryFitCache[cat.ID] = sum([count for shipID, count in counts if shipID in itemIDs]) > 0 for ship in self.categoryList: if self.filterShipsWithNoFits and not self.categoryFitCache[ship.ID]: diff --git a/service/fit.py b/service/fit.py index 035bb50ee..73b6c7f41 100644 --- a/service/fit.py +++ b/service/fit.py @@ -146,6 +146,11 @@ class Fit(FitDeprecated): pyfalog.debug("Getting count of all fits.") return eos.db.countAllFits() + @staticmethod + def countAllFitsGroupedByShip(): + count = eos.db.countFitGroupedByShip() + return count + @staticmethod def countFitsWithShip(stuff): pyfalog.debug("Getting count of all fits for: {0}", stuff) From 90e275e386dacd547f768001dee595693b501f01 Mon Sep 17 00:00:00 2001 From: Ryan Holmes Date: Thu, 14 Mar 2019 14:25:11 -0400 Subject: [PATCH 53/88] Remove unused import --- eos/saveddata/module.py | 1 - 1 file changed, 1 deletion(-) diff --git a/eos/saveddata/module.py b/eos/saveddata/module.py index 8a842d6c6..8fd3117fc 100644 --- a/eos/saveddata/module.py +++ b/eos/saveddata/module.py @@ -25,7 +25,6 @@ from sqlalchemy.orm import reconstructor, validates import eos.db from eos.const import FittingModuleState, FittingHardpoint, FittingSlot from eos.effectHandlerHelpers import HandledCharge, HandledItem -from enum import Enum from eos.modifiedAttributeDict import ChargeAttrShortcut, ItemAttrShortcut, ModifiedAttributeDict from eos.saveddata.citadel import Citadel from eos.saveddata.mutator import Mutator From 61da8be73253a974b50896e431ab328eba5379a1 Mon Sep 17 00:00:00 2001 From: Ryan Holmes Date: Thu, 14 Mar 2019 14:46:01 -0400 Subject: [PATCH 54/88] Few import fixes and some bug fixes --- gui/builtinAdditionPanes/fighterView.py | 1 - gui/builtinItemStatsViews/itemAttributes.py | 1 + gui/builtinViewColumns/state.py | 7 +++---- gui/builtinViews/fittingView.py | 9 ++++++++- service/port/efs.py | 12 ++++++------ 5 files changed, 18 insertions(+), 12 deletions(-) diff --git a/gui/builtinAdditionPanes/fighterView.py b/gui/builtinAdditionPanes/fighterView.py index 61402eb03..9a2550cd8 100644 --- a/gui/builtinAdditionPanes/fighterView.py +++ b/gui/builtinAdditionPanes/fighterView.py @@ -25,7 +25,6 @@ from gui.builtinMarketBrowser.events import ItemSelected, ITEM_SELECTED import gui.mainFrame import gui.display as d from gui.builtinViewColumns.state import State -#from eos.saveddata.module import FittingSlot from eos.const import FittingSlot from gui.contextMenu import ContextMenu from gui.utils.staticHelpers import DragDropHelper diff --git a/gui/builtinItemStatsViews/itemAttributes.py b/gui/builtinItemStatsViews/itemAttributes.py index fd1424687..7390c20d1 100644 --- a/gui/builtinItemStatsViews/itemAttributes.py +++ b/gui/builtinItemStatsViews/itemAttributes.py @@ -1,4 +1,5 @@ import csv +import config # noinspection PyPackageRequirements import wx diff --git a/gui/builtinViewColumns/state.py b/gui/builtinViewColumns/state.py index 7c75baccc..d62aed631 100644 --- a/gui/builtinViewColumns/state.py +++ b/gui/builtinViewColumns/state.py @@ -50,9 +50,8 @@ class State(ViewColumn): return State_(mod.state).name.title() def getImageId(self, stuff): - generic_active = self.fittingView.imageList.GetImageIndex("state_%s_small" % State_(1).name.lower(), "gui") - generic_inactive = self.fittingView.imageList.GetImageIndex("state_%s_small" % State_(-1).name.lower(), - "gui") + generic_active = self.fittingView.imageList.GetImageIndex("state_%s_small" % State_.ACTIVE.name.lower(), "gui") + generic_inactive = self.fittingView.imageList.GetImageIndex("state_%s_small" % State_.OFFLINE.name.lower(), "gui") if isinstance(stuff, Drone): if stuff.amountActive > 0: @@ -84,7 +83,7 @@ class State(ViewColumn): return generic_inactive elif isinstance(stuff, Implant) and stuff.character: # if we're showing character implants, show an "online" state, which should not be changed - return self.fittingView.imageList.GetImageIndex("state_%s_small" % State_(0).name.lower(), "gui") + return self.fittingView.imageList.GetImageIndex("state_%s_small" % State_.ONLINE.name.lower(), "gui") else: active = getattr(stuff, "active", None) if active is None: diff --git a/gui/builtinViews/fittingView.py b/gui/builtinViews/fittingView.py index 7b5646fa4..97ba7d8f6 100644 --- a/gui/builtinViews/fittingView.py +++ b/gui/builtinViews/fittingView.py @@ -475,7 +475,14 @@ class FittingView(d.Display): sFit = Fit.getInstance() fit = sFit.getFit(self.activeFitID) - slotOrder = [FittingSlot.SUBSYSTEM, FittingSlot.HIGH, FittingSlot.MED, FittingSlot.LOW, FittingSlot.RIG, FittingSlot.SERVICE] + slotOrder = [ + FittingSlot.SUBSYSTEM, + FittingSlot.HIGH, + FittingSlot.MED, + FittingSlot.LOW, + FittingSlot.RIG, + FittingSlot.SERVICE + ] if fit is not None: self.mods = fit.modules[:] diff --git a/service/port/efs.py b/service/port/efs.py index b42d803f9..f4781dfdd 100755 --- a/service/port/efs.py +++ b/service/port/efs.py @@ -6,13 +6,13 @@ from numbers import Number from config import version as pyfaVersion from service.fit import Fit from service.market import Market -from eos.const import FittingModuleState, FittingHardpoint +from eos.const import FittingModuleState, FittingHardpoint, FittingSlot +from service.const import PortEftRigSize from eos.saveddata.module import Module from eos.saveddata.drone import Drone from eos.effectHandlerHelpers import HandledList from eos.db import gamedata_session, getCategory, getAttributeInfo, getGroup from eos.gamedata import Attribute, Effect, Group, Item, ItemEffect -from eos.const import FittingSlot from eos.utils.spoolSupport import SpoolType, SpoolOptions from gui.fitCommands.calc.fitAddModule import FitAddModuleCommand from gui.fitCommands.calc.fitRemoveModule import FitRemoveModuleCommand @@ -51,13 +51,13 @@ class EfsPort: mwd50mn = mapPropData("50MN Microwarpdrive II") mwd500mn = mapPropData("500MN Microwarpdrive II") mwd50000mn = mapPropData("50000MN Microwarpdrive II") - if rigSize == RigSize.SMALL or rigSize is None: + if rigSize == PortEftRigSize.SMALL or rigSize is None: propID = mwd5mn["id"] if shipPower > mwd5mn["powerReq"] else None - elif rigSize == RigSize.MEDIUM: + elif rigSize == PortEftRigSize.MEDIUM: propID = mwd50mn["id"] if shipPower > mwd50mn["powerReq"] else mwd5mn["id"] - elif rigSize == RigSize.LARGE: + elif rigSize == PortEftRigSize.LARGE: propID = mwd500mn["id"] if shipPower > mwd500mn["powerReq"] else mwd50mn["id"] - elif rigSize == RigSize.CAPITAL: + elif rigSize == PortEftRigSize.CAPITAL: propID = mwd50000mn["id"] if shipPower > mwd50000mn["powerReq"] else mwd500mn["id"] if propID is None: From 538271d73799189c951df403961975a708458180 Mon Sep 17 00:00:00 2001 From: DarkPhoenix Date: Fri, 15 Mar 2019 01:40:15 +0300 Subject: [PATCH 55/88] Add UI-specific highIsGood override for web --- gui/builtinItemStatsViews/itemMutator.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/gui/builtinItemStatsViews/itemMutator.py b/gui/builtinItemStatsViews/itemMutator.py index dc91453fa..eb93aedc3 100644 --- a/gui/builtinItemStatsViews/itemMutator.py +++ b/gui/builtinItemStatsViews/itemMutator.py @@ -43,8 +43,12 @@ class ItemMutator(wx.Panel): self.badColor = wx.Colour(255, 64, 0) self.event_mapping = {} + higOverrides = { + ('Stasis Web', 'speedFactor'): False, + } for m in sorted(stuff.mutators.values(), key=lambda x: x.attribute.displayName): + highIsGood = higOverrides.get((stuff.item.group.name, m.attribute.name), m.highIsGood) # Format: [raw value, modifier applied to base raw value, display value] range1 = (m.minValue, m.attribute.unit.SimplifyValue(m.minValue)) range2 = (m.maxValue, m.attribute.unit.SimplifyValue(m.maxValue)) @@ -59,7 +63,7 @@ class ItemMutator(wx.Panel): minRange = range2 maxRange = range1 - if (m.highIsGood and minRange[0] >= maxRange[0]) or (not m.highIsGood and minRange[0] <= maxRange[0]): + if (highIsGood and minRange[0] >= maxRange[0]) or (not highIsGood and minRange[0] <= maxRange[0]): betterRange = minRange worseRange = maxRange else: From 51b3cff4a903eb6a78d5cbdc29d469ad4b605609 Mon Sep 17 00:00:00 2001 From: Ryan Holmes Date: Thu, 14 Mar 2019 20:14:39 -0400 Subject: [PATCH 56/88] Fix for #1877 --- gui/builtinStatsViews/resourcesViewFull.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/gui/builtinStatsViews/resourcesViewFull.py b/gui/builtinStatsViews/resourcesViewFull.py index 77a1eaae5..dbf3259dc 100644 --- a/gui/builtinStatsViews/resourcesViewFull.py +++ b/gui/builtinStatsViews/resourcesViewFull.py @@ -278,12 +278,16 @@ class ResourcesViewFull(StatsView): totalCalibrationPoints = value labelTCP = label + # See #1877 + shown = label.Shown + label.Show(True) if isinstance(value, str): label.SetLabel(value) label.SetToolTip(wx.ToolTip(value)) else: label.SetLabel(formatAmount(value, prec, lowest, highest)) label.SetToolTip(wx.ToolTip("%.1f" % value)) + label.Show(shown) colorWarn = wx.Colour(204, 51, 51) colorNormal = wx.SystemSettings.GetColour(wx.SYS_COLOUR_WINDOWTEXT) From 42383cef03321cc3edbee527769012aeeae3c3a3 Mon Sep 17 00:00:00 2001 From: DarkPhoenix Date: Sat, 16 Mar 2019 13:29:47 +0300 Subject: [PATCH 57/88] Add effect which increases rig strength if system is not hi-sec --- .../structurecombatrigsecuritymodification.py | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 eos/effects/structurecombatrigsecuritymodification.py diff --git a/eos/effects/structurecombatrigsecuritymodification.py b/eos/effects/structurecombatrigsecuritymodification.py new file mode 100644 index 000000000..a467d6f31 --- /dev/null +++ b/eos/effects/structurecombatrigsecuritymodification.py @@ -0,0 +1,16 @@ +type = "passive" + + +def handler(fit, module, context): + secModifier = module.getModifiedItemAttr("securityModifier") + module.multiplyItemAttr("structureRigDoomsdayDamageLossTargetBonus", secModifier) + module.multiplyItemAttr("structureRigScanResBonus", secModifier) + module.multiplyItemAttr("structureRigPDRangeBonus", secModifier) + module.multiplyItemAttr("structureRigPDCapUseBonus", secModifier) + module.multiplyItemAttr("structureRigMissileExploVeloBonus", secModifier) + module.multiplyItemAttr("structureRigMissileVelocityBonus", secModifier) + module.multiplyItemAttr("structureRigEwarOptimalBonus", secModifier) + module.multiplyItemAttr("structureRigEwarFalloffBonus", secModifier) + module.multiplyItemAttr("structureRigEwarCapUseBonus", secModifier) + module.multiplyItemAttr("structureRigMissileExplosionRadiusBonus", secModifier) + module.multiplyItemAttr("structureRigMaxTargetRangeBonus", secModifier) From c6c364c4514ecad723879d5517bcc4e5eb8074f3 Mon Sep 17 00:00:00 2001 From: DarkPhoenix Date: Sat, 16 Mar 2019 13:55:13 +0300 Subject: [PATCH 58/88] Change runtime of combat rig sec modifier --- eos/effects/structurecombatrigsecuritymodification.py | 1 + 1 file changed, 1 insertion(+) diff --git a/eos/effects/structurecombatrigsecuritymodification.py b/eos/effects/structurecombatrigsecuritymodification.py index a467d6f31..dcbc93d39 100644 --- a/eos/effects/structurecombatrigsecuritymodification.py +++ b/eos/effects/structurecombatrigsecuritymodification.py @@ -1,3 +1,4 @@ +runTime = "early" type = "passive" From ccd3665115b5fd44cada7935410b289c3ca75cb6 Mon Sep 17 00:00:00 2001 From: Ryan Holmes Date: Sun, 17 Mar 2019 09:01:40 -0400 Subject: [PATCH 59/88] Do not call Layout on the skill tree view. #1866 --- gui/characterEditor.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gui/characterEditor.py b/gui/characterEditor.py index 2b4d59341..6586f5936 100644 --- a/gui/characterEditor.py +++ b/gui/characterEditor.py @@ -427,7 +427,8 @@ class SkillTreeView(wx.Panel): self.levelChangeMenu.Bind(wx.EVT_MENU, self.changeLevel) self.SetSizer(pmainSizer) - self.Layout() + # This cuases issues with GTK, see #1866 + # self.Layout() def importSkills(self, evt): From 19f02ef914d358104e15276f184906933333b475 Mon Sep 17 00:00:00 2001 From: Ryan Holmes Date: Sun, 17 Mar 2019 09:06:47 -0400 Subject: [PATCH 60/88] Align skill column to the right (#1866) --- gui/characterEditor.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gui/characterEditor.py b/gui/characterEditor.py index 6586f5936..2bcda4598 100644 --- a/gui/characterEditor.py +++ b/gui/characterEditor.py @@ -353,7 +353,7 @@ class SkillTreeView(wx.Panel): self.skillBookDirtyImageId = self.imageList.Add(wx.Icon(BitmapLoader.getBitmap("skill_small_red", "gui"))) tree.AppendColumn("Skill") - tree.AppendColumn("Level") + tree.AppendColumn("Level", align=wx.ALIGN_RIGHT) # tree.SetMainColumn(0) self.root = tree.GetRootItem() From 96077ed115f6bea4601d7387c2f55f556e193168 Mon Sep 17 00:00:00 2001 From: Ryan Holmes Date: Sun, 17 Mar 2019 13:18:42 -0400 Subject: [PATCH 61/88] Create blocking UI for fit price optimizations --- gui/mainFrame.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gui/mainFrame.py b/gui/mainFrame.py index 61fe7ceac..b511de3cf 100644 --- a/gui/mainFrame.py +++ b/gui/mainFrame.py @@ -662,17 +662,17 @@ class MainFrame(wx.Frame): fitID = self.getActiveFit() sFit = Fit.getInstance() fit = sFit.getFit(fitID) - if fit: + if fit: def updateFitCb(replacementsCheaper): + del self.waitDialog rebaseMap = {k.ID: v.ID for k, v in replacementsCheaper.items()} self.command.Submit(cmd.GuiRebaseItemsCommand(fitID, rebaseMap)) - # TODO: block/unblock UI while pyfa is working fitItems = {i for i in Fit.fitItemIter(fit) if i is not fit.ship.item} + self.waitDialog = wx.BusyInfo("Please Wait...", parent=self) Price.getInstance().findCheaperReplacements(fitItems, updateFitCb, fetchTimeout=10) - def AdditionsTabSelect(self, event): selTab = self.additionsSelect.index(event.GetId()) From 3c98aad4ba5bc38f1dd4107324ffe0363329744e Mon Sep 17 00:00:00 2001 From: Ryan Holmes Date: Sun, 17 Mar 2019 19:35:19 -0400 Subject: [PATCH 62/88] Autosize the item attribute columns (#1878). --- gui/builtinItemStatsViews/itemAttributes.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/gui/builtinItemStatsViews/itemAttributes.py b/gui/builtinItemStatsViews/itemAttributes.py index 350501e61..20065b6b0 100644 --- a/gui/builtinItemStatsViews/itemAttributes.py +++ b/gui/builtinItemStatsViews/itemAttributes.py @@ -19,7 +19,8 @@ class AttributeView(IntEnum): class ItemParams(wx.Panel): def __init__(self, parent, stuff, item, context=None): - wx.Panel.__init__(self, parent) + # Had to manually set the size here, otherwise column widths couldn't be calculated correctly. See #1878 + wx.Panel.__init__(self, parent, size=(1000, 1000)) mainSizer = wx.BoxSizer(wx.VERTICAL) self.paramList = wx.lib.agw.hypertreelist.HyperTreeList(self, wx.ID_ANY, agwStyle=wx.TR_HIDE_ROOT | wx.TR_NO_LINES | wx.TR_FULL_ROW_HIGHLIGHT | wx.TR_HAS_BUTTONS) @@ -40,9 +41,6 @@ class ItemParams(wx.Panel): if self.stuff is not None: self.paramList.AddColumn("Base Value") - self.paramList.SetMainColumn(0) # the one with the tree in it... - self.paramList.SetColumnWidth(0, 300) - self.m_staticline = wx.StaticLine(self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.LI_HORIZONTAL) mainSizer.Add(self.m_staticline, 0, wx.EXPAND) bSizer = wx.BoxSizer(wx.HORIZONTAL) @@ -255,6 +253,9 @@ class ItemParams(wx.Panel): self.Layout() + for i in range(self.paramList.GetMainWindow().GetColumnCount()): + self.paramList.SetColumnWidth(i, wx.LIST_AUTOSIZE) + def GetData(self, attr): info = self.attrInfo.get(attr) att = self.attrValues[attr] @@ -355,6 +356,7 @@ if __name__ == "__main__": #item = eos.db.getItem(526) # Stasis Webifier I item = eos.db.getItem(486) # 200mm AutoCannon I #item = eos.db.getItem(200) # Phased Plasma L + super().__init__(None, title="Test Attribute Window | {} - {}".format(item.ID, item.name), size=(1000, 500)) if 'wxMSW' in wx.PlatformInfo: @@ -368,6 +370,7 @@ if __name__ == "__main__": main_sizer.Add(panel, 1, wx.EXPAND | wx.ALL, 2) self.SetSizer(main_sizer) + self.Layout() app = wx.App(redirect=False) # Error messages go to popup window top = Frame() From a74cdc59bd61652265fb0793c7585073f16d0d3f Mon Sep 17 00:00:00 2001 From: Ryan Holmes Date: Sun, 17 Mar 2019 21:44:28 -0400 Subject: [PATCH 63/88] Implement fixes for #1870 - undo the Module.toDummy that happens when replacing a module, but the new module doesn't fit. And shuffle around the logic that dictates if a module / item fits onto a particular ship to allow us to ask a fit if a base item can fit based on low-level attributes that don't change --- eos/saveddata/fit.py | 26 ++++++++++++++++++++++ eos/saveddata/module.py | 28 +----------------------- gui/builtinContextMenus/metaSwap.py | 4 ++++ gui/fitCommands/calc/fitReplaceModule.py | 28 +++++++++++++----------- 4 files changed, 46 insertions(+), 40 deletions(-) diff --git a/eos/saveddata/fit.py b/eos/saveddata/fit.py index ff1ee24e2..c31c17696 100644 --- a/eos/saveddata/fit.py +++ b/eos/saveddata/fit.py @@ -384,6 +384,32 @@ class Fit(object): else: return val + def canFit(self, item): + # Whereas Module.fits() deals with current state of the fit in order to determine if somethign fits (for example maxGroupFitted which can be modified by effects), + # this function should be used against Items to see if the item is even allowed on the fit with rules that don't change + + fitsOnType = set() + fitsOnGroup = set() + + shipType = item.attributes.get("fitsToShipType", None) + if shipType is not None: + fitsOnType.add(shipType.value) + + fitsOnType.update([item.attributes[attr].value for attr in item.attributes if attr.startswith("canFitShipType")]) + fitsOnGroup.update([item.attributes[attr].value for attr in item.attributes if attr.startswith("canFitShipGroup")]) + + if (len(fitsOnGroup) > 0 or len(fitsOnType) > 0) \ + and self.ship.item.group.ID not in fitsOnGroup \ + and self.ship.item.ID not in fitsOnType: + return False + + # Citadel modules are now under a new category, so we can check this to ensure only structure modules can fit on a citadel + if isinstance(self.ship, Citadel) and item.category.name != "Structure Module" or \ + not isinstance(self.ship, Citadel) and item.category.name == "Structure Module": + return False + + return True + def clear(self, projected=False, command=False): self.__effectiveTank = None self.__weaponDpsMap = {} diff --git a/eos/saveddata/module.py b/eos/saveddata/module.py index 8fd3117fc..db215bcdf 100644 --- a/eos/saveddata/module.py +++ b/eos/saveddata/module.py @@ -539,34 +539,8 @@ class Module(HandledItem, HandledCharge, ItemAttrShortcut, ChargeAttrShortcut): return fits def __fitRestrictions(self, fit, hardpointLimit=True): - # Check ship type restrictions - fitsOnType = set() - fitsOnGroup = set() - shipType = self.getModifiedItemAttr("fitsToShipType", None) - if shipType is not None: - fitsOnType.add(shipType) - - for attr in list(self.itemModifiedAttributes.keys()): - if attr.startswith("canFitShipType"): - shipType = self.getModifiedItemAttr(attr, None) - if shipType is not None: - fitsOnType.add(shipType) - - for attr in list(self.itemModifiedAttributes.keys()): - if attr.startswith("canFitShipGroup"): - shipGroup = self.getModifiedItemAttr(attr, None) - if shipGroup is not None: - fitsOnGroup.add(shipGroup) - - if (len(fitsOnGroup) > 0 or len(fitsOnType) > 0) \ - and fit.ship.item.group.ID not in fitsOnGroup \ - and fit.ship.item.ID not in fitsOnType: - return False - - # Citadel modules are now under a new category, so we can check this to ensure only structure modules can fit on a citadel - if isinstance(fit.ship, Citadel) and self.item.category.name != "Structure Module" or \ - not isinstance(fit.ship, Citadel) and self.item.category.name == "Structure Module": + if not fit.canFit(self.item): return False # EVE doesn't let capital modules be fit onto subcapital hulls. Confirmed by CCP Larrikin that this is dictated diff --git a/gui/builtinContextMenus/metaSwap.py b/gui/builtinContextMenus/metaSwap.py index 2cbbb2221..d9a34599e 100644 --- a/gui/builtinContextMenus/metaSwap.py +++ b/gui/builtinContextMenus/metaSwap.py @@ -8,6 +8,7 @@ import gui.mainFrame from gui.contextMenu import ContextMenu from service.market import Market from service.settings import ContextMenuSettings +from service.fit import Fit class MetaSwap(ContextMenu): @@ -53,6 +54,8 @@ class MetaSwap(ContextMenu): def getSubMenu(self, context, selection, rootMenu, i, pitem): self.moduleLookup = {} + sFit = Fit.getInstance() + fit = sFit.getFit(self.mainFrame.getActiveFit()) def get_metalevel(x): if "metaLevel" not in x.attributes: @@ -114,6 +117,7 @@ class MetaSwap(ContextMenu): id = ContextMenu.nextID() mitem = wx.MenuItem(rootMenu, id, item.name) + mitem.Enable(fit.canFit(item)) bindmenu.Bind(wx.EVT_MENU, self.handleModule, mitem) self.moduleLookup[id] = item, context diff --git a/gui/fitCommands/calc/fitReplaceModule.py b/gui/fitCommands/calc/fitReplaceModule.py index b2d36314c..1a171ea3b 100644 --- a/gui/fitCommands/calc/fitReplaceModule.py +++ b/gui/fitCommands/calc/fitReplaceModule.py @@ -73,19 +73,21 @@ class FitReplaceModuleCommand(wx.Command): # Dummy it out in case the next bit fails fit.modules.toDummy(self.position) - if self.module.fits(fit): - self.module.owner = fit - fit.modules.toModule(self.position, self.module) - if self.module.isValidState(FittingModuleState.ACTIVE): - self.module.state = FittingModuleState.ACTIVE + if not self.module.fits(fit): + self.Undo() + return False - if self.old_module and self.old_module.charge and self.module.isValidCharge(self.old_module.charge): - self.module.charge = self.old_module.charge + self.module.owner = fit + fit.modules.toModule(self.position, self.module) + if self.module.isValidState(FittingModuleState.ACTIVE): + self.module.state = FittingModuleState.ACTIVE - # Then, check states of all modules and change where needed. This will recalc if needed - # self.checkStates(fit, m) + if self.old_module and self.old_module.charge and self.module.isValidCharge(self.old_module.charge): + self.module.charge = self.old_module.charge - # fit.fill() - eos.db.commit() - return True - return False + # Then, check states of all modules and change where needed. This will recalc if needed + # self.checkStates(fit, m) + + # fit.fill() + eos.db.commit() + return True From 566e7fd04684af6a27b96df9356fafdc65bb33ea Mon Sep 17 00:00:00 2001 From: DarkPhoenix Date: Mon, 18 Mar 2019 13:55:57 +0300 Subject: [PATCH 64/88] Disable UI for duration of price optimization --- gui/mainFrame.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/gui/mainFrame.py b/gui/mainFrame.py index b511de3cf..c3aad91d0 100644 --- a/gui/mainFrame.py +++ b/gui/mainFrame.py @@ -666,10 +666,12 @@ class MainFrame(wx.Frame): if fit: def updateFitCb(replacementsCheaper): del self.waitDialog + del self.disablerAll rebaseMap = {k.ID: v.ID for k, v in replacementsCheaper.items()} self.command.Submit(cmd.GuiRebaseItemsCommand(fitID, rebaseMap)) fitItems = {i for i in Fit.fitItemIter(fit) if i is not fit.ship.item} + self.disablerAll = wx.WindowDisabler() self.waitDialog = wx.BusyInfo("Please Wait...", parent=self) Price.getInstance().findCheaperReplacements(fitItems, updateFitCb, fetchTimeout=10) From 52a68adb11d52de859914f29ccb325fd132233f9 Mon Sep 17 00:00:00 2001 From: DarkPhoenix Date: Mon, 18 Mar 2019 14:33:17 +0300 Subject: [PATCH 65/88] Put character editor window into scope of main window This fixes various annoying things happening under linux: two separate applications shown when character editor open and various window focus bugs when opening stats of skills in character editor --- gui/characterEditor.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gui/characterEditor.py b/gui/characterEditor.py index 2bcda4598..643b5963e 100644 --- a/gui/characterEditor.py +++ b/gui/characterEditor.py @@ -150,7 +150,7 @@ class CharacterEntityEditor(EntityEditor): class CharacterEditor(wx.Frame): def __init__(self, parent): wx.Frame.__init__(self, parent, id=wx.ID_ANY, title="pyfa: Character Editor", pos=wx.DefaultPosition, - size=wx.Size(640, 600), style=wx.DEFAULT_FRAME_STYLE ^ wx.RESIZE_BORDER) + size=wx.Size(640, 600), style=wx.DEFAULT_FRAME_STYLE ^ wx.RESIZE_BORDER | wx.FRAME_FLOAT_ON_PARENT) i = wx.Icon(BitmapLoader.getBitmap("character_small", "gui")) self.SetIcon(i) From 6e44963d57d4aa6929aa194132ae03a05c6500dc Mon Sep 17 00:00:00 2001 From: DarkPhoenix Date: Mon, 18 Mar 2019 17:52:37 +0300 Subject: [PATCH 66/88] Implement spoolup selection via purely context menu --- gui/builtinContextMenus/spoolUp.py | 164 +++++++---------------------- 1 file changed, 38 insertions(+), 126 deletions(-) diff --git a/gui/builtinContextMenus/spoolUp.py b/gui/builtinContextMenus/spoolUp.py index ba901ede4..ff81ff6cc 100644 --- a/gui/builtinContextMenus/spoolUp.py +++ b/gui/builtinContextMenus/spoolUp.py @@ -1,16 +1,20 @@ -import gui.mainFrame -from gui.contextMenu import ContextMenu # noinspection PyPackageRequirements -from service.settings import ContextMenuSettings import wx -from eos.utils.spoolSupport import SpoolType -import gui.fitCommands as cmd + +import gui.mainFrame +from eos.utils.spoolSupport import SpoolType, SpoolOptions +from gui import globalEvents as GE +from gui.contextMenu import ContextMenu +from service.settings import ContextMenuSettings +from service.fit import Fit class SpoolUp(ContextMenu): def __init__(self): self.mainFrame = gui.mainFrame.MainFrame.getInstance() self.settings = ContextMenuSettings.getInstance() + self.cycleMap = {} + self.resetId = None def display(self, srcContext, selection): if not self.settings.get('project'): @@ -19,135 +23,43 @@ class SpoolUp(ContextMenu): if srcContext not in ("fittingModule") or self.mainFrame.getActiveFit() is None: return False - item = selection[0] + self.mod = selection[0] - return item.item.group.name in ("Precursor Weapon", "Mutadaptive Remote Armor Repairer", "Mutadaptive Remote Armor Repairer Blueprint") + return self.mod.item.group.name in ("Precursor Weapon", "Mutadaptive Remote Armor Repairer") def getText(self, itmContext, selection): - return "Set Spoolup".format(itmContext) + return "Spoolup" - def activate(self, fullContext, selection, i): - thing = selection[0] - mainFrame = gui.mainFrame.MainFrame.getInstance() - fitID = mainFrame.getActiveFit() - srcContext = fullContext[0] + def getSubMenu(self, context, selection, rootMenu, i, pitem): + m = wx.Menu() + cyclesMin = self.mod.getSpoolData(spoolOptions=SpoolOptions(SpoolType.SCALE, 0, True))[0] + cyclesMax = self.mod.getSpoolData(spoolOptions=SpoolOptions(SpoolType.SCALE, 1, True))[0] - while True: - dlg = SpoolUpChanger(self.mainFrame, thing) - result = dlg.ShowModal() + for cycle in range(cyclesMin, cyclesMax + 1): + menuId = ContextMenu.nextID() + item = wx.MenuItem(m, menuId, "{}".format(cycle)) + m.Bind(wx.EVT_MENU, self.handleSpoolChange, item) + m.Append(item) + self.cycleMap[menuId] = cycle - if result == wx.ID_CANCEL: - break - if result == wx.ID_DEFAULT: - type = None - amount = None - else: - type = SpoolType.CYCLES # dlg.spoolChoice.GetClientData(dlg.spoolChoice.GetSelection()) - amount = dlg.input.GetValue() + self.resetId = ContextMenu.nextID() + item = wx.MenuItem(m, self.resetId, "Default") + m.Bind(wx.EVT_MENU, self.handleSpoolChange, item) + m.Append(item) - if type == SpoolType.SCALE: - if amount < 0 or amount > 100: - dlg = wx.MessageDialog(self.mainFrame, "The amount provided isn't within the range of 0 - 100.", "Error", wx.OK | wx.ICON_ERROR) - dlg.ShowModal() - continue - amount = amount / 100 - if type is None: - amount = None + return m - self.mainFrame.command.Submit(cmd.GuiSetSpoolup(fitID, thing, type, amount)) - return + def handleSpoolChange(self, event): + if event.Id == self.resetId: + self.mod.spoolType = None + self.mod.spoolAmount = None + elif event.Id in self.cycleMap: + cycles = self.cycleMap[event.Id] + self.mod.spoolType = SpoolType.CYCLES + self.mod.spoolAmount = cycles + fitID = self.mainFrame.getActiveFit() + Fit.getInstance().recalc(fitID) + wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=fitID)) SpoolUp.register() - - -class SpoolUpChanger(wx.Dialog): - - spoolTypes = { - None: ("Default", "pyfa defaults to using 'scale' calculation with 100%"), - SpoolType.SCALE: ("Percentage", "Amount is a percentage from 0 - 100; rounds down to closest module cycle."), - SpoolType.TIME: ("Time (s)", "Amount defines time in seconds since spoolup module was activated."), - SpoolType.CYCLES: ("Cycles", "Amount is number of cycles module went through since being activated.") - } - - def __init__(self, parent, module): - wx.Dialog.__init__(self, parent, title="Change Spool-Up") - self.SetMinSize((346, 156)) - - bSizer1 = wx.BoxSizer(wx.VERTICAL) - - bSizer2 = wx.BoxSizer(wx.VERTICAL) - - # This code allows the user to select the type of spoolup. Commented out to keep simpple, can introduce an - # text = wx.StaticText(self, wx.ID_ANY, "Type:") - # bSizer2.Add(text, 0) - # - # "advanced" functionality later - # self.spoolChoice = wx.Choice(self, wx.ID_ANY, style=0) - # - # for k, v in self.spoolTypes.items(): - # i = self.spoolChoice.Append(v[0], k) - # if module.spoolType == k: - # self.spoolChoice.SetSelection(i) - # - # self.spoolChoice.Bind(wx.EVT_CHOICE, self.spoolTypeChanged) - # - # bSizer2.Add(self.spoolChoice, 0, wx.TOP | wx.BOTTOM | wx.EXPAND, 5) - # - # self.spoolDesc = wx.StaticText(self, wx.ID_ANY, self.spoolTypes[module.spoolType][1]) - - self.spoolDesc = wx.StaticText(self, wx.ID_ANY, "Specify the number of cycles that you wish to set the module to") - bSizer2.Add(self.spoolDesc, 1) - # - # text1 = wx.StaticText(self, wx.ID_ANY, "Amount:") - # bSizer2.Add(text1, 0, wx.TOP, 10) - - bSizer1.Add(bSizer2, 0, wx.ALL, 10) - - self.input = wx.SpinCtrlDouble(self, min=0, max=1000) - bSizer1.Add(self.input, 0, wx.LEFT | wx.RIGHT | wx.EXPAND, 10) - - bSizer3 = wx.BoxSizer(wx.VERTICAL) - bSizer3.Add(wx.StaticLine(self, wx.ID_ANY), 0, wx.BOTTOM | wx.EXPAND, 15) - - bSizerButtons = wx.BoxSizer(wx.HORIZONTAL) - - self.btnRevert = wx.Button(self, wx.ID_DEFAULT, "Reset to Default") - self.btnOK = wx.Button(self, wx.ID_OK) - self.btnCancel = wx.Button(self, wx.ID_CANCEL) - - bSizerButtons.Add(self.btnRevert, 0, wx.ALL, 5) - bSizerButtons.AddStretchSpacer() - bSizerButtons.Add(self.btnOK, 0, wx.ALL, 5) - bSizerButtons.Add(self.btnCancel, 0, wx.ALL, 5) - - self.btnCancel.Bind(wx.EVT_BUTTON, self.OnBtnCancel) - self.btnRevert.Bind(wx.EVT_BUTTON, self.OnBtnRevert) - self.btnOK.Bind(wx.EVT_BUTTON, self.OnBtnOk) - - bSizer3.Add(bSizerButtons, 0, wx.EXPAND, 5) - bSizer1.Add(bSizer3, 0, wx.ALL | wx.EXPAND, 10) - - self.input.SetValue(module.spoolAmount or 0) - self.input.SetFocus() - self.input.Bind(wx.EVT_TEXT_ENTER, self.processEnter) - self.SetSizer(bSizer1) - self.CenterOnParent() - self.Fit() - - def OnBtnCancel(self, event): - self.EndModal(wx.ID_CANCEL) - - def OnBtnOk(self, event): - self.EndModal(wx.ID_OK) - - def OnBtnRevert(self, event): - self.EndModal(wx.ID_DEFAULT) - - def spoolTypeChanged(self, evt): - self.input.Enable(evt.ClientData is not None) - self.spoolDesc.SetLabel(self.spoolTypes[evt.ClientData][1]) - self.Layout() - - def processEnter(self, evt): - self.EndModal(wx.ID_OK) From 51180a9375c69ba8c023d7f28233e9ae27154f04 Mon Sep 17 00:00:00 2001 From: DarkPhoenix Date: Mon, 18 Mar 2019 17:54:00 +0300 Subject: [PATCH 67/88] Put spoolup menu above item stats --- gui/contextMenu.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gui/contextMenu.py b/gui/contextMenu.py index 43d6ef58d..b479ab913 100644 --- a/gui/contextMenu.py +++ b/gui/contextMenu.py @@ -183,8 +183,8 @@ from gui.builtinContextMenus import ( # noqa: E402,F401 openFit, moduleGlobalAmmoPicker, moduleAmmoPicker, - itemStats, spoolUp, + itemStats, damagePattern, marketJump, # droneSplit, From 33b91a79ab4a28a89ca75dfd724f1c7f975b7fd7 Mon Sep 17 00:00:00 2001 From: DarkPhoenix Date: Mon, 18 Mar 2019 18:21:53 +0300 Subject: [PATCH 68/88] Add option to disable this context menu --- gui/builtinContextMenus/spoolUp.py | 2 +- .../pyfaContextMenuPreferences.py | 34 +++++++++++-------- service/settings.py | 1 + 3 files changed, 22 insertions(+), 15 deletions(-) diff --git a/gui/builtinContextMenus/spoolUp.py b/gui/builtinContextMenus/spoolUp.py index ff81ff6cc..680c48b94 100644 --- a/gui/builtinContextMenus/spoolUp.py +++ b/gui/builtinContextMenus/spoolUp.py @@ -17,7 +17,7 @@ class SpoolUp(ContextMenu): self.resetId = None def display(self, srcContext, selection): - if not self.settings.get('project'): + if not self.settings.get('spoolup'): return False if srcContext not in ("fittingModule") or self.mainFrame.getActiveFit() is None: diff --git a/gui/builtinPreferenceViews/pyfaContextMenuPreferences.py b/gui/builtinPreferenceViews/pyfaContextMenuPreferences.py index 7c767c5fb..6ff7c8210 100644 --- a/gui/builtinPreferenceViews/pyfaContextMenuPreferences.py +++ b/gui/builtinPreferenceViews/pyfaContextMenuPreferences.py @@ -36,7 +36,7 @@ class PFContextMenuPref(PreferenceView): self.rbBox1 = wx.RadioBox(panel, -1, "Set as Damage Pattern", wx.DefaultPosition, wx.DefaultSize, ['Disabled', 'Enabled'], 1, wx.RA_SPECIFY_COLS) self.rbBox1.SetSelection(self.settings.get('ammoPattern')) - rbSizerRow1.Add(self.rbBox1, 1, wx.TOP | wx.RIGHT, 5) + rbSizerRow1.Add(self.rbBox1, 1, wx.ALL, 5) self.rbBox1.Bind(wx.EVT_RADIOBOX, self.OnSetting1Change) self.rbBox2 = wx.RadioBox(panel, -1, "Change Skills", wx.DefaultPosition, wx.DefaultSize, ['Disabled', 'Enabled'], 1, wx.RA_SPECIFY_COLS) @@ -56,36 +56,39 @@ class PFContextMenuPref(PreferenceView): self.rbBox4 = wx.RadioBox(panel, -1, "Variations", wx.DefaultPosition, wx.DefaultSize, ['Disabled', 'Enabled'], 1, wx.RA_SPECIFY_COLS) self.rbBox4.SetSelection(self.settings.get('metaSwap')) - rbSizerRow2.Add(self.rbBox4, 1, wx.TOP | wx.RIGHT, 5) + rbSizerRow2.Add(self.rbBox4, 1, wx.ALL, 5) self.rbBox4.Bind(wx.EVT_RADIOBOX, self.OnSetting4Change) - ''' - self.rbBox5 = wx.RadioBox(panel, -1, "Charge", wx.DefaultPosition, wx.DefaultSize, ['Disabled', 'Enabled'], 1, wx.RA_SPECIFY_COLS) - self.rbBox5.SetSelection(self.settings.get('moduleAmmoPicker')) - rbSizerRow2.Add(self.rbBox5, 1, wx.ALL, 5) - self.rbBox5.Bind(wx.EVT_RADIOBOX, self.OnSetting5Change) - ''' + # self.rbBox5 = wx.RadioBox(panel, -1, "Charge", wx.DefaultPosition, wx.DefaultSize, ['Disabled', 'Enabled'], 1, wx.RA_SPECIFY_COLS) + # self.rbBox5.SetSelection(self.settings.get('moduleAmmoPicker')) + # rbSizerRow2.Add(self.rbBox5, 0, wx.ALL, 5) + # self.rbBox5.Bind(wx.EVT_RADIOBOX, self.OnSetting5Change) self.rbBox6 = wx.RadioBox(panel, -1, "Charge (All)", wx.DefaultPosition, wx.DefaultSize, ['Disabled', 'Enabled'], 1, wx.RA_SPECIFY_COLS) self.rbBox6.SetSelection(self.settings.get('moduleGlobalAmmoPicker')) rbSizerRow2.Add(self.rbBox6, 1, wx.ALL, 5) self.rbBox6.Bind(wx.EVT_RADIOBOX, self.OnSetting6Change) + self.rbBox7 = wx.RadioBox(panel, -1, "Project onto Fit", wx.DefaultPosition, wx.DefaultSize, ['Disabled', 'Enabled'], 1, wx.RA_SPECIFY_COLS) + self.rbBox7.SetSelection(self.settings.get('project')) + rbSizerRow2.Add(self.rbBox7, 1, wx.ALL, 5) + self.rbBox7.Bind(wx.EVT_RADIOBOX, self.OnSetting7Change) + mainSizer.Add(rbSizerRow2, 1, wx.ALL | wx.EXPAND, 0) # Row 3 rbSizerRow3 = wx.BoxSizer(wx.HORIZONTAL) - self.rbBox7 = wx.RadioBox(panel, -1, "Project onto Fit", wx.DefaultPosition, wx.DefaultSize, ['Disabled', 'Enabled'], 1, wx.RA_SPECIFY_COLS) - self.rbBox7.SetSelection(self.settings.get('project')) - rbSizerRow3.Add(self.rbBox7, 1, wx.TOP | wx.RIGHT, 5) - self.rbBox7.Bind(wx.EVT_RADIOBOX, self.OnSetting7Change) - self.rbBox8 = wx.RadioBox(panel, -1, "Fill with module", wx.DefaultPosition, wx.DefaultSize, ['Disabled', 'Enabled'], 1, wx.RA_SPECIFY_COLS) self.rbBox8.SetSelection(self.settings.get('moduleFill')) - rbSizerRow3.Add(self.rbBox8, 1, wx.TOP | wx.RIGHT, 5) + rbSizerRow3.Add(self.rbBox8, 1, wx.ALL, 5) self.rbBox8.Bind(wx.EVT_RADIOBOX, self.OnSetting8Change) + self.rbBox9 = wx.RadioBox(panel, -1, "Spoolup", wx.DefaultPosition, wx.DefaultSize, ['Disabled', 'Enabled'], 1, wx.RA_SPECIFY_COLS) + self.rbBox9.SetSelection(self.settings.get('spoolup')) + rbSizerRow3.Add(self.rbBox9, 1, wx.ALL, 5) + self.rbBox9.Bind(wx.EVT_RADIOBOX, self.OnSetting9Change) + mainSizer.Add(rbSizerRow3, 1, wx.ALL | wx.EXPAND, 0) panel.SetSizer(mainSizer) @@ -115,6 +118,9 @@ class PFContextMenuPref(PreferenceView): def OnSetting8Change(self, event): self.settings.set('moduleFill', event.GetInt()) + def OnSetting9Change(self, event): + self.settings.set('spoolup', event.GetInt()) + def getImage(self): return BitmapLoader.getBitmap("settings_menu", "gui") diff --git a/service/settings.py b/service/settings.py index df5038d1f..b901b1d72 100644 --- a/service/settings.py +++ b/service/settings.py @@ -526,6 +526,7 @@ class ContextMenuSettings(object): "targetResists" : 1, "whProjector" : 1, "moduleFill" : 1, + "spoolup" : 1, } self.ContextMenuDefaultSettings = SettingsProvider.getInstance().getSettings("pyfaContextMenuSettings", ContextMenuDefaultSettings) From 34fe530ac76d2a61ed7912f528f1cda2472c36b5 Mon Sep 17 00:00:00 2001 From: DarkPhoenix Date: Mon, 18 Mar 2019 19:29:27 +0300 Subject: [PATCH 69/88] Add current value marker --- gui/builtinContextMenus/spoolUp.py | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/gui/builtinContextMenus/spoolUp.py b/gui/builtinContextMenus/spoolUp.py index 680c48b94..a4f6a8ada 100644 --- a/gui/builtinContextMenus/spoolUp.py +++ b/gui/builtinContextMenus/spoolUp.py @@ -1,6 +1,7 @@ # noinspection PyPackageRequirements import wx +import eos.config import gui.mainFrame from eos.utils.spoolSupport import SpoolType, SpoolOptions from gui import globalEvents as GE @@ -32,12 +33,17 @@ class SpoolUp(ContextMenu): def getSubMenu(self, context, selection, rootMenu, i, pitem): m = wx.Menu() - cyclesMin = self.mod.getSpoolData(spoolOptions=SpoolOptions(SpoolType.SCALE, 0, True))[0] - cyclesMax = self.mod.getSpoolData(spoolOptions=SpoolOptions(SpoolType.SCALE, 1, True))[0] + cycleCurrent = self.mod.getSpoolData(spoolOptions=SpoolOptions(SpoolType.SCALE, eos.config.settings['globalDefaultSpoolupPercentage'], False))[0] + cycleMin = self.mod.getSpoolData(spoolOptions=SpoolOptions(SpoolType.SCALE, 0, True))[0] + cycleMax = self.mod.getSpoolData(spoolOptions=SpoolOptions(SpoolType.SCALE, 1, True))[0] - for cycle in range(cyclesMin, cyclesMax + 1): + for cycle in range(cycleMin, cycleMax + 1): menuId = ContextMenu.nextID() - item = wx.MenuItem(m, menuId, "{}".format(cycle)) + if cycleCurrent == cycle: + text = "- {} -".format(cycle) + else: + text = "{}".format(cycle) + item = wx.MenuItem(m, menuId, text) m.Bind(wx.EVT_MENU, self.handleSpoolChange, item) m.Append(item) self.cycleMap[menuId] = cycle From 894231b0091270d04061bae4f608cebfee63d5c5 Mon Sep 17 00:00:00 2001 From: DarkPhoenix Date: Mon, 18 Mar 2019 19:40:30 +0300 Subject: [PATCH 70/88] Change selection affix --- gui/builtinContextMenus/spoolUp.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/gui/builtinContextMenus/spoolUp.py b/gui/builtinContextMenus/spoolUp.py index a4f6a8ada..5c7347ef5 100644 --- a/gui/builtinContextMenus/spoolUp.py +++ b/gui/builtinContextMenus/spoolUp.py @@ -33,14 +33,20 @@ class SpoolUp(ContextMenu): def getSubMenu(self, context, selection, rootMenu, i, pitem): m = wx.Menu() + isNotDefault = self.mod.spoolType is not None and self.mod.spoolAmount is not None + cycleDefault = self.mod.getSpoolData(spoolOptions=SpoolOptions(SpoolType.SCALE, eos.config.settings['globalDefaultSpoolupPercentage'], True))[0] cycleCurrent = self.mod.getSpoolData(spoolOptions=SpoolOptions(SpoolType.SCALE, eos.config.settings['globalDefaultSpoolupPercentage'], False))[0] cycleMin = self.mod.getSpoolData(spoolOptions=SpoolOptions(SpoolType.SCALE, 0, True))[0] cycleMax = self.mod.getSpoolData(spoolOptions=SpoolOptions(SpoolType.SCALE, 1, True))[0] for cycle in range(cycleMin, cycleMax + 1): menuId = ContextMenu.nextID() - if cycleCurrent == cycle: - text = "- {} -".format(cycle) + # Show selected only for current value and when overriden by user + if isNotDefault and cycle == cycleCurrent: + text = "{} (selected)".format(cycle) + # Show default only for current value and when not overriden + elif not isNotDefault and cycle == cycleDefault: + text = "{} (default)".format(cycle) else: text = "{}".format(cycle) item = wx.MenuItem(m, menuId, text) From 52c9f4076b90d1b785692a0e4ca44b206d2f4e98 Mon Sep 17 00:00:00 2001 From: DarkPhoenix Date: Mon, 18 Mar 2019 20:08:06 +0300 Subject: [PATCH 71/88] Change reset label --- gui/builtinContextMenus/spoolUp.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gui/builtinContextMenus/spoolUp.py b/gui/builtinContextMenus/spoolUp.py index 5c7347ef5..74bb1721e 100644 --- a/gui/builtinContextMenus/spoolUp.py +++ b/gui/builtinContextMenus/spoolUp.py @@ -55,7 +55,7 @@ class SpoolUp(ContextMenu): self.cycleMap[menuId] = cycle self.resetId = ContextMenu.nextID() - item = wx.MenuItem(m, self.resetId, "Default") + item = wx.MenuItem(m, self.resetId, "Reset") m.Bind(wx.EVT_MENU, self.handleSpoolChange, item) m.Append(item) From bb7fb022efc1af0719be39cd818993d07492dc4b Mon Sep 17 00:00:00 2001 From: Ryan Holmes Date: Mon, 18 Mar 2019 20:25:28 -0400 Subject: [PATCH 72/88] fixes for windows and selected menu item --- gui/builtinContextMenus/spoolUp.py | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/gui/builtinContextMenus/spoolUp.py b/gui/builtinContextMenus/spoolUp.py index 74bb1721e..a75568802 100644 --- a/gui/builtinContextMenus/spoolUp.py +++ b/gui/builtinContextMenus/spoolUp.py @@ -29,10 +29,15 @@ class SpoolUp(ContextMenu): return self.mod.item.group.name in ("Precursor Weapon", "Mutadaptive Remote Armor Repairer") def getText(self, itmContext, selection): - return "Spoolup" + return "Spoolup Cycles" def getSubMenu(self, context, selection, rootMenu, i, pitem): m = wx.Menu() + if "wxMSW" in wx.PlatformInfo: + bindmenu = rootMenu + else: + bindmenu = m + isNotDefault = self.mod.spoolType is not None and self.mod.spoolAmount is not None cycleDefault = self.mod.getSpoolData(spoolOptions=SpoolOptions(SpoolType.SCALE, eos.config.settings['globalDefaultSpoolupPercentage'], True))[0] cycleCurrent = self.mod.getSpoolData(spoolOptions=SpoolOptions(SpoolType.SCALE, eos.config.settings['globalDefaultSpoolupPercentage'], False))[0] @@ -41,22 +46,22 @@ class SpoolUp(ContextMenu): for cycle in range(cycleMin, cycleMax + 1): menuId = ContextMenu.nextID() - # Show selected only for current value and when overriden by user - if isNotDefault and cycle == cycleCurrent: - text = "{} (selected)".format(cycle) + # Show default only for current value and when not overriden - elif not isNotDefault and cycle == cycleDefault: + if not isNotDefault and cycle == cycleDefault: text = "{} (default)".format(cycle) else: text = "{}".format(cycle) - item = wx.MenuItem(m, menuId, text) - m.Bind(wx.EVT_MENU, self.handleSpoolChange, item) + + item = wx.MenuItem(m, menuId, text, kind=wx.ITEM_CHECK) + bindmenu.Bind(wx.EVT_MENU, self.handleSpoolChange, item) m.Append(item) + item.Check(isNotDefault and cycle == cycleCurrent) self.cycleMap[menuId] = cycle self.resetId = ContextMenu.nextID() item = wx.MenuItem(m, self.resetId, "Reset") - m.Bind(wx.EVT_MENU, self.handleSpoolChange, item) + bindmenu.Bind(wx.EVT_MENU, self.handleSpoolChange, item) m.Append(item) return m From f6c6f9a0c99653dccea3ecc021b1fb52f59c90c7 Mon Sep 17 00:00:00 2001 From: Ryan Holmes Date: Mon, 18 Mar 2019 22:30:54 -0400 Subject: [PATCH 73/88] Handle double click event on skill groups in character editor (#1886) --- gui/characterEditor.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/gui/characterEditor.py b/gui/characterEditor.py index 643b5963e..fdd17aa95 100644 --- a/gui/characterEditor.py +++ b/gui/characterEditor.py @@ -368,6 +368,7 @@ class SkillTreeView(wx.Panel): self.populateSkillTree() + tree.Bind(wx.dataview.EVT_TREELIST_ITEM_ACTIVATED, self.expand) tree.Bind(wx.dataview.EVT_TREELIST_ITEM_EXPANDING, self.expandLookup) tree.Bind(wx.dataview.EVT_TREELIST_ITEM_CONTEXT_MENU, self.scheduleMenu) @@ -555,9 +556,18 @@ class SkillTreeView(wx.Panel): if event: event.Skip() + def expand(self, event): + root = event.GetItem() + tree = self.skillTreeListCtrl + if tree.IsExpanded(root): + tree.Collapse(root) + else: + tree.Expand(root) + def expandLookup(self, event): root = event.GetItem() tree = self.skillTreeListCtrl + child = tree.GetFirstChild(root) if tree.GetItemText(child) == "dummy": tree.DeleteItem(child) From d10715634142962ec769c1f042ef507cce727390 Mon Sep 17 00:00:00 2001 From: Ryan Holmes Date: Tue, 19 Mar 2019 09:10:44 -0400 Subject: [PATCH 74/88] Fix for sill name getting cutoff on gtk (#1886) --- gui/characterEditor.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/gui/characterEditor.py b/gui/characterEditor.py index fdd17aa95..60dbcd3e5 100644 --- a/gui/characterEditor.py +++ b/gui/characterEditor.py @@ -353,7 +353,7 @@ class SkillTreeView(wx.Panel): self.skillBookDirtyImageId = self.imageList.Add(wx.Icon(BitmapLoader.getBitmap("skill_small_red", "gui"))) tree.AppendColumn("Skill") - tree.AppendColumn("Level", align=wx.ALIGN_RIGHT) + tree.AppendColumn("Level", align=wx.ALIGN_CENTER) # tree.SetMainColumn(0) self.root = tree.GetRootItem() @@ -361,7 +361,10 @@ class SkillTreeView(wx.Panel): # # tree.SetItemText(self.root, 1, "Levels") - # tree.SetColumnWidth(0, 300) + # first one doesn't work right in Windows. Second one doesn't work right in GTK. Together, we make sure it works. + # Gotta love wx + tree.SetColumnWidth(0, 525) + tree.SetColumnWidth(1, 100) self.btnSecStatus = wx.Button(self, wx.ID_ANY, "Sec Status: {0:.2f}".format(char.secStatus or 0.0)) self.btnSecStatus.Bind(wx.EVT_BUTTON, self.onSecStatus) From 25bbf3dc03a4b126152a13bf29b4bbce38959953 Mon Sep 17 00:00:00 2001 From: Ryan Holmes Date: Tue, 19 Mar 2019 11:33:32 -0400 Subject: [PATCH 75/88] Move export logic from mainframe to export dialog, and introducing ui blocking for price optimization --- eos/effects/all.py | 18674 +++++++++++++++++++++++++++++++++++++ gui/copySelectDialog.py | 62 + gui/mainFrame.py | 61 +- scripts/effect_rename.py | 100 + 4 files changed, 18840 insertions(+), 57 deletions(-) create mode 100644 eos/effects/all.py create mode 100644 scripts/effect_rename.py diff --git a/eos/effects/all.py b/eos/effects/all.py new file mode 100644 index 000000000..291ed55f4 --- /dev/null +++ b/eos/effects/all.py @@ -0,0 +1,18674 @@ +def effect10(): + type = 'active' + def handler(fit, module, context): + module.reloadTime = 1000 + + return locals() + +def effect1001(): + type = "passive" + def handler(fit, ship, context): + fit.ship.boostItemAttr("rechargeRate", ship.getModifiedItemAttr("eliteBonusGunship2"), skill="Assault Frigates") + + return locals() + +def effect1003(): + type = "passive" + def handler(fit, skill, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Pulse Laser Specialization"), + "damageMultiplier", skill.getModifiedItemAttr("damageMultiplierBonus") * skill.level) + + return locals() + +def effect1004(): + type = "passive" + def handler(fit, skill, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Beam Laser Specialization"), + "damageMultiplier", skill.getModifiedItemAttr("damageMultiplierBonus") * skill.level) + + return locals() + +def effect1005(): + type = "passive" + def handler(fit, skill, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Blaster Specialization"), + "damageMultiplier", skill.getModifiedItemAttr("damageMultiplierBonus") * skill.level) + + return locals() + +def effect1006(): + type = "passive" + def handler(fit, skill, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Railgun Specialization"), + "damageMultiplier", skill.getModifiedItemAttr("damageMultiplierBonus") * skill.level) + + return locals() + +def effect1007(): + type = "passive" + def handler(fit, skill, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Autocannon Specialization"), + "damageMultiplier", skill.getModifiedItemAttr("damageMultiplierBonus") * skill.level) + + return locals() + +def effect1008(): + type = "passive" + def handler(fit, skill, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Artillery Specialization"), + "damageMultiplier", skill.getModifiedItemAttr("damageMultiplierBonus") * skill.level) + + return locals() + +def effect1009(): + type = "passive" + def handler(fit, skill, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Pulse Laser Specialization"), + "damageMultiplier", skill.getModifiedItemAttr("damageMultiplierBonus") * skill.level) + + return locals() + +def effect101(): + type = 'active', "projected" + def handler(fit, src, context): + src.reloadTime = 10000 + if "projected" in context: + if src.item.group.name == 'Missile Launcher Bomb': + moduleReactivationDelay = src.getModifiedItemAttr("moduleReactivationDelay") + speed = src.getModifiedItemAttr("speed") + neutAmount = src.getModifiedChargeAttr("energyNeutralizerAmount") + if moduleReactivationDelay and neutAmount and speed: + fit.addDrain(src, speed + moduleReactivationDelay, neutAmount, 0) + ecmStrengthBonus = src.getModifiedChargeAttr("scan{0}StrengthBonus".format(fit.scanType)) + if ecmStrengthBonus: + strModifier = 1 - ecmStrengthBonus / fit.scanStrength + fit.ecmProjectedStr *= strModifier + + return locals() + +def effect1010(): + type = "passive" + def handler(fit, skill, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Beam Laser Specialization"), + "damageMultiplier", skill.getModifiedItemAttr("damageMultiplierBonus") * skill.level) + + return locals() + +def effect1011(): + type = "passive" + def handler(fit, skill, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Blaster Specialization"), + "damageMultiplier", skill.getModifiedItemAttr("damageMultiplierBonus") * skill.level) + + return locals() + +def effect1012(): + type = "passive" + def handler(fit, skill, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Railgun Specialization"), + "damageMultiplier", skill.getModifiedItemAttr("damageMultiplierBonus") * skill.level) + + return locals() + +def effect1013(): + type = "passive" + def handler(fit, skill, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Autocannon Specialization"), + "damageMultiplier", skill.getModifiedItemAttr("damageMultiplierBonus") * skill.level) + + return locals() + +def effect1014(): + type = "passive" + def handler(fit, skill, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Artillery Specialization"), + "damageMultiplier", skill.getModifiedItemAttr("damageMultiplierBonus") * skill.level) + + return locals() + +def effect1015(): + type = "passive" + def handler(fit, skill, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Large Pulse Laser Specialization"), + "damageMultiplier", skill.getModifiedItemAttr("damageMultiplierBonus") * skill.level) + + return locals() + +def effect1016(): + type = "passive" + def handler(fit, skill, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Large Beam Laser Specialization"), + "damageMultiplier", skill.getModifiedItemAttr("damageMultiplierBonus") * skill.level) + + return locals() + +def effect1017(): + type = "passive" + def handler(fit, skill, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Large Blaster Specialization"), + "damageMultiplier", skill.getModifiedItemAttr("damageMultiplierBonus") * skill.level) + + return locals() + +def effect1018(): + type = "passive" + def handler(fit, skill, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Large Railgun Specialization"), + "damageMultiplier", skill.getModifiedItemAttr("damageMultiplierBonus") * skill.level) + + return locals() + +def effect1019(): + type = "passive" + def handler(fit, skill, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Large Autocannon Specialization"), + "damageMultiplier", skill.getModifiedItemAttr("damageMultiplierBonus") * skill.level) + + return locals() + +def effect1020(): + type = "passive" + def handler(fit, skill, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Large Artillery Specialization"), + "damageMultiplier", skill.getModifiedItemAttr("damageMultiplierBonus") * skill.level) + + return locals() + +def effect1021(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Hybrid Turret"), + "damageMultiplier", ship.getModifiedItemAttr("eliteBonusGunship2"), + skill="Assault Frigates") + + return locals() + +def effect1024(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Missiles"), + "maxVelocity", ship.getModifiedItemAttr("shipBonusCC2"), skill="Caldari Cruiser") + + return locals() + +def effect1025(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Light Missiles"), + "maxVelocity", ship.getModifiedItemAttr("shipBonusCC2"), skill="Caldari Cruiser") + + return locals() + +def effect1030(): + type = "passive" + def handler(fit, container, context): + level = container.level if "skill" in context else 1 + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Remote Armor Repair Systems"), + "capacitorNeed", container.getModifiedItemAttr("capNeedBonus") * level) + + return locals() + +def effect1033(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Remote Armor Repair Systems"), "capacitorNeed", + src.getModifiedItemAttr("eliteBonusLogistics1"), skill="Logistics Cruisers") + + return locals() + +def effect1034(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Remote Armor Repair Systems"), "capacitorNeed", + src.getModifiedItemAttr("eliteBonusLogistics2"), skill="Logistics Cruisers") + + return locals() + +def effect1035(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Emission Systems"), "capacitorNeed", + src.getModifiedItemAttr("eliteBonusLogistics2"), skill="Logistics Cruisers") + + return locals() + +def effect1036(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Emission Systems"), "capacitorNeed", + src.getModifiedItemAttr("eliteBonusLogistics1"), skill="Logistics Cruisers") + + return locals() + +def effect1046(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Remote Armor Repair Systems"), "maxRange", + src.getModifiedItemAttr("shipBonusGC"), skill="Gallente Cruiser") + + return locals() + +def effect1047(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Remote Armor Repair Systems"), "maxRange", + src.getModifiedItemAttr("shipBonusAC2"), skill="Amarr Cruiser") + + return locals() + +def effect1048(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Emission Systems"), "maxRange", + src.getModifiedItemAttr("shipBonusCC"), skill="Caldari Cruiser") + + return locals() + +def effect1049(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Emission Systems"), "maxRange", + src.getModifiedItemAttr("shipBonusMC2"), skill="Minmatar Cruiser") + + return locals() + +def effect1056(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Hybrid Turret"), + "maxRange", ship.getModifiedItemAttr("eliteBonusHeavyGunship1"), + skill="Heavy Assault Cruisers") + + return locals() + +def effect1057(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Projectile Turret"), + "maxRange", ship.getModifiedItemAttr("eliteBonusHeavyGunship1"), + skill="Heavy Assault Cruisers") + + return locals() + +def effect1058(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Energy Turret"), + "maxRange", ship.getModifiedItemAttr("eliteBonusHeavyGunship1"), + skill="Heavy Assault Cruisers") + + return locals() + +def effect1060(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Projectile Turret"), + "falloff", ship.getModifiedItemAttr("eliteBonusHeavyGunship1"), + skill="Heavy Assault Cruisers") + + return locals() + +def effect1061(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Hybrid Turret"), + "damageMultiplier", ship.getModifiedItemAttr("eliteBonusHeavyGunship2"), + skill="Heavy Assault Cruisers") + + return locals() + +def effect1062(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Energy Turret"), + "damageMultiplier", ship.getModifiedItemAttr("eliteBonusHeavyGunship2"), + skill="Heavy Assault Cruisers") + + return locals() + +def effect1063(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Projectile Turret"), + "trackingSpeed", ship.getModifiedItemAttr("eliteBonusHeavyGunship2"), + skill="Heavy Assault Cruisers") + + return locals() + +def effect1080(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Hybrid Turret"), + "falloff", ship.getModifiedItemAttr("eliteBonusHeavyGunship1"), + skill="Heavy Assault Cruisers") + + return locals() + +def effect1081(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Missiles"), + "explosionDelay", ship.getModifiedItemAttr("eliteBonusHeavyGunship1"), + skill="Heavy Assault Cruisers") + + return locals() + +def effect1082(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Light Missiles"), + "explosionDelay", ship.getModifiedItemAttr("eliteBonusHeavyGunship1"), + skill="Heavy Assault Cruisers") + + return locals() + +def effect1084(): + type = "passive" + def handler(fit, ship, context): + fit.extraAttributes.increase("droneControlRange", ship.getModifiedItemAttr("eliteBonusHeavyGunship1"), + skill="Heavy Assault Cruisers") + + return locals() + +def effect1087(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Projectile Turret"), + "damageMultiplier", ship.getModifiedItemAttr("eliteBonusHeavyGunship2"), + skill="Heavy Assault Cruisers") + + return locals() + +def effect1099(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Projectile Turret"), + "trackingSpeed", ship.getModifiedItemAttr("shipBonusMF2"), skill="Minmatar Frigate") + + return locals() + +def effect1176(): + type = "passive" + def handler(fit, container, context): + level = container.level if "skill" in context else 1 + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Propulsion Module", + "speedFactor", container.getModifiedItemAttr("speedFBonus") * level) + + return locals() + +def effect1179(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Energy Turret"), + "damageMultiplier", ship.getModifiedItemAttr("eliteBonusGunship2"), + skill="Assault Frigates") + + return locals() + +def effect118(): + type = "passive" + def handler(fit, module, context): + fit.ship.increaseItemAttr("maxLockedTargets", module.getModifiedItemAttr("maxLockedTargetsBonus")) + + return locals() + +def effect1181(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Remote Capacitor Transmitter", + "capacitorNeed", ship.getModifiedItemAttr("eliteBonusLogistics1"), + skill="Logistics Cruisers") + + return locals() + +def effect1182(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Remote Capacitor Transmitter", + "maxRange", ship.getModifiedItemAttr("shipBonusAC"), skill="Amarr Cruiser") + + return locals() + +def effect1183(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Remote Capacitor Transmitter", + "capacitorNeed", ship.getModifiedItemAttr("eliteBonusLogistics2"), + skill="Logistics Cruisers") + + return locals() + +def effect1184(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Remote Capacitor Transmitter", + "maxRange", ship.getModifiedItemAttr("shipBonusCC2"), skill="Caldari Cruiser") + + return locals() + +def effect1185(): + type = "passive" + def handler(fit, implant, context): + fit.ship.boostItemAttr("signatureRadius", implant.getModifiedItemAttr("signatureRadiusBonus")) + + return locals() + +def effect1190(): + type = "passive" + def handler(fit, container, context): + level = container.level if "skill" in context else 1 + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Ice Harvesting"), + "duration", container.getModifiedItemAttr("iceHarvestCycleBonus") * level) + + return locals() + +def effect1200(): + type = "passive" + def handler(fit, module, context): + module.multiplyItemAttr("specialtyMiningAmount", + module.getModifiedChargeAttr("specialisationAsteroidYieldMultiplier")) + + return locals() + +def effect1212(): + type = "passive" + runTime = "late" + def handler(fit, module, context): + module.preAssignItemAttr("specialtyMiningAmount", module.getModifiedItemAttr("miningAmount")) + + return locals() + +def effect1215(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Nosferatu", + "powerTransferAmount", ship.getModifiedItemAttr("shipBonusAF"), skill="Amarr Frigate") + + return locals() + +def effect1218(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Hybrid Turret"), + "damageMultiplier", ship.getModifiedItemAttr("shipBonusRole7")) + + return locals() + +def effect1219(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Nosferatu", + "powerTransferAmount", ship.getModifiedItemAttr("shipBonusAB"), + skill="Amarr Battleship") + + return locals() + +def effect1220(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Nosferatu", + "powerTransferAmount", ship.getModifiedItemAttr("shipBonusAC"), skill="Amarr Cruiser") + + return locals() + +def effect1221(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Stasis Web", + "maxRange", ship.getModifiedItemAttr("shipBonusMB"), skill="Minmatar Battleship") + + return locals() + +def effect1222(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Stasis Web", + "maxRange", ship.getModifiedItemAttr("shipBonusMC2"), skill="Minmatar Cruiser") + + return locals() + +def effect1228(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Projectile Turret"), + "trackingSpeed", ship.getModifiedItemAttr("shipBonusGF"), skill="Gallente Frigate") + + return locals() + +def effect1230(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), + "maxVelocity", ship.getModifiedItemAttr("shipBonusRole7")) + + return locals() + +def effect1232(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Projectile Turret"), + "speed", ship.getModifiedItemAttr("shipBonusRole7")) + + return locals() + +def effect1233(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Hybrid Turret"), + "damageMultiplier", ship.getModifiedItemAttr("shipBonusRole7")) + + return locals() + +def effect1234(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Light Missiles"), + "maxVelocity", ship.getModifiedItemAttr("shipBonusRole7")) + + return locals() + +def effect1239(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Large Projectile Turret"), + "speed", ship.getModifiedItemAttr("shipBonusRole7")) + + return locals() + +def effect1240(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Large Hybrid Turret"), + "damageMultiplier", ship.getModifiedItemAttr("shipBonusRole7")) + + return locals() + +def effect1255(): + runTime = "early" + type = "passive" + def handler(fit, implant, context): + fit.appliedImplants.filteredItemMultiply(lambda mod: mod.item.group.name == "Cyberimplant", + "durationBonus", implant.getModifiedItemAttr("implantSetBloodraider")) + + return locals() + +def effect1256(): + type = "passive" + def handler(fit, implant, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capacitor Emission Systems"), + "duration", implant.getModifiedItemAttr("durationBonus")) + + return locals() + +def effect1261(): + runTime = "early" + type = "passive" + def handler(fit, implant, context): + fit.appliedImplants.filteredItemMultiply(lambda mod: mod.item.group.name == "Cyberimplant", + "velocityBonus", implant.getModifiedItemAttr("implantSetSerpentis")) + + return locals() + +def effect1264(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Hybrid Turret"), + "trackingSpeed", ship.getModifiedItemAttr("eliteBonusInterceptor2"), + skill="Interceptors") + + return locals() + +def effect1268(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Energy Turret"), + "trackingSpeed", ship.getModifiedItemAttr("eliteBonusInterceptor2"), + skill="Interceptors") + + return locals() + +def effect1281(): + type = "passive" + def handler(fit, container, context): + penalized = "implant" not in context + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Repair Systems"), + "armorDamageAmount", container.getModifiedItemAttr("repairBonus"), + stackingPenalties=penalized) + + return locals() + +def effect1318(): + type = "passive" + def handler(fit, container, context): + groups = ("ECM", "Burst Jammer") + level = container.level if "skill" in context else 1 + for scanType in ("Gravimetric", "Ladar", "Magnetometric", "Radar"): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name in groups, + "scan{0}StrengthBonus".format(scanType), + container.getModifiedItemAttr("scanSkillEwStrengthBonus") * level, + stackingPenalties=False if "skill" in context else True) + + return locals() + +def effect1360(): + type = "passive" + def handler(fit, container, context): + level = container.level if "skill" in context else 1 + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Sensor Linking"), + "capacitorNeed", container.getModifiedItemAttr("capNeedBonus") * level) + + return locals() + +def effect1361(): + type = "passive" + def handler(fit, container, context): + level = container.level if "skill" in context else 1 + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Weapon Disruption"), + "capacitorNeed", container.getModifiedItemAttr("capNeedBonus") * level) + + return locals() + +def effect1370(): + type = "passive" + def handler(fit, container, context): + level = container.level if "skill" in context else 1 + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Target Painting"), + "capacitorNeed", container.getModifiedItemAttr("capNeedBonus") * level) + + return locals() + +def effect1372(): + type = "passive" + def handler(fit, container, context): + level = container.level if "skill" in context else 1 + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "ECM", + "capacitorNeed", container.getModifiedItemAttr("capNeedBonus") * level) + + return locals() + +def effect1395(): + type = "passive" + def handler(fit, container, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Operation"), + "shieldBonus", container.getModifiedItemAttr("shieldBoostMultiplier")) + + return locals() + +def effect1397(): + runTime = "early" + type = "passive" + def handler(fit, implant, context): + fit.appliedImplants.filteredItemMultiply(lambda mod: mod.item.group.name == "Cyberimplant", + "shieldBoostMultiplier", implant.getModifiedItemAttr("implantSetGuristas")) + + return locals() + +def effect1409(): + type = "passive" + def handler(fit, container, context): + level = container.level if "skill" in context else 1 + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Astrometrics"), + "duration", container.getModifiedItemAttr("durationBonus") * level) + + return locals() + +def effect1410(): + type = "passive" + def handler(fit, container, context): + level = container.level if "skill" in context else 1 + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Propulsion Jamming"), + "capacitorNeed", container.getModifiedItemAttr("capNeedBonus") * level) + + return locals() + +def effect1412(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Large Hybrid Turret"), + "maxRange", ship.getModifiedItemAttr("shipBonusCB"), skill="Caldari Battleship") + + return locals() + +def effect1434(): + type = "passive" + def handler(fit, ship, context): + for sensorType in ("Gravimetric", "Ladar", "Magnetometric", "Radar"): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Electronic Warfare"), + "scan{0}StrengthBonus".format(sensorType), + ship.getModifiedItemAttr("shipBonusCB"), stackingPenalties=True, + skill="Caldari Battleship") + + return locals() + +def effect1441(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "ECM", + "maxRange", ship.getModifiedItemAttr("shipBonusCB3"), skill="Caldari Battleship") + + return locals() + +def effect1442(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "ECM", + "maxRange", ship.getModifiedItemAttr("shipBonusCC2"), skill="Caldari Cruiser") + + return locals() + +def effect1443(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "ECM", + "capacitorNeed", ship.getModifiedItemAttr("shipBonusCC"), skill="Caldari Cruiser") + + return locals() + +def effect1445(): + type = "passive" + def handler(fit, container, context): + level = container.level if "skill" in context else 1 + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Sensor Linking"), + "maxRange", container.getModifiedItemAttr("rangeSkillBonus") * level, + stackingPenalties="skill" not in context) + + return locals() + +def effect1446(): + type = "passive" + def handler(fit, container, context): + level = container.level if "skill" in context else 1 + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Target Painter", + "maxRange", container.getModifiedItemAttr("rangeSkillBonus") * level, + stackingPenalties="skill" not in context) + + return locals() + +def effect1448(): + type = "passive" + def handler(fit, container, context): + level = container.level if "skill" in context else 1 + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Weapon Disruptor", + "maxRange", container.getModifiedItemAttr("rangeSkillBonus") * level, + stackingPenalties="skill" not in context) + + return locals() + +def effect1449(): + type = "passive" + def handler(fit, skill, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Sensor Linking"), + "falloffEffectiveness", skill.getModifiedItemAttr("falloffBonus") * skill.level) + + return locals() + +def effect1450(): + type = "passive" + def handler(fit, skill, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Target Painter", + "falloffEffectiveness", skill.getModifiedItemAttr("falloffBonus") * skill.level) + + return locals() + +def effect1451(): + type = "passive" + def handler(fit, skill, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Weapon Disruptor", + "falloffEffectiveness", skill.getModifiedItemAttr("falloffBonus") * skill.level) + + return locals() + +def effect1452(): + type = "passive" + def handler(fit, container, context): + level = container.level if "skill" in context else 1 + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "ECM", + "maxRange", container.getModifiedItemAttr("rangeSkillBonus") * level, + stackingPenalties="skill" not in context and "implant" not in context) + + return locals() + +def effect1453(): + type = "passive" + def handler(fit, skill, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "ECM", + "falloffEffectiveness", skill.getModifiedItemAttr("falloffBonus") * skill.level) + + return locals() + +def effect1472(): + type = "passive" + def handler(fit, container, context): + level = container.level if "skill" in context else 1 + penalize = False if "skill" in context or "implant" in context else True + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), + "aoeCloudSize", container.getModifiedItemAttr("aoeCloudSizeBonus") * level, + stackingPenalties=penalize) + + return locals() + +def effect1500(): + type = "passive" + def handler(fit, container, context): + level = container.level if "skill" in context else 1 + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Operation"), + "capacitorNeed", container.getModifiedItemAttr("shieldBoostCapacitorBonus") * level) + + return locals() + +def effect1550(): + type = "passive" + def handler(fit, skill, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Target Painter", + "signatureRadiusBonus", + skill.getModifiedItemAttr("scanSkillTargetPaintStrengthBonus") * skill.level) + + return locals() + +def effect1551(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Target Painter", + "signatureRadiusBonus", ship.getModifiedItemAttr("shipBonusMF2"), + skill="Minmatar Frigate") + + return locals() + +def effect157(): + type = "passive" + def handler(fit, container, context): + level = container.level if "skill" in context else 1 + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Large Hybrid Turret"), + "damageMultiplier", container.getModifiedItemAttr("damageMultiplierBonus") * level) + + return locals() + +def effect1577(): + runTime = "early" + type = "passive" + def handler(fit, implant, context): + fit.appliedImplants.filteredItemMultiply( + lambda implant: "signatureRadiusBonus" in implant.itemModifiedAttributes and + "implantSetAngel" in implant.itemModifiedAttributes, + "signatureRadiusBonus", + implant.getModifiedItemAttr("implantSetAngel")) + + return locals() + +def effect1579(): + runTime = "early" + type = "passive" + def handler(fit, implant, context): + fit.appliedImplants.filteredItemMultiply(lambda target: target.item.requiresSkill("Cybernetics"), + "armorHpBonus", implant.getModifiedItemAttr("implantSetSansha") or 1) + + return locals() + +def effect1581(): + type = "passive" + def handler(fit, skill, context): + fit.ship.boostItemAttr("jumpDriveRange", skill.getModifiedItemAttr("jumpDriveRangeBonus") * skill.level) + + return locals() + +def effect1585(): + type = "passive" + def handler(fit, skill, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capital Energy Turret"), + "damageMultiplier", skill.getModifiedItemAttr("damageMultiplierBonus") * skill.level) + + return locals() + +def effect1586(): + type = "passive" + def handler(fit, skill, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capital Projectile Turret"), + "damageMultiplier", skill.getModifiedItemAttr("damageMultiplierBonus") * skill.level) + + return locals() + +def effect1587(): + type = "passive" + def handler(fit, skill, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capital Hybrid Turret"), + "damageMultiplier", skill.getModifiedItemAttr("damageMultiplierBonus") * skill.level) + + return locals() + +def effect1588(): + type = "passive" + def handler(fit, container, context): + level = container.level if "skill" in context else 1 + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("XL Torpedoes"), + "kineticDamage", container.getModifiedItemAttr("damageMultiplierBonus") * level) + + return locals() + +def effect159(): + type = "passive" + def handler(fit, container, context): + level = container.level if "skill" in context else 1 + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Energy Turret"), + "damageMultiplier", container.getModifiedItemAttr("damageMultiplierBonus") * level) + + return locals() + +def effect1590(): + type = "passive" + def handler(fit, container, context): + level = container.level if "skill" in context else 1 + penalize = False if "skill" in context or "implant" in context else True + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), + "aoeVelocity", container.getModifiedItemAttr("aoeVelocityBonus") * level, + stackingPenalties=penalize) + + return locals() + +def effect1592(): + type = "passive" + def handler(fit, container, context): + level = container.level if "skill" in context else 1 + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("XL Torpedoes"), + "emDamage", container.getModifiedItemAttr("damageMultiplierBonus") * level) + + return locals() + +def effect1593(): + type = "passive" + def handler(fit, container, context): + level = container.level if "skill" in context else 1 + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("XL Torpedoes"), + "explosiveDamage", container.getModifiedItemAttr("damageMultiplierBonus") * level) + + return locals() + +def effect1594(): + type = "passive" + def handler(fit, container, context): + level = container.level if "skill" in context else 1 + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("XL Torpedoes"), + "thermalDamage", container.getModifiedItemAttr("damageMultiplierBonus") * level) + + return locals() + +def effect1595(): + type = "passive" + def handler(fit, src, context): + mod = src.level if "skill" in context else 1 + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), + "emDamage", src.getModifiedItemAttr("damageMultiplierBonus") * mod) + + return locals() + +def effect1596(): + type = "passive" + def handler(fit, src, context): + mod = src.level if "skill" in context else 1 + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), + "explosiveDamage", src.getModifiedItemAttr("damageMultiplierBonus") * mod) + + return locals() + +def effect1597(): + type = "passive" + def handler(fit, src, context): + mod = src.level if "skill" in context else 1 + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), + "kineticDamage", src.getModifiedItemAttr("damageMultiplierBonus") * mod) + + return locals() + +def effect160(): + type = "passive" + def handler(fit, container, context): + level = container.level if "skill" in context else 1 + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Hybrid Turret"), + "damageMultiplier", container.getModifiedItemAttr("damageMultiplierBonus") * level) + + return locals() + +def effect161(): + type = "passive" + def handler(fit, container, context): + level = container.level if "skill" in context else 1 + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Projectile Turret"), + "damageMultiplier", container.getModifiedItemAttr("damageMultiplierBonus") * level) + + return locals() + +def effect1615(): + type = "passive" + def handler(fit, ship, context): + skillName = "Advanced Spaceship Command" + skill = fit.character.getSkill(skillName) + fit.ship.boostItemAttr("agility", skill.getModifiedItemAttr("agilityBonus"), skill=skillName) + + return locals() + +def effect1616(): + type = "passive" + def handler(fit, skill, context): + if fit.ship.item.requiresSkill("Capital Ships"): + fit.ship.boostItemAttr("agility", skill.getModifiedItemAttr("agilityBonus") * skill.level) + + return locals() + +def effect1617(): + type = "passive" + def handler(fit, src, context): + fit.ship.multiplyItemAttr("agility", src.getModifiedItemAttr("advancedCapitalAgility"), stackingPenalties=True) + + return locals() + +def effect162(): + type = "passive" + def handler(fit, container, context): + level = container.level if "skill" in context else 1 + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Large Energy Turret"), + "damageMultiplier", container.getModifiedItemAttr("damageMultiplierBonus") * level) + + return locals() + +def effect1634(): + type = "passive" + def handler(fit, container, context): + level = container.level if "skill" in context else 1 + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capital Shield Operation"), + "capacitorNeed", container.getModifiedItemAttr("shieldBoostCapacitorBonus") * level) + + return locals() + +def effect1635(): + type = "passive" + def handler(fit, container, context): + level = container.level if "skill" in context else 1 + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capital Repair Systems"), + "duration", container.getModifiedItemAttr("durationSkillBonus") * level, + stackingPenalties="skill" not in context) + + return locals() + +def effect1638(): + type = "passive" + def handler(fit, skill, context): + fit.modules.filteredItemBoost( + lambda mod: mod.item.requiresSkill("Gunnery") or mod.item.requiresSkill("Missile Launcher Operation"), + "power", skill.getModifiedItemAttr("powerNeedBonus") * skill.level) + + return locals() + +def effect1643(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill("Armored Command"), "warfareBuff2Multiplier", + src.getModifiedItemAttr("mindlinkBonus")) + fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill("Armored Command"), "warfareBuff1Multiplier", + src.getModifiedItemAttr("mindlinkBonus")) + fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill("Armored Command"), "warfareBuff4Multiplier", + src.getModifiedItemAttr("mindlinkBonus")) + fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill("Armored Command"), "warfareBuff3Multiplier", + src.getModifiedItemAttr("mindlinkBonus")) + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Armored Command"), "buffDuration", + src.getModifiedItemAttr("mindlinkBonus")) + + return locals() + +def effect1644(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill("Skirmish Command"), "warfareBuff3Multiplier", + src.getModifiedItemAttr("mindlinkBonus")) + fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill("Skirmish Command"), "warfareBuff4Multiplier", + src.getModifiedItemAttr("mindlinkBonus")) + fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill("Skirmish Command"), "warfareBuff2Multiplier", + src.getModifiedItemAttr("mindlinkBonus")) + fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill("Skirmish Command"), "warfareBuff1Multiplier", + src.getModifiedItemAttr("mindlinkBonus")) + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Skirmish Command"), "buffDuration", + src.getModifiedItemAttr("mindlinkBonus")) + + return locals() + +def effect1645(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill("Shield Command"), "warfareBuff4Multiplier", + src.getModifiedItemAttr("mindlinkBonus")) + fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill("Shield Command"), "warfareBuff3Multiplier", + src.getModifiedItemAttr("mindlinkBonus")) + fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill("Shield Command"), "warfareBuff2Multiplier", + src.getModifiedItemAttr("mindlinkBonus")) + fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill("Shield Command"), "warfareBuff1Multiplier", + src.getModifiedItemAttr("mindlinkBonus")) + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Command"), "buffDuration", + src.getModifiedItemAttr("mindlinkBonus")) + + return locals() + +def effect1646(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill("Information Command"), "warfareBuff4Multiplier", + src.getModifiedItemAttr("mindlinkBonus")) + fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill("Information Command"), "warfareBuff3Multiplier", + src.getModifiedItemAttr("mindlinkBonus")) + fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill("Information Command"), "warfareBuff1Multiplier", + src.getModifiedItemAttr("mindlinkBonus")) + fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill("Information Command"), "warfareBuff2Multiplier", + src.getModifiedItemAttr("mindlinkBonus")) + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Information Command"), "buffDuration", + src.getModifiedItemAttr("mindlinkBonus")) + + return locals() + +def effect1650(): + type = "passive" + def handler(fit, skill, context): + amount = -skill.getModifiedItemAttr("consumptionQuantityBonus") + fit.modules.filteredItemIncrease(lambda mod: mod.item.requiresSkill(skill), + "consumptionQuantity", amount * skill.level) + + return locals() + +def effect1657(): + type = "passive" + def handler(fit, src, context): + mod = src.level if "skill" in context else 1 + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), + "thermalDamage", src.getModifiedItemAttr("damageMultiplierBonus") * mod) + + return locals() + +def effect1668(): + type = "passive" + def handler(fit, ship, context): + fit.ship.boostItemAttr("capacity", ship.getModifiedItemAttr("freighterBonusA2"), skill="Amarr Freighter") + + return locals() + +def effect1669(): + type = "passive" + def handler(fit, ship, context): + fit.ship.boostItemAttr("capacity", ship.getModifiedItemAttr("freighterBonusC2"), skill="Caldari Freighter") + + return locals() + +def effect1670(): + type = "passive" + def handler(fit, ship, context): + fit.ship.boostItemAttr("capacity", ship.getModifiedItemAttr("freighterBonusG2"), skill="Gallente Freighter") + + return locals() + +def effect1671(): + type = "passive" + def handler(fit, ship, context): + fit.ship.boostItemAttr("capacity", ship.getModifiedItemAttr("freighterBonusM2"), skill="Minmatar Freighter") + + return locals() + +def effect1672(): + type = "passive" + def handler(fit, ship, context): + fit.ship.boostItemAttr("maxVelocity", ship.getModifiedItemAttr("freighterBonusA1"), skill="Amarr Freighter") + + return locals() + +def effect1673(): + type = "passive" + def handler(fit, ship, context): + fit.ship.boostItemAttr("maxVelocity", ship.getModifiedItemAttr("freighterBonusC1"), skill="Caldari Freighter") + + return locals() + +def effect1674(): + type = "passive" + def handler(fit, ship, context): + fit.ship.boostItemAttr("maxVelocity", ship.getModifiedItemAttr("freighterBonusG1"), skill="Gallente Freighter") + + return locals() + +def effect1675(): + type = "passive" + def handler(fit, ship, context): + fit.ship.boostItemAttr("maxVelocity", ship.getModifiedItemAttr("freighterBonusM1"), skill="Minmatar Freighter") + + return locals() + +def effect17(): + type = "passive" + grouped = True + def handler(fit, container, context): + miningDroneAmountPercent = container.getModifiedItemAttr("miningDroneAmountPercent") + if (miningDroneAmountPercent is None) or (miningDroneAmountPercent == 0): + pass + else: + container.multiplyItemAttr("miningAmount", miningDroneAmountPercent / 100) + + return locals() + +def effect172(): + type = "passive" + def handler(fit, container, context): + level = container.level if "skill" in context else 1 + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Energy Turret"), + "damageMultiplier", container.getModifiedItemAttr("damageMultiplierBonus") * level) + + return locals() + +def effect1720(): + type = "passive" + def handler(fit, module, context): + fit.modules.filteredItemBoost( + lambda mod: mod.item.requiresSkill("Shield Operation") or mod.item.requiresSkill("Capital Shield Operation"), + "shieldBonus", module.getModifiedItemAttr("shieldBoostMultiplier"), + stackingPenalties=True) + + return locals() + +def effect1722(): + type = "passive" + def handler(fit, skill, context): + fit.ship.boostItemAttr("jumpDriveCapacitorNeed", + skill.getModifiedItemAttr("jumpDriveCapacitorNeedBonus") * skill.level) + + return locals() + +def effect173(): + type = "passive" + def handler(fit, container, context): + level = container.level if "skill" in context else 1 + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Hybrid Turret"), + "damageMultiplier", container.getModifiedItemAttr("damageMultiplierBonus") * level) + + return locals() + +def effect1730(): + type = "passive" + def handler(fit, skill, context): + fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill(skill), + "damageMultiplier", skill.getModifiedItemAttr("damageMultiplierBonus") * skill.level) + + return locals() + +def effect1738(): + type = "active" + def handler(fit, module, context): + pass + + return locals() + +def effect174(): + type = "passive" + def handler(fit, container, context): + level = container.level if "skill" in context else 1 + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Projectile Turret"), + "damageMultiplier", container.getModifiedItemAttr("damageMultiplierBonus") * level) + + return locals() + +def effect1763(): + type = "passive" + def handler(fit, container, context): + level = container.level if "skill" in context else 1 + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Missile Launcher Operation"), + "speed", container.getModifiedItemAttr("rofBonus") * level) + + return locals() + +def effect1764(): + type = "passive" + def handler(fit, container, context): + level = container.level if "skill" in context else 1 + penalized = False if "skill" in context or "implant" in context else True + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), + "maxVelocity", container.getModifiedItemAttr("speedFactor") * level, + stackingPenalties=penalized) + + return locals() + +def effect1773(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Hybrid Turret"), + "falloff", ship.getModifiedItemAttr("shipBonusGF2"), skill="Gallente Frigate") + + return locals() + +def effect1804(): + type = "passive" + def handler(fit, ship, context): + fit.ship.boostItemAttr("armorEmDamageResonance", ship.getModifiedItemAttr("shipBonusAF"), skill="Amarr Frigate") + + return locals() + +def effect1805(): + type = "passive" + def handler(fit, ship, context): + fit.ship.boostItemAttr("armorThermalDamageResonance", ship.getModifiedItemAttr("shipBonusAF"), + skill="Amarr Frigate") + + return locals() + +def effect1806(): + type = "passive" + def handler(fit, ship, context): + fit.ship.boostItemAttr("armorKineticDamageResonance", ship.getModifiedItemAttr("shipBonusAF"), + skill="Amarr Frigate") + + return locals() + +def effect1807(): + type = "passive" + def handler(fit, ship, context): + fit.ship.boostItemAttr("armorExplosiveDamageResonance", ship.getModifiedItemAttr("shipBonusAF"), + skill="Amarr Frigate") + + return locals() + +def effect1812(): + type = "passive" + def handler(fit, ship, context): + fit.ship.boostItemAttr("shieldEmDamageResonance", ship.getModifiedItemAttr("shipBonusCC2"), skill="Caldari Cruiser") + + return locals() + +def effect1813(): + type = "passive" + def handler(fit, ship, context): + fit.ship.boostItemAttr("shieldThermalDamageResonance", ship.getModifiedItemAttr("shipBonusCC2"), + skill="Caldari Cruiser") + + return locals() + +def effect1814(): + type = "passive" + def handler(fit, ship, context): + fit.ship.boostItemAttr("shieldKineticDamageResonance", ship.getModifiedItemAttr("shipBonusCC2"), + skill="Caldari Cruiser") + + return locals() + +def effect1815(): + type = "passive" + def handler(fit, ship, context): + fit.ship.boostItemAttr("shieldExplosiveDamageResonance", ship.getModifiedItemAttr("shipBonusCC2"), + skill="Caldari Cruiser") + + return locals() + +def effect1816(): + type = "passive" + def handler(fit, ship, context): + fit.ship.boostItemAttr("shieldEmDamageResonance", ship.getModifiedItemAttr("shipBonusCF"), skill="Caldari Frigate") + + return locals() + +def effect1817(): + type = "passive" + def handler(fit, ship, context): + fit.ship.boostItemAttr("shieldThermalDamageResonance", ship.getModifiedItemAttr("shipBonusCF"), + skill="Caldari Frigate") + + return locals() + +def effect1819(): + type = "passive" + def handler(fit, ship, context): + fit.ship.boostItemAttr("shieldKineticDamageResonance", ship.getModifiedItemAttr("shipBonusCF"), + skill="Caldari Frigate") + + return locals() + +def effect1820(): + type = "passive" + def handler(fit, ship, context): + fit.ship.boostItemAttr("shieldExplosiveDamageResonance", ship.getModifiedItemAttr("shipBonusCF"), + skill="Caldari Frigate") + + return locals() + +def effect1848(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill("Mining Foreman"), "warfareBuff4Multiplier", + src.getModifiedItemAttr("mindlinkBonus")) + fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill("Mining Foreman"), "warfareBuff2Multiplier", + src.getModifiedItemAttr("mindlinkBonus")) + fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill("Mining Foreman"), "warfareBuff1Multiplier", + src.getModifiedItemAttr("mindlinkBonus")) + fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill("Mining Foreman"), "warfareBuff3Multiplier", + src.getModifiedItemAttr("mindlinkBonus")) + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Mining Foreman"), "buffDuration", + src.getModifiedItemAttr("mindlinkBonus")) + + return locals() + +def effect1851(): + type = "passive" + def handler(fit, skill, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill(skill), + "speed", skill.getModifiedItemAttr("rofBonus") * skill.level) + + return locals() + +def effect1862(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), + "emDamage", ship.getModifiedItemAttr("shipBonusCF2"), skill="Caldari Frigate") + + return locals() + +def effect1863(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), + "thermalDamage", ship.getModifiedItemAttr("shipBonusCF2"), skill="Caldari Frigate") + + return locals() + +def effect1864(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), + "explosiveDamage", ship.getModifiedItemAttr("shipBonusCF2"), + skill="Caldari Frigate") + + return locals() + +def effect1882(): + type = "passive" + def handler(fit, module, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Mining"), + "miningAmount", module.getModifiedItemAttr("miningAmountBonus")) + + return locals() + +def effect1885(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Missile Launcher Cruise", + "speed", ship.getModifiedItemAttr("shipBonus2CB"), skill="Caldari Battleship") + + return locals() + +def effect1886(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Missile Launcher Torpedo", + "speed", ship.getModifiedItemAttr("shipBonus2CB"), skill="Caldari Battleship") + + return locals() + +def effect1896(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Ice Harvesting"), + "duration", ship.getModifiedItemAttr("eliteBonusBarge2"), skill="Exhumers") + + return locals() + +def effect1910(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Nosferatu", + "powerTransferAmount", ship.getModifiedItemAttr("eliteBonusReconShip2"), + skill="Recon Ships") + + return locals() + +def effect1911(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "ECM", + "scanGravimetricStrengthBonus", ship.getModifiedItemAttr("eliteBonusReconShip2"), + skill="Recon Ships") + + return locals() + +def effect1912(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "ECM", + "scanMagnetometricStrengthBonus", ship.getModifiedItemAttr("eliteBonusReconShip2"), + skill="Recon Ships") + + return locals() + +def effect1913(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "ECM", + "scanRadarStrengthBonus", ship.getModifiedItemAttr("eliteBonusReconShip2"), + skill="Recon Ships") + + return locals() + +def effect1914(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "ECM", + "scanLadarStrengthBonus", ship.getModifiedItemAttr("eliteBonusReconShip2"), + skill="Recon Ships") + + return locals() + +def effect1921(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Stasis Web", + "maxRange", ship.getModifiedItemAttr("eliteBonusReconShip2"), skill="Recon Ships") + + return locals() + +def effect1922(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Warp Scrambler", + "maxRange", ship.getModifiedItemAttr("eliteBonusReconShip2"), skill="Recon Ships") + + return locals() + +def effect1959(): + type = "passive" + def handler(fit, module, context): + fit.ship.increaseItemAttr("mass", module.getModifiedItemAttr("massAddition")) + + return locals() + +def effect1964(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Emission Systems"), "capacitorNeed", + src.getModifiedItemAttr("shipBonusCC"), skill="Caldari Cruiser") + + return locals() + +def effect1969(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Remote Armor Repair Systems"), "capacitorNeed", + src.getModifiedItemAttr("shipBonusGC"), skill="Gallente Cruiser") + + return locals() + +def effect1996(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "ECM", + "capacitorNeed", ship.getModifiedItemAttr("shipBonusCF2"), skill="Caldari Frigate") + + return locals() + +def effect2000(): + type = "passive" + def handler(fit, module, context): + amount = module.getModifiedItemAttr("droneRangeBonus") + fit.extraAttributes.increase("droneControlRange", amount) + + return locals() + +def effect2008(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Cynosural Field Generator", + "duration", ship.getModifiedItemAttr("durationBonus")) + + return locals() + +def effect2013(): + type = "passive" + def handler(fit, container, context): + level = container.level if "skill" in context else 1 + fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Drones"), + "maxVelocity", container.getModifiedItemAttr("droneMaxVelocityBonus") * level, stackingPenalties=True) + + return locals() + +def effect2014(): + type = "passive" + def handler(fit, container, context): + level = container.level if "skill" in context else 1 + stacking = False if "skill" in context else True + fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Drones"), + "maxRange", + container.getModifiedItemAttr("rangeSkillBonus") * level, + stackingPenalties=stacking) + + return locals() + +def effect2015(): + type = "passive" + def handler(fit, module, context): + fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Drones"), + "shieldCapacity", module.getModifiedItemAttr("hullHpBonus")) + + return locals() + +def effect2016(): + type = "passive" + def handler(fit, module, context): + fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Drones"), + "armorHP", module.getModifiedItemAttr("hullHpBonus")) + + return locals() + +def effect2017(): + type = "passive" + def handler(fit, container, context): + level = container.level if "skill" in context else 1 + fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Drones"), + "hp", container.getModifiedItemAttr("hullHpBonus") * level) + + return locals() + +def effect2019(): + type = "passive" + def handler(fit, container, context): + level = container.level if "skill" in context else 1 + fit.drones.filteredItemBoost(lambda drone: drone.item.group.name == "Logistic Drone", + "shieldBonus", container.getModifiedItemAttr("damageHP") * level) + + return locals() + +def effect2020(): + type = "passive" + def handler(fit, container, context): + level = container.level if "skill" in context else 1 + fit.drones.filteredItemBoost(lambda drone: drone.item.group.name == "Logistic Drone", + "armorDamageAmount", container.getModifiedItemAttr("damageHP") * level, + stackingPenalties=True) + + return locals() + +def effect2029(): + type = "passive" + def handler(fit, module, context): + fit.ship.increaseItemAttr("signatureRadius", module.getModifiedItemAttr("signatureRadiusAdd")) + + return locals() + +def effect2041(): + type = "passive" + def handler(fit, module, context): + for type in ("kinetic", "thermal", "explosive", "em"): + fit.ship.boostItemAttr("armor%sDamageResonance" % type.capitalize(), + module.getModifiedItemAttr("%sDamageResistanceBonus" % type), + stackingPenalties=True) + + return locals() + +def effect2052(): + type = "passive" + def handler(fit, module, context): + for type in ("kinetic", "thermal", "explosive", "em"): + fit.ship.boostItemAttr("shield%sDamageResonance" % type.capitalize(), + module.getModifiedItemAttr("%sDamageResistanceBonus" % type), + stackingPenalties=True) + + return locals() + +def effect2053(): + type = "passive" + def handler(fit, skill, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Shield Resistance Amplifier", + "emDamageResistanceBonus", skill.getModifiedItemAttr("hardeningBonus") * skill.level) + + return locals() + +def effect2054(): + type = "passive" + def handler(fit, skill, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Shield Resistance Amplifier", + "explosiveDamageResistanceBonus", + skill.getModifiedItemAttr("hardeningBonus") * skill.level) + + return locals() + +def effect2055(): + type = "passive" + def handler(fit, skill, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Shield Resistance Amplifier", + "kineticDamageResistanceBonus", + skill.getModifiedItemAttr("hardeningBonus") * skill.level) + + return locals() + +def effect2056(): + type = "passive" + def handler(fit, skill, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Shield Resistance Amplifier", + "thermalDamageResistanceBonus", + skill.getModifiedItemAttr("hardeningBonus") * skill.level) + + return locals() + +def effect21(): + type = "passive" + def handler(fit, module, context): + fit.ship.increaseItemAttr("shieldCapacity", module.getModifiedItemAttr("capacityBonus")) + + return locals() + +def effect2105(): + type = "passive" + def handler(fit, skill, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Armor Coating", + "emDamageResistanceBonus", skill.getModifiedItemAttr("hardeningBonus") * skill.level) + + return locals() + +def effect2106(): + type = "passive" + def handler(fit, skill, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Armor Coating", + "explosiveDamageResistanceBonus", + skill.getModifiedItemAttr("hardeningBonus") * skill.level) + + return locals() + +def effect2107(): + type = "passive" + def handler(fit, skill, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Armor Coating", + "kineticDamageResistanceBonus", + skill.getModifiedItemAttr("hardeningBonus") * skill.level) + + return locals() + +def effect2108(): + type = "passive" + def handler(fit, skill, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Armor Coating", + "thermalDamageResistanceBonus", + skill.getModifiedItemAttr("hardeningBonus") * skill.level) + + return locals() + +def effect2109(): + type = "passive" + def handler(fit, skill, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Armor Plating Energized", + "emDamageResistanceBonus", skill.getModifiedItemAttr("hardeningBonus") * skill.level) + + return locals() + +def effect2110(): + type = "passive" + def handler(fit, skill, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Armor Plating Energized", + "explosiveDamageResistanceBonus", + skill.getModifiedItemAttr("hardeningBonus") * skill.level) + + return locals() + +def effect2111(): + type = "passive" + def handler(fit, skill, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Armor Plating Energized", + "kineticDamageResistanceBonus", + skill.getModifiedItemAttr("hardeningBonus") * skill.level) + + return locals() + +def effect2112(): + type = "passive" + def handler(fit, skill, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Armor Plating Energized", + "thermalDamageResistanceBonus", + skill.getModifiedItemAttr("hardeningBonus") * skill.level) + + return locals() + +def effect212(): + type = "passive" + def handler(fit, container, context): + level = container.level if "skill" in context else 1 + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Electronics Upgrades"), + "cpu", container.getModifiedItemAttr("cpuNeedBonus") * level) + + return locals() + +def effect2130(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Hybrid Turret"), + "maxRange", ship.getModifiedItemAttr("maxRangeBonus")) + + return locals() + +def effect2131(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Energy Turret"), + "maxRange", ship.getModifiedItemAttr("maxRangeBonus")) + + return locals() + +def effect2132(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Projectile Turret"), + "maxRange", ship.getModifiedItemAttr("maxRangeBonus")) + + return locals() + +def effect2133(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Remote Capacitor Transmitter", + "maxRange", ship.getModifiedItemAttr("maxRangeBonus2")) + + return locals() + +def effect2134(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Remote Shield Booster", "maxRange", + ship.getModifiedItemAttr("maxRangeBonus")) + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Ancillary Remote Shield Booster", "maxRange", + ship.getModifiedItemAttr("maxRangeBonus")) + + return locals() + +def effect2135(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Remote Armor Repairer", "maxRange", + src.getModifiedItemAttr("maxRangeBonus")) + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Ancillary Remote Armor Repairer", "maxRange", + src.getModifiedItemAttr("maxRangeBonus")) + + return locals() + +def effect214(): + type = "passive", "structure" + def handler(fit, skill, context): + amount = skill.getModifiedItemAttr("maxTargetBonus") * skill.level + fit.extraAttributes.increase("maxTargetsLockedFromSkills", amount) + + return locals() + +def effect2143(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Target Painter", + "signatureRadiusBonus", ship.getModifiedItemAttr("shipBonusMC2"), + skill="Minmatar Cruiser") + + return locals() + +def effect2155(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Projectile Turret"), + "damageMultiplier", ship.getModifiedItemAttr("eliteBonusCommandShips1"), + skill="Command Ships") + + return locals() + +def effect2156(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Projectile Turret"), + "falloff", ship.getModifiedItemAttr("eliteBonusCommandShips2"), skill="Command Ships") + + return locals() + +def effect2157(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Energy Turret"), + "damageMultiplier", ship.getModifiedItemAttr("eliteBonusCommandShips1"), + skill="Command Ships") + + return locals() + +def effect2158(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Energy Turret"), + "speed", ship.getModifiedItemAttr("eliteBonusCommandShips2"), skill="Command Ships") + + return locals() + +def effect2160(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Hybrid Turret"), + "falloff", ship.getModifiedItemAttr("eliteBonusCommandShips2"), skill="Command Ships") + + return locals() + +def effect2161(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Hybrid Turret"), + "maxRange", ship.getModifiedItemAttr("eliteBonusCommandShips1"), + skill="Command Ships") + + return locals() + +def effect2179(): + type = "passive" + def handler(fit, ship, context): + for type in ("shieldCapacity", "armorHP", "hp"): + fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Drones"), + type, ship.getModifiedItemAttr("shipBonusGC2"), skill="Gallente Cruiser") + + return locals() + +def effect2181(): + type = "passive" + def handler(fit, ship, context): + for type in ("shieldCapacity", "armorHP", "hp"): + fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Drones"), + type, ship.getModifiedItemAttr("shipBonusAC2"), skill="Amarr Cruiser") + + return locals() + +def effect2186(): + type = "passive" + def handler(fit, ship, context): + for type in ("shieldCapacity", "armorHP", "hp"): + fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Drones"), + type, ship.getModifiedItemAttr("shipBonusGB2"), skill="Gallente Battleship") + + return locals() + +def effect2187(): + type = "passive" + def handler(fit, ship, context): + fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Drones"), + "damageMultiplier", ship.getModifiedItemAttr("shipBonusGB2"), + skill="Gallente Battleship") + + return locals() + +def effect2188(): + type = "passive" + def handler(fit, ship, context): + fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Drones"), + "damageMultiplier", ship.getModifiedItemAttr("shipBonusGC2"), skill="Gallente Cruiser") + + return locals() + +def effect2189(): + type = "passive" + def handler(fit, ship, context): + fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Drones"), + "damageMultiplier", ship.getModifiedItemAttr("shipBonusAC2"), skill="Amarr Cruiser") + + return locals() + +def effect2200(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredChargeBoost( + lambda mod: mod.charge.requiresSkill("Light Missiles") or mod.charge.requiresSkill("Rockets"), + "kineticDamage", ship.getModifiedItemAttr("eliteBonusInterdictors1"), skill="Interdictors") + + return locals() + +def effect2201(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Projectile Turret"), + "falloff", ship.getModifiedItemAttr("eliteBonusInterdictors1"), skill="Interdictors") + + return locals() + +def effect2215(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Projectile Turret"), + "damageMultiplier", ship.getModifiedItemAttr("shipBonusRole7")) + + return locals() + +def effect223(): + type = "passive" + def handler(fit, implant, context): + fit.ship.boostItemAttr("maxVelocity", implant.getModifiedItemAttr("velocityBonus")) + + return locals() + +def effect2232(): + type = "passive" + def handler(fit, module, context): + for type in ("Gravimetric", "Magnetometric", "Radar", "Ladar"): + fit.ship.boostItemAttr("scan%sStrength" % type, + module.getModifiedItemAttr("scan%sStrengthPercent" % type), + stackingPenalties=True) + + return locals() + +def effect2249(): + type = "passive" + def handler(fit, ship, context): + fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Drones"), + "miningAmount", ship.getModifiedItemAttr("shipBonusAC2"), skill="Amarr Cruiser") + + return locals() + +def effect2250(): + type = "passive" + def handler(fit, ship, context): + fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Mining Drone Operation"), + "miningAmount", ship.getModifiedItemAttr("shipBonusGC2"), skill="Gallente Cruiser") + + return locals() + +def effect2251(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemIncrease(lambda mod: mod.item.requiresSkill("Leadership"), "maxGroupActive", + src.getModifiedItemAttr("maxGangModules")) + fit.modules.filteredItemIncrease(lambda mod: mod.item.requiresSkill("Leadership"), "maxGroupOnline", + src.getModifiedItemAttr("maxGangModules")) + + return locals() + +def effect2252(): + type = "passive" + def handler(fit, container, context): + fit.modules.filteredItemForce(lambda mod: mod.item.requiresSkill("Cloaking"), + "moduleReactivationDelay", + container.getModifiedItemAttr("covertOpsAndReconOpsCloakModuleDelay")) + + return locals() + +def effect2253(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemForce(lambda mod: mod.item.group.name == "Cloaking Device", + "cloakingTargetingDelay", + ship.getModifiedItemAttr("covertOpsStealthBomberTargettingDelay")) + + return locals() + +def effect2255(): + type = "active" + def handler(fit, module, context): + pass + + return locals() + +def effect227(): + type = "passive" + def handler(fit, container, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Propulsion Module", + "capacitorNeed", container.getModifiedItemAttr("capNeedBonus")) + + return locals() + +def effect2298(): + type = "passive" + def handler(fit, implant, context): + for type in ("Gravimetric", "Magnetometric", "Radar", "Ladar"): + sensorType = "scan{0}Strength".format(type) + sensorBoost = "scan{0}StrengthPercent".format(type) + if sensorBoost in implant.item.attributes: + fit.ship.boostItemAttr(sensorType, implant.getModifiedItemAttr(sensorBoost)) + + return locals() + +def effect230(): + type = "passive" + def handler(fit, container, context): + level = container.level if "skill" in context else 1 + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Afterburner"), + "duration", container.getModifiedItemAttr("durationBonus") * level) + + return locals() + +def effect2302(): + type = "passive" + def handler(fit, module, context): + for layer, attrPrefix in (('shield', 'shield'), ('armor', 'armor'), ('hull', '')): + for damageType in ('Kinetic', 'Thermal', 'Explosive', 'Em'): + bonus = "%s%sDamageResonance" % (attrPrefix, damageType) + bonus = "%s%s" % (bonus[0].lower(), bonus[1:]) + booster = "%s%sDamageResonance" % (layer, damageType) + fit.ship.multiplyItemAttr(bonus, module.getModifiedItemAttr(booster), + stackingPenalties=True, penaltyGroup="preMul") + + return locals() + +def effect2305(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Neutralizer", + "energyNeutralizerAmount", ship.getModifiedItemAttr("eliteBonusReconShip2"), + skill="Recon Ships") + + return locals() + +def effect235(): + type = "passive" + def handler(fit, implant, context): + fit.ship.boostItemAttr("warpCapacitorNeed", implant.getModifiedItemAttr("warpCapacitorNeedBonus")) + + return locals() + +def effect2354(): + type = "passive" + def handler(fit, container, context): + level = container.level if "skill" in context else 1 + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capital Remote Armor Repair Systems"), + "capacitorNeed", container.getModifiedItemAttr("capNeedBonus") * level) + + return locals() + +def effect2355(): + type = "passive" + def handler(fit, container, context): + level = container.level if "skill" in context else 1 + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capital Shield Emission Systems"), + "capacitorNeed", container.getModifiedItemAttr("capNeedBonus") * level) + + return locals() + +def effect2356(): + type = "passive" + def handler(fit, skill, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capital Capacitor Emission Systems"), + "capacitorNeed", skill.getModifiedItemAttr("capNeedBonus") * skill.level) + + return locals() + +def effect2402(): + type = "passive" + def handler(fit, skill, context): + damageTypes = ("em", "explosive", "kinetic", "thermal") + for dmgType in damageTypes: + dmgAttr = "{0}Damage".format(dmgType) + fit.modules.filteredItemBoost( + lambda mod: mod.item.group.name == "Super Weapon" and dmgAttr in mod.itemModifiedAttributes, + dmgAttr, skill.getModifiedItemAttr("damageMultiplierBonus") * skill.level) + + return locals() + +def effect242(): + type = "passive" + def handler(fit, implant, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Propulsion Module", + "speedFactor", implant.getModifiedItemAttr("speedFBonus")) + + return locals() + +def effect2422(): + type = "passive" + def handler(fit, implant, context): + fit.ship.boostItemAttr("maxVelocity", implant.getModifiedItemAttr("implantBonusVelocity")) + + return locals() + +def effect2432(): + type = "passive" + def handler(fit, container, context): + level = container.level if "skill" in context else 1 + fit.ship.boostItemAttr("capacitorCapacity", container.getModifiedItemAttr("capacitorCapacityBonus") * level) + + return locals() + +def effect244(): + type = "passive" + def handler(fit, container, context): + level = container.level if "skill" in context else 1 + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("High Speed Maneuvering"), + "capacitorNeed", container.getModifiedItemAttr("capNeedBonus") * level) + + return locals() + +def effect2444(): + type = "passive" + def handler(fit, module, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Mining"), + "cpu", module.getModifiedItemAttr("cpuPenaltyPercent")) + + return locals() + +def effect2445(): + type = "passive" + def handler(fit, module, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Ice Harvesting"), + "cpu", module.getModifiedItemAttr("cpuPenaltyPercent")) + + return locals() + +def effect2456(): + type = "passive" + def handler(fit, container, context): + level = container.level if "skill" in context else 1 + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Mining Upgrades"), + "cpuPenaltyPercent", + container.getModifiedItemAttr("miningUpgradeCPUReductionBonus") * level) + + return locals() + +def effect2465(): + type = "passive" + def handler(fit, ship, context): + for type in ("Em", "Explosive", "Kinetic", "Thermal"): + fit.ship.boostItemAttr("armor{0}DamageResonance".format(type), ship.getModifiedItemAttr("shipBonusAB"), + skill="Amarr Battleship") + + return locals() + +def effect2479(): + type = "passive" + def handler(fit, module, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Ice Harvesting"), + "duration", module.getModifiedItemAttr("iceHarvestCycleBonus")) + + return locals() + +def effect2485(): + type = "passive" + def handler(fit, implant, context): + fit.ship.boostItemAttr("armorHP", implant.getModifiedItemAttr("armorHpBonus2")) + + return locals() + +def effect2488(): + type = "passive" + def handler(fit, implant, context): + fit.ship.boostItemAttr("maxVelocity", implant.getModifiedItemAttr("velocityBonus2")) + + return locals() + +def effect2489(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Remote Tracking Computer", + "falloffEffectiveness", ship.getModifiedItemAttr("shipBonusMC"), + skill="Minmatar Cruiser") + + return locals() + +def effect2490(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Remote Tracking Computer", + "falloffEffectiveness", ship.getModifiedItemAttr("shipBonusGC2"), + skill="Gallente Cruiser") + + return locals() + +def effect2491(): + type = "passive" + def handler(fit, container, context): + level = container.level if "skill" in context else 1 + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Burst Jammer", + "ecmBurstRange", container.getModifiedItemAttr("rangeSkillBonus") * level, + stackingPenalties=False if "skill" in context else True) + + return locals() + +def effect2492(): + type = "passive" + def handler(fit, container, context): + level = container.level if "skill" in context else 1 + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Burst Jammer", + "capacitorNeed", container.getModifiedItemAttr("capNeedBonus") * level) + + return locals() + +def effect25(): + type = "passive" + def handler(fit, ship, context): + fit.ship.increaseItemAttr("capacitorCapacity", ship.getModifiedItemAttr("capacitorBonus")) + + return locals() + +def effect2503(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Large Hybrid Turret"), + "trackingSpeed", ship.getModifiedItemAttr("shipBonusGB2"), + skill="Gallente Battleship") + + return locals() + +def effect2504(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Hybrid Turret"), + "trackingSpeed", ship.getModifiedItemAttr("shipBonusGF2"), skill="Gallente Frigate") + + return locals() + +def effect2561(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), + "maxVelocity", ship.getModifiedItemAttr("eliteBonusGunship1"), + skill="Assault Frigates") + + return locals() + +def effect2589(): + type = "passive" + def handler(fit, container, context): + level = container.level if "skill" in context else 1 + for i in range(5): + attr = "boosterEffectChance{0}".format(i + 1) + fit.boosters.filteredItemBoost(lambda booster: attr in booster.itemModifiedAttributes, + attr, container.getModifiedItemAttr("boosterChanceBonus") * level) + + return locals() + +def effect26(): + type = "active" + runTime = "late" + def handler(fit, module, context): + amount = module.getModifiedItemAttr("structureDamageAmount") + speed = module.getModifiedItemAttr("duration") / 1000.0 + fit.extraAttributes.increase("hullRepair", amount / speed) + + return locals() + +def effect2602(): + type = "passive" + def handler(fit, ship, context): + fit.ship.boostItemAttr("shieldEmDamageResonance", ship.getModifiedItemAttr("shipBonus2CB"), + skill="Caldari Battleship") + + return locals() + +def effect2603(): + type = "passive" + def handler(fit, ship, context): + fit.ship.boostItemAttr("shieldExplosiveDamageResonance", ship.getModifiedItemAttr("shipBonus2CB"), + skill="Caldari Battleship") + + return locals() + +def effect2604(): + type = "passive" + def handler(fit, ship, context): + fit.ship.boostItemAttr("shieldKineticDamageResonance", ship.getModifiedItemAttr("shipBonus2CB"), + skill="Caldari Battleship") + + return locals() + +def effect2605(): + type = "passive" + def handler(fit, ship, context): + fit.ship.boostItemAttr("shieldThermalDamageResonance", ship.getModifiedItemAttr("shipBonus2CB"), + skill="Caldari Battleship") + + return locals() + +def effect2611(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Projectile Turret"), + "damageMultiplier", ship.getModifiedItemAttr("eliteBonusGunship1"), + skill="Assault Frigates") + + return locals() + +def effect2644(): + type = "passive" + def handler(fit, module, context): + fit.ship.boostItemAttr("signatureRadius", module.getModifiedItemAttr("signatureRadiusBonus"), stackingPenalties=True) + + return locals() + +def effect2645(): + type = "passive" + def handler(fit, module, context): + fit.ship.multiplyItemAttr("scanResolution", module.getModifiedItemAttr("scanResolutionMultiplier"), + stackingPenalties=True) + + return locals() + +def effect2646(): + type = "passive" + def handler(fit, module, context): + fit.ship.boostItemAttr("maxTargetRange", module.getModifiedItemAttr("maxTargetRangeBonus"), + stackingPenalties=True) + + return locals() + +def effect2647(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Missile Launcher Heavy", + "speed", ship.getModifiedItemAttr("eliteBonusHeavyGunship2"), + skill="Heavy Assault Cruisers") + + return locals() + +def effect2648(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Missile Launcher Heavy Assault", + "speed", ship.getModifiedItemAttr("eliteBonusHeavyGunship2"), + skill="Heavy Assault Cruisers") + + return locals() + +def effect2649(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Missile Launcher Rapid Light", + "speed", ship.getModifiedItemAttr("eliteBonusHeavyGunship2"), + skill="Heavy Assault Cruisers") + + return locals() + +def effect2670(): + type = "active" + def handler(fit, module, context): + fit.ship.boostItemAttr("maxTargetRange", module.getModifiedItemAttr("maxTargetRangeBonus"), + stackingPenalties=True) + fit.ship.boostItemAttr("scanResolution", module.getModifiedItemAttr("scanResolutionBonus"), + stackingPenalties=True) + for scanType in ("Gravimetric", "Magnetometric", "Radar", "Ladar"): + fit.ship.boostItemAttr( + "scan{}Strength".format(scanType), + module.getModifiedItemAttr("scan{}StrengthPercent".format(scanType)), + stackingPenalties=True + ) + + return locals() + +def effect2688(): + type = "passive" + def handler(fit, module, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Weapon", + "capacitorNeed", module.getModifiedItemAttr("capNeedBonus")) + + return locals() + +def effect2689(): + type = "passive" + def handler(fit, module, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Hybrid Weapon", + "capacitorNeed", module.getModifiedItemAttr("capNeedBonus")) + + return locals() + +def effect2690(): + type = "passive" + def handler(fit, module, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Weapon", + "cpu", module.getModifiedItemAttr("cpuNeedBonus")) + + return locals() + +def effect2691(): + type = "passive" + def handler(fit, module, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Hybrid Weapon", + "cpu", module.getModifiedItemAttr("cpuNeedBonus")) + + return locals() + +def effect2693(): + type = "passive" + def handler(fit, module, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Weapon", + "falloff", module.getModifiedItemAttr("falloffBonus"), + stackingPenalties=True) + + return locals() + +def effect2694(): + type = "passive" + def handler(fit, module, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Hybrid Weapon", + "falloff", module.getModifiedItemAttr("falloffBonus"), + stackingPenalties=True) + + return locals() + +def effect2695(): + type = "passive" + def handler(fit, module, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Projectile Weapon", + "falloff", module.getModifiedItemAttr("falloffBonus"), + stackingPenalties=True) + + return locals() + +def effect2696(): + type = "passive" + def handler(fit, module, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Weapon", + "maxRange", module.getModifiedItemAttr("maxRangeBonus"), + stackingPenalties=True) + + return locals() + +def effect2697(): + type = "passive" + def handler(fit, module, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Hybrid Weapon", + "maxRange", module.getModifiedItemAttr("maxRangeBonus"), + stackingPenalties=True) + + return locals() + +def effect2698(): + type = "passive" + def handler(fit, module, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Projectile Weapon", + "maxRange", module.getModifiedItemAttr("maxRangeBonus"), + stackingPenalties=True) + + return locals() + +def effect27(): + runTime = "late" + type = "active" + def handler(fit, module, context): + amount = module.getModifiedItemAttr("armorDamageAmount") + speed = module.getModifiedItemAttr("duration") / 1000.0 + rps = amount / speed + fit.extraAttributes.increase("armorRepair", rps) + fit.extraAttributes.increase("armorRepairPreSpool", rps) + fit.extraAttributes.increase("armorRepairFullSpool", rps) + + return locals() + +def effect2706(): + type = "passive" + def handler(fit, module, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Weapon", + "power", module.getModifiedItemAttr("drawback")) + + return locals() + +def effect2707(): + type = "passive" + def handler(fit, module, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Hybrid Weapon", + "power", module.getModifiedItemAttr("drawback")) + + return locals() + +def effect2708(): + type = "passive" + def handler(fit, module, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Projectile Weapon", + "power", module.getModifiedItemAttr("drawback")) + + return locals() + +def effect271(): + type = "passive" + def handler(fit, container, context): + level = container.level if "skill" in context else 1 + fit.ship.boostItemAttr("armorHP", (container.getModifiedItemAttr("armorHpBonus") or 0) * level) + + return locals() + +def effect2712(): + type = "passive" + def handler(fit, module, context): + fit.ship.boostItemAttr("armorHP", module.getModifiedItemAttr("drawback")) + + return locals() + +def effect2713(): + type = "passive" + def handler(fit, module, context): + fit.ship.boostItemAttr("cpuOutput", module.getModifiedItemAttr("drawback")) + + return locals() + +def effect2714(): + type = "passive" + def handler(fit, module, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Missile Launcher Operation"), + "cpu", module.getModifiedItemAttr("drawback")) + + return locals() + +def effect2716(): + type = "passive" + def handler(fit, module, context): + fit.ship.boostItemAttr("signatureRadius", module.getModifiedItemAttr("drawback"), stackingPenalties=True) + + return locals() + +def effect2717(): + type = "passive" + def handler(fit, module, context): + fit.ship.boostItemAttr("maxVelocity", module.getModifiedItemAttr("drawback"), + stackingPenalties=True) + + return locals() + +def effect2718(): + type = "passive" + def handler(fit, module, context): + fit.ship.boostItemAttr("shieldCapacity", module.getModifiedItemAttr("drawback")) + + return locals() + +def effect272(): + type = "passive" + def handler(fit, container, context): + level = container.level if "skill" in context else 1 + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Repair Systems"), + "duration", container.getModifiedItemAttr("durationSkillBonus") * level) + + return locals() + +def effect2726(): + type = "active" + def handler(fit, module, context): + pass + + return locals() + +def effect2727(): + type = "passive" + def handler(fit, skill, context): + fit.modules.filteredItemIncrease(lambda mod: mod.item.group.name == "Gas Cloud Harvester", + "maxGroupActive", skill.level) + + return locals() + +def effect273(): + type = "passive" + def handler(fit, container, context): + level = container.level if "skill" in context else 1 + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Upgrades"), + "power", container.getModifiedItemAttr("powerNeedBonus") * level) + + return locals() + +def effect2734(): + type = "passive" + def handler(fit, ship, context): + for type in ("Gravimetric", "Ladar", "Radar", "Magnetometric"): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "ECM", + "scan{0}StrengthBonus".format(type), + ship.getModifiedItemAttr("shipBonusCF"), skill="Caldari Frigate") + + return locals() + +def effect2735(): + type = "boosterSideEffect" + displayName = "Armor Capacity" + attr = "boosterArmorHPPenalty" + def handler(fit, booster, context): + fit.ship.boostItemAttr("armorHP", booster.getModifiedItemAttr(attr)) + + return locals() + +def effect2736(): + type = "boosterSideEffect" + displayName = "Armor Repair Amount" + attr = "boosterArmorRepairAmountPenalty" + def handler(fit, booster, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Armor Repair Unit", + "armorDamageAmount", booster.getModifiedItemAttr(attr)) + + return locals() + +def effect2737(): + type = "boosterSideEffect" + displayName = "Shield Capacity" + attr = "boosterShieldCapacityPenalty" + def handler(fit, booster, context): + fit.ship.boostItemAttr("shieldCapacity", booster.getModifiedItemAttr(attr)) + + return locals() + +def effect2739(): + type = "boosterSideEffect" + displayName = "Turret Optimal Range" + attr = "boosterTurretOptimalRangePenalty" + def handler(fit, booster, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Gunnery"), + "maxRange", booster.getModifiedItemAttr(attr)) + + return locals() + +def effect2741(): + type = "boosterSideEffect" + displayName = "Turret Falloff" + attr = "boosterTurretFalloffPenalty" + def handler(fit, booster, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Gunnery"), + "falloff", booster.getModifiedItemAttr(attr)) + + return locals() + +def effect2745(): + type = "boosterSideEffect" + displayName = "Cap Capacity" + attr = "boosterCapacitorCapacityPenalty" + def handler(fit, booster, context): + fit.ship.boostItemAttr("capacitorCapacity", booster.getModifiedItemAttr(attr)) + + return locals() + +def effect2746(): + type = "boosterSideEffect" + displayName = "Velocity" + attr = "boosterMaxVelocityPenalty" + def handler(fit, booster, context): + fit.ship.boostItemAttr("maxVelocity", booster.getModifiedItemAttr(attr)) + + return locals() + +def effect2747(): + type = "boosterSideEffect" + displayName = "Turret Tracking" + attr = "boosterTurretTrackingPenalty" + def handler(fit, booster, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Gunnery"), + "trackingSpeed", booster.getModifiedItemAttr(attr)) + + return locals() + +def effect2748(): + type = "boosterSideEffect" + displayName = "Missile Velocity" + attr = "boosterMissileVelocityPenalty" + def handler(fit, booster, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), + "maxVelocity", booster.getModifiedItemAttr(attr)) + + return locals() + +def effect2749(): + type = "boosterSideEffect" + displayName = "Missile Explosion Velocity" + attr = "boosterAOEVelocityPenalty" + def handler(fit, booster, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), + "aoeVelocity", booster.getModifiedItemAttr(attr)) + + return locals() + +def effect2756(): + type = "passive" + def handler(fit, ship, context): + for type in ("Gravimetric", "Magnetometric", "Ladar", "Radar"): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "ECM", + "scan{0}StrengthBonus".format(type), ship.getModifiedItemAttr("shipBonusCC"), + skill="Caldari Cruiser") + + return locals() + +def effect2757(): + type = "active" + def handler(fit, module, context): + pass + + return locals() + +def effect2760(): + runTime = 'early' + type = "passive" + def handler(fit, container, context): + level = container.level if "skill" in context else 1 + attrs = ("boosterArmorHPPenalty", "boosterArmorRepairAmountPenalty") + for attr in attrs: + fit.boosters.filteredItemBoost(lambda booster: True, attr, + container.getModifiedItemAttr("boosterAttributeModifier") * level) + + return locals() + +def effect2763(): + type = "passive" + def handler(fit, container, context): + level = container.level if "skill" in context else 1 + attrs = ("boosterShieldBoostAmountPenalty", "boosterShieldCapacityPenalty", "shieldBoostMultiplier") + for attr in attrs: + fit.boosters.filteredItemBoost(lambda booster: booster.getModifiedItemAttr(attr) < 0, + attr, container.getModifiedItemAttr("boosterAttributeModifier") * level) + + return locals() + +def effect2766(): + type = "passive" + def handler(fit, container, context): + level = container.level if "skill" in context else 1 + attrs = ("boosterCapacitorCapacityPenalty", "boosterMaxVelocityPenalty") + for attr in attrs: + fit.boosters.filteredItemBoost(lambda booster: True, attr, + container.getModifiedItemAttr("boosterAttributeModifier") * level) + + return locals() + +def effect277(): + type = "passive" + def handler(fit, skill, context): + fit.ship.increaseItemAttr("shieldUniformity", skill.getModifiedItemAttr("uniformityBonus") * skill.level) + + return locals() + +def effect2776(): + type = "passive" + def handler(fit, container, context): + level = container.level if "skill" in context else 1 + attrs = ("boosterAOEVelocityPenalty", "boosterMissileAOECloudPenalty", "boosterMissileVelocityPenalty") + for attr in attrs: + fit.boosters.filteredItemBoost(lambda booster: True, attr, + container.getModifiedItemAttr("boosterAttributeModifier") * level) + + return locals() + +def effect2778(): + type = "passive" + def handler(fit, container, context): + level = container.level if "skill" in context else 1 + attrs = ("boosterTurretFalloffPenalty", "boosterTurretOptimalRangePenalty", "boosterTurretTrackingPenalty") + for attr in attrs: + fit.boosters.filteredItemBoost(lambda booster: True, attr, + container.getModifiedItemAttr("boosterAttributeModifier") * level) + + return locals() + +def effect279(): + type = "passive" + def handler(fit, container, context): + level = container.level if "skill" in context else 1 + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Emission Systems"), + "capacitorNeed", container.getModifiedItemAttr("capNeedBonus") * level) + + return locals() + +def effect2791(): + type = "boosterSideEffect" + displayName = "Missile Explosion Radius" + attr = "boosterMissileAOECloudPenalty" + def handler(fit, booster, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), + "aoeCloudSize", booster.getModifiedItemAttr(attr)) + + return locals() + +def effect2792(): + type = "passive" + def handler(fit, module, context): + for type in ("kinetic", "thermal", "explosive", "em"): + fit.ship.boostItemAttr("armor" + type.capitalize() + "DamageResonance", + module.getModifiedItemAttr(type + "DamageResistanceBonus") or 0, + stackingPenalties=True) + + return locals() + +def effect2794(): + type = "passive" + def handler(fit, container, context): + fit.modules.filteredItemIncrease(lambda mod: mod.item.requiresSkill("Salvaging"), + "accessDifficultyBonus", container.getModifiedItemAttr("accessDifficultyBonus"), + position="post") + + return locals() + +def effect2795(): + type = "passive" + def handler(fit, module, context): + for type in ("kinetic", "thermal", "explosive", "em"): + fit.ship.boostItemAttr("shield" + type.capitalize() + "DamageResonance", + module.getModifiedItemAttr(type + "DamageResistanceBonus") or 0, + stackingPenalties=True) + + return locals() + +def effect2796(): + type = "passive" + def handler(fit, module, context): + fit.ship.boostItemAttr("mass", module.getModifiedItemAttr("massBonusPercentage"), stackingPenalties=True) + + return locals() + +def effect2797(): + type = "passive" + def handler(fit, module, context): + fit.modules.filteredItemMultiply(lambda mod: mod.item.group.name == "Projectile Weapon", + "speed", module.getModifiedItemAttr("speedMultiplier"), + stackingPenalties=True) + + return locals() + +def effect2798(): + type = "passive" + def handler(fit, module, context): + fit.modules.filteredItemMultiply(lambda mod: mod.item.group.name == "Projectile Weapon", + "damageMultiplier", module.getModifiedItemAttr("damageMultiplier"), + stackingPenalties=True) + + return locals() + +def effect2799(): + type = "passive" + def handler(fit, module, context): + fit.modules.filteredItemMultiply(lambda mod: mod.item.requiresSkill("Missile Launcher Operation"), + "speed", module.getModifiedItemAttr("speedMultiplier"), + stackingPenalties=True) + + return locals() + +def effect2801(): + type = "passive" + def handler(fit, module, context): + fit.modules.filteredItemMultiply(lambda mod: mod.item.group.name == "Energy Weapon", + "speed", module.getModifiedItemAttr("speedMultiplier"), + stackingPenalties=True) + + return locals() + +def effect2802(): + type = "passive" + def handler(fit, module, context): + fit.modules.filteredItemMultiply(lambda mod: mod.item.group.name == "Hybrid Weapon", + "damageMultiplier", module.getModifiedItemAttr("damageMultiplier"), + stackingPenalties=True) + + return locals() + +def effect2803(): + type = "passive" + def handler(fit, module, context): + fit.modules.filteredItemMultiply(lambda mod: mod.item.group.name == "Energy Weapon", + "damageMultiplier", module.getModifiedItemAttr("damageMultiplier"), + stackingPenalties=True) + + return locals() + +def effect2804(): + type = "passive" + def handler(fit, module, context): + fit.modules.filteredItemMultiply(lambda mod: mod.item.group.name == "Hybrid Weapon", + "speed", module.getModifiedItemAttr("speedMultiplier"), + stackingPenalties=True) + + return locals() + +def effect2805(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Large Energy Turret"), + "damageMultiplier", ship.getModifiedItemAttr("shipBonusAB2"), + skill="Amarr Battleship") + + return locals() + +def effect2809(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Assault Missiles"), + "maxVelocity", ship.getModifiedItemAttr("shipBonusCC2"), skill="Caldari Cruiser") + + return locals() + +def effect2810(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Assault Missiles"), + "explosionDelay", ship.getModifiedItemAttr("eliteBonusHeavyGunship1"), + skill="Heavy Assault Cruisers") + + return locals() + +def effect2812(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Burst Jammer", + "ecmBurstRange", ship.getModifiedItemAttr("shipBonusCB3"), skill="Caldari Battleship") + + return locals() + +def effect2837(): + type = "passive" + def handler(fit, module, context): + fit.ship.increaseItemAttr("armorHP", module.getModifiedItemAttr("armorHPBonusAdd")) + + return locals() + +def effect2847(): + type = "passive" + def handler(fit, container, context): + level = container.level if "skill" in context else 1 + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Gunnery"), + "trackingSpeed", container.getModifiedItemAttr("trackingSpeedBonus") * level) + + return locals() + +def effect2848(): + type = "passive" + def handler(fit, container, context): + fit.modules.filteredItemIncrease(lambda module: module.item.requiresSkill("Archaeology"), + "accessDifficultyBonus", + container.getModifiedItemAttr("accessDifficultyBonusModifier"), position="post") + + return locals() + +def effect2849(): + type = "passive" + def handler(fit, container, context): + fit.modules.filteredItemIncrease(lambda c: c.item.requiresSkill("Hacking"), + "accessDifficultyBonus", + container.getModifiedItemAttr("accessDifficultyBonusModifier"), position="post") + + return locals() + +def effect2850(): + type = "passive" + def handler(fit, module, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Propulsion Module", + "duration", module.getModifiedItemAttr("durationBonus")) + + return locals() + +def effect2851(): + type = "passive" + def handler(fit, container, context): + for dmgType in ("em", "kinetic", "explosive", "thermal"): + fit.modules.filteredChargeMultiply(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), + "%sDamage" % dmgType, + container.getModifiedItemAttr("missileDamageMultiplierBonus"), + stackingPenalties=True) + + return locals() + +def effect2853(): + type = "passive" + def handler(fit, module, context): + fit.modules.filteredItemBoost(lambda module: module.item.requiresSkill("Cloaking"), + "cloakingTargetingDelay", module.getModifiedItemAttr("cloakingTargetingDelayBonus")) + + return locals() + +def effect2857(): + type = "active" + def handler(fit, module, context): + fit.ship.boostItemAttr("maxVelocity", module.getModifiedItemAttr("speedFactor")) + + return locals() + +def effect2865(): + type = "passive" + def handler(fit, module, context): + fit.ship.boostItemAttr("maxVelocity", module.getModifiedItemAttr("implantBonusVelocity"), + stackingPenalties=True) + + return locals() + +def effect2866(): + type = "passive" + def handler(fit, container, context): + level = container.level if "skill" in context else 1 + fit.boosters.filteredItemBoost(lambda bst: True, "boosterDuration", + container.getModifiedItemAttr("durationBonus") * level) + + return locals() + +def effect2867(): + type = "passive" + def handler(fit, module, context): + fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Sentry Drone Interfacing"), + "damageMultiplier", module.getModifiedItemAttr("damageMultiplierBonus"), + stackingPenalties=True) + + return locals() + +def effect2868(): + type = "passive" + def handler(fit, implant, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capital Repair Systems"), + "armorDamageAmount", implant.getModifiedItemAttr("repairBonus"), + stackingPenalties=True) + + return locals() + +def effect287(): + type = "passive" + def handler(fit, container, context): + level = container.level if "skill" in context else 1 + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Gunnery"), + "capacitorNeed", container.getModifiedItemAttr("capNeedBonus") * level) + + return locals() + +def effect2872(): + type = "passive" + def handler(fit, container, context): + fit.modules.filteredChargeMultiply(lambda mod: mod.charge.requiresSkill("Defender Missiles"), + "maxVelocity", container.getModifiedItemAttr("missileVelocityBonus")) + + return locals() + +def effect2881(): + type = "passive" + def handler(fit, implant, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Cruise Missiles"), + "emDamage", implant.getModifiedItemAttr("damageMultiplierBonus")) + + return locals() + +def effect2882(): + type = "passive" + def handler(fit, container, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Cruise Missiles"), + "explosiveDamage", container.getModifiedItemAttr("damageMultiplierBonus")) + + return locals() + +def effect2883(): + type = "passive" + def handler(fit, container, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Cruise Missiles"), + "kineticDamage", container.getModifiedItemAttr("damageMultiplierBonus")) + + return locals() + +def effect2884(): + type = "passive" + def handler(fit, container, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Cruise Missiles"), + "thermalDamage", container.getModifiedItemAttr("damageMultiplierBonus")) + + return locals() + +def effect2885(): + type = "passive" + def handler(fit, implant, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Gas Cloud Harvesting"), + "duration", implant.getModifiedItemAttr("durationBonus")) + + return locals() + +def effect2887(): + type = "passive" + def handler(fit, implant, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Rockets"), + "emDamage", implant.getModifiedItemAttr("damageMultiplierBonus")) + + return locals() + +def effect2888(): + type = "passive" + def handler(fit, container, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Rockets"), + "explosiveDamage", container.getModifiedItemAttr("damageMultiplierBonus")) + + return locals() + +def effect2889(): + type = "passive" + def handler(fit, container, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Rockets"), + "kineticDamage", container.getModifiedItemAttr("damageMultiplierBonus")) + + return locals() + +def effect2890(): + type = "passive" + def handler(fit, container, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Rockets"), + "thermalDamage", container.getModifiedItemAttr("damageMultiplierBonus")) + + return locals() + +def effect2891(): + type = "passive" + def handler(fit, implant, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Light Missiles"), + "emDamage", implant.getModifiedItemAttr("damageMultiplierBonus")) + + return locals() + +def effect2892(): + type = "passive" + def handler(fit, container, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Light Missiles"), + "explosiveDamage", container.getModifiedItemAttr("damageMultiplierBonus")) + + return locals() + +def effect2893(): + type = "passive" + def handler(fit, container, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Light Missiles"), + "kineticDamage", container.getModifiedItemAttr("damageMultiplierBonus")) + + return locals() + +def effect2894(): + type = "passive" + def handler(fit, container, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Light Missiles"), + "thermalDamage", container.getModifiedItemAttr("damageMultiplierBonus")) + + return locals() + +def effect2899(): + type = "passive" + def handler(fit, implant, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Missiles"), + "emDamage", implant.getModifiedItemAttr("damageMultiplierBonus")) + + return locals() + +def effect290(): + type = "passive" + def handler(fit, container, context): + level = container.level if "skill" in context else 1 + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Gunnery"), + "maxRange", container.getModifiedItemAttr("rangeSkillBonus") * level) + + return locals() + +def effect2900(): + type = "passive" + def handler(fit, container, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Missiles"), + "explosiveDamage", container.getModifiedItemAttr("damageMultiplierBonus")) + + return locals() + +def effect2901(): + type = "passive" + def handler(fit, container, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Missiles"), + "kineticDamage", container.getModifiedItemAttr("damageMultiplierBonus")) + + return locals() + +def effect2902(): + type = "passive" + def handler(fit, container, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Missiles"), + "thermalDamage", container.getModifiedItemAttr("damageMultiplierBonus")) + + return locals() + +def effect2903(): + type = "passive" + def handler(fit, implant, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Assault Missiles"), + "emDamage", implant.getModifiedItemAttr("damageMultiplierBonus")) + + return locals() + +def effect2904(): + type = "passive" + def handler(fit, container, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Assault Missiles"), + "explosiveDamage", container.getModifiedItemAttr("damageMultiplierBonus")) + + return locals() + +def effect2905(): + type = "passive" + def handler(fit, container, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Assault Missiles"), + "kineticDamage", container.getModifiedItemAttr("damageMultiplierBonus")) + + return locals() + +def effect2906(): + type = "passive" + def handler(fit, container, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Assault Missiles"), + "thermalDamage", container.getModifiedItemAttr("damageMultiplierBonus")) + + return locals() + +def effect2907(): + type = "passive" + def handler(fit, implant, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Torpedoes"), + "emDamage", implant.getModifiedItemAttr("damageMultiplierBonus")) + + return locals() + +def effect2908(): + type = "passive" + def handler(fit, container, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Torpedoes"), + "explosiveDamage", container.getModifiedItemAttr("damageMultiplierBonus")) + + return locals() + +def effect2909(): + type = "passive" + def handler(fit, container, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Torpedoes"), + "kineticDamage", container.getModifiedItemAttr("damageMultiplierBonus")) + + return locals() + +def effect2910(): + type = "passive" + def handler(fit, container, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Torpedoes"), + "thermalDamage", container.getModifiedItemAttr("damageMultiplierBonus")) + + return locals() + +def effect2911(): + type = "passive" + def handler(fit, implant, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Data Miners", + "duration", implant.getModifiedItemAttr("durationBonus")) + + return locals() + +def effect2967(): + type = "passive" + def handler(fit, skill, context): + amount = -skill.getModifiedItemAttr("consumptionQuantityBonus") + fit.modules.filteredItemIncrease(lambda mod: mod.item.requiresSkill(skill), + "consumptionQuantity", amount * skill.level) + + return locals() + +def effect2977(): + type = "passive" + def handler(fit, skill, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Remote Hull Repair Systems"), + "capacitorNeed", skill.getModifiedItemAttr("capNeedBonus") * skill.level) + + return locals() + +def effect298(): + type = "passive" + def handler(fit, container, context): + level = container.level if "skill" in context else 1 + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Gunnery"), + "falloff", container.getModifiedItemAttr("falloffBonus") * level) + + return locals() + +def effect2980(): + type = "passive" + def handler(fit, skill, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capital Remote Hull Repair Systems"), + "capacitorNeed", skill.getModifiedItemAttr("capNeedBonus") * skill.level) + + return locals() + +def effect2982(): + type = "passive" + def handler(fit, skill, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Burst Projector Operation") and + mod.item.getAttribute("duration"), + "duration", + skill.getModifiedItemAttr("projECMDurationBonus") * skill.level) + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Burst Projector Operation") and + mod.item.getAttribute("durationECMJammerBurstProjector"), + "durationECMJammerBurstProjector", + skill.getModifiedItemAttr("projECMDurationBonus") * skill.level) + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Burst Projector Operation") and + mod.item.getAttribute("durationTargetIlluminationBurstProjector"), + "durationTargetIlluminationBurstProjector", + skill.getModifiedItemAttr("projECMDurationBonus") * skill.level) + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Burst Projector Operation") and + mod.item.getAttribute("durationSensorDampeningBurstProjector"), + "durationSensorDampeningBurstProjector", + skill.getModifiedItemAttr("projECMDurationBonus") * skill.level) + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Burst Projector Operation") and + mod.item.getAttribute("durationWeaponDisruptionBurstProjector"), + "durationWeaponDisruptionBurstProjector", + skill.getModifiedItemAttr("projECMDurationBonus") * skill.level) + + return locals() + +def effect3001(): + type = "overheat" + def handler(fit, module, context): + module.boostItemAttr("speed", module.getModifiedItemAttr("overloadRofBonus")) + + return locals() + +def effect3002(): + type = "overheat" + def handler(fit, module, context): + module.boostItemAttr("duration", module.getModifiedItemAttr("overloadSelfDurationBonus") or 0) + + return locals() + +def effect3024(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Bomb Deployment"), + "explosiveDamage", ship.getModifiedItemAttr("eliteBonusCovertOps1"), + skill="Covert Ops") + + return locals() + +def effect3025(): + type = "overheat" + def handler(fit, module, context): + module.boostItemAttr("damageMultiplier", module.getModifiedItemAttr("overloadDamageModifier")) + + return locals() + +def effect3026(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Bomb Deployment"), + "kineticDamage", ship.getModifiedItemAttr("eliteBonusCovertOps1"), + skill="Covert Ops") + + return locals() + +def effect3027(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Bomb Deployment"), + "thermalDamage", ship.getModifiedItemAttr("eliteBonusCovertOps1"), + skill="Covert Ops") + + return locals() + +def effect3028(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Bomb Deployment"), + "emDamage", ship.getModifiedItemAttr("eliteBonusCovertOps1"), skill="Covert Ops") + + return locals() + +def effect3029(): + type = "overheat" + def handler(fit, module, context): + module.boostItemAttr("emDamageResistanceBonus", module.getModifiedItemAttr("overloadHardeningBonus")) + + return locals() + +def effect3030(): + type = "overheat" + def handler(fit, module, context): + module.boostItemAttr("thermalDamageResistanceBonus", module.getModifiedItemAttr("overloadHardeningBonus")) + + return locals() + +def effect3031(): + type = "overheat" + def handler(fit, module, context): + module.boostItemAttr("explosiveDamageResistanceBonus", module.getModifiedItemAttr("overloadHardeningBonus")) + + return locals() + +def effect3032(): + type = "overheat" + def handler(fit, module, context): + module.boostItemAttr("kineticDamageResistanceBonus", module.getModifiedItemAttr("overloadHardeningBonus")) + + return locals() + +def effect3035(): + type = "overheat" + def handler(fit, module, context): + for type in ("kinetic", "thermal", "explosive", "em"): + module.boostItemAttr("%sDamageResistanceBonus" % type, + module.getModifiedItemAttr("overloadHardeningBonus")) + + return locals() + +def effect3036(): + type = "passive" + def handler(fit, skill, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Missile Launcher Bomb", + "moduleReactivationDelay", skill.getModifiedItemAttr("reactivationDelayBonus") * skill.level) + + return locals() + +def effect3046(): + type = "passive" + def handler(fit, module, context): + fit.ship.multiplyItemAttr("maxVelocity", module.getModifiedItemAttr("maxVelocityModifier"), stackingPenalties=True) + + return locals() + +def effect3047(): + type = "passive" + def handler(fit, module, context): + fit.ship.multiplyItemAttr("hp", module.getModifiedItemAttr("structureHPMultiplier")) + + return locals() + +def effect3061(): + type = "passive" + def handler(fit, module, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Operation"), + "heatDamage", module.getModifiedItemAttr("heatDamageBonus")) + + return locals() + +def effect315(): + type = "passive" + def handler(fit, skill, context): + amount = skill.getModifiedItemAttr("maxActiveDroneBonus") * skill.level + fit.extraAttributes.increase("maxActiveDrones", amount) + + return locals() + +def effect3169(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Emission Systems"), "cpu", + src.getModifiedItemAttr("shieldTransportCpuNeedBonus")) + + return locals() + +def effect3172(): + type = "passive" + def handler(fit, ship, context): + fit.drones.filteredItemBoost(lambda drone: drone.item.group.name == "Logistic Drone", + "armorDamageAmount", ship.getModifiedItemAttr("droneArmorDamageAmountBonus")) + + return locals() + +def effect3173(): + type = "passive" + def handler(fit, ship, context): + fit.drones.filteredItemBoost(lambda drone: drone.item.group.name == "Logistic Drone", + "shieldBonus", ship.getModifiedItemAttr("droneShieldBonusBonus")) + + return locals() + +def effect3174(): + type = "overheat" + def handler(fit, module, context): + module.boostItemAttr("maxRange", module.getModifiedItemAttr("overloadRangeBonus"), + stackingPenalties=True) + + return locals() + +def effect3175(): + type = "overheat" + def handler(fit, module, context): + module.boostItemAttr("speedFactor", module.getModifiedItemAttr("overloadSpeedFactorBonus"), + stackingPenalties=True) + + return locals() + +def effect3182(): + type = "overheat" + def handler(fit, module, context): + if "projected" not in context: + for scanType in ("Gravimetric", "Magnetometric", "Radar", "Ladar"): + module.boostItemAttr("scan{0}StrengthBonus".format(scanType), + module.getModifiedItemAttr("overloadECMStrengthBonus"), + stackingPenalties=True) + + return locals() + +def effect3196(): + type = "passive" + def handler(fit, skill, context): + fit.modules.filteredItemBoost(lambda mod: "heatDamage" in mod.item.attributes, "heatDamage", + skill.getModifiedItemAttr("thermodynamicsHeatDamage") * skill.level) + + return locals() + +def effect3200(): + type = "overheat" + def handler(fit, module, context): + module.boostItemAttr("duration", module.getModifiedItemAttr("overloadSelfDurationBonus")) + module.boostItemAttr("armorDamageAmount", module.getModifiedItemAttr("overloadArmorDamageAmount"), + stackingPenalties=True) + + return locals() + +def effect3201(): + type = "overheat" + def handler(fit, module, context): + module.boostItemAttr("duration", module.getModifiedItemAttr("overloadSelfDurationBonus")) + module.boostItemAttr("shieldBonus", module.getModifiedItemAttr("overloadShieldBonus"), stackingPenalties=True) + + return locals() + +def effect3212(): + type = "passive" + def handler(fit, container, context): + level = container.level if "skill" in context else 1 + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("FoF Missiles"), + "aoeCloudSize", container.getModifiedItemAttr("aoeCloudSizeBonus") * level) + + return locals() + +def effect3234(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Rockets"), + "explosiveDamage", ship.getModifiedItemAttr("shipBonusAF"), skill="Amarr Frigate") + + return locals() + +def effect3235(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Rockets"), + "kineticDamage", ship.getModifiedItemAttr("shipBonusAF"), skill="Amarr Frigate") + + return locals() + +def effect3236(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Rockets"), + "thermalDamage", ship.getModifiedItemAttr("shipBonusAF"), skill="Amarr Frigate") + + return locals() + +def effect3237(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Rockets"), + "emDamage", ship.getModifiedItemAttr("shipBonusAF"), skill="Amarr Frigate") + + return locals() + +def effect3241(): + type = "passive" + def handler(fit, ship, context): + fit.ship.boostItemAttr("armorEmDamageResonance", ship.getModifiedItemAttr("eliteBonusGunship1"), + skill="Assault Frigates") + + return locals() + +def effect3242(): + type = "passive" + def handler(fit, ship, context): + fit.ship.boostItemAttr("armorThermalDamageResonance", ship.getModifiedItemAttr("eliteBonusGunship1"), + skill="Assault Frigates") + + return locals() + +def effect3243(): + type = "passive" + def handler(fit, ship, context): + fit.ship.boostItemAttr("armorKineticDamageResonance", ship.getModifiedItemAttr("eliteBonusGunship1"), + skill="Assault Frigates") + + return locals() + +def effect3244(): + type = "passive" + def handler(fit, ship, context): + fit.ship.boostItemAttr("armorExplosiveDamageResonance", ship.getModifiedItemAttr("eliteBonusGunship1"), + skill="Assault Frigates") + + return locals() + +def effect3249(): + type = "passive" + def handler(fit, ship, context): + fit.ship.boostItemAttr("rechargeRate", ship.getModifiedItemAttr("shipBonus2AF"), skill="Amarr Frigate") + + return locals() + +def effect3264(): + type = "passive" + def handler(fit, skill, context): + amount = -skill.getModifiedItemAttr("consumptionQuantityBonus") + fit.modules.filteredItemIncrease(lambda mod: mod.item.requiresSkill(skill), + "consumptionQuantity", amount * skill.level) + + return locals() + +def effect3267(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Industrial Reconfiguration"), + "consumptionQuantity", ship.getModifiedItemAttr("shipBonusORECapital1"), + skill="Capital Industrial Ships") + + return locals() + +def effect3297(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Neutralizer", + "energyNeutralizerAmount", ship.getModifiedItemAttr("shipBonusAB"), + skill="Amarr Battleship") + + return locals() + +def effect3298(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Neutralizer", + "energyNeutralizerAmount", ship.getModifiedItemAttr("shipBonusAC"), + skill="Amarr Cruiser") + + return locals() + +def effect3299(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Neutralizer", + "energyNeutralizerAmount", ship.getModifiedItemAttr("shipBonusAF"), + skill="Amarr Frigate") + + return locals() + +def effect3313(): + type = "passive" + def handler(fit, skill, context): + fit.ship.boostItemAttr("maxJumpClones", skill.getModifiedItemAttr("maxJumpClonesBonus") * skill.level) + + return locals() + +def effect3331(): + type = "passive" + def handler(fit, ship, context): + fit.ship.boostItemAttr("armorHP", ship.getModifiedItemAttr("eliteBonusCommandShips1"), skill="Command Ships") + + return locals() + +def effect3335(): + type = "passive" + def handler(fit, ship, context): + fit.ship.boostItemAttr("armorEmDamageResonance", ship.getModifiedItemAttr("shipBonusMC2"), skill="Minmatar Cruiser") + + return locals() + +def effect3336(): + type = "passive" + def handler(fit, ship, context): + fit.ship.boostItemAttr("armorExplosiveDamageResonance", ship.getModifiedItemAttr("shipBonusMC2"), + skill="Minmatar Cruiser") + + return locals() + +def effect3339(): + type = "passive" + def handler(fit, ship, context): + fit.ship.boostItemAttr("armorKineticDamageResonance", ship.getModifiedItemAttr("shipBonusMC2"), + skill="Minmatar Cruiser") + + return locals() + +def effect3340(): + type = "passive" + def handler(fit, ship, context): + fit.ship.boostItemAttr("armorThermalDamageResonance", ship.getModifiedItemAttr("shipBonusMC2"), + skill="Minmatar Cruiser") + + return locals() + +def effect3343(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Projectile Turret"), + "falloff", ship.getModifiedItemAttr("eliteBonusHeavyInterdictors1"), + skill="Heavy Interdiction Cruisers") + + return locals() + +def effect3355(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Missiles"), + "maxVelocity", ship.getModifiedItemAttr("eliteBonusHeavyInterdictors1"), + skill="Heavy Interdiction Cruisers") + + return locals() + +def effect3356(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Assault Missiles"), + "maxVelocity", ship.getModifiedItemAttr("eliteBonusHeavyInterdictors1"), + skill="Heavy Interdiction Cruisers") + + return locals() + +def effect3357(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Light Missiles"), + "maxVelocity", ship.getModifiedItemAttr("eliteBonusHeavyInterdictors1"), + skill="Heavy Interdiction Cruisers") + + return locals() + +def effect3366(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Sensor Dampener", + "capacitorNeed", ship.getModifiedItemAttr("shipBonusGF"), skill="Gallente Frigate") + + return locals() + +def effect3367(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Warp Scrambler", + "maxRange", ship.getModifiedItemAttr("eliteBonusElectronicAttackShip1"), + skill="Electronic Attack Ships") + + return locals() + +def effect3369(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "ECM", + "maxRange", ship.getModifiedItemAttr("eliteBonusElectronicAttackShip1"), + skill="Electronic Attack Ships") + + return locals() + +def effect3370(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Stasis Web", + "maxRange", ship.getModifiedItemAttr("eliteBonusElectronicAttackShip1"), + skill="Electronic Attack Ships") + + return locals() + +def effect3371(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Warp Scrambler", + "capacitorNeed", ship.getModifiedItemAttr("eliteBonusElectronicAttackShip2"), + skill="Electronic Attack Ships") + + return locals() + +def effect3374(): + type = "passive" + def handler(fit, ship, context): + fit.ship.boostItemAttr("signatureRadius", ship.getModifiedItemAttr("eliteBonusElectronicAttackShip2"), + skill="Electronic Attack Ships") + + return locals() + +def effect3379(): + type = "passive" + def handler(fit, implant, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Afterburner"), + "capacitorNeed", implant.getModifiedItemAttr("capNeedBonus")) + + return locals() + +def effect3380(): + from eos.saveddata.module import State + type = "projected", "active" + runTime = "early" + def handler(fit, module, context): + if "projected" in context: + fit.ship.increaseItemAttr("warpScrambleStatus", module.getModifiedItemAttr("warpScrambleStrength")) + if module.charge is not None and module.charge.ID == 45010: + for mod in fit.modules: + if not mod.isEmpty and mod.item.requiresSkill("High Speed Maneuvering") and mod.state > State.ONLINE: + mod.state = State.ONLINE + if not mod.isEmpty and mod.item.requiresSkill("Micro Jump Drive Operation") and mod.state > State.ONLINE: + mod.state = State.ONLINE + else: + if module.charge is None: + fit.ship.boostItemAttr("mass", module.getModifiedItemAttr("massBonusPercentage")) + fit.ship.boostItemAttr("signatureRadius", module.getModifiedItemAttr("signatureRadiusBonus")) + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Propulsion Module", + "speedBoostFactor", module.getModifiedItemAttr("speedBoostFactorBonus")) + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Propulsion Module", + "speedFactor", module.getModifiedItemAttr("speedFactorBonus")) + fit.ship.forceItemAttr("disallowAssistance", 1) + + return locals() + +def effect3392(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Large Energy Turret"), + "trackingSpeed", ship.getModifiedItemAttr("eliteBonusBlackOps1"), skill="Black Ops") + + return locals() + +def effect34(): + type = 'active' + def handler(fit, module, context): + rt = module.getModifiedItemAttr("reloadTime") + if not rt: + module.reloadTime = 10000 + else: + module.reloadTime = rt + + return locals() + +def effect3403(): + type = "passive" + def handler(fit, ship, context): + if fit.extraAttributes["cloaked"]: + fit.ship.multiplyItemAttr("maxVelocity", ship.getModifiedItemAttr("eliteBonusBlackOps2"), skill="Black Ops") + + return locals() + +def effect3406(): + type = "passive" + def handler(fit, ship, context): + fit.ship.boostItemAttr("maxVelocity", ship.getModifiedItemAttr("eliteBonusBlackOps1"), skill="Black Ops") + + return locals() + +def effect3415(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Large Energy Turret"), + "damageMultiplier", ship.getModifiedItemAttr("eliteBonusViolatorsRole1")) + + return locals() + +def effect3416(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Large Hybrid Turret"), + "damageMultiplier", ship.getModifiedItemAttr("eliteBonusViolatorsRole1")) + + return locals() + +def effect3417(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Large Projectile Turret"), + "damageMultiplier", ship.getModifiedItemAttr("eliteBonusViolatorsRole1")) + + return locals() + +def effect3424(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Large Hybrid Turret"), + "trackingSpeed", ship.getModifiedItemAttr("eliteBonusViolators1"), skill="Marauders") + + return locals() + +def effect3425(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Large Projectile Turret"), + "trackingSpeed", ship.getModifiedItemAttr("eliteBonusViolators1"), skill="Marauders") + + return locals() + +def effect3427(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Tractor Beam", + "maxRange", ship.getModifiedItemAttr("eliteBonusViolatorsRole2")) + + return locals() + +def effect3439(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Target Painter", + "signatureRadiusBonus", ship.getModifiedItemAttr("eliteBonusViolators1"), + skill="Marauders") + + return locals() + +def effect3447(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Large Projectile Turret"), + "falloff", ship.getModifiedItemAttr("shipBonusMB"), skill="Minmatar Battleship") + + return locals() + +def effect3466(): + type = "passive" + def handler(fit, ship, context): + fit.ship.boostItemAttr("rechargeRate", ship.getModifiedItemAttr("eliteBonusElectronicAttackShip2"), + skill="Electronic Attack Ships") + + return locals() + +def effect3467(): + type = "passive" + def handler(fit, ship, context): + fit.ship.boostItemAttr("capacitorCapacity", ship.getModifiedItemAttr("eliteBonusElectronicAttackShip2"), + skill="Electronic Attack Ships") + + return locals() + +def effect3468(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Warp Disrupt Field Generator", + "warpScrambleRange", ship.getModifiedItemAttr("eliteBonusHeavyInterdictors2"), + skill="Heavy Interdiction Cruisers") + + return locals() + +def effect3473(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Tractor Beam", + "maxTractorVelocity", ship.getModifiedItemAttr("eliteBonusViolatorsRole3")) + + return locals() + +def effect3478(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Large Energy Turret"), + "damageMultiplier", ship.getModifiedItemAttr("shipBonusRole7")) + + return locals() + +def effect3480(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Large Energy Turret"), + "trackingSpeed", ship.getModifiedItemAttr("shipBonusAB2"), skill="Amarr Battleship") + + return locals() + +def effect3483(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Energy Turret"), + "damageMultiplier", ship.getModifiedItemAttr("shipBonusRole7")) + + return locals() + +def effect3484(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Energy Turret"), + "trackingSpeed", ship.getModifiedItemAttr("shipBonusAC2"), skill="Amarr Cruiser") + + return locals() + +def effect3487(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Energy Turret"), + "damageMultiplier", ship.getModifiedItemAttr("shipBonusRole7")) + + return locals() + +def effect3489(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Energy Turret"), + "trackingSpeed", ship.getModifiedItemAttr("shipBonus2AF"), skill="Amarr Frigate") + + return locals() + +def effect3493(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Cargo Scanner", + "cargoScanRange", ship.getModifiedItemAttr("cargoScannerRangeBonus")) + + return locals() + +def effect3494(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Survey Scanner", + "surveyScanRange", ship.getModifiedItemAttr("surveyScannerRangeBonus")) + + return locals() + +def effect3495(): + type = "passive" + def handler(fit, ship, context): + groups = ("Stasis Web", "Warp Scrambler") + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name in groups, + "capacitorNeed", ship.getModifiedItemAttr("eliteBonusInterceptorRole")) + + return locals() + +def effect3496(): + runTime = "early" + type = "passive" + def handler(fit, implant, context): + fit.appliedImplants.filteredItemMultiply(lambda mod: mod.item.group.name == "Cyberimplant", + "agilityBonus", implant.getModifiedItemAttr("implantSetThukker")) + + return locals() + +def effect3498(): + runTime = "early" + type = "passive" + def handler(fit, implant, context): + fit.appliedImplants.filteredItemMultiply(lambda mod: mod.item.group.name == "Cyberimplant", + "scanStrengthBonus", implant.getModifiedItemAttr("implantSetSisters")) + + return locals() + +def effect3499(): + runTime = "early" + type = "passive" + def handler(fit, implant, context): + fit.appliedImplants.filteredItemMultiply(lambda mod: mod.item.group.name == "Cyberimplant", + "boosterAttributeModifier", + implant.getModifiedItemAttr("implantSetSyndicate")) + + return locals() + +def effect3513(): + runTime = "early" + type = "passive" + def handler(fit, implant, context): + fit.appliedImplants.filteredItemMultiply(lambda mod: mod.item.group.name == "Cyberimplant", + "rangeSkillBonus", implant.getModifiedItemAttr("implantSetMordus")) + + return locals() + +def effect3514(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Warp Scrambler", + "maxRange", ship.getModifiedItemAttr("eliteBonusInterceptor2"), skill="Interceptors") + + return locals() + +def effect3519(): + type = "passive" + def handler(fit, skill, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Bomb Deployment"), + "cpu", skill.getModifiedItemAttr("cpuNeedBonus") * skill.level) + + return locals() + +def effect3520(): + type = "passive" + def handler(fit, skill, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Bomb Deployment"), + "power", skill.getModifiedItemAttr("powerNeedBonus") * skill.level) + + return locals() + +def effect3526(): + type = "passive" + def handler(fit, container, context): + level = container.level if "skill" in context else 1 + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Cynosural Field Generator", + "consumptionQuantity", + container.getModifiedItemAttr("consumptionQuantityBonusPercentage") * level) + + return locals() + +def effect3530(): + type = "passive" + def handler(fit, ship, context): + fit.ship.boostItemAttr("agility", ship.getModifiedItemAttr("eliteBonusBlackOps1"), skill="Black Ops") + + return locals() + +def effect3532(): + type = "passive" + def handler(fit, skill, context): + fit.ship.boostItemAttr("jumpDriveConsumptionAmount", + skill.getModifiedItemAttr("consumptionQuantityBonusPercentage") * skill.level) + + return locals() + +def effect3561(): + type = "passive" + def handler(fit, container, context): + level = container.level if "skill" in context else 1 + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Weapon Disruptor", + "trackingSpeedBonus", + container.getModifiedItemAttr("scanSkillEwStrengthBonus") * level) + + return locals() + +def effect3568(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Remote Tracking Computer", + "maxRangeBonus", ship.getModifiedItemAttr("eliteBonusLogistics1"), + skill="Logistics Cruisers") + + return locals() + +def effect3569(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Remote Tracking Computer", + "maxRangeBonus", ship.getModifiedItemAttr("eliteBonusLogistics2"), + skill="Logistics Cruisers") + + return locals() + +def effect3570(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Remote Tracking Computer", + "trackingSpeedBonus", ship.getModifiedItemAttr("eliteBonusLogistics2"), + skill="Logistics Cruisers") + + return locals() + +def effect3571(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Remote Tracking Computer", + "trackingSpeedBonus", ship.getModifiedItemAttr("eliteBonusLogistics1"), + skill="Logistics Cruisers") + + return locals() + +def effect3586(): + type = "passive" + def handler(fit, container, context): + level = container.level if "skill" in context else 1 + penalized = False if "skill" in context else True + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Sensor Dampener", + "scanResolutionBonus", + container.getModifiedItemAttr("scanSkillEwStrengthBonus") * level, + stackingPenalties=penalized) + + return locals() + +def effect3587(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Sensor Dampener", + "maxTargetRangeBonus", ship.getModifiedItemAttr("shipBonusGC2"), + skill="Gallente Cruiser") + + return locals() + +def effect3588(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Sensor Dampener", + "maxTargetRangeBonus", ship.getModifiedItemAttr("shipBonusGF2"), + skill="Gallente Frigate") + + return locals() + +def effect3589(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Sensor Dampener", + "scanResolutionBonus", ship.getModifiedItemAttr("shipBonusGF2"), + skill="Gallente Frigate") + + return locals() + +def effect3590(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Sensor Dampener", + "scanResolutionBonus", ship.getModifiedItemAttr("shipBonusGC2"), + skill="Gallente Cruiser") + + return locals() + +def effect3591(): + type = "passive" + def handler(fit, container, context): + level = container.level if "skill" in context else 1 + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Sensor Dampener", + "maxTargetRangeBonus", + container.getModifiedItemAttr("scanSkillEwStrengthBonus") * level) + + return locals() + +def effect3592(): + type = "passive" + def handler(fit, ship, context): + fit.ship.boostItemAttr("hp", ship.getModifiedItemAttr("eliteBonusJumpFreighter1"), skill="Jump Freighters") + + return locals() + +def effect3593(): + type = "passive" + def handler(fit, ship, context): + fit.ship.boostItemAttr("jumpDriveConsumptionAmount", ship.getModifiedItemAttr("eliteBonusJumpFreighter2"), + skill="Jump Freighters") + + return locals() + +def effect3597(): + type = "passive" + def handler(fit, module, context): + module.boostItemAttr("scanResolutionBonus", module.getModifiedChargeAttr("scanResolutionBonusBonus")) + + return locals() + +def effect3598(): + type = "passive" + def handler(fit, module, context): + module.boostItemAttr("maxTargetRangeBonus", module.getModifiedChargeAttr("maxTargetRangeBonusBonus")) + + return locals() + +def effect3599(): + type = "passive" + def handler(fit, module, context): + module.boostItemAttr("trackingSpeedBonus", module.getModifiedChargeAttr("trackingSpeedBonusBonus")) + + return locals() + +def effect3600(): + type = "passive" + def handler(fit, module, context): + module.boostItemAttr("maxRangeBonus", module.getModifiedChargeAttr("maxRangeBonusBonus")) + + return locals() + +def effect3601(): + type = "passive" + def handler(fit, module, context): + module.forceItemAttr("disallowInEmpireSpace", module.getModifiedChargeAttr("disallowInEmpireSpace")) + + return locals() + +def effect3602(): + type = "passive" + def handler(fit, module, context): + module.boostItemAttr("duration", module.getModifiedChargeAttr("durationBonus")) + + return locals() + +def effect3617(): + type = "passive" + runTime = "early" + def handler(fit, module, context): + module.boostItemAttr("signatureRadiusBonus", module.getModifiedChargeAttr("signatureRadiusBonusBonus")) + + return locals() + +def effect3618(): + type = "passive" + runTime = "early" + def handler(fit, module, context): + module.boostItemAttr("massBonusPercentage", module.getModifiedChargeAttr("massBonusPercentageBonus")) + + return locals() + +def effect3619(): + type = "passive" + runTime = "early" + def handler(fit, module, context): + module.boostItemAttr("speedBoostFactorBonus", module.getModifiedChargeAttr("speedBoostFactorBonusBonus")) + + return locals() + +def effect3620(): + type = "passive" + runTime = "early" + def handler(fit, module, context): + module.boostItemAttr("speedFactorBonus", module.getModifiedChargeAttr("speedFactorBonusBonus")) + + return locals() + +def effect3648(): + type = "passive" + def handler(fit, module, context): + module.boostItemAttr("warpScrambleRange", module.getModifiedChargeAttr("warpScrambleRangeBonus")) + + return locals() + +def effect3649(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Large Energy Turret"), + "damageMultiplier", ship.getModifiedItemAttr("eliteBonusViolators1"), + skill="Marauders") + + return locals() + +def effect3650(): + type = "passive" + def handler(fit, implant, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Sensor Dampener", + "maxRange", implant.getModifiedItemAttr("rangeSkillBonus")) + + return locals() + +def effect3651(): + type = "passive" + def handler(fit, implant, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Target Painter", + "maxRange", implant.getModifiedItemAttr("rangeSkillBonus")) + + return locals() + +def effect3652(): + type = "passive" + def handler(fit, implant, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Weapon Disruptor", + "maxRange", implant.getModifiedItemAttr("rangeSkillBonus")) + + return locals() + +def effect3653(): + type = "passive" + def handler(fit, implant, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Burst Projectors", + "maxRange", implant.getModifiedItemAttr("rangeSkillBonus")) + + return locals() + +def effect3655(): + type = "passive" + def handler(fit, module, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Gunnery"), + "maxRange", module.getModifiedItemAttr("maxRangeBonus"), + stackingPenalties=True) + + return locals() + +def effect3656(): + type = "passive" + def handler(fit, module, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Gunnery"), + "trackingSpeed", module.getModifiedItemAttr("trackingSpeedBonus"), + stackingPenalties=True) + + return locals() + +def effect3657(): + type = "passive" + def handler(fit, module, context): + fit.ship.boostItemAttr("scanResolution", module.getModifiedItemAttr("scanResolutionBonus"), + stackingPenalties=True) + + return locals() + +def effect3659(): + type = "passive" + def handler(fit, module, context): + fit.ship.boostItemAttr("maxTargetRange", module.getModifiedItemAttr("maxTargetRangeBonus"), + stackingPenalties=True) + + return locals() + +def effect3660(): + type = "passive" + def handler(fit, module, context): + fit.ship.increaseItemAttr("maxLockedTargets", module.getModifiedItemAttr("maxLockedTargetsBonus")) + + return locals() + +def effect3668(): + type = "passive" + def handler(fit, implant, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Mining Laser", + "maxRange", implant.getModifiedItemAttr("maxRangeBonus")) + + return locals() + +def effect3669(): + type = "passive" + def handler(fit, implant, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Frequency Mining Laser", + "maxRange", implant.getModifiedItemAttr("maxRangeBonus")) + + return locals() + +def effect3670(): + type = "passive" + def handler(fit, implant, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Strip Miner", + "maxRange", implant.getModifiedItemAttr("maxRangeBonus")) + + return locals() + +def effect3671(): + type = "passive" + def handler(fit, implant, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Gas Cloud Harvester", + "maxRange", implant.getModifiedItemAttr("maxRangeBonus")) + + return locals() + +def effect3672(): + runTime = "early" + type = "passive" + def handler(fit, implant, context): + fit.appliedImplants.filteredItemMultiply(lambda mod: mod.item.group.name == "Cyberimplant", + "maxRangeBonus", implant.getModifiedItemAttr("implantSetORE")) + + return locals() + +def effect3677(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Large Energy Turret"), + "maxRange", ship.getModifiedItemAttr("shipBonusAB2"), skill="Amarr Battleship") + + return locals() + +def effect3678(): + type = "passive" + def handler(fit, ship, context): + fit.ship.boostItemAttr("shieldCapacity", ship.getModifiedItemAttr("eliteBonusJumpFreighter1"), + skill="Jump Freighters") + + return locals() + +def effect3679(): + type = "passive" + def handler(fit, ship, context): + fit.ship.boostItemAttr("armorHP", ship.getModifiedItemAttr("eliteBonusJumpFreighter1"), skill="Jump Freighters") + + return locals() + +def effect3680(): + type = "passive" + def handler(fit, ship, context): + fit.ship.boostItemAttr("agility", ship.getModifiedItemAttr("freighterBonusC1"), skill="Caldari Freighter") + + return locals() + +def effect3681(): + type = "passive" + def handler(fit, ship, context): + fit.ship.boostItemAttr("agility", ship.getModifiedItemAttr("freighterBonusM1"), skill="Minmatar Freighter") + + return locals() + +def effect3682(): + type = "passive" + def handler(fit, ship, context): + fit.ship.boostItemAttr("agility", ship.getModifiedItemAttr("freighterBonusG1"), skill="Gallente Freighter") + + return locals() + +def effect3683(): + type = "passive" + def handler(fit, ship, context): + fit.ship.boostItemAttr("agility", ship.getModifiedItemAttr("freighterBonusA1"), skill="Amarr Freighter") + + return locals() + +def effect3686(): + type = "passive" + def handler(fit, module, context): + module.boostItemAttr("falloffBonus", module.getModifiedChargeAttr("falloffBonusBonus")) + + return locals() + +def effect3703(): + type = "passive" + def handler(fit, ship, context): + groups = ("Missile Launcher Rapid Light", "Missile Launcher Heavy", "Missile Launcher Heavy Assault") + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name in groups, + "speed", ship.getModifiedItemAttr("shipBonusMC2"), skill="Minmatar Cruiser") + + return locals() + +def effect3705(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Hybrid Turret"), + "speed", ship.getModifiedItemAttr("shipBonusGC2"), skill="Gallente Cruiser") + + return locals() + +def effect3706(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Projectile Turret"), + "trackingSpeed", ship.getModifiedItemAttr("shipBonusMC2"), skill="Minmatar Cruiser") + + return locals() + +def effect3726(): + type = "passive" + def handler(fit, module, context): + fit.ship.boostItemAttr("agility", module.getModifiedItemAttr("agilityBonus"), stackingPenalties=True) + + return locals() + +def effect3727(): + type = "passive" + def handler(fit, module, context): + fit.ship.boostItemAttr("maxVelocity", module.getModifiedItemAttr("implantBonusVelocity"), + stackingPenalties=True) + + return locals() + +def effect3739(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Tractor Beam", "maxRange", + src.getModifiedItemAttr("roleBonusTractorBeamRange")) + + return locals() + +def effect3740(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Tractor Beam", "maxTractorVelocity", + ship.getModifiedItemAttr("roleBonusTractorBeamVelocity")) + + return locals() + +def effect3742(): + type = "passive" + def handler(fit, src, context): + fit.ship.boostItemAttr("specialOreHoldCapacity", + src.getModifiedItemAttr("shipBonusICS1"), + skill="Industrial Command Ships") + fit.ship.boostItemAttr("capacity", + src.getModifiedItemAttr("shipBonusICS1"), + skill="Industrial Command Ships") + + return locals() + +def effect3744(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Mining Foreman"), "warfareBuff4Value", + src.getModifiedItemAttr("shipBonusICS2"), skill="Industrial Command Ships") + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Mining Foreman"), "warfareBuff1Value", + src.getModifiedItemAttr("shipBonusICS2"), skill="Industrial Command Ships") + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Mining Foreman"), "buffDuration", + src.getModifiedItemAttr("shipBonusICS2"), skill="Industrial Command Ships") + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Mining Foreman"), "warfareBuff3Value", + src.getModifiedItemAttr("shipBonusICS2"), skill="Industrial Command Ships") + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Mining Foreman"), "warfareBuff2Value", + src.getModifiedItemAttr("shipBonusICS2"), skill="Industrial Command Ships") + + return locals() + +def effect3745(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Survey Scanner", "surveyScanRange", + src.getModifiedItemAttr("roleBonusSurveyScannerRange")) + + return locals() + +def effect3765(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemMultiply(lambda mod: mod.item.group.name == "Missile Launcher Torpedo", + "power", ship.getModifiedItemAttr("stealthBomberLauncherPower")) + + return locals() + +def effect3766(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("High Speed Maneuvering"), + "signatureRadiusBonus", ship.getModifiedItemAttr("eliteBonusInterceptor"), + skill="Interceptors") + + return locals() + +def effect3767(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Missiles"), + "aoeVelocity", ship.getModifiedItemAttr("eliteBonusCommandShips2"), + skill="Command Ships") + + return locals() + +def effect3771(): + type = "passive" + def handler(fit, module, context): + fit.ship.increaseItemAttr("armorHP", module.getModifiedItemAttr("armorHPBonusAdd") or 0) + + return locals() + +def effect3773(): + type = "passive" + def handler(fit, module, context): + fit.ship.increaseItemAttr("turretSlotsLeft", module.getModifiedItemAttr("turretHardPointModifier")) + fit.ship.increaseItemAttr("launcherSlotsLeft", module.getModifiedItemAttr("launcherHardPointModifier")) + + return locals() + +def effect3774(): + type = "passive" + def handler(fit, module, context): + fit.ship.increaseItemAttr("hiSlots", module.getModifiedItemAttr("hiSlotModifier")) + fit.ship.increaseItemAttr("medSlots", module.getModifiedItemAttr("medSlotModifier")) + fit.ship.increaseItemAttr("lowSlots", module.getModifiedItemAttr("lowSlotModifier")) + + return locals() + +def effect3782(): + type = "passive" + def handler(fit, module, context): + fit.ship.increaseItemAttr("powerOutput", module.getModifiedItemAttr("powerOutput")) + + return locals() + +def effect3783(): + type = "passive" + def handler(fit, module, context): + fit.ship.increaseItemAttr("cpuOutput", module.getModifiedItemAttr("cpuOutput")) + + return locals() + +def effect3797(): + type = "passive" + def handler(fit, module, context): + fit.ship.increaseItemAttr("droneBandwidth", module.getModifiedItemAttr("droneBandwidth")) + + return locals() + +def effect3799(): + type = "passive" + def handler(fit, module, context): + fit.ship.increaseItemAttr("droneCapacity", module.getModifiedItemAttr("droneCapacity")) + + return locals() + +def effect38(): + type = "active" + def handler(fit, module, context): + pass + + return locals() + +def effect3807(): + type = "passive" + def handler(fit, module, context): + fit.ship.increaseItemAttr("maxTargetRange", module.getModifiedItemAttr("maxTargetRange")) + + return locals() + +def effect3808(): + type = "passive" + def handler(fit, module, context): + fit.ship.increaseItemAttr("signatureRadius", module.getModifiedItemAttr("signatureRadius")) + + return locals() + +def effect3810(): + type = "passive" + def handler(fit, subsystem, context): + fit.ship.increaseItemAttr("capacity", subsystem.getModifiedItemAttr("cargoCapacityAdd") or 0) + + return locals() + +def effect3811(): + type = "passive" + def handler(fit, module, context): + fit.ship.increaseItemAttr("capacitorCapacity", module.getModifiedItemAttr("capacitorCapacity") or 0) + + return locals() + +def effect3831(): + type = "passive" + def handler(fit, module, context): + fit.ship.increaseItemAttr("shieldCapacity", module.getModifiedItemAttr("shieldCapacity")) + + return locals() + +def effect3857(): + type = "passive" + def handler(fit, module, context): + fit.ship.boostItemAttr("maxVelocity", module.getModifiedItemAttr("subsystemBonusAmarrPropulsion"), + skill="Amarr Propulsion Systems") + + return locals() + +def effect3859(): + type = "passive" + def handler(fit, src, context): + fit.ship.boostItemAttr("maxVelocity", src.getModifiedItemAttr("subsystemBonusCaldariPropulsion"), + skill="Caldari Propulsion Systems") + + return locals() + +def effect3860(): + type = "passive" + def handler(fit, module, context): + fit.ship.boostItemAttr("maxVelocity", module.getModifiedItemAttr("subsystemBonusMinmatarPropulsion"), + skill="Minmatar Propulsion Systems") + + return locals() + +def effect3861(): + type = "passive" + def handler(fit, module, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Afterburner"), + "speedFactor", module.getModifiedItemAttr("subsystemBonusMinmatarPropulsion"), + skill="Minmatar Propulsion Systems") + + return locals() + +def effect3863(): + type = "passive" + def handler(fit, module, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Afterburner"), + "speedFactor", module.getModifiedItemAttr("subsystemBonusCaldariPropulsion"), + skill="Caldari Propulsion Systems") + + return locals() + +def effect3864(): + type = "passive" + def handler(fit, module, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Afterburner"), + "speedFactor", module.getModifiedItemAttr("subsystemBonusAmarrPropulsion"), + skill="Amarr Propulsion Systems") + + return locals() + +def effect3865(): + type = "passive" + def handler(fit, src, context): + fit.ship.boostItemAttr("agility", src.getModifiedItemAttr("subsystemBonusAmarrPropulsion2"), + skill="Amarr Propulsion Systems") + + return locals() + +def effect3866(): + type = "passive" + def handler(fit, src, context): + fit.ship.boostItemAttr("agility", src.getModifiedItemAttr("subsystemBonusCaldariPropulsion2"), + skill="Caldari Propulsion Systems") + + return locals() + +def effect3867(): + type = "passive" + def handler(fit, src, context): + fit.ship.boostItemAttr("agility", src.getModifiedItemAttr("subsystemBonusGallentePropulsion2"), + skill="Gallente Propulsion Systems") + + return locals() + +def effect3868(): + type = "passive" + def handler(fit, src, context): + fit.ship.boostItemAttr("agility", src.getModifiedItemAttr("subsystemBonusMinmatarPropulsion2"), + skill="Minmatar Propulsion Systems") + + return locals() + +def effect3869(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("High Speed Maneuvering"), + "signatureRadiusBonus", src.getModifiedItemAttr("subsystemBonusMinmatarPropulsion2"), + skill="Minmatar Propulsion Systems") + + return locals() + +def effect3872(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("High Speed Maneuvering"), + "signatureRadiusBonus", src.getModifiedItemAttr("subsystemBonusAmarrPropulsion2"), + skill="Amarr Propulsion Systems") + + return locals() + +def effect3875(): + type = "passive" + def handler(fit, module, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Propulsion Module", + "capacitorNeed", module.getModifiedItemAttr("subsystemBonusGallentePropulsion"), + skill="Gallente Propulsion Systems") + + return locals() + +def effect3893(): + type = "passive" + def handler(fit, src, context): + fit.ship.boostItemAttr("scanLadarStrength", src.getModifiedItemAttr("subsystemBonusMinmatarCore"), + skill="Minmatar Core Systems") + + return locals() + +def effect3895(): + type = "passive" + def handler(fit, src, context): + fit.ship.boostItemAttr("scanMagnetometricStrength", src.getModifiedItemAttr("subsystemBonusGallenteCore"), + skill="Gallente Core Systems") + + return locals() + +def effect3897(): + type = "passive" + def handler(fit, src, context): + fit.ship.boostItemAttr("scanGravimetricStrength", src.getModifiedItemAttr("subsystemBonusCaldariCore"), skill="Caldari Core Systems") + + return locals() + +def effect39(): + type = "projected", "active" + def handler(fit, module, context): + if "projected" in context: + fit.ship.increaseItemAttr("warpScrambleStatus", module.getModifiedItemAttr("warpScrambleStrength")) + + return locals() + +def effect3900(): + type = "passive" + def handler(fit, src, context): + fit.ship.boostItemAttr("scanRadarStrength", src.getModifiedItemAttr("subsystemBonusAmarrCore"), + skill="Amarr Core Systems") + + return locals() + +def effect391(): + type = "passive" + def handler(fit, container, context): + level = container.level if "skill" in context else 1 + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Mining"), + "miningAmount", container.getModifiedItemAttr("miningAmountBonus") * level) + + return locals() + +def effect392(): + type = "passive" + def handler(fit, container, context): + level = container.level if "skill" in context else 1 + fit.ship.boostItemAttr("hp", container.getModifiedItemAttr("hullHpBonus") * level) + + return locals() + +def effect394(): + type = "passive" + def handler(fit, container, context): + level = container.level if "skill" in context else 1 + amount = container.getModifiedItemAttr("velocityBonus") or 0 + fit.ship.boostItemAttr("maxVelocity", amount * level, + stackingPenalties="skill" not in context and "implant" not in context and "booster" not in context) + + return locals() + +def effect395(): + type = "passive" + def handler(fit, container, context): + level = container.level if "skill" in context else 1 + fit.ship.boostItemAttr("agility", container.getModifiedItemAttr("agilityBonus") * level, + stackingPenalties="skill" not in context and "implant" not in context) + + return locals() + +def effect3959(): + type = "passive" + def handler(fit, module, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Repair Systems"), + "armorDamageAmount", module.getModifiedItemAttr("subsystemBonusAmarrDefensive"), + skill="Amarr Defensive Systems") + + return locals() + +def effect396(): + type = "passive" + def handler(fit, container, context): + level = container.level if "skill" in context else 1 + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Energy Grid Upgrades"), + "cpu", container.getModifiedItemAttr("cpuNeedBonus") * level) + + return locals() + +def effect3961(): + type = "passive" + def handler(fit, module, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Repair Systems"), + "armorDamageAmount", module.getModifiedItemAttr("subsystemBonusGallenteDefensive"), + skill="Gallente Defensive Systems") + + return locals() + +def effect3962(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Repair Systems"), + "armorDamageAmount", src.getModifiedItemAttr("subsystemBonusMinmatarDefensive"), + skill="Minmatar Defensive Systems") + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Operation"), + "shieldBonus", src.getModifiedItemAttr("subsystemBonusMinmatarDefensive"), + skill="Minmatar Defensive Systems") + + return locals() + +def effect3964(): + type = "passive" + def handler(fit, module, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Operation"), + "shieldBonus", module.getModifiedItemAttr("subsystemBonusCaldariDefensive"), + skill="Caldari Defensive Systems") + + return locals() + +def effect397(): + type = "passive" + def handler(fit, container, context): + level = container.level if "skill" in context else 1 + fit.ship.boostItemAttr("cpuOutput", container.getModifiedItemAttr("cpuOutputBonus2") * level) + + return locals() + +def effect3976(): + type = "passive" + def handler(fit, module, context): + fit.ship.boostItemAttr("shieldCapacity", module.getModifiedItemAttr("subsystemBonusCaldariDefensive"), + skill="Caldari Defensive Systems") + + return locals() + +def effect3979(): + type = "passive" + def handler(fit, src, context): + fit.ship.boostItemAttr("shieldCapacity", src.getModifiedItemAttr("subsystemBonusMinmatarDefensive"), + skill="Minmatar Defensive Systems") + fit.ship.boostItemAttr("armorHP", src.getModifiedItemAttr("subsystemBonusMinmatarDefensive"), + skill="Minmatar Defensive Systems") + + return locals() + +def effect3980(): + type = "passive" + def handler(fit, module, context): + fit.ship.boostItemAttr("armorHP", module.getModifiedItemAttr("subsystemBonusGallenteDefensive"), + skill="Gallente Defensive Systems") + + return locals() + +def effect3982(): + type = "passive" + def handler(fit, module, context): + fit.ship.boostItemAttr("armorHP", module.getModifiedItemAttr("subsystemBonusAmarrDefensive"), + skill="Amarr Defensive Systems") + + return locals() + +def effect3992(): + runTime = "early" + type = ("projected", "passive") + def handler(fit, beacon, context): + fit.ship.multiplyItemAttr("shieldCapacity", beacon.getModifiedItemAttr("shieldCapacityMultiplier")) + + return locals() + +def effect3993(): + runTime = "early" + type = ("projected", "passive") + def handler(fit, beacon, context): + fit.ship.multiplyItemAttr("maxTargetRange", beacon.getModifiedItemAttr("maxTargetRangeMultiplier"), + stackingPenalties=True, penaltyGroup="postMul") + + return locals() + +def effect3995(): + runTime = "early" + type = ("projected", "passive") + def handler(fit, beacon, context): + fit.ship.multiplyItemAttr("signatureRadius", beacon.getModifiedItemAttr("signatureRadiusMultiplier"), + stackingPenalties=True, penaltyGroup="postMul") + + return locals() + +def effect3996(): + runTime = "early" + type = ("projected", "passive") + def handler(fit, beacon, context): + fit.ship.boostItemAttr("armorEmDamageResonance", beacon.getModifiedItemAttr("armorEmDamageResistanceBonus"), + stackingPenalties=True) + + return locals() + +def effect3997(): + runTime = "early" + type = ("projected", "passive") + def handler(fit, beacon, context): + fit.ship.boostItemAttr("armorExplosiveDamageResonance", + beacon.getModifiedItemAttr("armorExplosiveDamageResistanceBonus"), + stackingPenalties=True) + + return locals() + +def effect3998(): + runTime = "early" + type = ("projected", "passive") + def handler(fit, beacon, context): + fit.ship.boostItemAttr("armorKineticDamageResonance", + beacon.getModifiedItemAttr("armorKineticDamageResistanceBonus"), + stackingPenalties=True) + + return locals() + +def effect3999(): + runTime = "early" + type = ("projected", "passive") + def handler(fit, beacon, context): + fit.ship.boostItemAttr("armorThermalDamageResonance", + beacon.getModifiedItemAttr("armorThermalDamageResistanceBonus"), + stackingPenalties=True) + + return locals() + +def effect4(): + runTime = "late" + type = "active" + def handler(fit, module, context): + amount = module.getModifiedItemAttr("shieldBonus") + speed = module.getModifiedItemAttr("duration") / 1000.0 + fit.extraAttributes.increase("shieldRepair", amount / speed) + + return locals() + +def effect4002(): + runTime = "early" + type = ("projected", "passive") + def handler(fit, beacon, context): + fit.modules.filteredChargeMultiply(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), + "maxVelocity", beacon.getModifiedItemAttr("missileVelocityMultiplier"), + stackingPenalties=True, penaltyGroup="postMul") + + return locals() + +def effect4003(): + runTime = "early" + type = ("projected", "passive") + def handler(fit, beacon, context): + fit.ship.multiplyItemAttr("maxVelocity", beacon.getModifiedItemAttr("maxVelocityMultiplier"), + stackingPenalties=True, penaltyGroup="postMul") + + return locals() + +def effect4016(): + runTime = "early" + type = ("projected", "passive") + def handler(fit, beacon, context): + fit.modules.filteredItemMultiply(lambda mod: mod.item.requiresSkill("Gunnery"), + "damageMultiplier", beacon.getModifiedItemAttr("damageMultiplierMultiplier"), + stackingPenalties=True) + + return locals() + +def effect4017(): + runTime = "early" + type = ("projected", "passive") + def handler(fit, beacon, context): + fit.modules.filteredChargeMultiply(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), + "thermalDamage", beacon.getModifiedItemAttr("damageMultiplierMultiplier"), + stackingPenalties=True, penaltyGroup="postMul") + + return locals() + +def effect4018(): + runTime = "early" + type = ("projected", "passive") + def handler(fit, beacon, context): + fit.modules.filteredChargeMultiply(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), + "emDamage", beacon.getModifiedItemAttr("damageMultiplierMultiplier"), + stackingPenalties=True, penaltyGroup="postMul") + + return locals() + +def effect4019(): + runTime = "early" + type = ("projected", "passive") + def handler(fit, beacon, context): + fit.modules.filteredChargeMultiply(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), + "explosiveDamage", beacon.getModifiedItemAttr("damageMultiplierMultiplier"), + stackingPenalties=True, penaltyGroup="postMul") + + return locals() + +def effect4020(): + runTime = "early" + type = ("projected", "passive") + def handler(fit, beacon, context): + fit.modules.filteredChargeMultiply(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), + "kineticDamage", beacon.getModifiedItemAttr("damageMultiplierMultiplier"), + stackingPenalties=True, penaltyGroup="postMul") + + return locals() + +def effect4021(): + runTime = "early" + type = ("projected", "passive") + def handler(fit, beacon, context): + fit.drones.filteredItemMultiply(lambda drone: drone.item.requiresSkill("Drones"), + "damageMultiplier", beacon.getModifiedItemAttr("damageMultiplierMultiplier"), + stackingPenalties=True, penaltyGroup="postMul") + + return locals() + +def effect4022(): + runTime = "early" + type = ("projected", "passive") + def handler(fit, module, context): + fit.modules.filteredItemMultiply(lambda mod: mod.item.requiresSkill("Gunnery"), + "trackingSpeed", module.getModifiedItemAttr("trackingSpeedMultiplier"), + stackingPenalties=True, penaltyGroup="postMul") + + return locals() + +def effect4023(): + runTime = "early" + type = ("projected", "passive") + def handler(fit, beacon, context): + fit.modules.filteredChargeMultiply(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), + "aoeVelocity", beacon.getModifiedItemAttr("aoeVelocityMultiplier")) + + return locals() + +def effect4033(): + runTime = "early" + type = ("projected", "passive") + def handler(fit, module, context): + fit.modules.filteredItemMultiply(lambda mod: "heatDamage" in mod.itemModifiedAttributes, + "heatDamage", module.getModifiedItemAttr("heatDamageMultiplier")) + + return locals() + +def effect4034(): + runTime = "early" + type = ("projected", "passive") + def handler(fit, module, context): + fit.modules.filteredItemMultiply(lambda mod: "overloadArmorDamageAmount" in mod.itemModifiedAttributes, + "overloadArmorDamageAmount", module.getModifiedItemAttr("overloadBonusMultiplier")) + + return locals() + +def effect4035(): + runTime = "early" + type = ("projected", "passive") + def handler(fit, module, context): + fit.modules.filteredItemMultiply(lambda mod: "overloadDamageModifier" in mod.itemModifiedAttributes, + "overloadDamageModifier", module.getModifiedItemAttr("overloadBonusMultiplier")) + + return locals() + +def effect4036(): + runTime = "early" + type = ("projected", "passive") + def handler(fit, module, context): + fit.modules.filteredItemMultiply(lambda mod: "overloadDurationBonus" in mod.itemModifiedAttributes, + "overloadDurationBonus", module.getModifiedItemAttr("overloadBonusMultiplier")) + + return locals() + +def effect4037(): + runTime = "early" + type = ("projected", "passive") + def handler(fit, module, context): + fit.modules.filteredItemMultiply(lambda mod: "overloadECCMStrenghtBonus" in mod.itemModifiedAttributes, + "overloadECCMStrenghtBonus", module.getModifiedItemAttr("overloadBonusMultiplier")) + + return locals() + +def effect4038(): + runTime = "early" + type = ("projected", "passive") + def handler(fit, module, context): + fit.modules.filteredItemMultiply(lambda mod: "overloadECMStrenghtBonus" in mod.itemModifiedAttributes, + "overloadECMStrenghtBonus", module.getModifiedItemAttr("overloadBonusMultiplier")) + + return locals() + +def effect4039(): + runTime = "early" + type = ("projected", "passive") + def handler(fit, module, context): + fit.modules.filteredItemMultiply(lambda mod: "overloadHardeningBonus" in mod.itemModifiedAttributes, + "overloadHardeningBonus", module.getModifiedItemAttr("overloadBonusMultiplier")) + + return locals() + +def effect4040(): + runTime = "early" + type = ("projected", "passive") + def handler(fit, module, context): + fit.modules.filteredItemMultiply(lambda mod: "overloadRangeBonus" in mod.itemModifiedAttributes, + "overloadRangeBonus", module.getModifiedItemAttr("overloadBonusMultiplier")) + + return locals() + +def effect4041(): + runTime = "early" + type = ("projected", "passive") + def handler(fit, module, context): + fit.modules.filteredItemMultiply(lambda mod: "overloadRofBonus" in mod.itemModifiedAttributes, + "overloadRofBonus", module.getModifiedItemAttr("overloadBonusMultiplier")) + + return locals() + +def effect4042(): + runTime = "early" + type = ("projected", "passive") + def handler(fit, module, context): + fit.modules.filteredItemMultiply(lambda mod: "overloadSelfDurationBonus" in mod.itemModifiedAttributes, + "overloadSelfDurationBonus", module.getModifiedItemAttr("overloadBonusMultiplier")) + + return locals() + +def effect4043(): + runTime = "early" + type = ("projected", "passive") + def handler(fit, module, context): + fit.modules.filteredItemMultiply(lambda mod: "overloadShieldBonus" in mod.itemModifiedAttributes, + "overloadShieldBonus", module.getModifiedItemAttr("overloadBonusMultiplier")) + + return locals() + +def effect4044(): + runTime = "early" + type = ("projected", "passive") + def handler(fit, module, context): + fit.modules.filteredItemMultiply(lambda mod: "overloadSpeedFactorBonus" in mod.itemModifiedAttributes, + "overloadSpeedFactorBonus", module.getModifiedItemAttr("overloadBonusMultiplier")) + + return locals() + +def effect4045(): + runTime = "early" + type = ("projected", "passive") + def handler(fit, module, context): + fit.modules.filteredItemMultiply(lambda mod: mod.item.group.name == "Smart Bomb", + "empFieldRange", module.getModifiedItemAttr("empFieldRangeMultiplier")) + + return locals() + +def effect4046(): + runTime = "early" + type = ("projected", "passive") + def handler(fit, module, context): + fit.modules.filteredItemMultiply(lambda mod: mod.item.group.name == "Smart Bomb", + "emDamage", module.getModifiedItemAttr("smartbombDamageMultiplier")) + + return locals() + +def effect4047(): + runTime = "early" + type = ("projected", "passive") + def handler(fit, module, context): + fit.modules.filteredItemMultiply(lambda mod: mod.item.group.name == "Smart Bomb", + "thermalDamage", module.getModifiedItemAttr("smartbombDamageMultiplier")) + + return locals() + +def effect4048(): + runTime = "early" + type = ("projected", "passive") + def handler(fit, module, context): + fit.modules.filteredItemMultiply(lambda mod: mod.item.group.name == "Smart Bomb", + "kineticDamage", module.getModifiedItemAttr("smartbombDamageMultiplier")) + + return locals() + +def effect4049(): + runTime = "early" + type = ("projected", "passive") + def handler(fit, module, context): + fit.modules.filteredItemMultiply(lambda mod: mod.item.group.name == "Smart Bomb", + "explosiveDamage", module.getModifiedItemAttr("smartbombDamageMultiplier")) + + return locals() + +def effect4054(): + runTime = "early" + type = ("projected", "passive") + def handler(fit, module, context): + fit.modules.filteredItemMultiply(lambda mod: mod.item.requiresSkill("Small Energy Turret"), + "damageMultiplier", module.getModifiedItemAttr("smallWeaponDamageMultiplier"), + stackingPenalties=True) + + return locals() + +def effect4055(): + runTime = "early" + type = ("projected", "passive") + def handler(fit, module, context): + fit.modules.filteredItemMultiply(lambda mod: mod.item.requiresSkill("Small Projectile Turret"), + "damageMultiplier", module.getModifiedItemAttr("smallWeaponDamageMultiplier"), + stackingPenalties=True) + + return locals() + +def effect4056(): + runTime = "early" + type = ("projected", "passive") + def handler(fit, module, context): + fit.modules.filteredItemMultiply(lambda mod: mod.item.requiresSkill("Small Hybrid Turret"), + "damageMultiplier", module.getModifiedItemAttr("smallWeaponDamageMultiplier"), + stackingPenalties=True) + + return locals() + +def effect4057(): + runTime = "early" + type = ("projected", "passive") + def handler(fit, beacon, context): + fit.modules.filteredChargeMultiply(lambda mod: mod.charge.requiresSkill("Rockets"), + "emDamage", beacon.getModifiedItemAttr("smallWeaponDamageMultiplier"), + stackingPenalties=True, penaltyGroup="postMul") + + return locals() + +def effect4058(): + runTime = "early" + type = ("projected", "passive") + def handler(fit, beacon, context): + fit.modules.filteredChargeMultiply(lambda mod: mod.charge.requiresSkill("Rockets"), + "explosiveDamage", beacon.getModifiedItemAttr("smallWeaponDamageMultiplier"), + stackingPenalties=True, penaltyGroup="postMul") + + return locals() + +def effect4059(): + runTime = "early" + type = ("projected", "passive") + def handler(fit, beacon, context): + fit.modules.filteredChargeMultiply(lambda mod: mod.charge.requiresSkill("Rockets"), + "kineticDamage", beacon.getModifiedItemAttr("smallWeaponDamageMultiplier"), + stackingPenalties=True, penaltyGroup="postMul") + + return locals() + +def effect4060(): + runTime = "early" + type = ("projected", "passive") + def handler(fit, beacon, context): + fit.modules.filteredChargeMultiply(lambda mod: mod.charge.requiresSkill("Rockets"), + "thermalDamage", beacon.getModifiedItemAttr("smallWeaponDamageMultiplier"), + stackingPenalties=True, penaltyGroup="postMul") + + return locals() + +def effect4061(): + runTime = "early" + type = ("projected", "passive") + def handler(fit, beacon, context): + fit.modules.filteredChargeMultiply(lambda mod: mod.charge.requiresSkill("Light Missiles"), + "thermalDamage", beacon.getModifiedItemAttr("smallWeaponDamageMultiplier"), + stackingPenalties=True, penaltyGroup="postMul") + + return locals() + +def effect4062(): + runTime = "early" + type = ("projected", "passive") + def handler(fit, beacon, context): + fit.modules.filteredChargeMultiply(lambda mod: mod.charge.requiresSkill("Light Missiles"), + "emDamage", beacon.getModifiedItemAttr("smallWeaponDamageMultiplier"), + stackingPenalties=True, penaltyGroup="postMul") + + return locals() + +def effect4063(): + runTime = "early" + type = ("projected", "passive") + def handler(fit, beacon, context): + fit.modules.filteredChargeMultiply(lambda mod: mod.charge.requiresSkill("Light Missiles"), + "explosiveDamage", beacon.getModifiedItemAttr("smallWeaponDamageMultiplier"), + stackingPenalties=True, penaltyGroup="postMul") + + return locals() + +def effect408(): + type = "passive" + def handler(fit, container, context): + level = container.level if "skill" in context else 1 + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Large Projectile Turret"), + "damageMultiplier", container.getModifiedItemAttr("damageMultiplierBonus") * level) + + return locals() + +def effect4086(): + runTime = "early" + type = ("projected", "passive") + def handler(fit, module, context): + fit.modules.filteredItemMultiply(lambda mod: mod.item.requiresSkill("Repair Systems") or + mod.item.requiresSkill("Capital Repair Systems"), + "armorDamageAmount", module.getModifiedItemAttr("armorDamageAmountMultiplier"), + stackingPenalties=True, penaltyGroup="postMul") + + return locals() + +def effect4088(): + runTime = "early" + type = ("projected", "passive") + def handler(fit, module, context): + fit.modules.filteredItemMultiply(lambda mod: mod.item.requiresSkill("Remote Armor Repair Systems"), + "armorDamageAmount", + module.getModifiedItemAttr("armorDamageAmountMultiplierRemote"), + stackingPenalties=True) + + return locals() + +def effect4089(): + runTime = "early" + type = ("projected", "passive") + def handler(fit, module, context): + fit.modules.filteredItemMultiply(lambda mod: mod.item.requiresSkill("Shield Emission Systems"), + "shieldBonus", module.getModifiedItemAttr("shieldBonusMultiplierRemote"), + stackingPenalties=True, penaltyGroup="postMul") + + return locals() + +def effect4090(): + runTime = "early" + type = ("projected", "passive") + def handler(fit, beacon, context): + fit.ship.multiplyItemAttr("capacitorCapacity", beacon.getModifiedItemAttr("capacitorCapacityMultiplierSystem")) + + return locals() + +def effect4091(): + runTime = "early" + type = ("projected", "passive") + def handler(fit, beacon, context): + fit.ship.multiplyItemAttr("rechargeRate", beacon.getModifiedItemAttr("rechargeRateMultiplier")) + + return locals() + +def effect4093(): + type = "passive" + def handler(fit, module, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Energy Turret"), + "damageMultiplier", module.getModifiedItemAttr("subsystemBonusAmarrOffensive"), + skill="Amarr Offensive Systems") + + return locals() + +def effect4104(): + type = "passive" + def handler(fit, module, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Hybrid Turret"), + "maxRange", module.getModifiedItemAttr("subsystemBonusCaldariOffensive"), + skill="Caldari Offensive Systems") + + return locals() + +def effect4106(): + type = "passive" + def handler(fit, module, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Hybrid Turret"), + "falloff", module.getModifiedItemAttr("subsystemBonusGallenteOffensive"), + skill="Gallente Offensive Systems") + + return locals() + +def effect4114(): + type = "passive" + def handler(fit, module, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Projectile Turret"), + "falloff", module.getModifiedItemAttr("subsystemBonusMinmatarOffensive"), + skill="Minmatar Offensive Systems") + + return locals() + +def effect4115(): + type = "passive" + def handler(fit, module, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Projectile Turret"), + "maxRange", module.getModifiedItemAttr("subsystemBonusMinmatarOffensive"), + skill="Minmatar Offensive Systems") + + return locals() + +def effect4122(): + type = "passive" + def handler(fit, src, context): + groups = ("Missile Launcher Heavy", "Missile Launcher Rapid Light", "Missile Launcher Heavy Assault") + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name in groups, + "speed", src.getModifiedItemAttr("subsystemBonusCaldariOffensive"), skill="Caldari Offensive Systems") + + return locals() + +def effect4135(): + runTime = "early" + type = ("projected", "passive") + def handler(fit, beacon, context): + fit.ship.boostItemAttr("shieldEmDamageResonance", beacon.getModifiedItemAttr("shieldEmDamageResistanceBonus"), + stackingPenalties=True) + + return locals() + +def effect4136(): + runTime = "early" + type = ("projected", "passive") + def handler(fit, beacon, context): + fit.ship.boostItemAttr("shieldExplosiveDamageResonance", + beacon.getModifiedItemAttr("shieldExplosiveDamageResistanceBonus"), + stackingPenalties=True) + + return locals() + +def effect4137(): + runTime = "early" + type = ("projected", "passive") + def handler(fit, beacon, context): + fit.ship.boostItemAttr("shieldKineticDamageResonance", + beacon.getModifiedItemAttr("shieldKineticDamageResistanceBonus"), + stackingPenalties=True) + + return locals() + +def effect4138(): + runTime = "early" + type = ("projected", "passive") + def handler(fit, beacon, context): + fit.ship.boostItemAttr("shieldThermalDamageResonance", + beacon.getModifiedItemAttr("shieldThermalDamageResistanceBonus"), + stackingPenalties=True) + + return locals() + +def effect414(): + type = "passive" + def handler(fit, container, context): + level = container.level if "skill" in context else 1 + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Gunnery"), + "speed", container.getModifiedItemAttr("turretSpeeBonus") * level) + + return locals() + +def effect4152(): + type = "passive" + def handler(fit, module, context): + fit.modules.filteredItemBoost(lambda mod: True, "heatDamage", + module.getModifiedItemAttr("subsystemBonusAmarrCore"), + skill="Amarr Core Systems") + + return locals() + +def effect4153(): + type = "passive" + def handler(fit, module, context): + fit.modules.filteredItemBoost(lambda mod: True, "heatDamage", + module.getModifiedItemAttr("subsystemBonusCaldariCore"), + skill="Caldari Core Systems") + + return locals() + +def effect4154(): + type = "passive" + def handler(fit, module, context): + fit.modules.filteredItemBoost(lambda mod: True, "heatDamage", + module.getModifiedItemAttr("subsystemBonusGallenteCore"), + skill="Gallente Core Systems") + + return locals() + +def effect4155(): + type = "passive" + def handler(fit, module, context): + fit.modules.filteredItemBoost(lambda mod: True, "heatDamage", + module.getModifiedItemAttr("subsystemBonusMinmatarCore"), + skill="Minmatar Core Systems") + + return locals() + +def effect4158(): + type = "passive" + def handler(fit, src, context): + fit.ship.boostItemAttr("capacitorCapacity", src.getModifiedItemAttr("subsystemBonusCaldariCore"), + skill="Caldari Core Systems") + + return locals() + +def effect4159(): + type = "passive" + def handler(fit, src, context): + fit.ship.boostItemAttr("capacitorCapacity", src.getModifiedItemAttr("subsystemBonusAmarrCore"), skill="Amarr Core Systems") + + return locals() + +def effect4161(): + type = "passive" + def handler(fit, container, context): + level = container.level if "skill" in context else 1 + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Astrometrics"), + "baseMaxScanDeviation", + container.getModifiedItemAttr("maxScanDeviationModifier") * level) + + return locals() + +def effect4162(): + type = "passive" + def handler(fit, container, context): + level = container.level if "skill" in context else 1 + penalized = False if "skill" in context or "implant" in context else True + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Astrometrics"), + "baseSensorStrength", container.getModifiedItemAttr("scanStrengthBonus") * level, + stackingPenalties=penalized) + + return locals() + +def effect4165(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.group.name == "Scanner Probe", + "baseSensorStrength", ship.getModifiedItemAttr("shipBonusCF2"), + skill="Caldari Frigate") + + return locals() + +def effect4166(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.group.name == "Scanner Probe", + "baseSensorStrength", ship.getModifiedItemAttr("shipBonusMF2"), + skill="Minmatar Frigate") + + return locals() + +def effect4167(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.group.name == "Scanner Probe", + "baseSensorStrength", ship.getModifiedItemAttr("shipBonusGF2"), + skill="Gallente Frigate") + + return locals() + +def effect4168(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.group.name == "Scanner Probe", + "baseSensorStrength", ship.getModifiedItemAttr("eliteBonusCovertOps2"), + skill="Covert Ops") + + return locals() + +def effect4187(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: True, "heatDamage", + ship.getModifiedItemAttr("shipBonusStrategicCruiserAmarr1"), + skill="Amarr Strategic Cruiser") + + return locals() + +def effect4188(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: True, "heatDamage", + ship.getModifiedItemAttr("shipBonusStrategicCruiserCaldari1"), + skill="Caldari Strategic Cruiser") + + return locals() + +def effect4189(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: True, "heatDamage", + ship.getModifiedItemAttr("shipBonusStrategicCruiserGallente1"), + skill="Gallente Strategic Cruiser") + + return locals() + +def effect4190(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: True, "heatDamage", + ship.getModifiedItemAttr("shipBonusStrategicCruiserMinmatar1"), + skill="Minmatar Strategic Cruiser") + + return locals() + +def effect4215(): + type = "passive" + def handler(fit, module, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Energy Turret"), + "capacitorNeed", module.getModifiedItemAttr("subsystemBonusAmarrOffensive2"), + skill="Amarr Offensive Systems") + + return locals() + +def effect4216(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Nosferatu", "powerTransferAmount", + src.getModifiedItemAttr("subsystemBonusAmarrCore2"), skill="Amarr Core Systems") + + return locals() + +def effect4217(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Neutralizer", "energyNeutralizerAmount", + src.getModifiedItemAttr("subsystemBonusAmarrCore2"), skill="Amarr Core Systems") + + return locals() + +def effect4248(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Light Missiles"), + "kineticDamage", src.getModifiedItemAttr("subsystemBonusCaldariOffensive2"), + skill="Caldari Offensive Systems") + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Missiles"), + "kineticDamage", src.getModifiedItemAttr("subsystemBonusCaldariOffensive2"), + skill="Caldari Offensive Systems") + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Assault Missiles"), + "kineticDamage", src.getModifiedItemAttr("subsystemBonusCaldariOffensive2"), + skill="Caldari Offensive Systems") + + return locals() + +def effect4250(): + type = "passive" + def handler(fit, src, context): + fit.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Drones"), + "armorHP", src.getModifiedItemAttr("subsystemBonusGallenteOffensive"), + skill="Gallente Offensive Systems") + fit.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Drones"), + "hp", src.getModifiedItemAttr("subsystemBonusGallenteOffensive"), + skill="Gallente Offensive Systems") + fit.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Drones"), + "damageMultiplier", src.getModifiedItemAttr("subsystemBonusGallenteOffensive"), + skill="Gallente Offensive Systems") + fit.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Drones"), + "shieldCapacity", src.getModifiedItemAttr("subsystemBonusGallenteOffensive"), + skill="Gallente Offensive Systems") + + return locals() + +def effect4251(): + type = "passive" + def handler(fit, module, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Projectile Turret"), + "damageMultiplier", module.getModifiedItemAttr("subsystemBonusMinmatarOffensive2"), + skill="Minmatar Offensive Systems") + + return locals() + +def effect4256(): + type = "passive" + def handler(fit, src, context): + groups = ("Missile Launcher Heavy", "Missile Launcher Rapid Light", "Missile Launcher Heavy Assault") + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name in groups, + "speed", src.getModifiedItemAttr("subsystemBonusMinmatarOffensive2"), + skill="Minmatar Offensive Systems") + + return locals() + +def effect4264(): + type = "passive" + def handler(fit, src, context): + fit.ship.boostItemAttr("rechargeRate", src.getModifiedItemAttr("subsystemBonusMinmatarCore"), + skill="Minmatar Core Systems") + + return locals() + +def effect4265(): + type = "passive" + def handler(fit, src, context): + fit.ship.boostItemAttr("rechargeRate", src.getModifiedItemAttr("subsystemBonusGallenteCore"), + skill="Gallente Core Systems") + + return locals() + +def effect4269(): + type = "passive" + def handler(fit, src, context): + fit.ship.boostItemAttr("scanResolution", src.getModifiedItemAttr("subsystemBonusAmarrCore3"), + skill="Amarr Core Systems") + + return locals() + +def effect4270(): + type = "passive" + def handler(fit, src, context): + fit.ship.boostItemAttr("scanResolution", src.getModifiedItemAttr("subsystemBonusMinmatarCore3"), + skill="Minmatar Core Systems") + + return locals() + +def effect4271(): + type = "passive" + def handler(fit, src, context): + fit.ship.boostItemAttr("maxTargetRange", src.getModifiedItemAttr("subsystemBonusCaldariCore2"), skill="Caldari Core Systems") + + return locals() + +def effect4272(): + type = "passive" + def handler(fit, src, context): + fit.ship.boostItemAttr("maxTargetRange", src.getModifiedItemAttr("subsystemBonusGallenteCore2"), + skill="Gallente Core Systems") + + return locals() + +def effect4273(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Warp Scrambler", "maxRange", + src.getModifiedItemAttr("subsystemBonusGallenteCore2"), skill="Gallente Core Systems") + + return locals() + +def effect4274(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Stasis Web", + "maxRange", src.getModifiedItemAttr("subsystemBonusMinmatarCore2"), skill="Minmatar Core Systems") + + return locals() + +def effect4275(): + type = "passive" + def handler(fit, src, context): + fit.ship.boostItemAttr("warpSpeedMultiplier", src.getModifiedItemAttr("subsystemBonusCaldariPropulsion2"), + skill="Caldari Propulsion Systems") + + return locals() + +def effect4277(): + type = "passive" + def handler(fit, src, context): + fit.ship.boostItemAttr("warpCapacitorNeed", src.getModifiedItemAttr("subsystemBonusGallentePropulsion"), + skill="Gallente Propulsion Systems") + + return locals() + +def effect4278(): + type = "passive" + def handler(fit, src, context): + fit.ship.boostItemAttr("warpSpeedMultiplier", src.getModifiedItemAttr("subsystemBonusGallentePropulsion2"), + skill="Gallente Propulsion Systems") + + return locals() + +def effect4280(): + runTime = "early" + type = ("projected", "passive") + def handler(fit, beacon, context): + fit.ship.multiplyItemAttr("agility", beacon.getModifiedItemAttr("agilityMultiplier"), stackingPenalties=True) + + return locals() + +def effect4282(): + type = "passive" + def handler(fit, module, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Hybrid Turret"), + "damageMultiplier", module.getModifiedItemAttr("subsystemBonusGallenteOffensive2"), + skill="Gallente Offensive Systems") + + return locals() + +def effect4283(): + type = "passive" + def handler(fit, module, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Hybrid Turret"), + "damageMultiplier", module.getModifiedItemAttr("subsystemBonusCaldariOffensive2"), + skill="Caldari Offensive Systems") + + return locals() + +def effect4286(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Remote Armor Repair Systems"), "capacitorNeed", + src.getModifiedItemAttr("subsystemBonusAmarrOffensive2"), skill="Amarr Offensive Systems") + + return locals() + +def effect4288(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Remote Armor Repair Systems"), "capacitorNeed", + src.getModifiedItemAttr("subsystemBonusGallenteOffensive2"), skill="Gallente Offensive Systems") + + return locals() + +def effect4290(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Emission Systems") or mod.item.requiresSkill("Remote Armor Repair Systems"), + "capacitorNeed", src.getModifiedItemAttr("subsystemBonusMinmatarOffensive2"), + skill="Minmatar Offensive Systems") + + return locals() + +def effect4292(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Emission Systems"), + "capacitorNeed", src.getModifiedItemAttr("subsystemBonusCaldariOffensive2"), + skill="Caldari Offensive Systems") + + return locals() + +def effect4321(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "ECM", "scanLadarStrengthBonus", + src.getModifiedItemAttr("subsystemBonusCaldariCore2"), skill="Caldari Core Systems") + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "ECM", "scanRadarStrengthBonus", + src.getModifiedItemAttr("subsystemBonusCaldariCore2"), skill="Caldari Core Systems") + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "ECM", "maxRange", + src.getModifiedItemAttr("subsystemBonusCaldariCore2"), skill="Caldari Core Systems") + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "ECM", "scanGravimetricStrengthBonus", + src.getModifiedItemAttr("subsystemBonusCaldariCore2"), skill="Caldari Core Systems") + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "ECM", "scanMagnetometricStrengthBonus", + src.getModifiedItemAttr("subsystemBonusCaldariCore2"), skill="Caldari Core Systems") + + return locals() + +def effect4327(): + type = "passive" + def handler(fit, src, context): + fit.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Drones"), + "hp", src.getModifiedItemAttr("subsystemBonusAmarrOffensive3"), skill="Amarr Offensive Systems") + fit.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Drones"), + "armorHP", src.getModifiedItemAttr("subsystemBonusAmarrOffensive3"), skill="Amarr Offensive Systems") + fit.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Drones"), + "shieldCapacity", src.getModifiedItemAttr("subsystemBonusAmarrOffensive3"), skill="Amarr Offensive Systems") + fit.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Drones"), + "damageMultiplier", src.getModifiedItemAttr("subsystemBonusAmarrOffensive3"), skill="Amarr Offensive Systems") + + return locals() + +def effect4330(): + type = "passive" + def handler(fit, module, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Energy Turret"), + "maxRange", module.getModifiedItemAttr("subsystemBonusAmarrOffensive3"), + skill="Amarr Offensive Systems") + + return locals() + +def effect4331(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Missiles") or mod.charge.requiresSkill("Heavy Assault Missiles"), + "maxVelocity", src.getModifiedItemAttr("subsystemBonusCaldariOffensive3"), + skill="Caldari Offensive Systems") + + return locals() + +def effect4342(): + type = "passive" + def handler(fit, src, context): + fit.ship.boostItemAttr("maxTargetRange", src.getModifiedItemAttr("subsystemBonusMinmatarCore2"), + skill="Minmatar Core Systems") + + return locals() + +def effect4343(): + type = "passive" + def handler(fit, src, context): + fit.ship.boostItemAttr("maxTargetRange", src.getModifiedItemAttr("subsystemBonusAmarrCore2"), + skill="Amarr Core Systems") + + return locals() + +def effect4347(): + type = "passive" + def handler(fit, module, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Hybrid Turret"), + "trackingSpeed", module.getModifiedItemAttr("subsystemBonusGallenteOffensive3"), + skill="Gallente Offensive Systems") + + return locals() + +def effect4351(): + type = "passive" + def handler(fit, module, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Projectile Turret"), + "trackingSpeed", module.getModifiedItemAttr("subsystemBonusMinmatarOffensive3"), + skill="Minmatar Offensive Systems") + + return locals() + +def effect4358(): + type = "passive" + def handler(fit, module, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "ECM", + "maxRange", module.getModifiedItemAttr("ecmRangeBonus"), + stackingPenalties=True) + + return locals() + +def effect4360(): + type = "passive" + def handler(fit, src, context): + groups = ("Missile Launcher Heavy", "Missile Launcher Rapid Light", "Missile Launcher Heavy Assault") + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name in groups, + "speed", src.getModifiedItemAttr("subsystemBonusAmarrOffensive"), skill="Amarr Offensive Systems") + + return locals() + +def effect4362(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill("Missile Launcher Operation"), + "explosiveDamage", src.getModifiedItemAttr("subsystemBonusAmarrOffensive2"), skill="Amarr Offensive Systems") + fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill("Missile Launcher Operation"), + "kineticDamage", src.getModifiedItemAttr("subsystemBonusAmarrOffensive2"), skill="Amarr Offensive Systems") + fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill("Missile Launcher Operation"), + "emDamage", src.getModifiedItemAttr("subsystemBonusAmarrOffensive2"), skill="Amarr Offensive Systems") + fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill("Missile Launcher Operation"), + "thermalDamage", src.getModifiedItemAttr("subsystemBonusAmarrOffensive2"), skill="Amarr Offensive Systems") + + return locals() + +def effect4366(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Hybrid Turret"), + "damageMultiplier", ship.getModifiedItemAttr("shipBonusCC2"), skill="Caldari Cruiser") + + return locals() + +def effect4369(): + type = "passive" + def handler(fit, module, context): + fit.ship.forceItemAttr("warpBubbleImmune", module.getModifiedItemAttr("warpBubbleImmuneModifier")) + + return locals() + +def effect4370(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "ECM", + "falloffEffectiveness", ship.getModifiedItemAttr("shipBonusCC2"), + skill="Caldari Cruiser") + + return locals() + +def effect4372(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "ECM", + "falloffEffectiveness", ship.getModifiedItemAttr("shipBonusCB3"), + skill="Caldari Battleship") + + return locals() + +def effect4373(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Skirmish Command"), + "buffDuration", src.getModifiedItemAttr("subsystemBonusAmarrOffensive"), skill="Amarr Offensive Systems") + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Skirmish Command"), + "warfareBuff2Value", src.getModifiedItemAttr("subsystemBonusAmarrOffensive"), skill="Amarr Offensive Systems") + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Skirmish Command"), + "warfareBuff3Value", src.getModifiedItemAttr("subsystemBonusAmarrOffensive"), skill="Amarr Offensive Systems") + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Skirmish Command"), + "warfareBuff1Value", src.getModifiedItemAttr("subsystemBonusAmarrOffensive"), skill="Amarr Offensive Systems") + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Skirmish Command"), + "warfareBuff4Value", src.getModifiedItemAttr("subsystemBonusAmarrOffensive"), skill="Amarr Offensive Systems") + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Armored Command"), + "warfareBuff3Value", src.getModifiedItemAttr("subsystemBonusAmarrOffensive"), skill="Amarr Offensive Systems") + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Armored Command"), + "warfareBuff1Value", src.getModifiedItemAttr("subsystemBonusAmarrOffensive"), skill="Amarr Offensive Systems") + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Armored Command"), + "warfareBuff4Value", src.getModifiedItemAttr("subsystemBonusAmarrOffensive"), skill="Amarr Offensive Systems") + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Armored Command"), + "warfareBuff2Value", src.getModifiedItemAttr("subsystemBonusAmarrOffensive"), skill="Amarr Offensive Systems") + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Armored Command"), + "buffDuration", src.getModifiedItemAttr("subsystemBonusAmarrOffensive"), skill="Amarr Offensive Systems") + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Information Command"), + "warfareBuff3Value", src.getModifiedItemAttr("subsystemBonusAmarrOffensive"), skill="Amarr Offensive Systems") + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Information Command"), + "warfareBuff1Value", src.getModifiedItemAttr("subsystemBonusAmarrOffensive"), skill="Amarr Offensive Systems") + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Information Command"), + "warfareBuff2Value", src.getModifiedItemAttr("subsystemBonusAmarrOffensive"), skill="Amarr Offensive Systems") + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Information Command"), + "buffDuration", src.getModifiedItemAttr("subsystemBonusAmarrOffensive"), skill="Amarr Offensive Systems") + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Information Command"), + "warfareBuff4Value", src.getModifiedItemAttr("subsystemBonusAmarrOffensive"), skill="Amarr Offensive Systems") + + return locals() + +def effect4377(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Torpedoes"), + "maxVelocity", ship.getModifiedItemAttr("shipBonusGF2"), skill="Gallente Frigate") + + return locals() + +def effect4378(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Torpedoes"), + "maxVelocity", ship.getModifiedItemAttr("shipBonusMF2"), skill="Minmatar Frigate") + + return locals() + +def effect4379(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Torpedoes"), + "maxVelocity", ship.getModifiedItemAttr("shipBonus2AF"), skill="Amarr Frigate") + + return locals() + +def effect4380(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Torpedoes"), + "maxVelocity", ship.getModifiedItemAttr("shipBonusCF2"), skill="Caldari Frigate") + + return locals() + +def effect4384(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Missiles"), + "maxVelocity", ship.getModifiedItemAttr("eliteBonusReconShip1"), + skill="Recon Ships") + + return locals() + +def effect4385(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Assault Missiles"), + "maxVelocity", ship.getModifiedItemAttr("eliteBonusReconShip1"), + skill="Recon Ships") + + return locals() + +def effect4393(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Torpedoes"), + "thermalDamage", ship.getModifiedItemAttr("eliteBonusCovertOps2"), + skill="Covert Ops") + + return locals() + +def effect4394(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Torpedoes"), + "emDamage", ship.getModifiedItemAttr("eliteBonusCovertOps2"), skill="Covert Ops") + + return locals() + +def effect4395(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Torpedoes"), + "explosiveDamage", ship.getModifiedItemAttr("eliteBonusCovertOps2"), + skill="Covert Ops") + + return locals() + +def effect4396(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Torpedoes"), + "kineticDamage", ship.getModifiedItemAttr("eliteBonusCovertOps2"), + skill="Covert Ops") + + return locals() + +def effect4397(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Torpedoes"), + "aoeVelocity", ship.getModifiedItemAttr("shipBonusGF"), skill="Gallente Frigate") + + return locals() + +def effect4398(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Torpedoes"), + "aoeVelocity", ship.getModifiedItemAttr("shipBonusMF"), skill="Minmatar Frigate") + + return locals() + +def effect4399(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Torpedoes"), + "aoeVelocity", ship.getModifiedItemAttr("shipBonusCF"), skill="Caldari Frigate") + + return locals() + +def effect4400(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Torpedoes"), + "aoeVelocity", ship.getModifiedItemAttr("shipBonusAF"), skill="Amarr Frigate") + + return locals() + +def effect4413(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Torpedoes"), + "explosionDelay", ship.getModifiedItemAttr("shipBonusGF"), skill="Gallente Frigate") + + return locals() + +def effect4415(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Torpedoes"), + "explosionDelay", ship.getModifiedItemAttr("shipBonusMF"), skill="Minmatar Frigate") + + return locals() + +def effect4416(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Torpedoes"), + "explosionDelay", ship.getModifiedItemAttr("shipBonusCF"), skill="Caldari Frigate") + + return locals() + +def effect4417(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Torpedoes"), + "explosionDelay", ship.getModifiedItemAttr("shipBonusAF"), skill="Amarr Frigate") + + return locals() + +def effect4451(): + type = "passive" + def handler(fit, implant, context): + fit.ship.increaseItemAttr("scanRadarStrength", implant.getModifiedItemAttr("scanRadarStrengthModifier")) + + return locals() + +def effect4452(): + type = "passive" + def handler(fit, implant, context): + fit.ship.increaseItemAttr("scanLadarStrength", implant.getModifiedItemAttr("scanLadarStrengthModifier")) + + return locals() + +def effect4453(): + type = "passive" + def handler(fit, implant, context): + fit.ship.increaseItemAttr("scanGravimetricStrength", implant.getModifiedItemAttr("scanGravimetricStrengthModifier")) + + return locals() + +def effect4454(): + type = "passive" + def handler(fit, implant, context): + fit.ship.increaseItemAttr("scanMagnetometricStrength", + implant.getModifiedItemAttr("scanMagnetometricStrengthModifier")) + + return locals() + +def effect4456(): + type = "passive" + runTime = "early" + def handler(fit, implant, context): + fit.appliedImplants.filteredItemMultiply(lambda target: target.item.requiresSkill("Cybernetics"), + "scanMagnetometricStrengthPercent", + implant.getModifiedItemAttr("implantSetFederationNavy")) + + return locals() + +def effect4457(): + type = "passive" + runTime = "early" + def handler(fit, implant, context): + fit.appliedImplants.filteredItemMultiply(lambda target: target.item.requiresSkill("Cybernetics"), + "scanRadarStrengthPercent", + implant.getModifiedItemAttr("implantSetImperialNavy")) + + return locals() + +def effect4458(): + runTime = "early" + type = "passive" + def handler(fit, implant, context): + fit.appliedImplants.filteredItemMultiply(lambda target: target.item.requiresSkill("Cybernetics"), + "scanLadarStrengthPercent", + implant.getModifiedItemAttr("implantSetRepublicFleet")) + + return locals() + +def effect4459(): + runTime = "early" + type = "passive" + def handler(fit, implant, context): + fit.appliedImplants.filteredItemMultiply(lambda target: target.item.requiresSkill("Cybernetics"), + "scanGravimetricStrengthPercent", + implant.getModifiedItemAttr("implantSetCaldariNavy")) + + return locals() + +def effect446(): + type = "passive" + def handler(fit, container, context): + level = container.level if "skill" in context else 1 + fit.ship.boostItemAttr("shieldCapacity", container.getModifiedItemAttr("shieldCapacityBonus") * level) + + return locals() + +def effect4460(): + type = "passive" + runTime = "early" + def handler(fit, implant, context): + fit.appliedImplants.filteredItemMultiply(lambda target: target.item.requiresSkill("Cybernetics"), + "scanRadarStrengthModifier", + implant.getModifiedItemAttr("implantSetLGImperialNavy")) + + return locals() + +def effect4461(): + type = "passive" + runTime = "early" + def handler(fit, implant, context): + fit.appliedImplants.filteredItemMultiply(lambda target: target.item.requiresSkill("Cybernetics"), + "scanMagnetometricStrengthModifier", + implant.getModifiedItemAttr("implantSetLGFederationNavy")) + + return locals() + +def effect4462(): + runTime = "early" + type = "passive" + def handler(fit, implant, context): + fit.appliedImplants.filteredItemMultiply(lambda target: target.item.requiresSkill("Cybernetics"), + "scanGravimetricStrengthModifier", + implant.getModifiedItemAttr("implantSetLGCaldariNavy")) + + return locals() + +def effect4463(): + runTime = "early" + type = "passive" + def handler(fit, implant, context): + fit.appliedImplants.filteredItemMultiply(lambda target: target.item.requiresSkill("Cybernetics"), + "scanLadarStrengthModifier", + implant.getModifiedItemAttr("implantSetLGRepublicFleet")) + + return locals() + +def effect4464(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Projectile Turret"), "speed", + src.getModifiedItemAttr("shipBonusMF"), stackingPenalties=True, skill="Minmatar Frigate") + + return locals() + +def effect4471(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Stasis Web", + "maxRange", ship.getModifiedItemAttr("shipBonusMF2"), skill="Minmatar Frigate") + + return locals() + +def effect4472(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Projectile Turret"), + "damageMultiplier", ship.getModifiedItemAttr("shipBonusMC"), skill="Minmatar Cruiser") + + return locals() + +def effect4473(): + type = "passive" + def handler(fit, ship, context): + fit.ship.boostItemAttr("maxVelocity", ship.getModifiedItemAttr("shipBonusATC1")) + + return locals() + +def effect4474(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Projectile Turret"), + "maxRange", ship.getModifiedItemAttr("shipBonusATC2")) + + return locals() + +def effect4475(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Projectile Turret"), + "falloff", ship.getModifiedItemAttr("shipBonusATC2")) + + return locals() + +def effect4476(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Projectile Turret"), + "falloff", ship.getModifiedItemAttr("shipBonusATF2")) + + return locals() + +def effect4477(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Projectile Turret"), + "maxRange", ship.getModifiedItemAttr("shipBonusATF2")) + + return locals() + +def effect4478(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Propulsion Module", + "capacitorNeed", ship.getModifiedItemAttr("shipBonusATF1")) + + return locals() + +def effect4479(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.group.name == "Survey Probe", + "explosionDelay", ship.getModifiedItemAttr("eliteBonusCovertOps3"), + skill="Covert Ops") + + return locals() + +def effect4482(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Energy Turret"), + "maxRange", ship.getModifiedItemAttr("shipBonus2AF"), skill="Amarr Frigate") + + return locals() + +def effect4484(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Large Projectile Turret"), + "falloff", ship.getModifiedItemAttr("shipBonusGB"), skill="Gallente Battleship") + + return locals() + +def effect4485(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Stasis Web", + "speedFactor", ship.getModifiedItemAttr("shipBonusMB"), skill="Minmatar Battleship") + + return locals() + +def effect4489(): + type = 'active' + def handler(fit, module, context): + pass + + return locals() + +def effect4490(): + type = 'active' + def handler(fit, module, context): + pass + + return locals() + +def effect4491(): + type = 'active' + def handler(fit, module, context): + pass + + return locals() + +def effect4492(): + type = 'active' + def handler(fit, module, context): + pass + + return locals() + +def effect4510(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Stasis Web", + "speedFactor", ship.getModifiedItemAttr("shipBonusMC2"), skill="Minmatar Cruiser") + + return locals() + +def effect4512(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Projectile Turret"), + "falloff", ship.getModifiedItemAttr("shipBonusGC"), skill="Gallente Cruiser") + + return locals() + +def effect4513(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Stasis Web", + "speedFactor", ship.getModifiedItemAttr("shipBonusMF2"), skill="Minmatar Frigate") + + return locals() + +def effect4515(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Projectile Turret"), + "falloff", ship.getModifiedItemAttr("shipBonusMF"), skill="Minmatar Frigate") + + return locals() + +def effect4516(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Hybrid Turret"), + "falloff", ship.getModifiedItemAttr("shipBonusGC"), skill="Gallente Cruiser") + + return locals() + +def effect4527(): + type = "passive" + def handler(fit, module, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Gunnery"), + "falloff", module.getModifiedItemAttr("falloffBonus"), + stackingPenalties=True) + + return locals() + +def effect4555(): + type = "passive" + def handler(fit, skill, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("XL Cruise Missiles"), + "emDamage", skill.getModifiedItemAttr("damageMultiplierBonus") * skill.level) + + return locals() + +def effect4556(): + type = "passive" + def handler(fit, skill, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("XL Cruise Missiles"), + "explosiveDamage", skill.getModifiedItemAttr("damageMultiplierBonus") * skill.level) + + return locals() + +def effect4557(): + type = "passive" + def handler(fit, skill, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("XL Cruise Missiles"), + "kineticDamage", skill.getModifiedItemAttr("damageMultiplierBonus") * skill.level) + + return locals() + +def effect4558(): + type = "passive" + def handler(fit, skill, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("XL Cruise Missiles"), + "thermalDamage", skill.getModifiedItemAttr("damageMultiplierBonus") * skill.level) + + return locals() + +def effect4559(): + type = "active" + def handler(fit, module, context): + for attr in ("maxRange", "falloff", "trackingSpeed"): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Gunnery"), + attr, module.getModifiedItemAttr("%sBonus" % attr), + stackingPenalties=True) + + return locals() + +def effect4575(): + type = "active" + runTime = "early" + def handler(fit, src, context): + fit.extraAttributes["siege"] = True + fit.ship.boostItemAttr("maxVelocity", src.getModifiedItemAttr("speedFactor"), stackingPenalties=True) + fit.ship.multiplyItemAttr("mass", src.getModifiedItemAttr("siegeMassMultiplier")) + fit.ship.multiplyItemAttr("scanResolution", + src.getModifiedItemAttr("scanResolutionMultiplier"), + stackingPenalties=True) + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capital Shield Emission Systems"), + "duration", + src.getModifiedItemAttr("industrialCoreRemoteLogisticsDurationBonus"), + ) + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capital Shield Emission Systems"), + "maxRange", + src.getModifiedItemAttr("industrialCoreRemoteLogisticsRangeBonus"), + stackingPenalties=True + ) + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capital Shield Emission Systems"), + "capacitorNeed", + src.getModifiedItemAttr("industrialCoreRemoteLogisticsDurationBonus") + ) + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capital Shield Emission Systems"), + "falloffEffectiveness", + src.getModifiedItemAttr("industrialCoreRemoteLogisticsRangeBonus"), + stackingPenalties=True + ) + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capital Shield Operation"), + "duration", + src.getModifiedItemAttr("industrialCoreLocalLogisticsDurationBonus"), + ) + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capital Shield Operation"), + "shieldBonus", + src.getModifiedItemAttr("industrialCoreLocalLogisticsAmountBonus"), + stackingPenalties=True + ) + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Mining Foreman"), + "warfareBuff1Value", + src.getModifiedItemAttr("industrialCoreBonusMiningBurstStrength"), + ) + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Mining Foreman"), + "warfareBuff2Value", + src.getModifiedItemAttr("industrialCoreBonusMiningBurstStrength"), + ) + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Mining Foreman"), + "warfareBuff3Value", + src.getModifiedItemAttr("industrialCoreBonusMiningBurstStrength"), + ) + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Mining Foreman"), + "warfareBuff4Value", + src.getModifiedItemAttr("industrialCoreBonusMiningBurstStrength"), + ) + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Leadership"), + "maxRange", + src.getModifiedItemAttr("industrialCoreBonusCommandBurstRange"), + stackingPenalties=True + ) + fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Ice Harvesting Drone Operation"), + "duration", + src.getModifiedItemAttr("industrialCoreBonusDroneIceHarvesting"), + ) + fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Mining Drone Operation"), + "miningAmount", + src.getModifiedItemAttr("industrialCoreBonusDroneMining"), + ) + fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Drones"), + "maxVelocity", + src.getModifiedItemAttr("industrialCoreBonusDroneVelocity"), + ) + fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Drones"), + "damageMultiplier", + src.getModifiedItemAttr("industrialCoreBonusDroneDamageHP"), + stackingPenalties=True + ) + fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Drones"), + "shieldCapacity", + src.getModifiedItemAttr("industrialCoreBonusDroneDamageHP"), + ) + fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Drones"), + "armorHP", + src.getModifiedItemAttr("industrialCoreBonusDroneDamageHP"), + ) + fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Drones"), + "hp", + src.getModifiedItemAttr("industrialCoreBonusDroneDamageHP"), + ) + fit.ship.increaseItemAttr("warpScrambleStatus", src.getModifiedItemAttr("siegeModeWarpStatus")) + fit.ship.boostItemAttr("remoteRepairImpedance", src.getModifiedItemAttr("remoteRepairImpedanceBonus")) + fit.ship.increaseItemAttr("disallowTethering", src.getModifiedItemAttr("disallowTethering")) + fit.ship.boostItemAttr("sensorDampenerResistance", src.getModifiedItemAttr("sensorDampenerResistanceBonus")) + fit.ship.boostItemAttr("remoteAssistanceImpedance", src.getModifiedItemAttr("remoteAssistanceImpedanceBonus")) + fit.ship.increaseItemAttr("disallowDocking", src.getModifiedItemAttr("disallowDocking")) + + return locals() + +def effect4576(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Remote Tracking Computer", + "falloffBonus", ship.getModifiedItemAttr("eliteBonusLogistics1"), + skill="Logistics Cruisers") + + return locals() + +def effect4577(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Remote Tracking Computer", + "falloffBonus", ship.getModifiedItemAttr("eliteBonusLogistics2"), + skill="Logistics Cruisers") + + return locals() + +def effect4579(): + type = "passive" + def handler(fit, module, context): + fit.drones.filteredItemBoost(lambda drone: drone.item.group.name == "Stasis Webifying Drone", + "speedFactor", module.getModifiedItemAttr("webSpeedFactorBonus")) + + return locals() + +def effect4619(): + type = "passive" + def handler(fit, ship, context): + fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Drones"), + "damageMultiplier", ship.getModifiedItemAttr("shipBonusGF2"), skill="Gallente Frigate") + + return locals() + +def effect4620(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Warp Scrambler", + "maxRange", ship.getModifiedItemAttr("shipBonusGF2"), skill="Gallente Frigate") + + return locals() + +def effect4621(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: True, "heatDamage", + ship.getModifiedItemAttr("shipBonusATF1")) + + return locals() + +def effect4622(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Hybrid Turret"), + "maxRange", ship.getModifiedItemAttr("shipBonusATF2")) + + return locals() + +def effect4623(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Hybrid Turret"), + "trackingSpeed", ship.getModifiedItemAttr("shipBonusATF2")) + + return locals() + +def effect4624(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Hybrid Turret"), + "trackingSpeed", ship.getModifiedItemAttr("shipBonusATC2")) + + return locals() + +def effect4625(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Hybrid Turret"), + "falloff", ship.getModifiedItemAttr("shipBonusATC2")) + + return locals() + +def effect4626(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Warp Scrambler", + "maxRange", ship.getModifiedItemAttr("shipBonusGC2"), skill="Gallente Cruiser") + + return locals() + +def effect4635(): + type = "passive" + def handler(fit, ship, context): + damageTypes = ("em", "explosive", "kinetic", "thermal") + for damageType in damageTypes: + fit.modules.filteredChargeBoost( + lambda mod: mod.charge.requiresSkill("Cruise Missiles") or mod.charge.requiresSkill("Torpedoes"), + "{0}Damage".format(damageType), ship.getModifiedItemAttr("eliteBonusViolatorsRole1")) + + return locals() + +def effect4636(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredChargeBoost( + lambda mod: mod.charge.requiresSkill("Cruise Missiles") or mod.charge.requiresSkill("Torpedoes"), + "aoeVelocity", ship.getModifiedItemAttr("shipBonus2CB"), skill="Caldari Battleship") + + return locals() + +def effect4637(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredChargeBoost( + lambda mod: mod.charge.requiresSkill("Cruise Missiles") or mod.charge.requiresSkill("Torpedoes"), + "maxVelocity", ship.getModifiedItemAttr("shipBonusCB3"), skill="Caldari Battleship") + + return locals() + +def effect4640(): + type = "passive" + def handler(fit, ship, context): + damageTypes = ("Em", "Explosive", "Kinetic", "Thermal") + for damageType in damageTypes: + fit.ship.boostItemAttr("armor{0}DamageResonance".format(damageType), ship.getModifiedItemAttr("shipBonusAC2"), + skill="Amarr Cruiser") + + return locals() + +def effect4643(): + type = "passive" + def handler(fit, ship, context): + damageTypes = ("em", "explosive", "kinetic", "thermal") + for damageType in damageTypes: + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Assault Missiles"), + "{0}Damage".format(damageType), ship.getModifiedItemAttr("shipBonusAC"), + skill="Amarr Cruiser") + + return locals() + +def effect4645(): + type = "passive" + def handler(fit, ship, context): + groups = ("Missile Launcher Rapid Light", "Missile Launcher Heavy Assault", "Missile Launcher Heavy") + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name in groups, + "speed", ship.getModifiedItemAttr("eliteBonusHeavyGunship2"), + skill="Heavy Assault Cruisers") + + return locals() + +def effect4648(): + type = "passive" + def handler(fit, ship, context): + sensorTypes = ("Gravimetric", "Ladar", "Magnetometric", "Radar") + for type in sensorTypes: + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "ECM", "scan{0}StrengthBonus".format(type), + ship.getModifiedItemAttr("eliteBonusBlackOps1"), skill="Black Ops") + + return locals() + +def effect4649(): + type = "passive" + def handler(fit, ship, context): + affectedGroups = ("Missile Launcher Cruise", "Missile Launcher Torpedo") + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name in affectedGroups, + "speed", ship.getModifiedItemAttr("shipBonus2CB"), skill="Caldari Battleship") + + return locals() + +def effect4667(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Salvaging"), + "duration", ship.getModifiedItemAttr("shipBonusOreIndustrial1"), + skill="ORE Industrial") + + return locals() + +def effect4668(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Tractor Beam", + "duration", ship.getModifiedItemAttr("shipBonusOreIndustrial1"), + skill="ORE Industrial") + + return locals() + +def effect4669(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Tractor Beam", + "maxTractorVelocity", ship.getModifiedItemAttr("shipBonusOreIndustrial2"), + skill="ORE Industrial") + + return locals() + +def effect4670(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Tractor Beam", + "maxRange", ship.getModifiedItemAttr("shipBonusOreIndustrial2"), + skill="ORE Industrial") + + return locals() + +def effect4728(): + runTime = "early" + type = ("projected", "passive") + def handler(fit, beacon, context): + damages = ("em", "thermal", "kinetic", "explosive") + for damage in damages: + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), + "{0}Damage".format(damage), + beacon.getModifiedItemAttr("systemEffectDamageReduction")) + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Smart Bomb", + "{0}Damage".format(damage), + beacon.getModifiedItemAttr("systemEffectDamageReduction")) + fit.ship.boostItemAttr("armor{0}DamageResonance".format(damage.capitalize()), + beacon.getModifiedItemAttr("armor{0}DamageResistanceBonus".format(damage.capitalize()))) + fit.ship.boostItemAttr("shield{0}DamageResonance".format(damage.capitalize()), + beacon.getModifiedItemAttr("shield{0}DamageResistanceBonus".format(damage.capitalize()))) + fit.drones.filteredItemBoost(lambda drone: True, + "damageMultiplier", beacon.getModifiedItemAttr("systemEffectDamageReduction")) + fit.modules.filteredItemBoost(lambda module: module.item.requiresSkill("Gunnery"), + "damageMultiplier", beacon.getModifiedItemAttr("systemEffectDamageReduction")) + + return locals() + +def effect4760(): + type = "passive" + def handler(fit, src, context): + fit.ship.boostItemAttr("warpCapacitorNeed", src.getModifiedItemAttr("subsystemBonusCaldariPropulsion"), + skill="Caldari Propulsion Systems") + + return locals() + +def effect4775(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Neutralizer", + "energyNeutralizerAmount", ship.getModifiedItemAttr("shipBonus2AF"), + skill="Amarr Frigate") + + return locals() + +def effect4782(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Energy Turret"), + "maxRange", ship.getModifiedItemAttr("shipBonusATF2")) + + return locals() + +def effect4789(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Energy Turret"), + "damageMultiplier", ship.getModifiedItemAttr("shipBonusATF1")) + + return locals() + +def effect4793(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Missile Launcher Heavy", + "speed", ship.getModifiedItemAttr("shipBonusATC1")) + + return locals() + +def effect4794(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Missile Launcher Rapid Light", + "speed", ship.getModifiedItemAttr("shipBonusATC1")) + + return locals() + +def effect4795(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Missile Launcher Heavy Assault", + "speed", ship.getModifiedItemAttr("shipBonusATC1")) + + return locals() + +def effect4799(): + type = "passive" + def handler(fit, ship, context): + sensorTypes = ("Gravimetric", "Ladar", "Magnetometric", "Radar") + for type in sensorTypes: + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Burst Jammer", + "scan{0}StrengthBonus".format(type), + ship.getModifiedItemAttr("eliteBonusBlackOps1"), skill="Black Ops") + + return locals() + +def effect48(): + type = "active" + def handler(fit, module, context): + module.reloadTime = 10000 + module.forceReload = True + if module.charge is None: + return + capAmount = module.getModifiedChargeAttr("capacitorBonus") or 0 + module.itemModifiedAttributes["capacitorNeed"] = -capAmount + + return locals() + +def effect4804(): + type = "passive" + def handler(fit, skill, context): + fit.modules.filteredItemMultiply(lambda mod: mod.item.requiresSkill(skill), "accessDifficultyBonus", + skill.getModifiedItemAttr("accessDifficultyBonusAbsolutePercent") * skill.level) + + return locals() + +def effect4809(): + type = "passive" + def handler(fit, module, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "ECM", + "scanGravimetricStrengthBonus", module.getModifiedItemAttr("ecmStrengthBonusPercent"), + stackingPenalties=True) + + return locals() + +def effect4810(): + type = "passive" + def handler(fit, module, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "ECM", + "scanLadarStrengthBonus", module.getModifiedItemAttr("ecmStrengthBonusPercent"), + stackingPenalties=True) + + return locals() + +def effect4811(): + type = "passive" + def handler(fit, module, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "ECM", + "scanMagnetometricStrengthBonus", + module.getModifiedItemAttr("ecmStrengthBonusPercent"), + stackingPenalties=True) + + return locals() + +def effect4812(): + type = "passive" + def handler(fit, module, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "ECM", + "scanRadarStrengthBonus", module.getModifiedItemAttr("ecmStrengthBonusPercent"), + stackingPenalties=True) + + return locals() + +def effect4814(): + type = "passive" + def handler(fit, skill, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill(skill), "consumptionQuantity", + skill.getModifiedItemAttr("consumptionQuantityBonusPercent") * skill.level) + + return locals() + +def effect4817(): + type = "passive" + def handler(fit, implant, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Salvager", + "duration", implant.getModifiedItemAttr("durationBonus")) + + return locals() + +def effect4820(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemMultiply(lambda mod: mod.item.requiresSkill("Large Energy Turret"), + "power", ship.getModifiedItemAttr("bcLargeTurretPower")) + + return locals() + +def effect4821(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemMultiply(lambda mod: mod.item.requiresSkill("Large Hybrid Turret"), + "power", ship.getModifiedItemAttr("bcLargeTurretPower")) + + return locals() + +def effect4822(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemMultiply(lambda mod: mod.item.requiresSkill("Large Projectile Turret"), + "power", ship.getModifiedItemAttr("bcLargeTurretPower")) + + return locals() + +def effect4823(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemMultiply(lambda mod: mod.item.requiresSkill("Large Energy Turret"), + "cpu", ship.getModifiedItemAttr("bcLargeTurretCPU")) + + return locals() + +def effect4824(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemMultiply(lambda mod: mod.item.requiresSkill("Large Hybrid Turret"), + "cpu", ship.getModifiedItemAttr("bcLargeTurretCPU")) + + return locals() + +def effect4825(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemMultiply(lambda mod: mod.item.requiresSkill("Large Projectile Turret"), + "cpu", ship.getModifiedItemAttr("bcLargeTurretCPU")) + + return locals() + +def effect4826(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemMultiply(lambda mod: mod.item.requiresSkill("Large Energy Turret"), + "capacitorNeed", ship.getModifiedItemAttr("bcLargeTurretCap")) + + return locals() + +def effect4827(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemMultiply(lambda mod: mod.item.requiresSkill("Large Hybrid Turret"), + "capacitorNeed", ship.getModifiedItemAttr("bcLargeTurretCap")) + + return locals() + +def effect485(): + type = "passive" + def handler(fit, container, context): + level = container.level if "skill" in context else 1 + fit.ship.boostItemAttr("rechargeRate", container.getModifiedItemAttr("capRechargeBonus") * level) + + return locals() + +def effect486(): + type = "passive" + def handler(fit, container, context): + level = container.level if "skill" in context else 1 + fit.ship.boostItemAttr("shieldRechargeRate", container.getModifiedItemAttr("rechargeratebonus") * level) + + return locals() + +def effect4867(): + runTime = "early" + type = "passive" + def handler(fit, implant, context): + fit.appliedImplants.filteredItemMultiply(lambda mod: mod.item.group.name == "Special Edition Implant", + "powerEngineeringOutputBonus", + implant.getModifiedItemAttr("implantSetChristmas")) + + return locals() + +def effect4868(): + runTime = "early" + type = "passive" + def handler(fit, implant, context): + fit.appliedImplants.filteredItemMultiply(lambda mod: mod.item.group.name == "Special Edition Implant", + "capacitorCapacityBonus", + implant.getModifiedItemAttr("implantSetChristmas")) + + return locals() + +def effect4869(): + runTime = "early" + type = "passive" + def handler(fit, implant, context): + fit.appliedImplants.filteredItemMultiply(lambda mod: mod.item.group.name == "Special Edition Implant", + "cpuOutputBonus2", implant.getModifiedItemAttr("implantSetChristmas")) + + return locals() + +def effect4871(): + runTime = "early" + type = "passive" + def handler(fit, implant, context): + fit.appliedImplants.filteredItemMultiply(lambda mod: mod.item.group.name == "Special Edition Implant", + "capRechargeBonus", implant.getModifiedItemAttr("implantSetChristmas")) + + return locals() + +def effect4896(): + type = "passive" + def handler(fit, ship, context): + fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Drones"), + "hp", ship.getModifiedItemAttr("shipBonusGF2"), skill="Gallente Frigate") + + return locals() + +def effect4897(): + type = "passive" + def handler(fit, ship, context): + fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Drones"), + "armorHP", ship.getModifiedItemAttr("shipBonusGF2"), skill="Gallente Frigate") + + return locals() + +def effect4898(): + type = "passive" + def handler(fit, ship, context): + fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Drones"), + "shieldCapacity", ship.getModifiedItemAttr("shipBonusGF2"), skill="Gallente Frigate") + + return locals() + +def effect490(): + type = "passive" + def handler(fit, container, context): + level = container.level if "skill" in context else 1 + fit.ship.boostItemAttr("powerOutput", container.getModifiedItemAttr("powerEngineeringOutputBonus") * level) + + return locals() + +def effect4901(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Missile Launcher Operation"), + "speed", ship.getModifiedItemAttr("shipBonus2AF"), skill="Amarr Frigate") + + return locals() + +def effect4902(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("High Speed Maneuvering"), + "signatureRadiusBonus", ship.getModifiedItemAttr("MWDSignatureRadiusBonus")) + + return locals() + +def effect4906(): + runTime = "early" + type = ("projected", "passive") + def handler(fit, beacon, context): + fit.drones.filteredItemMultiply(lambda drone: drone.item.requiresSkill("Fighters"), + "damageMultiplier", beacon.getModifiedItemAttr("damageMultiplierMultiplier"), + stackingPenalties=True, penaltyGroup="postMul") + + return locals() + +def effect4911(): + type = "passive" + def handler(fit, module, context): + fit.ship.multiplyItemAttr("shieldRechargeRate", module.getModifiedItemAttr("shieldRechargeRateMultiplier")) + + return locals() + +def effect4921(): + type = "active" + def handler(fit, module, context): + fit.ship.boostItemAttr("signatureRadius", module.getModifiedItemAttr("signatureRadiusBonusPercent")) + + return locals() + +def effect4923(): + type = "passive" + def handler(fit, skill, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Micro Jump Drive Operation"), + "duration", skill.getModifiedItemAttr("durationBonus") * skill.level) + + return locals() + +def effect4928(): + from logbook import Logger + import eos.config + pyfalog = Logger(__name__) + runTime = "late" + type = "active" + def handler(fit, module, context): + damagePattern = fit.damagePattern + static_adaptive_behavior = eos.config.settings['useStaticAdaptiveArmorHardener'] + if (damagePattern.emAmount == damagePattern.thermalAmount == damagePattern.kineticAmount == damagePattern.explosiveAmount) and static_adaptive_behavior: + for attr in ("armorEmDamageResonance", "armorThermalDamageResonance", "armorKineticDamageResonance", "armorExplosiveDamageResonance"): + fit.ship.multiplyItemAttr(attr, module.getModifiedItemAttr(attr), stackingPenalties=True, penaltyGroup="preMul") + return + if damagePattern: + baseDamageTaken = ( + damagePattern.emAmount * fit.ship.getModifiedItemAttr('armorEmDamageResonance'), + damagePattern.thermalAmount * fit.ship.getModifiedItemAttr('armorThermalDamageResonance'), + damagePattern.kineticAmount * fit.ship.getModifiedItemAttr('armorKineticDamageResonance'), + damagePattern.explosiveAmount * fit.ship.getModifiedItemAttr('armorExplosiveDamageResonance'), + ) + resistanceShiftAmount = module.getModifiedItemAttr( + 'resistanceShiftAmount') / 100 # The attribute is in percent and we want a fraction + RAHResistance = [ + module.getModifiedItemAttr('armorEmDamageResonance'), + module.getModifiedItemAttr('armorThermalDamageResonance'), + module.getModifiedItemAttr('armorKineticDamageResonance'), + module.getModifiedItemAttr('armorExplosiveDamageResonance'), + ] + cycleList = [] + loopStart = -20 + for num in range(50): + damagePattern_tuples = [ + (0, baseDamageTaken[0] * RAHResistance[0], RAHResistance[0]), + (3, baseDamageTaken[3] * RAHResistance[3], RAHResistance[3]), + (2, baseDamageTaken[2] * RAHResistance[2], RAHResistance[2]), + (1, baseDamageTaken[1] * RAHResistance[1], RAHResistance[1]), + ] + sortedDamagePattern_tuples = sorted(damagePattern_tuples, key=lambda damagePattern: damagePattern[1]) + if sortedDamagePattern_tuples[2][1] == 0: + change0 = 1 - sortedDamagePattern_tuples[0][2] + change1 = 1 - sortedDamagePattern_tuples[1][2] + change2 = 1 - sortedDamagePattern_tuples[2][2] + change3 = -(change0 + change1 + change2) + elif sortedDamagePattern_tuples[1][1] == 0: + change0 = 1 - sortedDamagePattern_tuples[0][2] + change1 = 1 - sortedDamagePattern_tuples[1][2] + change2 = -(change0 + change1) / 2 + change3 = -(change0 + change1) / 2 + else: + change0 = min(resistanceShiftAmount, 1 - sortedDamagePattern_tuples[0][2]) + change1 = min(resistanceShiftAmount, 1 - sortedDamagePattern_tuples[1][2]) + change2 = -(change0 + change1) / 2 + change3 = -(change0 + change1) / 2 + RAHResistance[sortedDamagePattern_tuples[0][0]] = sortedDamagePattern_tuples[0][2] + change0 + RAHResistance[sortedDamagePattern_tuples[1][0]] = sortedDamagePattern_tuples[1][2] + change1 + RAHResistance[sortedDamagePattern_tuples[2][0]] = sortedDamagePattern_tuples[2][2] + change2 + RAHResistance[sortedDamagePattern_tuples[3][0]] = sortedDamagePattern_tuples[3][2] + change3 + for i, val in enumerate(cycleList): + tolerance = 1e-06 + if abs(RAHResistance[0] - val[0]) <= tolerance and \ + abs(RAHResistance[1] - val[1]) <= tolerance and \ + abs(RAHResistance[2] - val[2]) <= tolerance and \ + abs(RAHResistance[3] - val[3]) <= tolerance: + loopStart = i + break + if loopStart >= 0: + break + cycleList.append(list(RAHResistance)) + loopCycles = cycleList[loopStart:] + numCycles = len(loopCycles) + average = [0, 0, 0, 0] + for cycle in loopCycles: + for i in range(4): + average[i] += cycle[i] + for i in range(4): + average[i] = round(average[i] / numCycles, 3) + for i, attr in enumerate(( + 'armorEmDamageResonance', 'armorThermalDamageResonance', 'armorKineticDamageResonance', + 'armorExplosiveDamageResonance')): + module.increaseItemAttr(attr, average[i] - module.getModifiedItemAttr(attr)) + fit.ship.multiplyItemAttr(attr, average[i], stackingPenalties=True, penaltyGroup="preMul") + + return locals() + +def effect4934(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Repair Systems"), + "armorDamageAmount", ship.getModifiedItemAttr("shipBonusGF2"), + skill="Gallente Frigate") + + return locals() + +def effect4936(): + runTime = "late" + type = "active" + def handler(fit, module, context): + amount = module.getModifiedItemAttr("shieldBonus") + speed = module.getModifiedItemAttr("duration") / 1000.0 + fit.extraAttributes.increase("shieldRepair", amount / speed) + + return locals() + +def effect494(): + type = "passive" + def handler(fit, container, context): + level = container.level if "skill" in context else 1 + fit.ship.boostItemAttr("warpCapacitorNeed", container.getModifiedItemAttr("warpCapacitorNeedBonus") * level, + stackingPenalties="skill" not in context) + + return locals() + +def effect4941(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Hybrid Turret"), + "damageMultiplier", ship.getModifiedItemAttr("shipBonusCF2"), skill="Caldari Frigate") + + return locals() + +def effect4942(): + type = "active" + def handler(fit, module, context): + pass + + return locals() + +def effect4945(): + type = "passive" + def handler(fit, skill, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Target Breaker", + "duration", skill.getModifiedItemAttr("durationBonus") * skill.level) + + return locals() + +def effect4946(): + type = "passive" + def handler(fit, skill, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Target Breaker", + "capacitorNeed", skill.getModifiedItemAttr("capNeedBonus") * skill.level) + + return locals() + +def effect4950(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Operation"), + "shieldBonus", ship.getModifiedItemAttr("shipBonusMB"), skill="Minmatar Battleship") + + return locals() + +def effect4951(): + type = "passive" + def handler(fit, container, context): + fit.modules.filteredItemBoost( + lambda mod: mod.item.requiresSkill("Shield Operation") or mod.item.requiresSkill("Capital Shield Operation"), + "shieldBonus", container.getModifiedItemAttr("shieldBoostMultiplier")) + + return locals() + +def effect4961(): + runTime = "early" + type = ("projected", "passive") + def handler(fit, module, context): + fit.modules.filteredItemMultiply(lambda mod: mod.item.requiresSkill("Shield Operation") or + mod.item.requiresSkill("Capital Shield Operation"), + "shieldBonus", module.getModifiedItemAttr("shieldBonusMultiplier"), + stackingPenalties=True, penaltyGroup="postMul") + + return locals() + +def effect4967(): + type = "passive" + def handler(fit, module, context): + fit.modules.filteredItemBoost( + lambda mod: mod.item.requiresSkill("Shield Operation") or mod.item.requiresSkill("Capital Shield Operation"), + "duration", module.getModifiedItemAttr("durationSkillBonus")) + + return locals() + +def effect4970(): + type = "boosterSideEffect" + displayName = "Shield Boost" + attr = "boosterShieldBoostAmountPenalty" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Operation"), "shieldBonus", + src.getModifiedItemAttr("boosterShieldBoostAmountPenalty")) + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capital Shield Operation"), "shieldBonus", + src.getModifiedItemAttr("boosterShieldBoostAmountPenalty")) + + return locals() + +def effect4972(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Missile Launcher Light", + "speed", ship.getModifiedItemAttr("eliteBonusGunship1"), skill="Assault Frigates") + + return locals() + +def effect4973(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Missile Launcher Rocket", + "speed", ship.getModifiedItemAttr("eliteBonusGunship1"), skill="Assault Frigates") + + return locals() + +def effect4974(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Operation"), + "shieldBonus", ship.getModifiedItemAttr("eliteBonusViolators2"), skill="Marauders") + + return locals() + +def effect4975(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), + "kineticDamage", ship.getModifiedItemAttr("shipBonusATF2")) + + return locals() + +def effect4976(): + type = "passive" + def handler(fit, src, context): + lvl = src.level + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Armor Resistance Shift Hardener", "duration", + src.getModifiedItemAttr("durationBonus") * lvl) + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Resistance Phasing"), "duration", + src.getModifiedItemAttr("durationBonus") * lvl) + + return locals() + +def effect4989(): + type = "passive" + def handler(fit, implant, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), + "aoeCloudSize", implant.getModifiedItemAttr("aoeCloudSizeBonus")) + + return locals() + +def effect4990(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Energy Turret"), + "capacitorNeed", ship.getModifiedItemAttr("rookieSETCapBonus")) + + return locals() + +def effect4991(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Energy Turret"), + "damageMultiplier", ship.getModifiedItemAttr("rookieSETDamageBonus")) + + return locals() + +def effect4994(): + type = "passive" + def handler(fit, ship, context): + fit.ship.boostItemAttr("armorEmDamageResonance", ship.getModifiedItemAttr("rookieArmorResistanceBonus")) + + return locals() + +def effect4995(): + type = "passive" + def handler(fit, ship, context): + fit.ship.boostItemAttr("armorExplosiveDamageResonance", ship.getModifiedItemAttr("rookieArmorResistanceBonus")) + + return locals() + +def effect4996(): + type = "passive" + def handler(fit, ship, context): + fit.ship.boostItemAttr("armorKineticDamageResonance", ship.getModifiedItemAttr("rookieArmorResistanceBonus")) + + return locals() + +def effect4997(): + type = "passive" + def handler(fit, ship, context): + fit.ship.boostItemAttr("armorThermalDamageResonance", ship.getModifiedItemAttr("rookieArmorResistanceBonus")) + + return locals() + +def effect4999(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Hybrid Turret"), + "maxRange", ship.getModifiedItemAttr("rookieSHTOptimalBonus")) + + return locals() + +def effect50(): + type = "passive" + def handler(fit, module, context): + fit.ship.multiplyItemAttr("shieldRechargeRate", module.getModifiedItemAttr("shieldRechargeRateMultiplier") or 1) + + return locals() + +def effect5000(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), + "kineticDamage", ship.getModifiedItemAttr("rookieMissileKinDamageBonus")) + + return locals() + +def effect5008(): + type = "passive" + def handler(fit, ship, context): + fit.ship.boostItemAttr("shieldEmDamageResonance", ship.getModifiedItemAttr("rookieShieldResistBonus")) + + return locals() + +def effect5009(): + type = "passive" + def handler(fit, ship, context): + fit.ship.boostItemAttr("shieldExplosiveDamageResonance", ship.getModifiedItemAttr("rookieShieldResistBonus")) + + return locals() + +def effect5011(): + type = "passive" + def handler(fit, ship, context): + fit.ship.boostItemAttr("shieldKineticDamageResonance", ship.getModifiedItemAttr("rookieShieldResistBonus")) + + return locals() + +def effect5012(): + type = "passive" + def handler(fit, ship, context): + fit.ship.boostItemAttr("shieldThermalDamageResonance", ship.getModifiedItemAttr("rookieShieldResistBonus")) + + return locals() + +def effect5013(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Hybrid Turret"), + "damageMultiplier", ship.getModifiedItemAttr("rookieSHTDamageBonus")) + + return locals() + +def effect5014(): + type = "passive" + def handler(fit, ship, context): + fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Drones"), + "damageMultiplier", ship.getModifiedItemAttr("rookieDroneBonus")) + + return locals() + +def effect5015(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Sensor Dampener", + "maxTargetRangeBonus", ship.getModifiedItemAttr("rookieDampStrengthBonus")) + + return locals() + +def effect5016(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Sensor Dampener", + "scanResolutionBonus", ship.getModifiedItemAttr("rookieDampStrengthBonus")) + + return locals() + +def effect5017(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Repair Systems"), + "armorDamageAmount", ship.getModifiedItemAttr("rookieArmorRepBonus")) + + return locals() + +def effect5018(): + type = "passive" + def handler(fit, ship, context): + fit.ship.boostItemAttr("maxVelocity", ship.getModifiedItemAttr("rookieShipVelocityBonus")) + + return locals() + +def effect5019(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Target Painter", + "signatureRadiusBonus", ship.getModifiedItemAttr("rookieTargetPainterStrengthBonus")) + + return locals() + +def effect5020(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Projectile Turret"), + "damageMultiplier", ship.getModifiedItemAttr("rookieSPTDamageBonus")) + + return locals() + +def effect5021(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Operation"), + "shieldBonus", ship.getModifiedItemAttr("rookieShieldBoostBonus")) + + return locals() + +def effect5028(): + type = "passive" + def handler(fit, ship, context): + for type in ("Gravimetric", "Ladar", "Radar", "Magnetometric"): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "ECM", + "scan{0}StrengthBonus".format(type), + ship.getModifiedItemAttr("rookieECMStrengthBonus")) + + return locals() + +def effect5029(): + type = "passive" + def handler(fit, src, context): + fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Mining Drone Operation"), + "miningAmount", + src.getModifiedItemAttr("roleBonusDroneMiningYield"), + ) + + return locals() + +def effect5030(): + type = "passive" + def handler(fit, container, context): + fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Mining Drone Operation"), + "miningAmount", container.getModifiedItemAttr("rookieDroneBonus")) + + return locals() + +def effect5035(): + type = "passive" + def handler(fit, ship, context): + for type in ("shieldCapacity", "armorHP", "hp"): + fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Drones"), + type, ship.getModifiedItemAttr("rookieDroneBonus")) + + return locals() + +def effect5036(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Salvaging"), + "duration", ship.getModifiedItemAttr("shipBonusAF"), skill="Amarr Frigate") + + return locals() + +def effect504(): + type = "passive" + def handler(fit, container, context): + level = container.level if "skill" in context else 1 + amount = container.getModifiedItemAttr("droneRangeBonus") * level + fit.extraAttributes.increase("droneControlRange", amount) + + return locals() + +def effect5045(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Salvaging"), + "duration", ship.getModifiedItemAttr("shipBonusCF"), skill="Caldari Frigate") + + return locals() + +def effect5048(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Salvaging"), + "duration", ship.getModifiedItemAttr("shipBonusGF"), skill="Amarr Frigate") + + return locals() + +def effect5051(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Salvaging"), + "duration", ship.getModifiedItemAttr("shipBonusMF"), skill="Minmatar Frigate") + + return locals() + +def effect5055(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemMultiply(lambda mod: mod.item.requiresSkill("Ice Harvesting"), + "duration", ship.getModifiedItemAttr("iceHarvestCycleBonus")) + + return locals() + +def effect5058(): + type = "passive" + def handler(fit, module, context): + fit.modules.filteredItemMultiply(lambda mod: mod.item.requiresSkill("Mining"), + "miningAmount", module.getModifiedItemAttr("miningAmountMultiplier")) + + return locals() + +def effect5059(): + type = "passive" + def handler(fit, container, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Ice Harvesting"), + "duration", container.getModifiedItemAttr("shipBonusORE3"), skill="Mining Barge") + + return locals() + +def effect506(): + type = "passive" + def handler(fit, skill, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Afterburner"), + "capacitorNeed", skill.getModifiedItemAttr("capNeedBonus") * skill.level) + + return locals() + +def effect5066(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Target Painting"), + "maxRange", ship.getModifiedItemAttr("shipBonusMF"), skill="Minmatar Frigate") + + return locals() + +def effect5067(): + type = "passive" + def handler(fit, ship, context): + fit.ship.boostItemAttr("specialOreHoldCapacity", ship.getModifiedItemAttr("shipBonusORE2"), skill="Mining Barge") + + return locals() + +def effect5068(): + type = "passive" + def handler(fit, ship, context): + fit.ship.boostItemAttr("shieldCapacity", ship.getModifiedItemAttr("shipBonusORE2"), skill="Mining Barge") + + return locals() + +def effect5069(): + type = "passive" + runTime = "early" + def handler(fit, module, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Mercoxit Processing"), + "specialisationAsteroidYieldMultiplier", + module.getModifiedItemAttr("miningAmountBonus")) + + return locals() + +def effect507(): + type = "passive" + def handler(fit, container, context): + level = container.level if "skill" in context else 1 + fit.ship.boostItemAttr("maxTargetRange", container.getModifiedItemAttr("maxTargetRangeBonus") * level) + + return locals() + +def effect5079(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), + "kineticDamage", ship.getModifiedItemAttr("shipBonusCF2"), skill="Caldari Frigate") + + return locals() + +def effect508(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Projectile Turret"), + "damageMultiplier", ship.getModifiedItemAttr("shipBonusMF"), skill="Minmatar Frigate") + + return locals() + +def effect5080(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), + "maxVelocity", ship.getModifiedItemAttr("shipBonusCF"), skill="Caldari Frigate") + + return locals() + +def effect5081(): + type = "passive" + def handler(fit, module, context): + fit.ship.boostItemAttr("maxTargetRange", module.getModifiedItemAttr("maxTargetRangeBonus"), + stackingPenalties=True) + + return locals() + +def effect5087(): + type = "passive" + def handler(fit, ship, context): + for layer in ("shieldCapacity", "armorHP", "hp"): + fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Drones"), + layer, ship.getModifiedItemAttr("shipBonusGF"), skill="Gallente Frigate") + + return locals() + +def effect5090(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Operation"), + "shieldBonus", ship.getModifiedItemAttr("shipBonusMF"), skill="Minmatar Frigate") + + return locals() + +def effect51(): + type = "passive" + def handler(fit, module, context): + fit.ship.multiplyItemAttr("rechargeRate", module.getModifiedItemAttr("capacitorRechargeRateMultiplier")) + + return locals() + +def effect5103(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Emission Systems"), + "capacitorNeed", ship.getModifiedItemAttr("shipBonusCF"), skill="Caldari Frigate") + + return locals() + +def effect5104(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Emission Systems"), + "shieldBonus", ship.getModifiedItemAttr("shipBonusCF2"), skill="Caldari Frigate") + + return locals() + +def effect5105(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Emission Systems"), + "capacitorNeed", ship.getModifiedItemAttr("shipBonusMF"), skill="Minmatar Frigate") + + return locals() + +def effect5106(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Emission Systems"), + "shieldBonus", ship.getModifiedItemAttr("shipBonusMF2"), skill="Minmatar Frigate") + + return locals() + +def effect5107(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Remote Armor Repair Systems"), "capacitorNeed", + src.getModifiedItemAttr("shipBonusGF"), skill="Gallente Frigate") + + return locals() + +def effect5108(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Remote Armor Repair Systems"), + "armorDamageAmount", src.getModifiedItemAttr("shipBonusGF2"), + skill="Gallente Frigate") + + return locals() + +def effect5109(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Remote Armor Repair Systems"), "capacitorNeed", + src.getModifiedItemAttr("shipBonusAF"), skill="Amarr Frigate") + + return locals() + +def effect511(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Energy Turret"), + "capacitorNeed", ship.getModifiedItemAttr("shipBonus2AF"), skill="Amarr Frigate") + + return locals() + +def effect5110(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Remote Armor Repair Systems"), + "armorDamageAmount", src.getModifiedItemAttr("shipBonus2AF"), skill="Amarr Frigate") + + return locals() + +def effect5111(): + type = "passive" + def handler(fit, ship, context): + fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Drones"), + "trackingSpeed", ship.getModifiedItemAttr("shipBonusGF"), skill="Gallente Frigate") + + return locals() + +def effect5119(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.group.name == "Scanner Probe", + "baseSensorStrength", ship.getModifiedItemAttr("shipBonus2AF"), + skill="Amarr Frigate") + + return locals() + +def effect512(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Hybrid Turret"), + "damageMultiplier", ship.getModifiedItemAttr("shipBonusGF"), skill="Gallente Frigate") + + return locals() + +def effect5121(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Remote Capacitor Transmitter", + "powerTransferAmount", ship.getModifiedItemAttr("energyTransferAmountBonus")) + + return locals() + +def effect5122(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Emission Systems"), + "capacitorNeed", ship.getModifiedItemAttr("shipBonusMC"), skill="Minmatar Cruiser") + + return locals() + +def effect5123(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Remote Armor Repair Systems"), "capacitorNeed", + src.getModifiedItemAttr("shipBonusAC"), skill="Amarr Cruiser") + + return locals() + +def effect5124(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Remote Armor Repair Systems"), + "armorDamageAmount", src.getModifiedItemAttr("shipBonusAC2"), skill="Amarr Cruiser") + + return locals() + +def effect5125(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Remote Armor Repair Systems"), + "armorDamageAmount", src.getModifiedItemAttr("shipBonusGC2"), + skill="Gallente Cruiser") + + return locals() + +def effect5126(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Emission Systems"), + "shieldBonus", ship.getModifiedItemAttr("shipBonusCC2"), skill="Caldari Cruiser") + + return locals() + +def effect5127(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Emission Systems"), + "shieldBonus", ship.getModifiedItemAttr("shipBonusMC2"), skill="Minmatar Cruiser") + + return locals() + +def effect5128(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Sensor Dampener", + "maxRange", ship.getModifiedItemAttr("shipBonusGC"), skill="Gallente Cruiser") + + return locals() + +def effect5129(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Target Painter", + "signatureRadiusBonus", ship.getModifiedItemAttr("shipBonusMC"), + skill="Minmatar Cruiser") + + return locals() + +def effect5131(): + type = "passive" + def handler(fit, ship, context): + groups = ("Missile Launcher Heavy", "Missile Launcher Rapid Light", "Missile Launcher Heavy Assault") + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name in groups, + "speed", ship.getModifiedItemAttr("shipBonusCC"), skill="Caldari Cruiser") + + return locals() + +def effect5132(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Projectile Turret"), + "falloff", ship.getModifiedItemAttr("shipBonusMC2"), skill="Minmatar Cruiser") + + return locals() + +def effect5133(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Hybrid Turret"), + "damageMultiplier", ship.getModifiedItemAttr("shipBonusCC"), skill="Caldari Cruiser") + + return locals() + +def effect5136(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Energy Turret"), + "damageMultiplier", ship.getModifiedItemAttr("shipBonusAC"), skill="Amarr Cruiser") + + return locals() + +def effect5139(): + type = "passive" + def handler(fit, module, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Mining"), + "miningAmount", module.getModifiedItemAttr("shipBonusOREfrig1"), + skill="Mining Frigate") + + return locals() + +def effect514(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Energy Turret"), + "damageMultiplier", ship.getModifiedItemAttr("shipBonusAF"), skill="Amarr Frigate") + + return locals() + +def effect5142(): + type = "passive" + def handler(fit, module, context): + fit.modules.filteredItemMultiply(lambda mod: mod.item.group.name == "Gas Cloud Harvester", + "miningAmount", module.getModifiedItemAttr("miningAmountMultiplier")) + + return locals() + +def effect5153(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Rockets"), + "maxVelocity", ship.getModifiedItemAttr("shipBonusRole7")) + + return locals() + +def effect5156(): + type = "passive" + def handler(fit, module, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Gas Cloud Harvester", + "duration", module.getModifiedItemAttr("shipBonusOREfrig2"), skill="Mining Frigate") + + return locals() + +def effect516(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Energy Turret"), + "capacitorNeed", ship.getModifiedItemAttr("shipBonusAC"), skill="Amarr Cruiser") + + return locals() + +def effect5162(): + type = "passive" + def handler(fit, src, context): + lvl = src.level + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Armor Resistance Shift Hardener", "capacitorNeed", + src.getModifiedItemAttr("capNeedBonus") * lvl) + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Resistance Phasing"), "capacitorNeed", + src.getModifiedItemAttr("capNeedBonus") * lvl) + + return locals() + +def effect5165(): + type = "passive" + def handler(fit, ship, context): + fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Drones"), + "maxVelocity", ship.getModifiedItemAttr("shipBonusRole7")) + + return locals() + +def effect5168(): + type = "passive" + def handler(fit, container, context): + fit.drones.filteredItemIncrease(lambda drone: drone.item.requiresSkill("Salvage Drone Operation"), + "accessDifficultyBonus", + container.getModifiedItemAttr("accessDifficultyBonus") * container.level) + + return locals() + +def effect5180(): + type = "passive" + def handler(fit, container, context): + fit.ship.boostItemAttr("scanGravimetricStrength", + container.getModifiedItemAttr("sensorStrengthBonus") * container.level) + + return locals() + +def effect5181(): + type = "passive" + def handler(fit, container, context): + fit.ship.boostItemAttr("scanLadarStrength", container.getModifiedItemAttr("sensorStrengthBonus") * container.level) + + return locals() + +def effect5182(): + type = "passive" + def handler(fit, container, context): + fit.ship.boostItemAttr("scanMagnetometricStrength", + container.getModifiedItemAttr("sensorStrengthBonus") * container.level) + + return locals() + +def effect5183(): + type = "passive" + def handler(fit, container, context): + fit.ship.boostItemAttr("scanRadarStrength", container.getModifiedItemAttr("sensorStrengthBonus") * container.level) + + return locals() + +def effect5185(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Nosferatu", + "powerTransferAmount", ship.getModifiedItemAttr("shipBonus2AF"), + skill="Amarr Frigate") + + return locals() + +def effect5187(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Sensor Dampener", + "falloffEffectiveness", ship.getModifiedItemAttr("shipBonusGC"), + skill="Gallente Cruiser") + + return locals() + +def effect5188(): + type = "passive" + def handler(fit, module, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Hybrid Weapon", + "trackingSpeed", module.getModifiedItemAttr("trackingSpeedBonus"), + stackingPenalties=True) + + return locals() + +def effect5189(): + type = "passive" + def handler(fit, module, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Weapon", + "trackingSpeed", module.getModifiedItemAttr("trackingSpeedBonus"), + stackingPenalties=True) + + return locals() + +def effect5190(): + type = "passive" + def handler(fit, module, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Projectile Weapon", + "trackingSpeed", module.getModifiedItemAttr("trackingSpeedBonus"), + stackingPenalties=True) + + return locals() + +def effect5201(): + type = "passive" + def handler(fit, container, context): + level = container.level + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Armor Reinforcer", + "massAddition", container.getModifiedItemAttr("massPenaltyReduction") * level) + + return locals() + +def effect5205(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Energy Turret"), + "trackingSpeed", ship.getModifiedItemAttr("rookieSETTracking")) + + return locals() + +def effect5206(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Energy Turret"), + "maxRange", ship.getModifiedItemAttr("rookieSETOptimal")) + + return locals() + +def effect5207(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Nosferatu", + "powerTransferAmount", ship.getModifiedItemAttr("rookieNosDrain")) + + return locals() + +def effect5208(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Neutralizer", + "energyNeutralizerAmount", ship.getModifiedItemAttr("rookieNeutDrain")) + + return locals() + +def effect5209(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Stasis Web", + "speedFactor", ship.getModifiedItemAttr("rookieWebAmount")) + + return locals() + +def effect521(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Hybrid Turret"), + "maxRange", ship.getModifiedItemAttr("shipBonusCC"), skill="Caldari Cruiser") + + return locals() + +def effect5212(): + type = "passive" + def handler(fit, ship, context): + fit.drones.filteredItemBoost(lambda mod: True, + "maxVelocity", ship.getModifiedItemAttr("rookieDroneMWDspeed")) + + return locals() + +def effect5213(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Rockets"), + "maxVelocity", ship.getModifiedItemAttr("rookieRocketVelocity")) + + return locals() + +def effect5214(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Light Missiles"), + "maxVelocity", ship.getModifiedItemAttr("rookieLightMissileVelocity")) + + return locals() + +def effect5215(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Hybrid Turret"), + "trackingSpeed", ship.getModifiedItemAttr("rookieSHTTracking")) + + return locals() + +def effect5216(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Hybrid Turret"), + "falloff", ship.getModifiedItemAttr("rookieSHTFalloff")) + + return locals() + +def effect5217(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Projectile Turret"), + "trackingSpeed", ship.getModifiedItemAttr("rookieSPTTracking")) + + return locals() + +def effect5218(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Projectile Turret"), + "falloff", ship.getModifiedItemAttr("rookieSPTFalloff")) + + return locals() + +def effect5219(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Projectile Turret"), + "maxRange", ship.getModifiedItemAttr("rookieSPTOptimal")) + + return locals() + +def effect5220(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Projectile Turret"), + "damageMultiplier", ship.getModifiedItemAttr("shipBonusRole7")) + + return locals() + +def effect5221(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Assault Missiles"), + "emDamage", ship.getModifiedItemAttr("shipBonusRole7")) + + return locals() + +def effect5222(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Assault Missiles"), + "kineticDamage", ship.getModifiedItemAttr("shipBonusRole7")) + + return locals() + +def effect5223(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Assault Missiles"), + "thermalDamage", ship.getModifiedItemAttr("shipBonusRole7")) + + return locals() + +def effect5224(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Assault Missiles"), + "explosiveDamage", ship.getModifiedItemAttr("shipBonusRole7")) + + return locals() + +def effect5225(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Missiles"), + "emDamage", ship.getModifiedItemAttr("shipBonusRole7")) + + return locals() + +def effect5226(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Missiles"), + "explosiveDamage", ship.getModifiedItemAttr("shipBonusRole7")) + + return locals() + +def effect5227(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Missiles"), + "kineticDamage", ship.getModifiedItemAttr("shipBonusRole7")) + + return locals() + +def effect5228(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Missiles"), + "thermalDamage", ship.getModifiedItemAttr("shipBonusRole7")) + + return locals() + +def effect5229(): + type = "passive" + def handler(fit, container, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Astrometrics"), + "baseSensorStrength", container.getModifiedItemAttr("shipBonusRole8")) + + return locals() + +def effect5230(): + type = "active" + def handler(fit, module, context): + for damageType in ("kinetic", "thermal", "explosive", "em"): + fit.ship.boostItemAttr("shield" + damageType.capitalize() + "DamageResonance", + module.getModifiedItemAttr(damageType + "DamageResistanceBonus"), + stackingPenalties=True) + + return locals() + +def effect5231(): + type = "active" + def handler(fit, module, context): + for damageType in ("kinetic", "thermal", "explosive", "em"): + fit.ship.boostItemAttr("armor%sDamageResonance" % damageType.capitalize(), + module.getModifiedItemAttr("%sDamageResistanceBonus" % damageType), + stackingPenalties=True) + + return locals() + +def effect5234(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredChargeBoost( + lambda mod: mod.charge.requiresSkill("Rockets") or mod.charge.requiresSkill("Light Missiles"), + "explosiveDamage", ship.getModifiedItemAttr("shipBonusCF2"), skill="Caldari Frigate") + + return locals() + +def effect5237(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredChargeBoost( + lambda mod: mod.charge.requiresSkill("Rockets") or mod.charge.requiresSkill("Light Missiles"), + "kineticDamage", ship.getModifiedItemAttr("shipBonusCF2"), skill="Caldari Frigate") + + return locals() + +def effect5240(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredChargeBoost( + lambda mod: mod.charge.requiresSkill("Rockets") or mod.charge.requiresSkill("Light Missiles"), + "thermalDamage", ship.getModifiedItemAttr("shipBonusCF2"), skill="Caldari Frigate") + + return locals() + +def effect5243(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredChargeBoost( + lambda mod: mod.charge.requiresSkill("Rockets") or mod.charge.requiresSkill("Light Missiles"), + "emDamage", ship.getModifiedItemAttr("shipBonusCF2"), skill="Caldari Frigate") + + return locals() + +def effect5259(): + type = "passive" + runTime = "early" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Cloaking Device", + "cpu", ship.getModifiedItemAttr("eliteBonusReconShip1"), skill="Recon Ships") + + return locals() + +def effect5260(): + type = "passive" + runTime = "early" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Cloaking"), + "cpu", ship.getModifiedItemAttr("eliteBonusCovertOps1"), skill="Covert Ops") + + return locals() + +def effect5261(): + type = "passive" + def handler(fit, module, context): + module.increaseItemAttr("cpu", module.getModifiedItemAttr("covertCloakCPUAdd") or 0) + + return locals() + +def effect5262(): + type = "passive" + def handler(fit, module, context): + fit.modules.filteredItemIncrease(lambda mod: mod.item.requiresSkill("Cloaking"), + "covertCloakCPUAdd", module.getModifiedItemAttr("covertCloakCPUPenalty")) + + return locals() + +def effect5263(): + type = "passive" + def handler(fit, module, context): + fit.modules.filteredItemIncrease(lambda mod: mod.item.requiresSkill("Cynosural Field Theory"), + "covertCloakCPUAdd", module.getModifiedItemAttr("covertCloakCPUPenalty")) + + return locals() + +def effect5264(): + type = "passive" + def handler(fit, module, context): + module.increaseItemAttr("cpu", module.getModifiedItemAttr("warfareLinkCPUAdd") or 0) + + return locals() + +def effect5265(): + type = "passive" + def handler(fit, module, context): + fit.modules.filteredItemIncrease(lambda mod: mod.item.requiresSkill("Leadership"), + "warfareLinkCPUAdd", module.getModifiedItemAttr("warfareLinkCPUPenalty")) + + return locals() + +def effect5266(): + type = "passive" + runTime = "early" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Cloaking Device", + "cpu", ship.getModifiedItemAttr("eliteIndustrialCovertCloakBonus"), + skill="Transport Ships") + + return locals() + +def effect5267(): + type = "passive" + def handler(fit, module, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Repair Systems"), + "power", module.getModifiedItemAttr("drawback")) + + return locals() + +def effect5268(): + type = "passive" + def handler(fit, module, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capital Repair Systems"), + "power", module.getModifiedItemAttr("drawback")) + + return locals() + +def effect527(): + type = "passive" + def handler(fit, ship, context): + fit.ship.boostItemAttr("maxVelocity", ship.getModifiedItemAttr("shipBonusMI"), skill="Minmatar Industrial") + + return locals() + +def effect5275(): + runTime = "late" + type = "active" + def handler(fit, module, context): + if module.charge and module.charge.name == "Nanite Repair Paste": + multiplier = 3 + else: + multiplier = 1 + amount = module.getModifiedItemAttr("armorDamageAmount") * multiplier + speed = module.getModifiedItemAttr("duration") / 1000.0 + rps = amount / speed + fit.extraAttributes.increase("armorRepair", rps) + fit.extraAttributes.increase("armorRepairPreSpool", rps) + fit.extraAttributes.increase("armorRepairFullSpool", rps) + + return locals() + +def effect529(): + type = "passive" + def handler(fit, ship, context): + fit.ship.boostItemAttr("capacity", ship.getModifiedItemAttr("shipBonusAI"), skill="Amarr Industrial") + + return locals() + +def effect5293(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Energy Turret"), + "capacitorNeed", ship.getModifiedItemAttr("shipBonusAD1"), skill="Amarr Destroyer") + + return locals() + +def effect5294(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Energy Turret"), + "trackingSpeed", ship.getModifiedItemAttr("shipBonusAD2"), skill="Amarr Destroyer") + + return locals() + +def effect5295(): + type = "passive" + def handler(fit, src, context): + fit.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Drones"), "damageMultiplier", + src.getModifiedItemAttr("shipBonusAD1"), skill="Amarr Destroyer") + + return locals() + +def effect5300(): + type = "passive" + def handler(fit, src, context): + fit.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Drones"), "shieldCapacity", + src.getModifiedItemAttr("shipBonusAD1"), skill="Amarr Destroyer") + fit.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Drones"), "hp", + src.getModifiedItemAttr("shipBonusAD1"), skill="Amarr Destroyer") + fit.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Drones"), "armorHP", + src.getModifiedItemAttr("shipBonusAD1"), skill="Amarr Destroyer") + + return locals() + +def effect5303(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Hybrid Turret"), + "maxRange", ship.getModifiedItemAttr("shipBonusCD1"), skill="Caldari Destroyer") + + return locals() + +def effect5304(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Hybrid Turret"), + "trackingSpeed", ship.getModifiedItemAttr("shipBonusCD2"), skill="Caldari Destroyer") + + return locals() + +def effect5305(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Light Missiles"), + "kineticDamage", ship.getModifiedItemAttr("shipBonusCD1"), + skill="Caldari Destroyer") + + return locals() + +def effect5306(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Rockets"), + "kineticDamage", ship.getModifiedItemAttr("shipBonusCD1"), + skill="Caldari Destroyer") + + return locals() + +def effect5307(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Rockets"), + "aoeVelocity", ship.getModifiedItemAttr("shipBonusCD2"), skill="Caldari Destroyer") + + return locals() + +def effect5308(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Light Missiles"), + "aoeVelocity", ship.getModifiedItemAttr("shipBonusCD2"), skill="Caldari Destroyer") + + return locals() + +def effect5309(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Hybrid Turret"), + "falloff", ship.getModifiedItemAttr("shipBonusGD1"), skill="Gallente Destroyer") + + return locals() + +def effect5310(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Hybrid Turret"), + "trackingSpeed", ship.getModifiedItemAttr("shipBonusGD2"), skill="Gallente Destroyer") + + return locals() + +def effect5311(): + type = "passive" + def handler(fit, src, context): + fit.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Drones"), "damageMultiplier", + src.getModifiedItemAttr("shipBonusGD1"), skill="Gallente Destroyer") + + return locals() + +def effect5316(): + type = "passive" + def handler(fit, src, context): + fit.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Drones"), "shieldCapacity", + src.getModifiedItemAttr("shipBonusGD1"), skill="Gallente Destroyer") + fit.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Drones"), "armorHP", + src.getModifiedItemAttr("shipBonusGD1"), skill="Gallente Destroyer") + fit.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Drones"), "hp", + src.getModifiedItemAttr("shipBonusGD1"), skill="Gallente Destroyer") + + return locals() + +def effect5317(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Projectile Turret"), + "damageMultiplier", ship.getModifiedItemAttr("shipBonusMD1"), + skill="Minmatar Destroyer") + + return locals() + +def effect5318(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Projectile Turret"), + "trackingSpeed", ship.getModifiedItemAttr("shipBonusMD2"), skill="Minmatar Destroyer") + + return locals() + +def effect5319(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Light Missiles"), + "explosiveDamage", ship.getModifiedItemAttr("shipBonusMD1"), + skill="Minmatar Destroyer") + + return locals() + +def effect5320(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Rockets"), + "explosiveDamage", ship.getModifiedItemAttr("shipBonusMD1"), + skill="Minmatar Destroyer") + + return locals() + +def effect5321(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("High Speed Maneuvering"), + "signatureRadiusBonus", ship.getModifiedItemAttr("shipBonusMD2"), + skill="Minmatar Destroyer") + + return locals() + +def effect5322(): + type = "passive" + def handler(fit, ship, context): + fit.ship.boostItemAttr("armorEmDamageResonance", ship.getModifiedItemAttr("shipBonusABC1"), + skill="Amarr Battlecruiser") + + return locals() + +def effect5323(): + type = "passive" + def handler(fit, ship, context): + fit.ship.boostItemAttr("armorExplosiveDamageResonance", ship.getModifiedItemAttr("shipBonusABC1"), + skill="Amarr Battlecruiser") + + return locals() + +def effect5324(): + type = "passive" + def handler(fit, ship, context): + fit.ship.boostItemAttr("armorKineticDamageResonance", ship.getModifiedItemAttr("shipBonusABC1"), + skill="Amarr Battlecruiser") + + return locals() + +def effect5325(): + type = "passive" + def handler(fit, ship, context): + fit.ship.boostItemAttr("armorThermalDamageResonance", ship.getModifiedItemAttr("shipBonusABC1"), + skill="Amarr Battlecruiser") + + return locals() + +def effect5326(): + type = "passive" + def handler(fit, ship, context): + fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Drones"), + "damageMultiplier", ship.getModifiedItemAttr("shipBonusABC2"), + skill="Amarr Battlecruiser") + + return locals() + +def effect5331(): + type = "passive" + def handler(fit, ship, context): + for layer in ("shieldCapacity", "armorHP", "hp"): + fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Drones"), + layer, ship.getModifiedItemAttr("shipBonusABC2"), skill="Amarr Battlecruiser") + + return locals() + +def effect5332(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Energy Turret"), + "capacitorNeed", ship.getModifiedItemAttr("shipBonusABC1"), + skill="Amarr Battlecruiser") + + return locals() + +def effect5333(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Energy Turret"), + "damageMultiplier", ship.getModifiedItemAttr("shipBonusABC2"), + skill="Amarr Battlecruiser") + + return locals() + +def effect5334(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Hybrid Turret"), + "maxRange", ship.getModifiedItemAttr("shipBonusCBC1"), skill="Caldari Battlecruiser") + + return locals() + +def effect5335(): + type = "passive" + def handler(fit, ship, context): + fit.ship.boostItemAttr("shieldEmDamageResonance", ship.getModifiedItemAttr("shipBonusCBC2"), + skill="Caldari Battlecruiser") + + return locals() + +def effect5336(): + type = "passive" + def handler(fit, ship, context): + fit.ship.boostItemAttr("shieldExplosiveDamageResonance", ship.getModifiedItemAttr("shipBonusCBC2"), + skill="Caldari Battlecruiser") + + return locals() + +def effect5337(): + type = "passive" + def handler(fit, ship, context): + fit.ship.boostItemAttr("shieldKineticDamageResonance", ship.getModifiedItemAttr("shipBonusCBC2"), + skill="Caldari Battlecruiser") + + return locals() + +def effect5338(): + type = "passive" + def handler(fit, ship, context): + fit.ship.boostItemAttr("shieldThermalDamageResonance", ship.getModifiedItemAttr("shipBonusCBC2"), + skill="Caldari Battlecruiser") + + return locals() + +def effect5339(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Assault Missiles"), + "kineticDamage", ship.getModifiedItemAttr("shipBonusCBC1"), + skill="Caldari Battlecruiser") + + return locals() + +def effect5340(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Missiles"), + "kineticDamage", ship.getModifiedItemAttr("shipBonusCBC1"), + skill="Caldari Battlecruiser") + + return locals() + +def effect5341(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Hybrid Turret"), + "damageMultiplier", ship.getModifiedItemAttr("shipBonusGBC1"), + skill="Gallente Battlecruiser") + + return locals() + +def effect5342(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Repair Systems"), + "armorDamageAmount", ship.getModifiedItemAttr("shipBonusGBC2"), + skill="Gallente Battlecruiser") + + return locals() + +def effect5343(): + type = "passive" + def handler(fit, ship, context): + fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Drones"), + "damageMultiplier", ship.getModifiedItemAttr("shipBonusGBC1"), + skill="Gallente Battlecruiser") + + return locals() + +def effect5348(): + type = "passive" + def handler(fit, ship, context): + for layer in ("shieldCapacity", "armorHP", "hp"): + fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Drones"), + layer, ship.getModifiedItemAttr("shipBonusGBC1"), skill="Gallente Battlecruiser") + + return locals() + +def effect5349(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Missile Launcher Heavy", + "speed", ship.getModifiedItemAttr("shipBonusMBC2"), skill="Minmatar Battlecruiser") + + return locals() + +def effect5350(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Missile Launcher Heavy Assault", + "speed", ship.getModifiedItemAttr("shipBonusMBC2"), skill="Minmatar Battlecruiser") + + return locals() + +def effect5351(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Operation"), + "shieldBonus", ship.getModifiedItemAttr("shipBonusMBC1"), + skill="Minmatar Battlecruiser") + + return locals() + +def effect5352(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Projectile Turret"), + "damageMultiplier", ship.getModifiedItemAttr("shipBonusMBC1"), + skill="Minmatar Battlecruiser") + + return locals() + +def effect5353(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Projectile Turret"), + "speed", ship.getModifiedItemAttr("shipBonusMBC2"), skill="Minmatar Battlecruiser") + + return locals() + +def effect5354(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Large Energy Turret"), + "capacitorNeed", ship.getModifiedItemAttr("shipBonusABC1"), + skill="Amarr Battlecruiser") + + return locals() + +def effect5355(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Large Energy Turret"), + "damageMultiplier", ship.getModifiedItemAttr("shipBonusABC2"), + skill="Amarr Battlecruiser") + + return locals() + +def effect5356(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Large Hybrid Turret"), + "maxRange", ship.getModifiedItemAttr("shipBonusCBC1"), skill="Caldari Battlecruiser") + + return locals() + +def effect5357(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Large Hybrid Turret"), + "damageMultiplier", ship.getModifiedItemAttr("shipBonusCBC2"), + skill="Caldari Battlecruiser") + + return locals() + +def effect5358(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Large Hybrid Turret"), + "trackingSpeed", ship.getModifiedItemAttr("shipBonusGBC1"), + skill="Gallente Battlecruiser") + + return locals() + +def effect5359(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Large Hybrid Turret"), + "damageMultiplier", ship.getModifiedItemAttr("shipBonusGBC2"), + skill="Gallente Battlecruiser") + + return locals() + +def effect536(): + type = "passive" + def handler(fit, module, context): + fit.ship.multiplyItemAttr("cpuOutput", module.getModifiedItemAttr("cpuMultiplier")) + + return locals() + +def effect5360(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Large Projectile Turret"), + "speed", ship.getModifiedItemAttr("shipBonusMBC1"), skill="Minmatar Battlecruiser") + + return locals() + +def effect5361(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Large Projectile Turret"), + "falloff", ship.getModifiedItemAttr("shipBonusMBC2"), skill="Minmatar Battlecruiser") + + return locals() + +def effect5364(): + type = "passive" + def handler(fit, booster, context): + fit.modules.filteredItemBoost( + lambda mod: mod.item.requiresSkill("Repair Systems") or mod.item.requiresSkill("Capital Repair Systems"), + "armorDamageAmount", booster.getModifiedItemAttr("armorDamageAmountBonus") or 0) + + return locals() + +def effect5365(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Repair Systems"), + "armorDamageAmount", ship.getModifiedItemAttr("eliteBonusViolators2"), + skill="Marauders") + + return locals() + +def effect5366(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Repair Systems"), + "armorDamageAmount", ship.getModifiedItemAttr("shipBonusATC2")) + + return locals() + +def effect5367(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Repair Systems"), + "armorDamageAmount", ship.getModifiedItemAttr("shipBonusGB2"), + skill="Gallente Battleship") + + return locals() + +def effect5378(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Missiles"), + "aoeCloudSize", ship.getModifiedItemAttr("shipBonusCBC1"), + skill="Caldari Battlecruiser") + + return locals() + +def effect5379(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Assault Missiles"), + "aoeCloudSize", ship.getModifiedItemAttr("shipBonusCBC1"), + skill="Caldari Battlecruiser") + + return locals() + +def effect5380(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Hybrid Turret"), + "trackingSpeed", ship.getModifiedItemAttr("shipBonusGBC2"), + skill="Gallente Battlecruiser") + + return locals() + +def effect5381(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Energy Turret"), + "trackingSpeed", ship.getModifiedItemAttr("shipBonusABC1"), + skill="Amarr Battlecruiser") + + return locals() + +def effect5382(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Energy Turret"), + "maxRange", ship.getModifiedItemAttr("shipBonusAC2"), skill="Amarr Cruiser") + + return locals() + +def effect5383(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), + "emDamage", ship.getModifiedItemAttr("shipBonusCC"), skill="Caldari Cruiser") + + return locals() + +def effect5384(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), + "thermalDamage", ship.getModifiedItemAttr("shipBonusCC"), skill="Caldari Cruiser") + + return locals() + +def effect5385(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), + "explosiveDamage", ship.getModifiedItemAttr("shipBonusCC"), skill="Caldari Cruiser") + + return locals() + +def effect5386(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), + "kineticDamage", ship.getModifiedItemAttr("shipBonusCC2"), skill="Caldari Cruiser") + + return locals() + +def effect5387(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Assault Missiles"), + "aoeCloudSize", ship.getModifiedItemAttr("shipBonusCC2"), skill="Caldari Cruiser") + + return locals() + +def effect5388(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Missiles"), + "aoeCloudSize", ship.getModifiedItemAttr("shipBonusCC2"), skill="Caldari Cruiser") + + return locals() + +def effect5389(): + type = "passive" + def handler(fit, ship, context): + fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Drones"), + "trackingSpeed", ship.getModifiedItemAttr("shipBonusGC"), skill="Gallente Cruiser") + + return locals() + +def effect5390(): + type = "passive" + def handler(fit, ship, context): + fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Drones"), + "maxVelocity", ship.getModifiedItemAttr("shipBonusGC"), skill="Gallente Cruiser") + + return locals() + +def effect5397(): + type = "passive" + def handler(fit, module, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Astrometrics"), + "baseMaxScanDeviation", + module.getModifiedItemAttr("maxScanDeviationModifierModule"), + stackingPenalties=True) + + return locals() + +def effect5398(): + type = "passive" + def handler(fit, module, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Astrometrics"), + "duration", module.getModifiedItemAttr("scanDurationBonus")) + + return locals() + +def effect5399(): + type = "passive" + def handler(fit, module, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Astrometrics"), + "baseSensorStrength", module.getModifiedItemAttr("scanStrengthBonusModule"), + stackingPenalties=True) + + return locals() + +def effect5402(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Assault Missiles"), + "maxVelocity", ship.getModifiedItemAttr("shipBonusABC2"), + skill="Amarr Battlecruiser") + + return locals() + +def effect5403(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Missiles"), + "maxVelocity", ship.getModifiedItemAttr("shipBonusABC2"), + skill="Amarr Battlecruiser") + + return locals() + +def effect5410(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Energy Turret"), + "capacitorNeed", ship.getModifiedItemAttr("shipBonusABC2"), + skill="Amarr Battlecruiser") + + return locals() + +def effect5411(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), + "maxVelocity", ship.getModifiedItemAttr("shipBonusCD1"), skill="Caldari Destroyer") + + return locals() + +def effect5417(): + type = "passive" + def handler(fit, ship, context): + fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Drones"), + "damageMultiplier", ship.getModifiedItemAttr("shipBonusAB"), skill="Amarr Battleship") + + return locals() + +def effect5418(): + type = "passive" + def handler(fit, ship, context): + fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Drones"), + "armorHP", ship.getModifiedItemAttr("shipBonusAB"), skill="Amarr Battleship") + + return locals() + +def effect5419(): + type = "passive" + def handler(fit, ship, context): + fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Drones"), + "shieldCapacity", ship.getModifiedItemAttr("shipBonusAB"), skill="Amarr Battleship") + + return locals() + +def effect542(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Large Energy Turret"), + "capacitorNeed", ship.getModifiedItemAttr("shipBonusAB"), skill="Amarr Battleship") + + return locals() + +def effect5420(): + type = "passive" + def handler(fit, ship, context): + fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Drones"), + "hp", ship.getModifiedItemAttr("shipBonusAB"), skill="Amarr Battleship") + + return locals() + +def effect5424(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Large Hybrid Turret"), + "speed", ship.getModifiedItemAttr("shipBonusGB"), skill="Gallente Battleship") + + return locals() + +def effect5427(): + type = "passive" + def handler(fit, ship, context): + fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Drones"), + "trackingSpeed", ship.getModifiedItemAttr("shipBonusGB"), skill="Gallente Battleship") + + return locals() + +def effect5428(): + type = "passive" + def handler(fit, ship, context): + fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Drones"), + "maxRange", ship.getModifiedItemAttr("shipBonusGB"), skill="Gallente Battleship") + + return locals() + +def effect5429(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Torpedoes"), + "aoeVelocity", ship.getModifiedItemAttr("shipBonusMB2"), + skill="Minmatar Battleship") + + return locals() + +def effect5430(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Cruise Missiles"), + "aoeVelocity", ship.getModifiedItemAttr("shipBonusMB2"), + skill="Minmatar Battleship") + + return locals() + +def effect5431(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Large Energy Turret"), + "trackingSpeed", ship.getModifiedItemAttr("shipBonusAB"), skill="Amarr Battleship") + + return locals() + +def effect5433(): + type = "passive" + def handler(fit, container, context): + level = container.level if "skill" in context else 1 + fit.modules.filteredItemIncrease(lambda mod: mod.item.requiresSkill("Hacking"), + "virusCoherence", container.getModifiedItemAttr("virusCoherenceBonus") * level) + + return locals() + +def effect5437(): + type = "passive" + def handler(fit, container, context): + level = container.level if "skill" in context else 1 + fit.modules.filteredItemIncrease(lambda mod: mod.item.requiresSkill("Archaeology"), + "virusCoherence", container.getModifiedItemAttr("virusCoherenceBonus") * level) + + return locals() + +def effect5440(): + runTime = "early" + type = ("projected", "passive") + def handler(fit, beacon, context): + fit.modules.filteredChargeMultiply(lambda mod: mod.charge.requiresSkill("Light Missiles"), + "kineticDamage", beacon.getModifiedItemAttr("smallWeaponDamageMultiplier"), + stackingPenalties=True, penaltyGroup="postMul") + + return locals() + +def effect5444(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Torpedoes"), + "aoeCloudSize", ship.getModifiedItemAttr("shipBonusCB"), skill="Caldari Battleship") + + return locals() + +def effect5445(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Cruise Missiles"), + "aoeCloudSize", ship.getModifiedItemAttr("shipBonusCB"), skill="Caldari Battleship") + + return locals() + +def effect5456(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Missile Launcher Cruise", + "speed", ship.getModifiedItemAttr("shipBonusCB"), skill="Caldari Battleship") + + return locals() + +def effect5457(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Missile Launcher Torpedo", + "speed", ship.getModifiedItemAttr("shipBonusCB"), skill="Caldari Battleship") + + return locals() + +def effect5459(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemIncrease(lambda mod: mod.item.requiresSkill("Hacking"), "virusStrength", src.getModifiedItemAttr("virusStrengthBonus")) + + return locals() + +def effect5460(): + type = "passive" + def handler(fit, container, context): + level = container.level if "skill" in context else 1 + fit.modules.filteredItemIncrease( + lambda mod: (mod.item.requiresSkill("Hacking") or mod.item.requiresSkill("Archaeology")), + "virusStrength", container.getModifiedItemAttr("virusStrengthBonus") * level) + + return locals() + +def effect5461(): + type = "passive" + def handler(fit, module, context): + fit.ship.boostItemAttr("shieldRechargeRate", module.getModifiedItemAttr("rechargeratebonus") or 0) + + return locals() + +def effect5468(): + type = "passive" + def handler(fit, ship, context): + fit.ship.boostItemAttr("agility", ship.getModifiedItemAttr("shipBonusCI2"), skill="Caldari Industrial") + + return locals() + +def effect5469(): + type = "passive" + def handler(fit, ship, context): + fit.ship.boostItemAttr("agility", ship.getModifiedItemAttr("shipBonusMI2"), skill="Minmatar Industrial") + + return locals() + +def effect5470(): + type = "passive" + def handler(fit, ship, context): + fit.ship.boostItemAttr("agility", ship.getModifiedItemAttr("shipBonusGI2"), skill="Gallente Industrial") + + return locals() + +def effect5471(): + type = "passive" + def handler(fit, ship, context): + fit.ship.boostItemAttr("agility", ship.getModifiedItemAttr("shipBonusAI2"), skill="Amarr Industrial") + + return locals() + +def effect5476(): + type = "passive" + def handler(fit, ship, context): + fit.ship.boostItemAttr("specialOreHoldCapacity", ship.getModifiedItemAttr("shipBonusGI2"), + skill="Gallente Industrial") + + return locals() + +def effect5477(): + type = "passive" + def handler(fit, ship, context): + fit.ship.boostItemAttr("specialAmmoHoldCapacity", ship.getModifiedItemAttr("shipBonusMI2"), + skill="Minmatar Industrial") + + return locals() + +def effect5478(): + type = "passive" + def handler(fit, ship, context): + fit.ship.boostItemAttr("specialPlanetaryCommoditiesHoldCapacity", ship.getModifiedItemAttr("shipBonusGI2"), + skill="Gallente Industrial") + + return locals() + +def effect5479(): + type = "passive" + def handler(fit, ship, context): + fit.ship.boostItemAttr("specialMineralHoldCapacity", ship.getModifiedItemAttr("shipBonusGI2"), + skill="Gallente Industrial") + + return locals() + +def effect5480(): + runTime = "early" + type = "passive" + def handler(fit, implant, context): + fit.appliedImplants.filteredItemMultiply(lambda mod: mod.item.group.name == "Special Edition Implant", + "implantBonusVelocity", implant.getModifiedItemAttr("implantSetChristmas")) + + return locals() + +def effect5482(): + runTime = "early" + type = "passive" + def handler(fit, implant, context): + fit.appliedImplants.filteredItemMultiply(lambda mod: mod.item.group.name == "Special Edition Implant", + "agilityBonus", implant.getModifiedItemAttr("implantSetChristmas")) + + return locals() + +def effect5483(): + runTime = "early" + type = "passive" + def handler(fit, implant, context): + fit.appliedImplants.filteredItemMultiply(lambda mod: mod.item.group.name == "Special Edition Implant", + "shieldCapacityBonus", implant.getModifiedItemAttr("implantSetChristmas")) + + return locals() + +def effect5484(): + runTime = "early" + type = "passive" + def handler(fit, implant, context): + fit.appliedImplants.filteredItemMultiply(lambda mod: mod.item.group.name == "Special Edition Implant", + "armorHpBonus2", implant.getModifiedItemAttr("implantSetChristmas")) + + return locals() + +def effect5485(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Projectile Turret"), + "maxRange", ship.getModifiedItemAttr("shipBonusMF"), skill="Minmatar Frigate") + + return locals() + +def effect5486(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Projectile Turret"), + "damageMultiplier", ship.getModifiedItemAttr("shipBonusMBC2"), + skill="Minmatar Battlecruiser") + + return locals() + +def effect549(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Large Projectile Turret"), + "damageMultiplier", ship.getModifiedItemAttr("shipBonusMB"), + skill="Minmatar Battleship") + + return locals() + +def effect5496(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Missile Launcher Heavy Assault", + "speed", ship.getModifiedItemAttr("eliteBonusCommandShips1"), skill="Command Ships") + + return locals() + +def effect5497(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Missile Launcher Heavy", + "speed", ship.getModifiedItemAttr("eliteBonusCommandShips1"), skill="Command Ships") + + return locals() + +def effect5498(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Assault Missiles"), + "aoeVelocity", ship.getModifiedItemAttr("eliteBonusCommandShips2"), + skill="Command Ships") + + return locals() + +def effect5499(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Assault Missiles"), + "aoeCloudSize", ship.getModifiedItemAttr("eliteBonusCommandShips2"), + skill="Command Ships") + + return locals() + +def effect55(): + type = "active" + def handler(fit, module, context): + pass + + return locals() + +def effect550(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Large Hybrid Turret"), + "damageMultiplier", ship.getModifiedItemAttr("shipBonusGB"), + skill="Gallente Battleship") + + return locals() + +def effect5500(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Missiles"), + "aoeCloudSize", ship.getModifiedItemAttr("eliteBonusCommandShips2"), + skill="Command Ships") + + return locals() + +def effect5501(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Hybrid Turret"), + "damageMultiplier", ship.getModifiedItemAttr("eliteBonusCommandShips2"), + skill="Command Ships") + + return locals() + +def effect5502(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Hybrid Turret"), + "trackingSpeed", ship.getModifiedItemAttr("eliteBonusCommandShips1"), + skill="Command Ships") + + return locals() + +def effect5503(): + type = "passive" + def handler(fit, ship, context): + fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Heavy Drone Operation"), + "trackingSpeed", ship.getModifiedItemAttr("eliteBonusCommandShips2"), + skill="Command Ships") + + return locals() + +def effect5504(): + type = "passive" + def handler(fit, ship, context): + fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Heavy Drone Operation"), + "maxVelocity", ship.getModifiedItemAttr("eliteBonusCommandShips2"), + skill="Command Ships") + + return locals() + +def effect5505(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Hybrid Turret"), + "speed", ship.getModifiedItemAttr("eliteBonusCommandShips1"), skill="Command Ships") + + return locals() + +def effect5514(): + type = "passive" + def handler(fit, ship, context): + damageTypes = ("em", "explosive", "kinetic", "thermal") + for damageType in damageTypes: + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Assault Missiles"), + "{0}Damage".format(damageType), + ship.getModifiedItemAttr("eliteBonusCommandShips2"), skill="Command Ships") + + return locals() + +def effect5521(): + type = "passive" + def handler(fit, ship, context): + damageTypes = ("em", "explosive", "kinetic", "thermal") + for damageType in damageTypes: + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Missiles"), + "{0}Damage".format(damageType), + ship.getModifiedItemAttr("eliteBonusCommandShips2"), skill="Command Ships") + + return locals() + +def effect553(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Large Hybrid Turret"), + "trackingSpeed", ship.getModifiedItemAttr("shipBonusGB"), skill="Gallente Battleship") + + return locals() + +def effect5539(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Missiles"), + "kineticDamage", ship.getModifiedItemAttr("shipBonusAC"), skill="Amarr Cruiser") + + return locals() + +def effect5540(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Missiles"), + "emDamage", ship.getModifiedItemAttr("shipBonusAC"), skill="Amarr Cruiser") + + return locals() + +def effect5541(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Missiles"), + "thermalDamage", ship.getModifiedItemAttr("shipBonusAC"), skill="Amarr Cruiser") + + return locals() + +def effect5542(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Missiles"), + "explosiveDamage", ship.getModifiedItemAttr("shipBonusAC"), skill="Amarr Cruiser") + + return locals() + +def effect5552(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Missiles"), + "maxVelocity", ship.getModifiedItemAttr("eliteBonusHeavyGunship1"), + skill="Heavy Assault Cruisers") + + return locals() + +def effect5553(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Assault Missiles"), + "maxVelocity", ship.getModifiedItemAttr("eliteBonusHeavyGunship1"), + skill="Heavy Assault Cruisers") + + return locals() + +def effect5554(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Repair Systems"), + "armorDamageAmount", ship.getModifiedItemAttr("shipBonusGC2"), + skill="Gallente Cruiser") + + return locals() + +def effect5555(): + type = "passive" + def handler(fit, ship, context): + fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Heavy Drone Operation"), + "maxVelocity", ship.getModifiedItemAttr("shipBonusGC"), skill="Gallente Cruiser") + + return locals() + +def effect5556(): + type = "passive" + def handler(fit, ship, context): + fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Heavy Drone Operation"), + "trackingSpeed", ship.getModifiedItemAttr("shipBonusGC"), skill="Gallente Cruiser") + + return locals() + +def effect5557(): + type = "passive" + def handler(fit, ship, context): + fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Sentry Drone Interfacing"), + "maxRange", ship.getModifiedItemAttr("eliteBonusHeavyGunship2"), + skill="Heavy Assault Cruisers") + + return locals() + +def effect5558(): + type = "passive" + def handler(fit, ship, context): + fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Sentry Drone Interfacing"), + "trackingSpeed", ship.getModifiedItemAttr("eliteBonusHeavyGunship2"), + skill="Heavy Assault Cruisers") + + return locals() + +def effect5559(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Operation"), + "shieldBonus", ship.getModifiedItemAttr("shipBonusMC2"), skill="Minmatar Cruiser") + + return locals() + +def effect5560(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Micro Jump Drive", + "moduleReactivationDelay", ship.getModifiedItemAttr("roleBonusMarauder")) + + return locals() + +def effect5564(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Skirmish Command"), + "warfareBuff2Value", src.getModifiedItemAttr("subsystemBonusCaldariOffensive"), skill="Caldari Offensive Systems") + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Skirmish Command"), + "warfareBuff4Value", src.getModifiedItemAttr("subsystemBonusCaldariOffensive"), skill="Caldari Offensive Systems") + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Skirmish Command"), + "warfareBuff3Value", src.getModifiedItemAttr("subsystemBonusCaldariOffensive"), skill="Caldari Offensive Systems") + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Skirmish Command"), + "warfareBuff1Value", src.getModifiedItemAttr("subsystemBonusCaldariOffensive"), skill="Caldari Offensive Systems") + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Skirmish Command"), + "buffDuration", src.getModifiedItemAttr("subsystemBonusCaldariOffensive"), skill="Caldari Offensive Systems") + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Command"), + "buffDuration", src.getModifiedItemAttr("subsystemBonusCaldariOffensive"), skill="Caldari Offensive Systems") + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Command"), + "warfareBuff1Value", src.getModifiedItemAttr("subsystemBonusCaldariOffensive"), skill="Caldari Offensive Systems") + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Command"), + "warfareBuff3Value", src.getModifiedItemAttr("subsystemBonusCaldariOffensive"), skill="Caldari Offensive Systems") + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Command"), + "warfareBuff2Value", src.getModifiedItemAttr("subsystemBonusCaldariOffensive"), skill="Caldari Offensive Systems") + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Command"), + "warfareBuff4Value", src.getModifiedItemAttr("subsystemBonusCaldariOffensive"), skill="Caldari Offensive Systems") + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Information Command"), + "buffDuration", src.getModifiedItemAttr("subsystemBonusCaldariOffensive"), skill="Caldari Offensive Systems") + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Information Command"), + "warfareBuff3Value", src.getModifiedItemAttr("subsystemBonusCaldariOffensive"), skill="Caldari Offensive Systems") + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Information Command"), + "warfareBuff1Value", src.getModifiedItemAttr("subsystemBonusCaldariOffensive"), skill="Caldari Offensive Systems") + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Information Command"), + "warfareBuff4Value", src.getModifiedItemAttr("subsystemBonusCaldariOffensive"), skill="Caldari Offensive Systems") + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Information Command"), + "warfareBuff2Value", src.getModifiedItemAttr("subsystemBonusCaldariOffensive"), skill="Caldari Offensive Systems") + + return locals() + +def effect5568(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Skirmish Command"), + "warfareBuff1Value", src.getModifiedItemAttr("subsystemBonusGallenteOffensive"), skill="Gallente Offensive Systems") + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Skirmish Command"), + "warfareBuff4Value", src.getModifiedItemAttr("subsystemBonusGallenteOffensive"), skill="Gallente Offensive Systems") + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Skirmish Command"), + "buffDuration", src.getModifiedItemAttr("subsystemBonusGallenteOffensive"), skill="Gallente Offensive Systems") + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Skirmish Command"), + "warfareBuff2Value", src.getModifiedItemAttr("subsystemBonusGallenteOffensive"), skill="Gallente Offensive Systems") + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Skirmish Command"), + "warfareBuff3Value", src.getModifiedItemAttr("subsystemBonusGallenteOffensive"), skill="Gallente Offensive Systems") + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Armored Command"), + "warfareBuff4Value", src.getModifiedItemAttr("subsystemBonusGallenteOffensive"), skill="Gallente Offensive Systems") + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Armored Command"), + "warfareBuff1Value", src.getModifiedItemAttr("subsystemBonusGallenteOffensive"), skill="Gallente Offensive Systems") + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Armored Command"), + "warfareBuff2Value", src.getModifiedItemAttr("subsystemBonusGallenteOffensive"), skill="Gallente Offensive Systems") + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Armored Command"), + "buffDuration", src.getModifiedItemAttr("subsystemBonusGallenteOffensive"), skill="Gallente Offensive Systems") + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Armored Command"), + "warfareBuff3Value", src.getModifiedItemAttr("subsystemBonusGallenteOffensive"), skill="Gallente Offensive Systems") + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Information Command"), + "warfareBuff3Value", src.getModifiedItemAttr("subsystemBonusGallenteOffensive"), skill="Gallente Offensive Systems") + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Information Command"), + "warfareBuff1Value", src.getModifiedItemAttr("subsystemBonusGallenteOffensive"), skill="Gallente Offensive Systems") + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Information Command"), + "warfareBuff2Value", src.getModifiedItemAttr("subsystemBonusGallenteOffensive"), skill="Gallente Offensive Systems") + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Information Command"), + "buffDuration", src.getModifiedItemAttr("subsystemBonusGallenteOffensive"), skill="Gallente Offensive Systems") + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Information Command"), + "warfareBuff4Value", src.getModifiedItemAttr("subsystemBonusGallenteOffensive"), skill="Gallente Offensive Systems") + + return locals() + +def effect5570(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Skirmish Command"), + "warfareBuff1Value", src.getModifiedItemAttr("subsystemBonusMinmatarOffensive"), skill="Minmatar Offensive Systems") + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Skirmish Command"), + "warfareBuff2Value", src.getModifiedItemAttr("subsystemBonusMinmatarOffensive"), skill="Minmatar Offensive Systems") + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Skirmish Command"), + "buffDuration", src.getModifiedItemAttr("subsystemBonusMinmatarOffensive"), skill="Minmatar Offensive Systems") + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Skirmish Command"), + "warfareBuff4Value", src.getModifiedItemAttr("subsystemBonusMinmatarOffensive"), skill="Minmatar Offensive Systems") + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Skirmish Command"), + "warfareBuff3Value", src.getModifiedItemAttr("subsystemBonusMinmatarOffensive"), skill="Minmatar Offensive Systems") + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Command"), + "warfareBuff3Value", src.getModifiedItemAttr("subsystemBonusMinmatarOffensive"), skill="Minmatar Offensive Systems") + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Command"), + "warfareBuff2Value", src.getModifiedItemAttr("subsystemBonusMinmatarOffensive"), skill="Minmatar Offensive Systems") + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Command"), + "buffDuration", src.getModifiedItemAttr("subsystemBonusMinmatarOffensive"), skill="Minmatar Offensive Systems") + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Command"), + "warfareBuff4Value", src.getModifiedItemAttr("subsystemBonusMinmatarOffensive"), skill="Minmatar Offensive Systems") + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Command"), + "war" + "fareBuff1Value", src.getModifiedItemAttr("subsystemBonusMinmatarOffensive"), skill="Minmatar Offensive Systems") + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Armored Command"), + "warfareBuff3Value", src.getModifiedItemAttr("subsystemBonusMinmatarOffensive"), skill="Minmatar Offensive Systems") + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Armored Command"), + "warfareBuff4Value", src.getModifiedItemAttr("subsystemBonusMinmatarOffensive"), skill="Minmatar Offensive Systems") + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Armored Command"), + "warfareBuff1Value", src.getModifiedItemAttr("subsystemBonusMinmatarOffensive"), skill="Minmatar Offensive Systems") + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Armored Command"), + "buffDuration", src.getModifiedItemAttr("subsystemBonusMinmatarOffensive"), skill="Minmatar Offensive Systems") + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Armored Command"), + "warfareBuff2Value", src.getModifiedItemAttr("subsystemBonusMinmatarOffensive"), skill="Minmatar Offensive Systems") + + return locals() + +def effect5572(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Armored Command"), "warfareBuff3Value", + src.getModifiedItemAttr("eliteBonusCommandShips3"), skill="Command Ships") + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Armored Command"), "warfareBuff1Value", + src.getModifiedItemAttr("eliteBonusCommandShips3"), skill="Command Ships") + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Armored Command"), "warfareBuff2Value", + src.getModifiedItemAttr("eliteBonusCommandShips3"), skill="Command Ships") + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Armored Command"), "buffDuration", + src.getModifiedItemAttr("eliteBonusCommandShips3"), skill="Command Ships") + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Armored Command"), "warfareBuff4Value", + src.getModifiedItemAttr("eliteBonusCommandShips3"), skill="Command Ships") + + return locals() + +def effect5573(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Command"), "warfareBuff1Value", + src.getModifiedItemAttr("eliteBonusCommandShips3"), skill="Command Ships") + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Command"), "warfareBuff4Value", + src.getModifiedItemAttr("eliteBonusCommandShips3"), skill="Command Ships") + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Command"), "warfareBuff2Value", + src.getModifiedItemAttr("eliteBonusCommandShips3"), skill="Command Ships") + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Command"), "buffDuration", + src.getModifiedItemAttr("eliteBonusCommandShips3"), skill="Command Ships") + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Command"), "warfareBuff3Value", + src.getModifiedItemAttr("eliteBonusCommandShips3"), skill="Command Ships") + + return locals() + +def effect5574(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Skirmish Command"), "warfareBuff2Value", + src.getModifiedItemAttr("eliteBonusCommandShips3"), skill="Command Ships") + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Skirmish Command"), "warfareBuff1Value", + src.getModifiedItemAttr("eliteBonusCommandShips3"), skill="Command Ships") + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Skirmish Command"), "warfareBuff3Value", + src.getModifiedItemAttr("eliteBonusCommandShips3"), skill="Command Ships") + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Skirmish Command"), "warfareBuff4Value", + src.getModifiedItemAttr("eliteBonusCommandShips3"), skill="Command Ships") + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Skirmish Command"), "buffDuration", + src.getModifiedItemAttr("eliteBonusCommandShips3"), skill="Command Ships") + + return locals() + +def effect5575(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Information Command"), "buffDuration", + src.getModifiedItemAttr("eliteBonusCommandShips3"), skill="Command Ships") + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Information Command"), "warfareBuff3Value", + src.getModifiedItemAttr("eliteBonusCommandShips3"), skill="Command Ships") + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Information Command"), "warfareBuff2Value", + src.getModifiedItemAttr("eliteBonusCommandShips3"), skill="Command Ships") + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Information Command"), "warfareBuff1Value", + src.getModifiedItemAttr("eliteBonusCommandShips3"), skill="Command Ships") + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Information Command"), "warfareBuff4Value", + src.getModifiedItemAttr("eliteBonusCommandShips3"), skill="Command Ships") + + return locals() + +def effect56(): + type = "passive" + def handler(fit, module, context): + fit.ship.multiplyItemAttr("powerOutput", module.getModifiedItemAttr("powerOutputMultiplier", None)) + + return locals() + +def effect5607(): + type = "passive" + def handler(fit, container, context): + level = container.level if "skill" in context else 1 + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capacitor Emission Systems"), + "capacitorNeed", container.getModifiedItemAttr("capNeedBonus") * level) + + return locals() + +def effect5610(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Large Energy Turret"), + "maxRange", ship.getModifiedItemAttr("shipBonusAB"), skill="Amarr Battleship") + + return locals() + +def effect5611(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Large Hybrid Turret"), + "falloff", ship.getModifiedItemAttr("shipBonusGB2"), skill="Gallente Battleship") + + return locals() + +def effect5618(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Missile Launcher Rapid Heavy", + "speed", ship.getModifiedItemAttr("shipBonus2CB"), skill="Caldari Battleship") + + return locals() + +def effect5619(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Missile Launcher Rapid Heavy", + "speed", ship.getModifiedItemAttr("shipBonusCB"), skill="Caldari Battleship") + + return locals() + +def effect562(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Hybrid Turret"), + "damageMultiplier", ship.getModifiedItemAttr("shipBonusGC"), skill="Gallente Cruiser") + + return locals() + +def effect5620(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Missile Launcher Rapid Heavy", + "speed", ship.getModifiedItemAttr("shipBonusMB"), skill="Minmatar Battleship") + + return locals() + +def effect5621(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Missile Launcher Cruise", + "speed", ship.getModifiedItemAttr("shipBonusMB"), skill="Minmatar Battleship") + + return locals() + +def effect5622(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Missile Launcher Torpedo", + "speed", ship.getModifiedItemAttr("shipBonusMB"), skill="Minmatar Battleship") + + return locals() + +def effect5628(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Cruise Missiles"), + "emDamage", ship.getModifiedItemAttr("shipBonusMB"), skill="Minmatar Battleship") + + return locals() + +def effect5629(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Cruise Missiles"), + "thermalDamage", ship.getModifiedItemAttr("shipBonusMB"), + skill="Minmatar Battleship") + + return locals() + +def effect5630(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Cruise Missiles"), + "kineticDamage", ship.getModifiedItemAttr("shipBonusMB"), + skill="Minmatar Battleship") + + return locals() + +def effect5631(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Cruise Missiles"), + "explosiveDamage", ship.getModifiedItemAttr("shipBonusMB"), + skill="Minmatar Battleship") + + return locals() + +def effect5632(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Torpedoes"), + "explosiveDamage", ship.getModifiedItemAttr("shipBonusMB"), + skill="Minmatar Battleship") + + return locals() + +def effect5633(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Torpedoes"), + "emDamage", ship.getModifiedItemAttr("shipBonusMB"), skill="Minmatar Battleship") + + return locals() + +def effect5634(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Torpedoes"), + "thermalDamage", ship.getModifiedItemAttr("shipBonusMB"), + skill="Minmatar Battleship") + + return locals() + +def effect5635(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Torpedoes"), + "kineticDamage", ship.getModifiedItemAttr("shipBonusMB"), + skill="Minmatar Battleship") + + return locals() + +def effect5636(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Missiles"), + "emDamage", ship.getModifiedItemAttr("shipBonusMB"), skill="Minmatar Battleship") + + return locals() + +def effect5637(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Missiles"), + "thermalDamage", ship.getModifiedItemAttr("shipBonusMB"), + skill="Minmatar Battleship") + + return locals() + +def effect5638(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Missiles"), + "kineticDamage", ship.getModifiedItemAttr("shipBonusMB"), + skill="Minmatar Battleship") + + return locals() + +def effect5639(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Missiles"), + "explosiveDamage", ship.getModifiedItemAttr("shipBonusMB"), + skill="Minmatar Battleship") + + return locals() + +def effect5644(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), + "maxVelocity", ship.getModifiedItemAttr("shipBonusCC2"), skill="Caldari Cruiser") + + return locals() + +def effect5647(): + type = "passive" + runTime = "early" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Cloaking"), + "cpu", ship.getModifiedItemAttr("shipBonusRole7")) + + return locals() + +def effect5650(): + type = "passive" + def handler(fit, ship, context): + damageTypes = ("Em", "Explosive", "Kinetic", "Thermal") + for damageType in damageTypes: + fit.ship.boostItemAttr("armor{0}DamageResonance".format(damageType), ship.getModifiedItemAttr("shipBonusAF"), + skill="Amarr Frigate") + + return locals() + +def effect5657(): + type = "passive" + def handler(fit, ship, context): + damageTypes = ("Em", "Explosive", "Kinetic", "Thermal") + for damageType in damageTypes: + fit.ship.boostItemAttr("shield{0}DamageResonance".format(damageType), + ship.getModifiedItemAttr("eliteBonusInterceptor2"), skill="Interceptors") + + return locals() + +def effect5673(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Projectile Turret"), + "damageMultiplier", ship.getModifiedItemAttr("eliteBonusInterceptor2"), + skill="Interceptors") + + return locals() + +def effect5676(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredChargeBoost( + lambda mod: mod.charge.requiresSkill("Rockets") or mod.charge.requiresSkill("Light Missiles"), + "aoeCloudSize", ship.getModifiedItemAttr("shipBonusCD2"), skill="Caldari Destroyer") + + return locals() + +def effect5688(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), + "maxVelocity", ship.getModifiedItemAttr("shipBonusAD2"), skill="Amarr Destroyer") + + return locals() + +def effect5695(): + type = "passive" + def handler(fit, ship, context): + for damageType in ("Em", "Thermal", "Explosive", "Kinetic"): + fit.ship.boostItemAttr("armor%sDamageResonance" % damageType, + ship.getModifiedItemAttr("eliteBonusInterdictors1"), skill="Interdictors") + + return locals() + +def effect57(): + type = "passive" + def handler(fit, module, context): + fit.ship.multiplyItemAttr("shieldCapacity", module.getModifiedItemAttr("shieldCapacityMultiplier", None)) + + return locals() + +def effect5717(): + runTime = "early" + type = "passive" + def handler(fit, implant, context): + fit.appliedImplants.filteredItemMultiply(lambda mod: mod.item.group.name == "Cyberimplant", + "WarpSBonus", implant.getModifiedItemAttr("implantSetWarpSpeed")) + + return locals() + +def effect5721(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Energy Turret"), + "maxRange", ship.getModifiedItemAttr("shipBonusRole7")) + + return locals() + +def effect5722(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Hybrid Turret"), + "maxRange", ship.getModifiedItemAttr("shipBonusGD1"), skill="Gallente Destroyer") + + return locals() + +def effect5723(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("High Speed Maneuvering"), + "signatureRadiusBonus", ship.getModifiedItemAttr("eliteBonusInterdictors2"), + skill="Interdictors") + + return locals() + +def effect5724(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Hybrid Turret"), + "maxRange", ship.getModifiedItemAttr("shipBonusGF"), skill="Gallente Frigate") + + return locals() + +def effect5725(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Remote Armor Repair Systems"), + "armorDamageAmount", ship.getModifiedItemAttr("shipBonusRole7")) + + return locals() + +def effect5726(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Large Energy Turret"), + "maxRange", ship.getModifiedItemAttr("shipBonusRole7")) + + return locals() + +def effect5733(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Missiles"), + "explosiveDamage", ship.getModifiedItemAttr("eliteBonusViolatorsRole1")) + + return locals() + +def effect5734(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Missiles"), + "kineticDamage", ship.getModifiedItemAttr("eliteBonusViolatorsRole1")) + + return locals() + +def effect5735(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Missiles"), + "emDamage", ship.getModifiedItemAttr("eliteBonusViolatorsRole1")) + + return locals() + +def effect5736(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Missiles"), + "thermalDamage", ship.getModifiedItemAttr("eliteBonusViolatorsRole1")) + + return locals() + +def effect5737(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Astrometrics"), + "baseSensorStrength", ship.getModifiedItemAttr("shipBonusRole7")) + + return locals() + +def effect5738(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Remote Armor Repair Systems"), + "maxRange", ship.getModifiedItemAttr("shipBonusRole8")) + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Remote Armor Repair Systems"), + "falloffEffectiveness", ship.getModifiedItemAttr("shipBonusRole8")) + + return locals() + +def effect5754(): + type = "overheat" + def handler(fit, module, context): + module.boostItemAttr("maxRangeBonus", module.getModifiedItemAttr("overloadTrackingModuleStrengthBonus")) + module.boostItemAttr("falloffBonus", module.getModifiedItemAttr("overloadTrackingModuleStrengthBonus")) + module.boostItemAttr("trackingSpeedBonus", module.getModifiedItemAttr("overloadTrackingModuleStrengthBonus")) + + return locals() + +def effect5757(): + type = "overheat" + def handler(fit, module, context): + module.boostItemAttr("maxTargetRangeBonus", module.getModifiedItemAttr("overloadSensorModuleStrengthBonus")) + module.boostItemAttr("scanResolutionBonus", module.getModifiedItemAttr("overloadSensorModuleStrengthBonus"), + stackingPenalties=True) + for scanType in ("Gravimetric", "Magnetometric", "Radar", "Ladar"): + module.boostItemAttr( + "scan{}StrengthPercent".format(scanType), + module.getModifiedItemAttr("overloadSensorModuleStrengthBonus"), + stackingPenalties=True + ) + + return locals() + +def effect5758(): + type = "overheat" + def handler(fit, module, context): + module.boostItemAttr("signatureRadiusBonus", module.getModifiedItemAttr("overloadPainterStrengthBonus") or 0) + + return locals() + +def effect5769(): + type = "passive" + def handler(fit, container, context): + level = container.level if "skill" in context else 1 + fit.drones.filteredItemBoost(lambda drone: drone.item.group.name == "Logistic Drone", + "structureDamageAmount", container.getModifiedItemAttr("damageHP") * level) + + return locals() + +def effect5778(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Missile Launcher Operation"), + "speed", ship.getModifiedItemAttr("shipBonusMF2"), skill="Minmatar Frigate") + + return locals() + +def effect5779(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Projectile Turret"), + "falloff", ship.getModifiedItemAttr("shipBonusMF2"), skill="Minmatar Frigate") + + return locals() + +def effect5793(): + type = "passive" + def handler(fit, container, context): + level = container.level if "skill" in context else 1 + for attr in ("maxRangeBonus", "falloffBonus"): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Weapon Disruption"), + attr, container.getModifiedItemAttr("scanSkillEwStrengthBonus") * level) + + return locals() + +def effect58(): + type = "passive" + def handler(fit, module, context): + fit.ship.multiplyItemAttr("capacitorCapacity", module.getModifiedItemAttr("capacitorCapacityMultiplier", None)) + + return locals() + +def effect5802(): + type = "passive" + def handler(fit, module, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Afterburner"), + "speedFactor", module.getModifiedItemAttr("shipBonus2CB"), skill="Caldari Battleship") + + return locals() + +def effect5803(): + type = "passive" + def handler(fit, ship, context): + fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Sentry Drone Interfacing"), + "damageMultiplier", ship.getModifiedItemAttr("shipBonusRole7")) + + return locals() + +def effect5804(): + type = "passive" + def handler(fit, ship, context): + fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Heavy Drone Operation"), + "damageMultiplier", ship.getModifiedItemAttr("shipBonusRole7")) + + return locals() + +def effect5805(): + type = "passive" + def handler(fit, ship, context): + fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Sentry Drone Interfacing"), + "hp", ship.getModifiedItemAttr("shipBonusRole7")) + + return locals() + +def effect5806(): + type = "passive" + def handler(fit, ship, context): + fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Sentry Drone Interfacing"), + "armorHP", ship.getModifiedItemAttr("shipBonusRole7")) + + return locals() + +def effect5807(): + type = "passive" + def handler(fit, ship, context): + fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Sentry Drone Interfacing"), + "shieldCapacity", ship.getModifiedItemAttr("shipBonusRole7")) + + return locals() + +def effect5808(): + type = "passive" + def handler(fit, ship, context): + fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Heavy Drone Operation"), + "shieldCapacity", ship.getModifiedItemAttr("shipBonusRole7")) + + return locals() + +def effect5809(): + type = "passive" + def handler(fit, ship, context): + fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Heavy Drone Operation"), + "armorHP", ship.getModifiedItemAttr("shipBonusRole7")) + + return locals() + +def effect581(): + type = "passive" + def handler(fit, container, context): + level = container.level if "skill" in context else 1 + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Gunnery"), + "cpu", container.getModifiedItemAttr("cpuNeedBonus") * level) + + return locals() + +def effect5810(): + type = "passive" + def handler(fit, ship, context): + fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Heavy Drone Operation"), + "hp", ship.getModifiedItemAttr("shipBonusRole7")) + + return locals() + +def effect5811(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), + "kineticDamage", ship.getModifiedItemAttr("shipBonusGB2"), + skill="Gallente Battleship") + + return locals() + +def effect5812(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), + "thermalDamage", ship.getModifiedItemAttr("shipBonusGB2"), + skill="Gallente Battleship") + + return locals() + +def effect5813(): + type = "passive" + def handler(fit, module, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Afterburner"), + "speedFactor", module.getModifiedItemAttr("shipBonusCF2"), skill="Caldari Frigate") + + return locals() + +def effect5814(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), + "kineticDamage", ship.getModifiedItemAttr("shipBonusGF"), skill="Gallente Frigate") + + return locals() + +def effect5815(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), + "thermalDamage", ship.getModifiedItemAttr("shipBonusGF"), skill="Gallente Frigate") + + return locals() + +def effect5816(): + type = "passive" + def handler(fit, ship, context): + fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Light Drone Operation"), + "damageMultiplier", ship.getModifiedItemAttr("shipBonusRole7")) + + return locals() + +def effect5817(): + type = "passive" + def handler(fit, ship, context): + fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Light Drone Operation"), + "hp", ship.getModifiedItemAttr("shipBonusRole7")) + + return locals() + +def effect5818(): + type = "passive" + def handler(fit, ship, context): + fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Light Drone Operation"), + "armorHP", ship.getModifiedItemAttr("shipBonusRole7")) + + return locals() + +def effect5819(): + type = "passive" + def handler(fit, ship, context): + fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Light Drone Operation"), + "shieldCapacity", ship.getModifiedItemAttr("shipBonusRole7")) + + return locals() + +def effect582(): + type = "passive" + def handler(fit, skill, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Gunnery"), + "speed", skill.getModifiedItemAttr("rofBonus") * skill.level) + + return locals() + +def effect5820(): + type = "passive" + def handler(fit, module, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Afterburner"), + "speedFactor", module.getModifiedItemAttr("shipBonusCC2"), skill="Caldari Cruiser") + + return locals() + +def effect5821(): + type = "passive" + def handler(fit, ship, context): + fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Medium Drone Operation"), + "damageMultiplier", ship.getModifiedItemAttr("shipBonusRole7")) + + return locals() + +def effect5822(): + type = "passive" + def handler(fit, ship, context): + fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Medium Drone Operation"), + "hp", ship.getModifiedItemAttr("shipBonusRole7")) + + return locals() + +def effect5823(): + type = "passive" + def handler(fit, ship, context): + fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Medium Drone Operation"), + "armorHP", ship.getModifiedItemAttr("shipBonusRole7")) + + return locals() + +def effect5824(): + type = "passive" + def handler(fit, ship, context): + fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Medium Drone Operation"), + "shieldCapacity", ship.getModifiedItemAttr("shipBonusRole7")) + + return locals() + +def effect5825(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), + "kineticDamage", ship.getModifiedItemAttr("shipBonusGC2"), skill="Gallente Cruiser") + + return locals() + +def effect5826(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), + "thermalDamage", ship.getModifiedItemAttr("shipBonusGC2"), skill="Gallente Cruiser") + + return locals() + +def effect5827(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Weapon Disruption"), + "maxRange", ship.getModifiedItemAttr("shipBonusAF"), skill="Amarr Frigate") + + return locals() + +def effect5829(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Mining"), + "duration", ship.getModifiedItemAttr("shipBonusORE3"), skill="Mining Barge") + + return locals() + +def effect5832(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost( + lambda mod: mod.item.requiresSkill("Mining") or mod.item.requiresSkill("Ice Harvesting"), + "maxRange", ship.getModifiedItemAttr("shipBonusORE2"), skill="Mining Barge") + + return locals() + +def effect5839(): + type = "passive" + def handler(fit, ship, context): + for damageType in ("em", "thermal", "explosive", "kinetic"): + fit.ship.boostItemAttr("shield{}DamageResonance".format(damageType.capitalize()), + ship.getModifiedItemAttr("eliteBonusBarge1"), skill="Exhumers") + + return locals() + +def effect584(): + type = "passive" + def handler(fit, implant, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Gunnery"), + "damageMultiplier", implant.getModifiedItemAttr("damageMultiplierBonus")) + + return locals() + +def effect5840(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Mining"), + "duration", ship.getModifiedItemAttr("eliteBonusBarge2"), skill="Exhumers") + + return locals() + +def effect5852(): + type = "passive" + def handler(fit, module, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Mining"), + "miningAmount", module.getModifiedItemAttr("eliteBonusExpedition1"), + skill="Expedition Frigates") + + return locals() + +def effect5853(): + type = "passive" + def handler(fit, ship, context): + fit.ship.boostItemAttr("signatureRadius", ship.getModifiedItemAttr("eliteBonusExpedition2"), + skill="Expedition Frigates") + + return locals() + +def effect5862(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), + "emDamage", ship.getModifiedItemAttr("shipBonusCB"), skill="Caldari Battleship") + + return locals() + +def effect5863(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), + "kineticDamage", ship.getModifiedItemAttr("shipBonusCB"), + skill="Caldari Battleship") + + return locals() + +def effect5864(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), + "thermalDamage", ship.getModifiedItemAttr("shipBonusCB"), + skill="Caldari Battleship") + + return locals() + +def effect5865(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), + "explosiveDamage", ship.getModifiedItemAttr("shipBonusCB"), + skill="Caldari Battleship") + + return locals() + +def effect5866(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Warp Scrambler", + "maxRange", ship.getModifiedItemAttr("shipBonusGB"), skill="Gallente Battleship") + + return locals() + +def effect5867(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), + "explosionDelay", ship.getModifiedItemAttr("shipBonusRole8")) + + return locals() + +def effect5868(): + type = "passive" + def handler(fit, module, context): + fit.ship.boostItemAttr("capacity", module.getModifiedItemAttr("drawback")) + + return locals() + +def effect5869(): + type = "passive" + def handler(fit, ship, context): + fit.ship.boostItemAttr("warpSpeedMultiplier", ship.getModifiedItemAttr("eliteBonusIndustrial1"), + skill="Transport Ships") + + return locals() + +def effect587(): + type = "passive" + def handler(fit, skill, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Weapon", + "damageMultiplier", skill.getModifiedItemAttr("damageMultiplierBonus") * skill.level) + + return locals() + +def effect5870(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Operation"), + "shieldBonus", ship.getModifiedItemAttr("shipBonusCI2"), skill="Caldari Industrial") + + return locals() + +def effect5871(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Operation"), + "shieldBonus", ship.getModifiedItemAttr("shipBonusMI2"), skill="Minmatar Industrial") + + return locals() + +def effect5872(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Repair Systems"), + "armorDamageAmount", ship.getModifiedItemAttr("shipBonusAI2"), + skill="Amarr Industrial") + + return locals() + +def effect5873(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Repair Systems"), + "armorDamageAmount", ship.getModifiedItemAttr("shipBonusGI2"), + skill="Gallente Industrial") + + return locals() + +def effect5874(): + type = "passive" + def handler(fit, ship, context): + fit.ship.boostItemAttr("fleetHangarCapacity", ship.getModifiedItemAttr("eliteBonusIndustrial1"), + skill="Transport Ships") + + return locals() + +def effect588(): + type = "passive" + def handler(fit, skill, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Projectile Weapon", + "damageMultiplier", skill.getModifiedItemAttr("damageMultiplierBonus") * skill.level) + + return locals() + +def effect5881(): + type = "passive" + def handler(fit, ship, context): + for damageType in ("em", "thermal", "explosive", "kinetic"): + fit.ship.boostItemAttr("shield{}DamageResonance".format(damageType.capitalize()), + ship.getModifiedItemAttr("eliteBonusIndustrial2"), skill="Transport Ships") + + return locals() + +def effect5888(): + type = "passive" + def handler(fit, ship, context): + for damageType in ("em", "thermal", "explosive", "kinetic"): + fit.ship.boostItemAttr("armor{}DamageResonance".format(damageType.capitalize()), + ship.getModifiedItemAttr("eliteBonusIndustrial2"), skill="Transport Ships") + + return locals() + +def effect5889(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Afterburner"), + "overloadSpeedFactorBonus", ship.getModifiedItemAttr("roleBonusOverheatDST")) + + return locals() + +def effect589(): + type = "passive" + def handler(fit, skill, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Hybrid Weapon", + "damageMultiplier", skill.getModifiedItemAttr("damageMultiplierBonus") * skill.level) + + return locals() + +def effect5890(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("High Speed Maneuvering"), + "overloadSpeedFactorBonus", ship.getModifiedItemAttr("roleBonusOverheatDST")) + + return locals() + +def effect5891(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Hull Upgrades"), + "overloadHardeningBonus", ship.getModifiedItemAttr("roleBonusOverheatDST")) + + return locals() + +def effect5892(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Hull Upgrades"), + "overloadSelfDurationBonus", ship.getModifiedItemAttr("roleBonusOverheatDST")) + + return locals() + +def effect5893(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Tactical Shield Manipulation"), + "overloadHardeningBonus", ship.getModifiedItemAttr("roleBonusOverheatDST")) + + return locals() + +def effect5896(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Operation"), + "overloadShieldBonus", ship.getModifiedItemAttr("roleBonusOverheatDST")) + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Operation"), + "overloadSelfDurationBonus", ship.getModifiedItemAttr("roleBonusOverheatDST")) + + return locals() + +def effect5899(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Repair Systems"), + "overloadArmorDamageAmount", ship.getModifiedItemAttr("roleBonusOverheatDST")) + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Repair Systems"), + "overloadSelfDurationBonus", ship.getModifiedItemAttr("roleBonusOverheatDST")) + + return locals() + +def effect59(): + type = "passive" + def handler(fit, module, context): + fit.ship.multiplyItemAttr("capacity", module.getModifiedItemAttr("cargoCapacityMultiplier")) + + return locals() + +def effect590(): + type = "passive" + def handler(fit, container, context): + level = container.level if "skill" in context else 1 + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Energy Pulse Weapons"), + "duration", container.getModifiedItemAttr("durationBonus") * level) + + return locals() + +def effect5900(): + type = "passive" + def handler(fit, module, context): + fit.ship.increaseItemAttr("warpSpeedMultiplier", module.getModifiedItemAttr("warpSpeedAdd")) + + return locals() + +def effect5901(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Reinforced Bulkhead", + "cpu", ship.getModifiedItemAttr("cpuNeedBonus")) + + return locals() + +def effect5911(): + runTime = "early" + type = ("projected", "passive") + def handler(fit, module, context): + fit.ship.boostItemAttr("jumpDriveConsumptionAmount", + module.getModifiedItemAttr("consumptionQuantityBonusPercentage"), stackingPenalties=True) + + return locals() + +def effect5912(): + runTime = "early" + type = ("projected", "passive") + def handler(fit, beacon, context): + fit.modules.filteredItemMultiply(lambda mod: mod.item.group.name == "Remote Capacitor Transmitter", + "powerTransferAmount", beacon.getModifiedItemAttr("energyTransferAmountBonus"), + stackingPenalties=True, penaltyGroup="postMul") + + return locals() + +def effect5913(): + runTime = "early" + type = ("projected", "passive") + def handler(fit, beacon, context): + fit.ship.multiplyItemAttr("armorHP", beacon.getModifiedItemAttr("armorHPMultiplier")) + + return locals() + +def effect5914(): + runTime = "early" + type = ("projected", "passive") + def handler(fit, beacon, context): + fit.modules.filteredItemMultiply(lambda mod: mod.item.group.name == "Energy Neutralizer", + "energyNeutralizerAmount", + beacon.getModifiedItemAttr("energyWarfareStrengthMultiplier"), + stackingPenalties=True, penaltyGroup="postMul") + + return locals() + +def effect5915(): + runTime = "early" + type = ("projected", "passive") + def handler(fit, beacon, context): + fit.modules.filteredItemMultiply(lambda mod: mod.item.group.name == "Energy Nosferatu", + "powerTransferAmount", + beacon.getModifiedItemAttr("energyWarfareStrengthMultiplier"), + stackingPenalties=True, penaltyGroup="postMul") + + return locals() + +def effect5916(): + runTime = "early" + type = ("projected", "passive") + def handler(fit, beacon, context): + fit.modules.filteredChargeMultiply(lambda mod: mod.charge.requiresSkill("Bomb Deployment"), + "explosiveDamage", beacon.getModifiedItemAttr("smartbombDamageMultiplier"), + stackingPenalties=True, penaltyGroup="postMul") + + return locals() + +def effect5917(): + runTime = "early" + type = ("projected", "passive") + def handler(fit, beacon, context): + fit.modules.filteredChargeMultiply(lambda mod: mod.charge.requiresSkill("Bomb Deployment"), + "kineticDamage", beacon.getModifiedItemAttr("smartbombDamageMultiplier"), + stackingPenalties=True, penaltyGroup="postMul") + + return locals() + +def effect5918(): + runTime = "early" + type = ("projected", "passive") + def handler(fit, beacon, context): + fit.modules.filteredChargeMultiply(lambda mod: mod.charge.requiresSkill("Bomb Deployment"), + "thermalDamage", beacon.getModifiedItemAttr("smartbombDamageMultiplier"), + stackingPenalties=True, penaltyGroup="postMul") + + return locals() + +def effect5919(): + runTime = "early" + type = ("projected", "passive") + def handler(fit, beacon, context): + fit.modules.filteredChargeMultiply(lambda mod: mod.charge.requiresSkill("Bomb Deployment"), + "emDamage", beacon.getModifiedItemAttr("smartbombDamageMultiplier"), + stackingPenalties=True, penaltyGroup="postMul") + + return locals() + +def effect5920(): + runTime = "early" + type = ("projected", "passive") + def handler(fit, beacon, context): + fit.modules.filteredChargeMultiply(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), + "aoeCloudSize", beacon.getModifiedItemAttr("aoeCloudSizeMultiplier")) + + return locals() + +def effect5921(): + runTime = "early" + type = ("projected", "passive") + def handler(fit, beacon, context): + fit.modules.filteredItemMultiply(lambda mod: mod.item.requiresSkill("Target Painting"), + "signatureRadiusBonus", + beacon.getModifiedItemAttr("targetPainterStrengthMultiplier"), + stackingPenalties=True, penaltyGroup="postMul") + + return locals() + +def effect5922(): + runTime = "early" + type = ("projected", "passive") + def handler(fit, beacon, context): + fit.modules.filteredItemMultiply(lambda mod: mod.item.group.name == "Stasis Web", + "speedFactor", beacon.getModifiedItemAttr("stasisWebStrengthMultiplier"), + stackingPenalties=True, penaltyGroup="postMul") + + return locals() + +def effect5923(): + runTime = "early" + type = ("projected", "passive") + def handler(fit, beacon, context): + fit.modules.filteredChargeMultiply(lambda mod: mod.charge.requiresSkill("Bomb Deployment"), + "energyNeutralizerAmount", + beacon.getModifiedItemAttr("smartbombDamageMultiplier"), + stackingPenalties=True, penaltyGroup="postMul") + + return locals() + +def effect5924(): + runTime = "early" + type = ("projected", "passive") + def handler(fit, beacon, context): + fit.modules.filteredChargeMultiply(lambda mod: mod.charge.requiresSkill("Bomb Deployment"), + "scanGravimetricStrengthBonus", + beacon.getModifiedItemAttr("smartbombDamageMultiplier"), + stackingPenalties=True, penaltyGroup="postMul") + + return locals() + +def effect5925(): + runTime = "early" + type = ("projected", "passive") + def handler(fit, beacon, context): + fit.modules.filteredChargeMultiply(lambda mod: mod.charge.requiresSkill("Bomb Deployment"), + "scanLadarStrengthBonus", + beacon.getModifiedItemAttr("smartbombDamageMultiplier"), + stackingPenalties=True, penaltyGroup="postMul") + + return locals() + +def effect5926(): + runTime = "early" + type = ("projected", "passive") + def handler(fit, beacon, context): + fit.modules.filteredChargeMultiply(lambda mod: mod.charge.requiresSkill("Bomb Deployment"), + "scanMagnetometricStrengthBonus", + beacon.getModifiedItemAttr("smartbombDamageMultiplier"), + stackingPenalties=True, penaltyGroup="postMul") + + return locals() + +def effect5927(): + runTime = "early" + type = ("projected", "passive") + def handler(fit, beacon, context): + fit.modules.filteredChargeMultiply(lambda mod: mod.charge.requiresSkill("Bomb Deployment"), + "scanRadarStrengthBonus", + beacon.getModifiedItemAttr("smartbombDamageMultiplier"), + stackingPenalties=True, penaltyGroup="postMul") + + return locals() + +def effect5929(): + runTime = "early" + type = ("projected", "passive") + def handler(fit, beacon, context): + fit.drones.filteredItemMultiply(lambda drone: True, + "trackingSpeed", beacon.getModifiedItemAttr("trackingSpeedMultiplier"), + stackingPenalties=True, penaltyGroup="postMul") + + return locals() + +def effect5934(): + from eos.saveddata.module import State + runTime = "early" + type = "projected", "active" + def handler(fit, module, context): + if "projected" not in context: + return + fit.ship.increaseItemAttr("warpScrambleStatus", module.getModifiedItemAttr("warpScrambleStrength")) + for mod in fit.modules: + if not mod.isEmpty and mod.state > State.ONLINE and ( + mod.item.requiresSkill("Micro Jump Drive Operation") or + mod.item.requiresSkill("High Speed Maneuvering") + ): + mod.state = State.ONLINE + if not mod.isEmpty and mod.item.requiresSkill("Micro Jump Drive Operation") and mod.state > State.ONLINE: + mod.state = State.ONLINE + + return locals() + +def effect5938(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredChargeBoost( + lambda mod: mod.charge.requiresSkill("Rockets") or mod.charge.requiresSkill("Light Missiles"), + "aoeCloudSize", ship.getModifiedItemAttr("shipBonusCF2"), skill="Caldari Frigate") + + return locals() + +def effect5939(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Missile Launcher Rocket", + "speed", ship.getModifiedItemAttr("shipBonus2AF"), skill="Amarr Frigate") + + return locals() + +def effect5940(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Hybrid Turret"), + "speed", ship.getModifiedItemAttr("eliteBonusInterdictors1"), skill="Interdictors") + + return locals() + +def effect5944(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Missile Launcher Operation"), + "speed", ship.getModifiedItemAttr("shipBonusAD1"), skill="Amarr Destroyer") + + return locals() + +def effect5945(): + type = "active" + runTime = "early" + def handler(fit, module, context): + fit.extraAttributes["cloaked"] = True + fit.ship.multiplyItemAttr("maxVelocity", module.getModifiedItemAttr("maxVelocityModifier")) + + return locals() + +def effect5951(): + type = "passive" + def handler(fit, module, context): + fit.ship.boostItemAttr("warpSpeedMultiplier", module.getModifiedItemAttr("drawback"), stackingPenalties=True) + + return locals() + +def effect5956(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Energy Turret"), + "damageMultiplier", ship.getModifiedItemAttr("shipBonusAC2"), skill="Amarr Cruiser") + + return locals() + +def effect5957(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Energy Turret"), + "maxRange", ship.getModifiedItemAttr("eliteBonusHeavyInterdictors1"), + skill="Heavy Interdiction Cruisers") + + return locals() + +def effect5958(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Hybrid Turret"), + "trackingSpeed", ship.getModifiedItemAttr("shipBonusGC"), skill="Gallente Cruiser") + + return locals() + +def effect5959(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Hybrid Turret"), + "maxRange", ship.getModifiedItemAttr("eliteBonusHeavyInterdictors1"), + skill="Heavy Interdiction Cruisers") + + return locals() + +def effect596(): + type = "passive" + def handler(fit, module, context): + module.multiplyItemAttr("maxRange", module.getModifiedChargeAttr("weaponRangeMultiplier")) + + return locals() + +def effect598(): + type = "passive" + def handler(fit, module, context): + module.multiplyItemAttr("speed", module.getModifiedChargeAttr("speedMultiplier") or 1) + + return locals() + +def effect599(): + type = "passive" + def handler(fit, module, context): + module.multiplyItemAttr("falloff", module.getModifiedChargeAttr("fallofMultiplier") or 1) + + return locals() + +def effect5994(): + type = "passive" + def handler(fit, module, context): + for dmgType in ('em', 'thermal', 'kinetic', 'explosive'): + tgtAttr = '{}DamageResonance'.format(dmgType) + fit.ship.forceItemAttr(tgtAttr, module.getModifiedItemAttr("resistanceKillerHull")) + + return locals() + +def effect5995(): + type = "passive" + def handler(fit, module, context): + for layer in ('armor', 'shield'): + for dmgType in ('em', 'thermal', 'kinetic', 'explosive'): + tgtAttr = '{}{}DamageResonance'.format(layer, dmgType.capitalize()) + fit.ship.forceItemAttr(tgtAttr, module.getModifiedItemAttr("resistanceKiller")) + + return locals() + +def effect5998(): + type = "passive" + def handler(fit, ship, context): + fit.ship.boostItemAttr("agility", ship.getModifiedItemAttr("freighterBonusO2"), skill="ORE Freighter", + stackingPenalties=True) + + return locals() + +def effect60(): + type = "passive" + def handler(fit, module, context): + fit.ship.multiplyItemAttr("hp", module.getModifiedItemAttr("structureHPMultiplier")) + + return locals() + +def effect600(): + type = "passive" + def handler(fit, module, context): + module.multiplyItemAttr("trackingSpeed", module.getModifiedChargeAttr("trackingSpeedMultiplier")) + + return locals() + +def effect6001(): + type = "passive" + def handler(fit, ship, context): + fit.ship.boostItemAttr("shipMaintenanceBayCapacity", ship.getModifiedItemAttr("freighterBonusO1"), + skill="ORE Freighter") + + return locals() + +def effect6006(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Energy Turret"), + "damageMultiplier", ship.getModifiedItemAttr("shipBonusTacticalDestroyerAmarr1"), + skill="Amarr Tactical Destroyer") + + return locals() + +def effect6007(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Energy Turret"), + "capacitorNeed", ship.getModifiedItemAttr("shipBonusTacticalDestroyerAmarr2"), + skill="Amarr Tactical Destroyer") + + return locals() + +def effect6008(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: True, "heatDamage", + ship.getModifiedItemAttr("shipBonusTacticalDestroyerAmarr3"), + skill="Amarr Tactical Destroyer") + + return locals() + +def effect6009(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Astrometrics"), "cpu", src.getModifiedItemAttr("roleBonusT3ProbeCPU")) + + return locals() + +def effect6010(): + type = "passive" + def handler(fit, module, context): + fit.ship.multiplyItemAttr( + "maxTargetRange", + 1 / module.getModifiedItemAttr("modeMaxTargetRangePostDiv"), + stackingPenalties=True, + penaltyGroup="postDiv" + ) + + return locals() + +def effect6011(): + type = "passive" + def handler(fit, module, context): + fit.modules.filteredItemMultiply( + lambda mod: mod.item.requiresSkill("Small Energy Turret"), + "maxRange", + 1 / module.getModifiedItemAttr("modeMaxRangePostDiv"), + stackingPenalties=True, + penaltyGroup="postDiv" + ) + + return locals() + +def effect6012(): + type = "passive" + def handler(fit, module, context): + for scanType in ("Gravimetric", "Magnetometric", "Radar", "Ladar"): + fit.ship.multiplyItemAttr( + "scan{}Strength".format(scanType), + 1 / (module.getModifiedItemAttr("mode{}StrengthPostDiv".format(scanType)) or 1), + stackingPenalties=True, + penaltyGroup="postDiv" + ) + + return locals() + +def effect6014(): + type = "passive" + def handler(fit, module, context): + fit.ship.multiplyItemAttr("signatureRadius", 1 / module.getModifiedItemAttr("modeSignatureRadiusPostDiv"), + stackingPenalties=True, penaltyGroup="postDiv") + + return locals() + +def effect6015(): + type = "passive" + def handler(fit, module, context): + for srcResType, tgtResType in ( + ("Em", "Em"), + ("Explosive", "Explosive"), + ("Kinetic", "Kinetic"), + ("Thermic", "Thermal") + ): + fit.ship.multiplyItemAttr( + "armor{0}DamageResonance".format(tgtResType), + 1 / module.getModifiedItemAttr("mode{0}ResistancePostDiv".format(srcResType)), + stackingPenalties=True, + penaltyGroup="postDiv" + ) + + return locals() + +def effect6016(): + type = "passive" + def handler(fit, module, context): + fit.ship.multiplyItemAttr( + "agility", + 1 / module.getModifiedItemAttr("modeAgilityPostDiv"), + stackingPenalties=True, + penaltyGroup="postDiv" + ) + + return locals() + +def effect6017(): + type = "passive" + def handler(fit, module, context): + fit.ship.multiplyItemAttr( + "maxVelocity", + 1 / module.getModifiedItemAttr("modeVelocityPostDiv"), + stackingPenalties=True, + penaltyGroup="postDiv" + ) + + return locals() + +def effect602(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Projectile Turret"), + "speed", ship.getModifiedItemAttr("shipBonusMC"), skill="Minmatar Cruiser") + + return locals() + +def effect6020(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Neutralizer", "maxRange", + src.getModifiedItemAttr("eliteBonusReconShip3"), skill="Recon Ships") + + return locals() + +def effect6021(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Nosferatu", "maxRange", + src.getModifiedItemAttr("eliteBonusReconShip3"), skill="Recon Ships") + + return locals() + +def effect6025(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Hybrid Turret"), + "maxRange", ship.getModifiedItemAttr("eliteBonusReconShip1"), skill="Recon Ships") + + return locals() + +def effect6027(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Projectile Turret"), + "damageMultiplier", ship.getModifiedItemAttr("eliteBonusReconShip1"), + skill="Recon Ships") + + return locals() + +def effect6032(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Remote Capacitor Transmitter", + "power", ship.getModifiedItemAttr("powerTransferPowerNeedBonus")) + + return locals() + +def effect6036(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: True, "heatDamage", + ship.getModifiedItemAttr("shipBonusTacticalDestroyerMinmatar3"), + skill="Minmatar Tactical Destroyer") + + return locals() + +def effect6037(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Projectile Turret"), + "damageMultiplier", ship.getModifiedItemAttr("shipBonusTacticalDestroyerMinmatar1"), + skill="Minmatar Tactical Destroyer") + + return locals() + +def effect6038(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Projectile Turret"), + "maxRange", ship.getModifiedItemAttr("shipBonusTacticalDestroyerMinmatar2"), + skill="Minmatar Tactical Destroyer") + + return locals() + +def effect6039(): + type = "passive" + def handler(fit, module, context): + fit.modules.filteredItemMultiply( + lambda mod: mod.item.requiresSkill("Small Projectile Turret"), + "trackingSpeed", + 1 / module.getModifiedItemAttr("modeTrackingPostDiv"), + stackingPenalties=True, + penaltyGroup="postDiv" + ) + + return locals() + +def effect604(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Large Projectile Turret"), + "speed", ship.getModifiedItemAttr("shipBonusMB2"), skill="Minmatar Battleship") + + return locals() + +def effect6040(): + type = "passive" + def handler(fit, module, context): + fit.modules.filteredItemMultiply( + lambda mod: mod.item.requiresSkill("High Speed Maneuvering"), + "signatureRadiusBonus", + 1 / module.getModifiedItemAttr("modeMWDSigPenaltyPostDiv"), + stackingPenalties=True, + penaltyGroup="postDiv" + ) + + return locals() + +def effect6041(): + type = "passive" + def handler(fit, module, context): + for srcResType, tgtResType in ( + ("Em", "Em"), + ("Explosive", "Explosive"), + ("Kinetic", "Kinetic"), + ("Thermic", "Thermal") + ): + fit.ship.multiplyItemAttr( + "shield{0}DamageResonance".format(tgtResType), + 1 / module.getModifiedItemAttr("mode{0}ResistancePostDiv".format(srcResType)), + stackingPenalties=True, + penaltyGroup="postDiv" + ) + + return locals() + +def effect6045(): + type = "passive" + def handler(fit, ship, context): + fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Sentry Drone Interfacing"), + "damageMultiplier", ship.getModifiedItemAttr("shipBonusGC3"), skill="Gallente Cruiser") + + return locals() + +def effect6046(): + type = "passive" + def handler(fit, ship, context): + fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Sentry Drone Interfacing"), + "hp", ship.getModifiedItemAttr("shipBonusGC3"), skill="Gallente Cruiser") + + return locals() + +def effect6047(): + type = "passive" + def handler(fit, ship, context): + fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Sentry Drone Interfacing"), + "armorHP", ship.getModifiedItemAttr("shipBonusGC3"), skill="Gallente Cruiser") + + return locals() + +def effect6048(): + type = "passive" + def handler(fit, ship, context): + fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Sentry Drone Interfacing"), + "shieldCapacity", ship.getModifiedItemAttr("shipBonusGC3"), skill="Gallente Cruiser") + + return locals() + +def effect6051(): + type = "passive" + def handler(fit, ship, context): + fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Light Drone Operation"), + "damageMultiplier", ship.getModifiedItemAttr("shipBonusGC2"), skill="Gallente Cruiser") + + return locals() + +def effect6052(): + type = "passive" + def handler(fit, ship, context): + fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Medium Drone Operation"), + "damageMultiplier", ship.getModifiedItemAttr("shipBonusGC2"), skill="Gallente Cruiser") + + return locals() + +def effect6053(): + type = "passive" + def handler(fit, ship, context): + fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Heavy Drone Operation"), + "damageMultiplier", ship.getModifiedItemAttr("shipBonusGC2"), skill="Gallente Cruiser") + + return locals() + +def effect6054(): + type = "passive" + def handler(fit, ship, context): + fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Heavy Drone Operation"), + "hp", ship.getModifiedItemAttr("shipBonusGC2"), skill="Gallente Cruiser") + + return locals() + +def effect6055(): + type = "passive" + def handler(fit, ship, context): + fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Heavy Drone Operation"), + "armorHP", ship.getModifiedItemAttr("shipBonusGC2"), skill="Gallente Cruiser") + + return locals() + +def effect6056(): + type = "passive" + def handler(fit, ship, context): + fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Heavy Drone Operation"), + "shieldCapacity", ship.getModifiedItemAttr("shipBonusGC2"), skill="Gallente Cruiser") + + return locals() + +def effect6057(): + type = "passive" + def handler(fit, ship, context): + fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Medium Drone Operation"), + "shieldCapacity", ship.getModifiedItemAttr("shipBonusGC2"), skill="Gallente Cruiser") + + return locals() + +def effect6058(): + type = "passive" + def handler(fit, ship, context): + fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Medium Drone Operation"), + "armorHP", ship.getModifiedItemAttr("shipBonusGC2"), skill="Gallente Cruiser") + + return locals() + +def effect6059(): + type = "passive" + def handler(fit, ship, context): + fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Medium Drone Operation"), + "hp", ship.getModifiedItemAttr("shipBonusGC2"), skill="Gallente Cruiser") + + return locals() + +def effect6060(): + type = "passive" + def handler(fit, ship, context): + fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Light Drone Operation"), + "hp", ship.getModifiedItemAttr("shipBonusGC2"), skill="Gallente Cruiser") + + return locals() + +def effect6061(): + type = "passive" + def handler(fit, ship, context): + fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Light Drone Operation"), + "armorHP", ship.getModifiedItemAttr("shipBonusGC2"), skill="Gallente Cruiser") + + return locals() + +def effect6062(): + type = "passive" + def handler(fit, ship, context): + fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Light Drone Operation"), + "shieldCapacity", ship.getModifiedItemAttr("shipBonusGC2"), skill="Gallente Cruiser") + + return locals() + +def effect6063(): + type = "active" + def handler(fit, module, context): + fit.ship.forceItemAttr("disallowAssistance", module.getModifiedItemAttr("disallowAssistance")) + for scanType in ("Gravimetric", "Magnetometric", "Radar", "Ladar"): + fit.ship.boostItemAttr( + "scan{}Strength".format(scanType), + module.getModifiedItemAttr("scan{}StrengthPercent".format(scanType)), + stackingPenalties=True + ) + + return locals() + +def effect607(): + type = "active" + runTime = "early" + def handler(fit, module, context): + fit.extraAttributes["cloaked"] = True + fit.ship.multiplyItemAttr("maxVelocity", module.getModifiedItemAttr("maxVelocityModifier")) + + return locals() + +def effect6076(): + type = "passive" + def handler(fit, module, context): + fit.modules.filteredChargeMultiply( + lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), + "maxVelocity", + 1 / module.getModifiedItemAttr("modeMaxRangePostDiv"), + stackingPenalties=True, + penaltyGroup="postDiv" + ) + + return locals() + +def effect6077(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: True, "heatDamage", + ship.getModifiedItemAttr("shipBonusTacticalDestroyerCaldari3"), + skill="Caldari Tactical Destroyer") + + return locals() + +def effect6083(): + type = "passive" + def handler(fit, ship, context): + for damageType in ("em", "explosive", "kinetic", "thermal"): + fit.modules.filteredChargeBoost( + lambda mod: mod.charge.requiresSkill("Rockets") or mod.charge.requiresSkill("Light Missiles"), + "{0}Damage".format(damageType), ship.getModifiedItemAttr("shipBonusRole7")) + + return locals() + +def effect6085(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Missile Launcher Operation"), + "speed", ship.getModifiedItemAttr("shipBonusTacticalDestroyerCaldari1"), + skill="Caldari Tactical Destroyer") + + return locals() + +def effect6088(): + type = "passive" + def handler(fit, ship, context): + for damageType in ("em", "explosive", "kinetic", "thermal"): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Assault Missiles"), + "{0}Damage".format(damageType), ship.getModifiedItemAttr("shipBonusMC2"), + skill="Minmatar Cruiser") + + return locals() + +def effect6093(): + type = "passive" + def handler(fit, ship, context): + for damageType in ("em", "explosive", "kinetic", "thermal"): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Missiles"), + "{0}Damage".format(damageType), ship.getModifiedItemAttr("shipBonusMC2"), + skill="Minmatar Cruiser") + + return locals() + +def effect6096(): + type = "passive" + def handler(fit, ship, context): + for damageType in ("em", "explosive", "kinetic", "thermal"): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Light Missiles"), + "{0}Damage".format(damageType), ship.getModifiedItemAttr("shipBonusMC2"), + skill="Minmatar Cruiser") + + return locals() + +def effect6098(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Missile Launcher Operation"), + "reloadTime", ship.getModifiedItemAttr("shipBonusTacticalDestroyerCaldari2"), + skill="Caldari Tactical Destroyer") + + return locals() + +def effect61(): + type = "passive" + def handler(fit, src, context): + fit.ship.increaseItemAttr("agility", src.getModifiedItemAttr("agilityBonusAdd")) + + return locals() + +def effect6104(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemMultiply(lambda mod: mod.item.requiresSkill("Infomorph Psychology"), + "duration", ship.getModifiedItemAttr("entosisDurationMultiplier") or 1) + + return locals() + +def effect6110(): + type = "passive" + def handler(fit, module, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), + "maxVelocity", module.getModifiedItemAttr("missileVelocityBonus"), + stackingPenalties=True) + + return locals() + +def effect6111(): + type = "passive" + def handler(fit, module, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), + "explosionDelay", module.getModifiedItemAttr("explosionDelayBonus"), + stackingPenalties=True) + + return locals() + +def effect6112(): + type = "passive" + def handler(fit, module, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), + "aoeCloudSize", module.getModifiedItemAttr("aoeCloudSizeBonus"), + stackingPenalties=True) + + return locals() + +def effect6113(): + type = "passive" + def handler(fit, module, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), + "aoeVelocity", module.getModifiedItemAttr("aoeVelocityBonus"), + stackingPenalties=True) + + return locals() + +def effect6128(): + type = "passive" + def handler(fit, module, context): + module.boostItemAttr("aoeCloudSizeBonus", module.getModifiedChargeAttr("aoeCloudSizeBonusBonus")) + + return locals() + +def effect6129(): + type = "passive" + def handler(fit, module, context): + module.boostItemAttr("aoeVelocityBonus", module.getModifiedChargeAttr("aoeVelocityBonusBonus")) + + return locals() + +def effect6130(): + type = "passive" + def handler(fit, module, context): + module.boostItemAttr("missileVelocityBonus", module.getModifiedChargeAttr("missileVelocityBonusBonus")) + + return locals() + +def effect6131(): + type = "passive" + def handler(fit, module, context): + module.boostItemAttr("explosionDelayBonus", module.getModifiedChargeAttr("explosionDelayBonusBonus")) + + return locals() + +def effect6135(): + type = "active" + def handler(fit, container, context): + for srcAttr, tgtAttr in ( + ("aoeCloudSizeBonus", "aoeCloudSize"), + ("aoeVelocityBonus", "aoeVelocity"), + ("missileVelocityBonus", "maxVelocity"), + ("explosionDelayBonus", "explosionDelay"), + ): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), + tgtAttr, container.getModifiedItemAttr(srcAttr), + stackingPenalties=True) + + return locals() + +def effect6144(): + type = "overheat" + def handler(fit, module, context): + for tgtAttr in ( + "aoeCloudSizeBonus", + "explosionDelayBonus", + "missileVelocityBonus", + "maxVelocityModifier", + "aoeVelocityBonus" + ): + module.boostItemAttr(tgtAttr, module.getModifiedItemAttr("overloadTrackingModuleStrengthBonus")) + + return locals() + +def effect6148(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: True, "heatDamage", + ship.getModifiedItemAttr("shipBonusTacticalDestroyerGallente3"), + skill="Gallente Tactical Destroyer") + + return locals() + +def effect6149(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Hybrid Turret"), + "speed", ship.getModifiedItemAttr("shipBonusTacticalDestroyerGallente1"), + skill="Gallente Tactical Destroyer") + + return locals() + +def effect6150(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Hybrid Turret"), + "trackingSpeed", ship.getModifiedItemAttr("shipBonusTacticalDestroyerGallente2"), + skill="Gallente Tactical Destroyer") + + return locals() + +def effect6151(): + type = "passive" + def handler(fit, module, context): + for srcResType, tgtResType in ( + ("Em", "em"), + ("Explosive", "explosive"), + ("Kinetic", "kinetic"), + ("Thermic", "thermal") + ): + fit.ship.multiplyItemAttr( + "{0}DamageResonance".format(tgtResType), + 1 / module.getModifiedItemAttr("mode{0}ResistancePostDiv".format(srcResType)) + ) + + return locals() + +def effect6152(): + type = "passive" + def handler(fit, module, context): + fit.modules.filteredItemMultiply( + lambda mod: mod.item.requiresSkill("Small Hybrid Turret"), + "maxRange", + 1 / module.getModifiedItemAttr("modeMaxRangePostDiv"), + stackingPenalties=True, + penaltyGroup="postDiv" + ) + + return locals() + +def effect6153(): + type = "passive" + def handler(fit, module, context): + fit.modules.filteredItemMultiply( + lambda mod: mod.item.requiresSkill("High Speed Maneuvering"), + "capacitorNeed", + 1 / module.getModifiedItemAttr("modeMWDCapPostDiv") + ) + + return locals() + +def effect6154(): + type = "passive" + def handler(fit, module, context): + fit.modules.filteredItemMultiply( + lambda mod: mod.item.requiresSkill("High Speed Maneuvering"), + "speedFactor", + 1 / module.getModifiedItemAttr("modeMWDVelocityPostDiv"), + stackingPenalties=True, + penaltyGroup="postDiv" + ) + + return locals() + +def effect6155(): + type = "passive" + def handler(fit, module, context): + fit.modules.filteredItemMultiply( + lambda mod: mod.item.requiresSkill("Repair Systems"), + "duration", + 1 / module.getModifiedItemAttr("modeArmorRepDurationPostDiv") + ) + + return locals() + +def effect6163(): + runtime = "late" + type = "passive" + def handler(fit, src, context): + fit.extraAttributes['speedLimit'] = src.getModifiedItemAttr("speedLimit") + + return locals() + +def effect6164(): + runTime = "early" + type = ("projected", "passive") + def handler(fit, beacon, context): + fit.ship.boostItemAttr("maxVelocity", beacon.getModifiedItemAttr("maxVelocityMultiplier"), stackingPenalties=True) + + return locals() + +def effect6166(): + runTime = "early" + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Propulsion Jamming"), + "speedFactorBonus", ship.getModifiedItemAttr("shipBonusAT")) + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Propulsion Jamming"), + "speedBoostFactorBonus", ship.getModifiedItemAttr("shipBonusAT")) + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Propulsion Jamming"), + "massBonusPercentage", ship.getModifiedItemAttr("shipBonusAT")) + + return locals() + +def effect6170(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemIncrease(lambda mod: mod.item.requiresSkill("Infomorph Psychology"), + "entosisCPUAdd", ship.getModifiedItemAttr("entosisCPUPenalty")) + + return locals() + +def effect6171(): + type = "passive" + def handler(fit, module, context): + module.increaseItemAttr("cpu", module.getModifiedItemAttr("entosisCPUAdd")) + + return locals() + +def effect6172(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Energy Turret"), + "maxRange", ship.getModifiedItemAttr("roleBonusCBC")) + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Energy Turret"), + "falloff", ship.getModifiedItemAttr("roleBonusCBC")) + + return locals() + +def effect6173(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Hybrid Turret"), + "maxRange", ship.getModifiedItemAttr("roleBonusCBC")) + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Hybrid Turret"), + "falloff", ship.getModifiedItemAttr("roleBonusCBC")) + + return locals() + +def effect6174(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Projectile Turret"), + "maxRange", ship.getModifiedItemAttr("roleBonusCBC")) + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Projectile Turret"), + "falloff", ship.getModifiedItemAttr("roleBonusCBC")) + + return locals() + +def effect6175(): + type = "passive" + def handler(fit, skill, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), + "maxVelocity", skill.getModifiedItemAttr("roleBonusCBC")) + + return locals() + +def effect6176(): + type = "passive" + def handler(fit, ship, context): + fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Drones"), + "maxVelocity", ship.getModifiedItemAttr("roleBonusCBC")) + + return locals() + +def effect6177(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Hybrid Turret"), + "damageMultiplier", ship.getModifiedItemAttr("shipBonusCBC2"), + skill="Caldari Battlecruiser") + + return locals() + +def effect6178(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Projectile Turret"), + "trackingSpeed", ship.getModifiedItemAttr("shipBonusMBC2"), + skill="Minmatar Battlecruiser") + + return locals() + +def effect6184(): + from eos.modifiedAttributeDict import ModifiedAttributeDict + type = "projected", "active" + runTime = "late" + def handler(fit, src, context, **kwargs): + if "projected" in context: + amount = src.getModifiedItemAttr("powerTransferAmount") + duration = src.getModifiedItemAttr("duration") + if 'effect' in kwargs: + amount *= ModifiedAttributeDict.getResistance(fit, kwargs['effect']) + fit.addDrain(src, duration, -amount, 0) + + return locals() + +def effect6185(): + type = "projected", "active" + runTime = "late" + def handler(fit, module, context): + if "projected" not in context: + return + bonus = module.getModifiedItemAttr("structureDamageAmount") + duration = module.getModifiedItemAttr("duration") / 1000.0 + fit.extraAttributes.increase("hullRepair", bonus / duration) + + return locals() + +def effect6186(): + type = "projected", "active" + def handler(fit, container, context, **kwargs): + if "projected" in context: + bonus = container.getModifiedItemAttr("shieldBonus") + duration = container.getModifiedItemAttr("duration") / 1000.0 + fit.extraAttributes.increase("shieldRepair", bonus / duration, **kwargs) + + return locals() + +def effect6187(): + from eos.saveddata.module import State + from eos.modifiedAttributeDict import ModifiedAttributeDict + type = "active", "projected" + def handler(fit, src, context, **kwargs): + if "projected" in context and ((hasattr(src, "state") and src.state >= State.ACTIVE) or + hasattr(src, "amountActive")): + amount = src.getModifiedItemAttr("energyNeutralizerAmount") + if 'effect' in kwargs: + amount *= ModifiedAttributeDict.getResistance(fit, kwargs['effect']) + time = src.getModifiedItemAttr("duration") + fit.addDrain(src, time, amount, 0) + + return locals() + +def effect6188(): + type = "projected", "active" + runTime = "late" + def handler(fit, container, context, **kwargs): + if "projected" in context: + bonus = container.getModifiedItemAttr("armorDamageAmount") + duration = container.getModifiedItemAttr("duration") / 1000.0 + rps = bonus / duration + fit.extraAttributes.increase("armorRepair", rps) + fit.extraAttributes.increase("armorRepairPreSpool", rps) + fit.extraAttributes.increase("armorRepairFullSpool", rps) + + return locals() + +def effect6195(): + type = "passive" + def handler(fit, src, context): + fit.ship.boostItemAttr("shieldThermalDamageResonance", src.getModifiedItemAttr("eliteBonusExpedition1"), + skill="Expedition Frigates") + fit.ship.boostItemAttr("shieldKineticDamageResonance", src.getModifiedItemAttr("eliteBonusExpedition1"), + skill="Expedition Frigates") + fit.ship.boostItemAttr("shieldExplosiveDamageResonance", src.getModifiedItemAttr("eliteBonusExpedition1"), + skill="Expedition Frigates") + fit.ship.boostItemAttr("shieldEmDamageResonance", src.getModifiedItemAttr("eliteBonusExpedition1"), + skill="Expedition Frigates") + + return locals() + +def effect6196(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Ice Harvesting"), "duration", + src.getModifiedItemAttr("eliteBonusExpedition2"), skill="Expedition Frigates") + + return locals() + +def effect6197(): + from eos.modifiedAttributeDict import ModifiedAttributeDict + type = "active", "projected" + runTime = "late" + def handler(fit, src, context, **kwargs): + amount = src.getModifiedItemAttr("powerTransferAmount") + time = src.getModifiedItemAttr("duration") + if 'effect' in kwargs and "projected" in context: + amount *= ModifiedAttributeDict.getResistance(fit, kwargs['effect']) + if "projected" in context: + fit.addDrain(src, time, amount, 0) + elif "module" in context: + src.itemModifiedAttributes.force("capacitorNeed", -amount) + + return locals() + +def effect6201(): + type = "active" + def handler(fit, src, context): + pass + + return locals() + +def effect6208(): + type = "active" + def handler(fit, module, context): + fit.ship.boostItemAttr("signatureRadius", module.getModifiedItemAttr("signatureRadiusBonusPercent"), + stackingPenalties=True) + + return locals() + +def effect6214(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Leadership"), "power", + src.getModifiedItemAttr("roleBonusCD")) + + return locals() + +def effect6216(): + from eos.saveddata.module import State + from eos.modifiedAttributeDict import ModifiedAttributeDict + type = "active", "projected" + def handler(fit, src, context, **kwargs): + amount = 0 + if "projected" in context: + if (hasattr(src, "state") and src.state >= State.ACTIVE) or hasattr(src, "amountActive"): + amount = src.getModifiedItemAttr("energyNeutralizerAmount") + if 'effect' in kwargs: + amount *= ModifiedAttributeDict.getResistance(fit, kwargs['effect']) + time = src.getModifiedItemAttr("duration") + fit.addDrain(src, time, amount, 0) + return locals() + +def effect6222(): + from eos.saveddata.module import State + runTime = "early" + type = "projected", "active" + def handler(fit, module, context): + if "projected" in context: + fit.ship.increaseItemAttr("warpScrambleStatus", module.getModifiedItemAttr("warpScrambleStrength")) + if module.charge is not None and module.charge.ID == 47336: + for mod in fit.modules: + if not mod.isEmpty and mod.item.requiresSkill("High Speed Maneuvering") and mod.state > State.ONLINE: + mod.state = State.ONLINE + if not mod.isEmpty and mod.item.requiresSkill("Micro Jump Drive Operation") and mod.state > State.ONLINE: + mod.state = State.ONLINE + + return locals() + +def effect623(): + type = "passive" + def handler(fit, container, context): + level = container.level if "skill" in context else 1 + fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Mining Drone Operation"), + "miningAmount", + container.getModifiedItemAttr("miningAmountBonus") * level) + + return locals() + +def effect6230(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Neutralizer", "maxRange", + src.getModifiedItemAttr("eliteBonusReconShip1"), skill="Recon Ships") + + return locals() + +def effect6232(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Neutralizer", "falloffEffectiveness", + src.getModifiedItemAttr("eliteBonusReconShip2"), skill="Recon Ships") + + return locals() + +def effect6233(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Neutralizer", "falloffEffectiveness", + src.getModifiedItemAttr("eliteBonusReconShip3"), skill="Recon Ships") + + return locals() + +def effect6234(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Nosferatu", "maxRange", + src.getModifiedItemAttr("eliteBonusReconShip1"), skill="Recon Ships") + + return locals() + +def effect6237(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Nosferatu", "falloffEffectiveness", + src.getModifiedItemAttr("eliteBonusReconShip2"), skill="Recon Ships") + + return locals() + +def effect6238(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Nosferatu", "falloffEffectiveness", + src.getModifiedItemAttr("eliteBonusReconShip3"), skill="Recon Ships") + + return locals() + +def effect6239(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Ice Harvesting"), "duration", + src.getModifiedItemAttr("shipBonusOREfrig2"), skill="Mining Frigate") + + return locals() + +def effect6241(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Neutralizer", "falloffEffectiveness", + src.getModifiedItemAttr("shipBonusAD1"), skill="Amarr Destroyer") + + return locals() + +def effect6242(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Neutralizer", "maxRange", + src.getModifiedItemAttr("shipBonusAD2"), skill="Amarr Destroyer") + + return locals() + +def effect6245(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Nosferatu", "maxRange", + src.getModifiedItemAttr("shipBonusAD2"), skill="Amarr Destroyer") + + return locals() + +def effect6246(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Nosferatu", "falloffEffectiveness", + src.getModifiedItemAttr("shipBonusAD1"), skill="Amarr Destroyer") + + return locals() + +def effect6253(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Neutralizer", "maxRange", + src.getModifiedItemAttr("shipBonusAB"), skill="Amarr Battleship") + + return locals() + +def effect6256(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Neutralizer", "falloffEffectiveness", + src.getModifiedItemAttr("shipBonusAB2"), skill="Amarr Battleship") + + return locals() + +def effect6257(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Nosferatu", "maxRange", + src.getModifiedItemAttr("shipBonusAB"), skill="Amarr Battleship") + + return locals() + +def effect6260(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Nosferatu", "falloffEffectiveness", + src.getModifiedItemAttr("shipBonusAB2"), skill="Amarr Battleship") + + return locals() + +def effect6267(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Neutralizer", "maxRange", + src.getModifiedItemAttr("eliteBonusElectronicAttackShip1"), + skill="Electronic Attack Ships") + + return locals() + +def effect627(): + type = "passive" + def handler(fit, module, context): + fit.ship.increaseItemAttr("powerOutput", module.getModifiedItemAttr("powerIncrease")) + + return locals() + +def effect6272(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Neutralizer", "falloffEffectiveness", + src.getModifiedItemAttr("eliteBonusElectronicAttackShip3"), + skill="Electronic Attack Ships") + + return locals() + +def effect6273(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Nosferatu", "maxRange", + src.getModifiedItemAttr("eliteBonusElectronicAttackShip1"), + skill="Electronic Attack Ships") + + return locals() + +def effect6278(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Nosferatu", "falloffEffectiveness", + src.getModifiedItemAttr("eliteBonusElectronicAttackShip3"), + skill="Electronic Attack Ships") + + return locals() + +def effect6281(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Neutralizer", "maxRange", + src.getModifiedItemAttr("shipBonus2AF"), skill="Amarr Frigate") + + return locals() + +def effect6285(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Neutralizer", "falloffEffectiveness", + src.getModifiedItemAttr("shipBonus3AF"), skill="Amarr Frigate") + + return locals() + +def effect6287(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Nosferatu", "maxRange", + src.getModifiedItemAttr("shipBonus2AF"), skill="Amarr Frigate") + + return locals() + +def effect6291(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Nosferatu", "falloffEffectiveness", + src.getModifiedItemAttr("shipBonus3AF"), skill="Amarr Frigate") + + return locals() + +def effect6294(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Neutralizer", "maxRange", + src.getModifiedItemAttr("shipBonusAC"), skill="Amarr Cruiser") + + return locals() + +def effect6299(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Neutralizer", "falloffEffectiveness", + src.getModifiedItemAttr("shipBonusAC3"), skill="Amarr Cruiser") + + return locals() + +def effect63(): + type = "passive" + def handler(fit, module, context): + fit.ship.multiplyItemAttr("armorHP", module.getModifiedItemAttr("armorHPMultiplier")) + + return locals() + +def effect6300(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Nosferatu", "maxRange", + src.getModifiedItemAttr("shipBonusAC"), skill="Amarr Cruiser") + + return locals() + +def effect6301(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Nosferatu", "falloffEffectiveness", + src.getModifiedItemAttr("shipBonusAC2"), skill="Amarr Cruiser") + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Nosferatu", "maxRange", + src.getModifiedItemAttr("shipBonusAC2"), skill="Amarr Cruiser") + + return locals() + +def effect6305(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Nosferatu", "falloffEffectiveness", + src.getModifiedItemAttr("shipBonusAC3"), skill="Amarr Cruiser") + + return locals() + +def effect6307(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), "thermalDamage", + src.getModifiedItemAttr("shipBonusMD1"), skill="Minmatar Destroyer") + + return locals() + +def effect6308(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), "emDamage", + src.getModifiedItemAttr("shipBonusMD1"), skill="Minmatar Destroyer") + + return locals() + +def effect6309(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), "kineticDamage", + src.getModifiedItemAttr("shipBonusMD1"), skill="Minmatar Destroyer") + + return locals() + +def effect6310(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), + "explosiveDamage", src.getModifiedItemAttr("shipBonusMD1"), + skill="Minmatar Destroyer") + + return locals() + +def effect6315(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Skirmish Command"), "warfareBuff3Value", + src.getModifiedItemAttr("eliteBonusCommandDestroyer1"), skill="Command Destroyers") + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Skirmish Command"), "buffDuration", + src.getModifiedItemAttr("eliteBonusCommandDestroyer1"), skill="Command Destroyers") + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Skirmish Command"), "warfareBuff1Value", + src.getModifiedItemAttr("eliteBonusCommandDestroyer1"), skill="Command Destroyers") + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Skirmish Command"), "warfareBuff4Value", + src.getModifiedItemAttr("eliteBonusCommandDestroyer1"), skill="Command Destroyers") + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Skirmish Command"), "warfareBuff2Value", + src.getModifiedItemAttr("eliteBonusCommandDestroyer1"), skill="Command Destroyers") + + return locals() + +def effect6316(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Command"), "warfareBuff3Value", + src.getModifiedItemAttr("eliteBonusCommandDestroyer1"), skill="Command Destroyers") + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Command"), "buffDuration", + src.getModifiedItemAttr("eliteBonusCommandDestroyer1"), skill="Command Destroyers") + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Command"), "warfareBuff1Value", + src.getModifiedItemAttr("eliteBonusCommandDestroyer1"), skill="Command Destroyers") + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Command"), "warfareBuff4Value", + src.getModifiedItemAttr("eliteBonusCommandDestroyer1"), skill="Command Destroyers") + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Command"), "warfareBuff2Value", + src.getModifiedItemAttr("eliteBonusCommandDestroyer1"), skill="Command Destroyers") + + return locals() + +def effect6317(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Micro Jump Drive Operation"), "duration", + src.getModifiedItemAttr("eliteBonusCommandDestroyer2"), skill="Command Destroyers") + + return locals() + +def effect6318(): + type = "passive" + def handler(fit, src, context): + fit.ship.boostItemAttr("shieldEmDamageResonance", src.getModifiedItemAttr("shipBonusMD2"), + skill="Minmatar Destroyer") + + return locals() + +def effect6319(): + type = "passive" + def handler(fit, src, context): + fit.ship.boostItemAttr("shieldKineticDamageResonance", src.getModifiedItemAttr("shipBonusMD2"), + skill="Minmatar Destroyer") + + return locals() + +def effect6320(): + type = "passive" + def handler(fit, src, context): + fit.ship.boostItemAttr("shieldThermalDamageResonance", src.getModifiedItemAttr("shipBonusMD2"), + skill="Minmatar Destroyer") + + return locals() + +def effect6321(): + type = "passive" + def handler(fit, src, context): + fit.ship.boostItemAttr("shieldExplosiveDamageResonance", src.getModifiedItemAttr("shipBonusMD2"), + skill="Minmatar Destroyer") + + return locals() + +def effect6322(): + type = "passive" + runTime = "early" + def handler(fit, src, context, *args, **kwargs): + src.boostItemAttr("scanGravimetricStrengthBonus", src.getModifiedChargeAttr("scanGravimetricStrengthBonusBonus")) + + return locals() + +def effect6323(): + type = "passive" + runTime = "early" + def handler(fit, src, context, *args, **kwargs): + src.boostItemAttr("scanLadarStrengthBonus", src.getModifiedChargeAttr("scanLadarStrengthBonusBonus")) + + return locals() + +def effect6324(): + type = "passive" + runTime = "early" + def handler(fit, src, context, *args, **kwargs): + src.boostItemAttr("scanMagnetometricStrengthBonus", src.getModifiedChargeAttr("scanMagnetometricStrengthBonusBonus")) + + return locals() + +def effect6325(): + type = "passive" + runTime = "early" + def handler(fit, src, context, *args, **kwargs): + src.boostItemAttr("scanRadarStrengthBonus", src.getModifiedChargeAttr("scanRadarStrengthBonusBonus")) + + return locals() + +def effect6326(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), "thermalDamage", + src.getModifiedItemAttr("shipBonusCD1"), skill="Caldari Destroyer") + + return locals() + +def effect6327(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), "emDamage", + src.getModifiedItemAttr("shipBonusCD1"), skill="Caldari Destroyer") + + return locals() + +def effect6328(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), "kineticDamage", + src.getModifiedItemAttr("shipBonusCD1"), skill="Caldari Destroyer") + + return locals() + +def effect6329(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), + "explosiveDamage", src.getModifiedItemAttr("shipBonusCD1"), + skill="Caldari Destroyer") + + return locals() + +def effect6330(): + type = "passive" + def handler(fit, src, context): + fit.ship.boostItemAttr("shieldEmDamageResonance", src.getModifiedItemAttr("shipBonusCD2"), + skill="Caldari Destroyer") + + return locals() + +def effect6331(): + type = "passive" + def handler(fit, src, context): + fit.ship.boostItemAttr("shieldThermalDamageResonance", src.getModifiedItemAttr("shipBonusCD2"), + skill="Caldari Destroyer") + + return locals() + +def effect6332(): + type = "passive" + def handler(fit, src, context): + fit.ship.boostItemAttr("shieldKineticDamageResonance", src.getModifiedItemAttr("shipBonusCD2"), + skill="Caldari Destroyer") + + return locals() + +def effect6333(): + type = "passive" + def handler(fit, src, context): + fit.ship.boostItemAttr("shieldExplosiveDamageResonance", src.getModifiedItemAttr("shipBonusCD2"), + skill="Caldari Destroyer") + + return locals() + +def effect6334(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Information Command"), "warfareBuff1Value", + src.getModifiedItemAttr("eliteBonusCommandDestroyer1"), skill="Command Destroyers") + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Information Command"), "warfareBuff3Value", + src.getModifiedItemAttr("eliteBonusCommandDestroyer1"), skill="Command Destroyers") + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Information Command"), "warfareBuff2Value", + src.getModifiedItemAttr("eliteBonusCommandDestroyer1"), skill="Command Destroyers") + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Information Command"), "buffDuration", + src.getModifiedItemAttr("eliteBonusCommandDestroyer1"), skill="Command Destroyers") + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Information Command"), "warfareBuff4Value", + src.getModifiedItemAttr("eliteBonusCommandDestroyer1"), skill="Command Destroyers") + + return locals() + +def effect6335(): + type = "passive" + def handler(fit, src, context): + fit.ship.boostItemAttr("armorKineticDamageResonance", src.getModifiedItemAttr("shipBonusAD2"), + skill="Amarr Destroyer") + + return locals() + +def effect6336(): + type = "passive" + def handler(fit, src, context): + fit.ship.boostItemAttr("armorThermalDamageResonance", src.getModifiedItemAttr("shipBonusAD2"), + skill="Amarr Destroyer") + + return locals() + +def effect6337(): + type = "passive" + def handler(fit, src, context): + fit.ship.boostItemAttr("armorEmDamageResonance", src.getModifiedItemAttr("shipBonusAD2"), skill="Amarr Destroyer") + + return locals() + +def effect6338(): + type = "passive" + def handler(fit, src, context): + fit.ship.boostItemAttr("armorExplosiveDamageResonance", src.getModifiedItemAttr("shipBonusAD2"), + skill="Amarr Destroyer") + + return locals() + +def effect6339(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Armored Command"), "warfareBuff2Value", + src.getModifiedItemAttr("eliteBonusCommandDestroyer1"), skill="Command Destroyers") + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Armored Command"), "warfareBuff3Value", + src.getModifiedItemAttr("eliteBonusCommandDestroyer1"), skill="Command Destroyers") + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Armored Command"), "buffDuration", + src.getModifiedItemAttr("eliteBonusCommandDestroyer1"), skill="Command Destroyers") + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Armored Command"), "warfareBuff4Value", + src.getModifiedItemAttr("eliteBonusCommandDestroyer1"), skill="Command Destroyers") + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Armored Command"), "warfareBuff1Value", + src.getModifiedItemAttr("eliteBonusCommandDestroyer1"), skill="Command Destroyers") + + return locals() + +def effect6340(): + type = "passive" + def handler(fit, src, context): + fit.ship.boostItemAttr("armorKineticDamageResonance", src.getModifiedItemAttr("shipBonusGD2"), + skill="Gallente Destroyer") + + return locals() + +def effect6341(): + type = "passive" + def handler(fit, src, context): + fit.ship.boostItemAttr("armorEmDamageResonance", src.getModifiedItemAttr("shipBonusGD2"), + skill="Gallente Destroyer") + + return locals() + +def effect6342(): + type = "passive" + def handler(fit, src, context): + fit.ship.boostItemAttr("armorThermalDamageResonance", src.getModifiedItemAttr("shipBonusGD2"), + skill="Gallente Destroyer") + + return locals() + +def effect6343(): + type = "passive" + def handler(fit, src, context): + fit.ship.boostItemAttr("armorExplosiveDamageResonance", src.getModifiedItemAttr("shipBonusGD2"), + skill="Gallente Destroyer") + + return locals() + +def effect6350(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredChargeBoost( + lambda mod: mod.charge.requiresSkill("Light Missiles") or mod.charge.requiresSkill("Rockets"), "kineticDamage", + src.getModifiedItemAttr("shipBonus3CF"), skill="Caldari Frigate") + + return locals() + +def effect6351(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), "kineticDamage", + src.getModifiedItemAttr("shipBonusCC3"), skill="Caldari Cruiser") + + return locals() + +def effect6352(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Weapon Disruption"), "falloffEffectiveness", + src.getModifiedItemAttr("roleBonus")) + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Weapon Disruption"), "maxRange", + src.getModifiedItemAttr("roleBonus")) + + return locals() + +def effect6353(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Weapon Disruption"), "cpu", + src.getModifiedItemAttr("roleBonus")) + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Weapon Disruption"), "capacitorNeed", + src.getModifiedItemAttr("roleBonus")) + + return locals() + +def effect6354(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Weapon Disruption"), "trackingSpeedBonus", + src.getModifiedItemAttr("shipBonus2AF"), skill="Amarr Frigate") + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Weapon Disruption"), "explosionDelayBonus", + src.getModifiedItemAttr("shipBonus2AF"), skill="Amarr Frigate") + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Weapon Disruption"), "maxRangeBonus", + src.getModifiedItemAttr("shipBonus2AF"), skill="Amarr Frigate") + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Weapon Disruption"), "falloffBonus", + src.getModifiedItemAttr("shipBonus2AF"), skill="Amarr Frigate") + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Weapon Disruption"), "missileVelocityBonus", + src.getModifiedItemAttr("shipBonus2AF"), skill="Amarr Frigate") + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Weapon Disruption"), "aoeVelocityBonus", + src.getModifiedItemAttr("shipBonus2AF"), skill="Amarr Frigate") + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Weapon Disruption"), "aoeCloudSizeBonus", + src.getModifiedItemAttr("shipBonus2AF"), skill="Amarr Frigate") + + return locals() + +def effect6355(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "ECM", "capacitorNeed", + src.getModifiedItemAttr("roleBonus")) + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "ECM", "cpu", src.getModifiedItemAttr("roleBonus")) + + return locals() + +def effect6356(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "ECM", "falloffEffectiveness", + src.getModifiedItemAttr("roleBonus")) + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "ECM", "maxRange", + src.getModifiedItemAttr("roleBonus")) + + return locals() + +def effect6357(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Navigation"), "maxRange", + src.getModifiedItemAttr("shipBonusGF2"), skill="Gallente Frigate") + + return locals() + +def effect6358(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemIncrease(lambda mod: mod.item.requiresSkill("Navigation"), + "warpScrambleStrength", ship.getModifiedItemAttr("roleBonus")) + + return locals() + +def effect6359(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Rockets"), "aoeVelocity", + src.getModifiedItemAttr("shipBonusMF"), skill="Minmatar Frigate") + + return locals() + +def effect6360(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Rockets"), "emDamage", + src.getModifiedItemAttr("shipBonusMF2"), skill="Minmatar Frigate") + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Rockets"), "thermalDamage", + src.getModifiedItemAttr("shipBonusMF2"), skill="Minmatar Frigate") + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Rockets"), "kineticDamage", + src.getModifiedItemAttr("shipBonusMF2"), skill="Minmatar Frigate") + + return locals() + +def effect6361(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Rockets"), "explosiveDamage", + src.getModifiedItemAttr("shipBonus3MF"), skill="Minmatar Frigate") + + return locals() + +def effect6362(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Stasis Web", "maxRange", + src.getModifiedItemAttr("roleBonus")) + + return locals() + +def effect6368(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Remote Shield Booster", "falloffEffectiveness", + src.getModifiedItemAttr("falloffBonus")) + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Ancillary Remote Shield Booster", + "falloffEffectiveness", src.getModifiedItemAttr("falloffBonus")) + + return locals() + +def effect6369(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Emission Systems"), "falloffEffectiveness", + src.getModifiedItemAttr("shipBonusMC2"), skill="Minmatar Cruiser") + + return locals() + +def effect6370(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Emission Systems"), "falloffEffectiveness", + src.getModifiedItemAttr("shipBonusCC"), skill="Caldari Cruiser") + + return locals() + +def effect6371(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Remote Armor Repair Systems"), + "falloffEffectiveness", src.getModifiedItemAttr("shipBonusGC"), + skill="Gallente Cruiser") + + return locals() + +def effect6372(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Remote Armor Repair Systems"), + "falloffEffectiveness", src.getModifiedItemAttr("shipBonusAC2"), + skill="Amarr Cruiser") + + return locals() + +def effect6373(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Remote Armor Repairer", "falloffEffectiveness", + src.getModifiedItemAttr("falloffBonus")) + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Ancillary Remote Armor Repairer", + "falloffEffectiveness", src.getModifiedItemAttr("falloffBonus")) + + return locals() + +def effect6374(): + type = "passive" + def handler(fit, src, context): + fit.drones.filteredItemBoost(lambda drone: drone.item.group.name == "Logistic Drone", "structureDamageAmount", + src.getModifiedItemAttr("droneArmorDamageAmountBonus")) + + return locals() + +def effect6377(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Remote Armor Repair Systems"), "capacitorNeed", + src.getModifiedItemAttr("eliteBonusLogiFrig1"), skill="Logistics Frigates") + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Remote Armor Repair Systems"), "duration", + src.getModifiedItemAttr("eliteBonusLogiFrig1"), skill="Logistics Frigates") + + return locals() + +def effect6378(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Emission Systems"), "duration", + src.getModifiedItemAttr("eliteBonusLogiFrig1"), skill="Logistics Frigates") + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Emission Systems"), "capacitorNeed", + src.getModifiedItemAttr("eliteBonusLogiFrig1"), skill="Logistics Frigates") + + return locals() + +def effect6379(): + type = "passive" + def handler(fit, src, context): + fit.ship.boostItemAttr("armorHP", src.getModifiedItemAttr("eliteBonusLogiFrig2"), skill="Logistics Frigates") + + return locals() + +def effect6380(): + type = "passive" + def handler(fit, src, context): + fit.ship.boostItemAttr("shieldCapacity", src.getModifiedItemAttr("eliteBonusLogiFrig2"), skill="Logistics Frigates") + + return locals() + +def effect6381(): + type = "passive" + def handler(fit, src, context): + fit.ship.boostItemAttr("signatureRadius", src.getModifiedItemAttr("eliteBonusLogiFrig2"), + skill="Logistics Frigates") + + return locals() + +def effect6384(): + type = "overheat" + def handler(fit, module, context): + for tgtAttr in ( + "aoeCloudSizeBonus", + "explosionDelayBonus", + "missileVelocityBonus", + "aoeVelocityBonus" + ): + module.boostItemAttr(tgtAttr, module.getModifiedItemAttr("overloadTrackingModuleStrengthBonus")) + + return locals() + +def effect6385(): + type = "passive" + runTime = "early" + def handler(fit, src, context): + fit.modules.filteredItemForce(lambda mod: mod.item.group.name == "Cloaking Device", + "maxVelocityModifier", src.getModifiedItemAttr("velocityPenaltyReduction")) + + return locals() + +def effect6386(): + type = "passive" + def handler(fit, src, context): + level = src.level if "skill" in context else 1 + for attr in ( + "explosionDelayBonus", + "aoeVelocityBonus", + "aoeCloudSizeBonus", + "missileVelocityBonus" + ): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Weapon Disruption"), + attr, src.getModifiedItemAttr("scanSkillEwStrengthBonus") * level) + + return locals() + +def effect6395(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Weapon Disruption"), "missileVelocityBonus", + src.getModifiedItemAttr("shipBonusAC"), skill="Amarr Cruiser") + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Weapon Disruption"), "aoeVelocityBonus", + src.getModifiedItemAttr("shipBonusAC"), skill="Amarr Cruiser") + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Weapon Disruption"), "maxRangeBonus", + src.getModifiedItemAttr("shipBonusAC"), skill="Amarr Cruiser") + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Weapon Disruption"), "explosionDelayBonus", + src.getModifiedItemAttr("shipBonusAC"), skill="Amarr Cruiser") + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Weapon Disruption"), "aoeCloudSizeBonus", + src.getModifiedItemAttr("shipBonusAC"), skill="Amarr Cruiser") + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Weapon Disruption"), "trackingSpeedBonus", + src.getModifiedItemAttr("shipBonusAC"), skill="Amarr Cruiser") + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Weapon Disruption"), "falloffBonus", + src.getModifiedItemAttr("shipBonusAC"), skill="Amarr Cruiser") + + return locals() + +def effect6396(): + type = "passive", "structure" + def handler(fit, src, context): + groups = ("Structure Anti-Capital Missile", "Structure Anti-Subcapital Missile", "Structure Guided Bomb") + for damageType in ("em", "thermal", "explosive", "kinetic"): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.group.name in groups, + "%sDamage" % damageType, src.getModifiedItemAttr("damageMultiplierBonus"), + skill="Structure Missile Systems") + + return locals() + +def effect6400(): + type = "passive", "structure" + def handler(fit, src, context): + groups = ("Structure Warp Scrambler", "Structure Disruption Battery", "Structure Stasis Webifier") + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name in groups, + "capacitorNeed", src.getModifiedItemAttr("capNeedBonus"), + skill="Structure Electronic Systems") + + return locals() + +def effect6401(): + type = "passive", "structure" + def handler(fit, src, context): + groups = ("Structure Energy Neutralizer", "Structure Area Denial Module") + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name in groups, + "capacitorNeed", src.getModifiedItemAttr("capNeedBonus"), + skill="Structure Engineering Systems") + + return locals() + +def effect6402(): + type = "passive" + def handler(fit, src, context): + groups = ("Structure Anti-Subcapital Missile", "Structure Anti-Capital Missile") + fit.modules.filteredChargeBoost(lambda mod: mod.charge.group.name in groups, + "aoeVelocity", src.getModifiedItemAttr("structureRigMissileExploVeloBonus"), + stackingPenalties=True) + + return locals() + +def effect6403(): + type = "passive" + def handler(fit, src, context): + groups = ("Structure Anti-Subcapital Missile", "Structure Anti-Capital Missile") + fit.modules.filteredChargeBoost(lambda mod: mod.charge.group.name in groups, + "maxVelocity", src.getModifiedItemAttr("structureRigMissileVelocityBonus"), + stackingPenalties=True) + + return locals() + +def effect6404(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Structure Energy Neutralizer", + "maxRange", src.getModifiedItemAttr("structureRigEwarOptimalBonus"), + stackingPenalties=True) + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Structure Energy Neutralizer", + "falloffEffectiveness", src.getModifiedItemAttr("structureRigEwarFalloffBonus"), + stackingPenalties=True) + + return locals() + +def effect6405(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Structure Energy Neutralizer", + "capacitorNeed", src.getModifiedItemAttr("structureRigEwarCapUseBonus"), + stackingPenalties=True) + + return locals() + +def effect6406(): + type = "passive" + def handler(fit, src, context): + groups = ("Structure ECM Battery", "Structure Disruption Battery") + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name in groups, + "falloff", src.getModifiedItemAttr("structureRigEwarFalloffBonus"), + stackingPenalties=True) + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name in groups, + "maxRange", src.getModifiedItemAttr("structureRigEwarOptimalBonus"), + stackingPenalties=True) + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name in groups, + "falloffEffectiveness", src.getModifiedItemAttr("structureRigEwarFalloffBonus"), + stackingPenalties=True) + + return locals() + +def effect6407(): + type = "passive" + def handler(fit, src, context): + groups = ("Structure ECM Battery", "Structure Disruption Battery") + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name in groups, + "capacitorNeed", src.getModifiedItemAttr("structureRigEwarCapUseBonus"), + stackingPenalties=True) + + return locals() + +def effect6408(): + type = "passive" + def handler(fit, src, context): + fit.extraAttributes.increase("maxTargetsLockedFromSkills", src.getModifiedItemAttr("structureRigMaxTargetBonus")) + + return locals() + +def effect6409(): + type = "passive" + def handler(fit, src, context): + fit.ship.boostItemAttr("scanResolution", src.getModifiedItemAttr("structureRigScanResBonus"), + stackingPenalties=True) + + return locals() + +def effect6410(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.group.name == "Structure Guided Bomb", + "aoeCloudSize", src.getModifiedItemAttr("structureRigMissileExplosionRadiusBonus"), + stackingPenalties=True) + + return locals() + +def effect6411(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.group.name == "Structure Guided Bomb", + "maxVelocity", src.getModifiedItemAttr("structureRigMissileVelocityBonus"), + stackingPenalties=True) + + return locals() + +def effect6412(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Structure Area Denial Module", + "empFieldRange", src.getModifiedItemAttr("structureRigPDRangeBonus"), + stackingPenalties=True) + + return locals() + +def effect6413(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Structure Area Denial Module", + "capacitorNeed", src.getModifiedItemAttr("structureRigPDCapUseBonus"), + stackingPenalties=True) + + return locals() + +def effect6417(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemIncrease(lambda mod: mod.item.group.name == "Structure Doomsday Weapon", + "lightningWeaponDamageLossTarget", + src.getModifiedItemAttr("structureRigDoomsdayDamageLossTargetBonus")) + + return locals() + +def effect6422(): + type = "projected", "active" + def handler(fit, module, context, *args, **kwargs): + if "projected" not in context: + return + fit.ship.boostItemAttr("maxTargetRange", module.getModifiedItemAttr("maxTargetRangeBonus"), + stackingPenalties=True, *args, **kwargs) + fit.ship.boostItemAttr("scanResolution", module.getModifiedItemAttr("scanResolutionBonus"), + stackingPenalties=True, *args, **kwargs) + + return locals() + +def effect6423(): + type = "active", "projected" + def handler(fit, module, context, *args, **kwargs): + if "projected" in context: + for srcAttr, tgtAttr in ( + ("aoeCloudSizeBonus", "aoeCloudSize"), + ("aoeVelocityBonus", "aoeVelocity"), + ("missileVelocityBonus", "maxVelocity"), + ("explosionDelayBonus", "explosionDelay"), + ): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), + tgtAttr, module.getModifiedItemAttr(srcAttr), + stackingPenalties=True, *args, **kwargs) + + return locals() + +def effect6424(): + type = "projected", "active" + def handler(fit, module, context, *args, **kwargs): + if "projected" in context: + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Gunnery"), + "trackingSpeed", module.getModifiedItemAttr("trackingSpeedBonus"), + stackingPenalties=True, *args, **kwargs) + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Gunnery"), + "maxRange", module.getModifiedItemAttr("maxRangeBonus"), + stackingPenalties=True, *args, **kwargs) + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Gunnery"), + "falloff", module.getModifiedItemAttr("falloffBonus"), + stackingPenalties=True, *args, **kwargs) + + return locals() + +def effect6425(): + type = "projected", "active" + def handler(fit, container, context, *args, **kwargs): + if "projected" in context: + fit.ship.boostItemAttr("signatureRadius", container.getModifiedItemAttr("signatureRadiusBonus"), + stackingPenalties=True, *args, **kwargs) + + return locals() + +def effect6426(): + type = "active", "projected" + def handler(fit, module, context, *args, **kwargs): + if "projected" not in context: + return + fit.ship.boostItemAttr("maxVelocity", module.getModifiedItemAttr("speedFactor"), + stackingPenalties=True, *args, **kwargs) + + return locals() + +def effect6427(): + type = "projected", "active" + def handler(fit, module, context): + if "projected" not in context: + return + fit.ship.boostItemAttr("maxTargetRange", module.getModifiedItemAttr("maxTargetRangeBonus"), + stackingPenalties=True) + fit.ship.boostItemAttr("scanResolution", module.getModifiedItemAttr("scanResolutionBonus"), + stackingPenalties=True) + for scanType in ("Gravimetric", "Magnetometric", "Radar", "Ladar"): + fit.ship.boostItemAttr( + "scan{}Strength".format(scanType), + module.getModifiedItemAttr("scan{}StrengthPercent".format(scanType)), + stackingPenalties=True + ) + + return locals() + +def effect6428(): + type = "projected", "active" + def handler(fit, module, context, **kwargs): + if "projected" in context: + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Gunnery"), + "trackingSpeed", module.getModifiedItemAttr("trackingSpeedBonus"), + stackingPenalties=True, **kwargs) + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Gunnery"), + "maxRange", module.getModifiedItemAttr("maxRangeBonus"), + stackingPenalties=True, **kwargs) + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Gunnery"), + "falloff", module.getModifiedItemAttr("falloffBonus"), + stackingPenalties=True, **kwargs) + + return locals() + +def effect6431(): + """ + Since fighter abilities do not have any sort of item entity in the EVE database, we must derive the abilities from the + effects, and thus this effect file contains some custom information useful only to fighters. + """ + displayName = "Missile Attack" + prefix = "fighterAbilityMissiles" + type = "active" + hasCharges = True + def handler(fit, src, context): + pass + + return locals() + +def effect6434(): + """ + Since fighter abilities do not have any sort of item entity in the EVE database, we must derive the abilities from the + effects, and thus this effect file contains some custom information useful only to fighters. + """ + from eos.modifiedAttributeDict import ModifiedAttributeDict + displayName = "Energy Neutralizer" + prefix = "fighterAbilityEnergyNeutralizer" + type = "active", "projected" + grouped = True + def handler(fit, src, context, **kwargs): + if "projected" in context: + amount = src.getModifiedItemAttr("{}Amount".format(prefix)) * src.amountActive + time = src.getModifiedItemAttr("{}Duration".format(prefix)) + if 'effect' in kwargs: + amount *= ModifiedAttributeDict.getResistance(fit, kwargs['effect']) + fit.addDrain(src, time, amount, 0) + + return locals() + +def effect6435(): + """ + Since fighter abilities do not have any sort of item entity in the EVE database, we must derive the abilities from the + effects, and thus this effect file contains some custom information useful only to fighters. + """ + displayName = "Stasis Webifier" + prefix = "fighterAbilityStasisWebifier" + type = "active", "projected" + grouped = True + def handler(fit, src, context): + if "projected" not in context: + return + fit.ship.boostItemAttr("maxVelocity", src.getModifiedItemAttr("{}SpeedPenalty".format(prefix)) * src.amountActive, + stackingPenalties=True) + + return locals() + +def effect6436(): + """ + Since fighter abilities do not have any sort of item entity in the EVE database, we must derive the abilities from the + effects, and thus this effect file contains some custom information useful only to fighters. + """ + displayName = "Warp Disruption" + prefix = "fighterAbilityWarpDisruption" + type = "active", "projected" + grouped = True + def handler(fit, src, context): + if "projected" not in context: + return + fit.ship.increaseItemAttr("warpScrambleStatus", src.getModifiedItemAttr("{}PointStrength".format(prefix)) * src.amountActive) + + return locals() + +def effect6437(): + """ + Since fighter abilities do not have any sort of item entity in the EVE database, we must derive the abilities from the + effects, and thus this effect file contains some custom information useful only to fighters. + """ + from eos.modifiedAttributeDict import ModifiedAttributeDict + displayName = "ECM" + prefix = "fighterAbilityECM" + type = "projected", "active" + grouped = True + def handler(fit, module, context, **kwargs): + if "projected" not in context: + return + strModifier = 1 - (module.getModifiedItemAttr("{}Strength{}".format(prefix, fit.scanType)) * module.amountActive) / fit.scanStrength + if 'effect' in kwargs: + strModifier *= ModifiedAttributeDict.getResistance(fit, kwargs['effect']) + fit.ecmProjectedStr *= strModifier + + return locals() + +def effect6439(): + """ + Since fighter abilities do not have any sort of item entity in the EVE database, we must derive the abilities from the + effects, and thus this effect file contains some custom information useful only to fighters. + """ + displayName = "Evasive Maneuvers" + prefix = "fighterAbilityEvasiveManeuvers" + grouped = True + type = "active" + runTime = "late" + def handler(fit, container, context): + container.boostItemAttr("maxVelocity", + container.getModifiedItemAttr("fighterAbilityEvasiveManeuversSpeedBonus")) + container.boostItemAttr("signatureRadius", + container.getModifiedItemAttr("fighterAbilityEvasiveManeuversSignatureRadiusBonus"), + stackingPenalties=True) + container.multiplyItemAttr("shieldEmDamageResonance", + container.getModifiedItemAttr("fighterAbilityEvasiveManeuversEmResonance"), + stackingPenalties=True) + container.multiplyItemAttr("shieldThermalDamageResonance", + container.getModifiedItemAttr("fighterAbilityEvasiveManeuversThermResonance"), + stackingPenalties=True) + container.multiplyItemAttr("shieldKineticDamageResonance", + container.getModifiedItemAttr("fighterAbilityEvasiveManeuversKinResonance"), + stackingPenalties=True) + container.multiplyItemAttr("shieldExplosiveDamageResonance", + container.getModifiedItemAttr("fighterAbilityEvasiveManeuversExpResonance"), + stackingPenalties=True) + + return locals() + +def effect6441(): + """ + Since fighter abilities do not have any sort of item entity in the EVE database, we must derive the abilities from the + effects, and thus this effect file contains some custom information useful only to fighters. + """ + displayName = "Microwarpdrive" + grouped = True + type = "active" + runTime = "late" + def handler(fit, module, context): + module.boostItemAttr("maxVelocity", module.getModifiedItemAttr("fighterAbilityMicroWarpDriveSpeedBonus"), + stackingPenalties=True) + module.boostItemAttr("signatureRadius", + module.getModifiedItemAttr("fighterAbilityMicroWarpDriveSignatureRadiusBonus"), + stackingPenalties=True) + + return locals() + +def effect6443(): + type = 'active' + def handler(fit, module, context): + pass + + return locals() + +def effect6447(): + type = 'active' + def handler(fit, module, context): + pass + + return locals() + +def effect6448(): + type = "passive" + def handler(fit, container, context): + missileGroups = ("Structure Anti-Capital Missile", "Structure Anti-Subcapital Missile") + for srcAttr, tgtAttr in ( + ("aoeCloudSizeBonus", "aoeCloudSize"), + ("aoeVelocityBonus", "aoeVelocity"), + ("missileVelocityBonus", "maxVelocity"), + ("explosionDelayBonus", "explosionDelay"), + ): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.group.name in missileGroups, + tgtAttr, container.getModifiedItemAttr(srcAttr), + stackingPenalties=True) + + return locals() + +def effect6449(): + type = "passive" + def handler(fit, module, context): + missileGroups = ("Structure Anti-Capital Missile", "Structure Anti-Subcapital Missile") + for dmgType in ("em", "kinetic", "explosive", "thermal"): + fit.modules.filteredChargeMultiply(lambda mod: mod.charge.group.name in missileGroups, + "%sDamage" % dmgType, + module.getModifiedItemAttr("missileDamageMultiplierBonus"), + stackingPenalties=True) + launcherGroups = ("Structure XL Missile Launcher", "Structure Multirole Missile Launcher") + fit.modules.filteredItemMultiply(lambda mod: mod.item.group.name in launcherGroups, + "speed", module.getModifiedItemAttr("speedMultiplier"), + stackingPenalties=True) + + return locals() + +def effect6465(): + """ + Since fighter abilities do not have any sort of item entity in the EVE database, we must derive the abilities from the + effects, and thus this effect file contains some custom information useful only to fighters. + """ + displayName = "Turret Attack" + prefix = "fighterAbilityAttackMissile" + type = "active" + def handler(fit, src, context): + pass + + return locals() + +def effect6470(): + from eos.modifiedAttributeDict import ModifiedAttributeDict + type = "projected", "active" + def handler(fit, module, context, **kwargs): + if "projected" in context: + strModifier = 1 - module.getModifiedItemAttr("scan{0}StrengthBonus".format(fit.scanType)) / fit.scanStrength + if 'effect' in kwargs: + strModifier *= ModifiedAttributeDict.getResistance(fit, kwargs['effect']) + fit.ecmProjectedStr *= strModifier + + return locals() + +def effect6472(): + type = "active" + def handler(fit, src, context): + pass + + return locals() + +def effect6473(): + type = "active" + def handler(fit, src, context): + pass + + return locals() + +def effect6474(): + type = "active" + def handler(fit, src, context): + pass + + return locals() + +def effect6475(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemIncrease(lambda mod: mod.item.group.name == "Structure Doomsday Weapon", + "lightningWeaponTargetAmount", + src.getModifiedItemAttr("structureRigDoomsdayTargetAmountBonus")) + + return locals() + +def effect6476(): + type = "active", "projected" + def handler(fit, module, context, *args, **kwargs): + if "projected" not in context: + return + fit.ship.boostItemAttr("maxVelocity", module.getModifiedItemAttr("speedFactor"), + stackingPenalties=True, *args, **kwargs) + + return locals() + +def effect6477(): + from eos.saveddata.module import State + from eos.modifiedAttributeDict import ModifiedAttributeDict + type = "active", "projected" + def handler(fit, src, context, **kwargs): + if "projected" in context and ((hasattr(src, "state") and src.state >= State.ACTIVE) or + hasattr(src, "amountActive")): + amount = src.getModifiedItemAttr("energyNeutralizerAmount") + if 'effect' in kwargs: + amount *= ModifiedAttributeDict.getResistance(fit, kwargs['effect']) + time = src.getModifiedItemAttr("duration") + fit.addDrain(src, time, amount, 0) + + return locals() + +def effect6478(): + type = "projected", "active" + def handler(fit, container, context, *args, **kwargs): + if "projected" in context: + fit.ship.boostItemAttr("signatureRadius", container.getModifiedItemAttr("signatureRadiusBonus"), + stackingPenalties=True, *args, **kwargs) + + return locals() + +def effect6479(): + type = "active", "projected" + def handler(fit, module, context, *args, **kwargs): + if "projected" in context: + for srcAttr, tgtAttr in ( + ("aoeCloudSizeBonus", "aoeCloudSize"), + ("aoeVelocityBonus", "aoeVelocity"), + ("missileVelocityBonus", "maxVelocity"), + ("explosionDelayBonus", "explosionDelay"), + ): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), + tgtAttr, module.getModifiedItemAttr(srcAttr), + stackingPenalties=True, *args, **kwargs) + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Gunnery"), + "trackingSpeed", module.getModifiedItemAttr("trackingSpeedBonus"), + stackingPenalties=True, *args, **kwargs) + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Gunnery"), + "maxRange", module.getModifiedItemAttr("maxRangeBonus"), + stackingPenalties=True, *args, **kwargs) + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Gunnery"), + "falloff", module.getModifiedItemAttr("falloffBonus"), + stackingPenalties=True, *args, **kwargs) + + return locals() + +def effect6481(): + type = "projected", "active" + def handler(fit, module, context, *args, **kwargs): + if "projected" not in context: + return + fit.ship.boostItemAttr("maxTargetRange", module.getModifiedItemAttr("maxTargetRangeBonus"), + stackingPenalties=True, *args, **kwargs) + fit.ship.boostItemAttr("scanResolution", module.getModifiedItemAttr("scanResolutionBonus"), + stackingPenalties=True, *args, **kwargs) + + return locals() + +def effect6482(): + type = "projected", "active" + def handler(fit, module, context): + return + + return locals() + +def effect6484(): + type = "active" + runtime = "late" + def handler(fit, src, context): + for dmgType in ('em', 'thermal', 'kinetic', 'explosive'): + fit.ship.multiplyItemAttr('{}DamageResonance'.format(dmgType), + src.getModifiedItemAttr("hull{}DamageResonance".format(dmgType.title())), + stackingPenalties=True, penaltyGroup="postMul") + + return locals() + +def effect6485(): + """ + Since fighter abilities do not have any sort of item entity in the EVE database, we must derive the abilities from the + effects, and thus this effect file contains some custom information useful only to fighters. + """ + displayName = "Bomb" + prefix = "fighterAbilityLaunchBomb" + type = "active" + hasCharges = True + def handler(fit, src, context): + pass + + return locals() + +def effect6487(): + type = "passive" + def handler(fit, module, context): + fit.ship.boostItemAttr("energyWarfareResistance", + module.getModifiedItemAttr("energyWarfareResistanceBonus"), + stackingPenalties=True) + + return locals() + +def effect6488(): + type = "active" + def handler(fit, module, context): + for scanType in ("Gravimetric", "Magnetometric", "Radar", "Ladar"): + module.boostItemAttr("scan{}StrengthPercent".format(scanType), + module.getModifiedChargeAttr("sensorStrengthBonusBonus")) + + return locals() + +def effect6501(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capital Energy Turret"), "damageMultiplier", + src.getModifiedItemAttr("shipBonusDreadnoughtA1"), skill="Amarr Dreadnought") + + return locals() + +def effect6502(): + type = "passive" + def handler(fit, src, context): + fit.ship.boostItemAttr("armorExplosiveDamageResonance", src.getModifiedItemAttr("shipBonusDreadnoughtA2"), + skill="Amarr Dreadnought") + fit.ship.boostItemAttr("armorEmDamageResonance", src.getModifiedItemAttr("shipBonusDreadnoughtA2"), + skill="Amarr Dreadnought") + fit.ship.boostItemAttr("armorThermalDamageResonance", src.getModifiedItemAttr("shipBonusDreadnoughtA2"), + skill="Amarr Dreadnought") + fit.ship.boostItemAttr("armorKineticDamageResonance", src.getModifiedItemAttr("shipBonusDreadnoughtA2"), + skill="Amarr Dreadnought") + + return locals() + +def effect6503(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capital Energy Turret"), "capacitorNeed", + src.getModifiedItemAttr("shipBonusDreadnoughtA3"), skill="Amarr Dreadnought") + + return locals() + +def effect6504(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("XL Torpedoes"), "thermalDamage", + src.getModifiedItemAttr("shipBonusDreadnoughtC1"), skill="Caldari Dreadnought") + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("XL Cruise Missiles"), "kineticDamage", + src.getModifiedItemAttr("shipBonusDreadnoughtC1"), skill="Caldari Dreadnought") + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Torpedoes"), "emDamage", + src.getModifiedItemAttr("shipBonusDreadnoughtC1"), skill="Caldari Dreadnought") + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Torpedoes"), "explosiveDamage", + src.getModifiedItemAttr("shipBonusDreadnoughtC1"), skill="Caldari Dreadnought") + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("XL Cruise Missiles"), "explosiveDamage", + src.getModifiedItemAttr("shipBonusDreadnoughtC1"), skill="Caldari Dreadnought") + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("XL Cruise Missiles"), "thermalDamage", + src.getModifiedItemAttr("shipBonusDreadnoughtC1"), skill="Caldari Dreadnought") + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Torpedoes"), "thermalDamage", + src.getModifiedItemAttr("shipBonusDreadnoughtC1"), skill="Caldari Dreadnought") + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("XL Torpedoes"), "emDamage", + src.getModifiedItemAttr("shipBonusDreadnoughtC1"), skill="Caldari Dreadnought") + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Torpedoes"), "kineticDamage", + src.getModifiedItemAttr("shipBonusDreadnoughtC1"), skill="Caldari Dreadnought") + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("XL Torpedoes"), "kineticDamage", + src.getModifiedItemAttr("shipBonusDreadnoughtC1"), skill="Caldari Dreadnought") + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("XL Torpedoes"), "explosiveDamage", + src.getModifiedItemAttr("shipBonusDreadnoughtC1"), skill="Caldari Dreadnought") + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("XL Cruise Missiles"), "emDamage", + src.getModifiedItemAttr("shipBonusDreadnoughtC1"), skill="Caldari Dreadnought") + + return locals() + +def effect6505(): + type = "passive" + def handler(fit, src, context): + fit.ship.boostItemAttr("shieldThermalDamageResonance", src.getModifiedItemAttr("shipBonusDreadnoughtC2"), + skill="Caldari Dreadnought") + fit.ship.boostItemAttr("shieldKineticDamageResonance", src.getModifiedItemAttr("shipBonusDreadnoughtC2"), + skill="Caldari Dreadnought") + fit.ship.boostItemAttr("shieldEmDamageResonance", src.getModifiedItemAttr("shipBonusDreadnoughtC2"), + skill="Caldari Dreadnought") + fit.ship.boostItemAttr("shieldExplosiveDamageResonance", src.getModifiedItemAttr("shipBonusDreadnoughtC2"), + skill="Caldari Dreadnought") + + return locals() + +def effect6506(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capital Hybrid Turret"), "damageMultiplier", + src.getModifiedItemAttr("shipBonusDreadnoughtG1"), skill="Gallente Dreadnought") + + return locals() + +def effect6507(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capital Hybrid Turret"), "speed", + src.getModifiedItemAttr("shipBonusDreadnoughtG2"), skill="Gallente Dreadnought") + + return locals() + +def effect6508(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capital Repair Systems"), "duration", + src.getModifiedItemAttr("shipBonusDreadnoughtG3"), skill="Gallente Dreadnought") + + return locals() + +def effect6509(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capital Projectile Turret"), "damageMultiplier", + src.getModifiedItemAttr("shipBonusDreadnoughtM1"), skill="Minmatar Dreadnought") + + return locals() + +def effect6510(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capital Projectile Turret"), "speed", + src.getModifiedItemAttr("shipBonusDreadnoughtM2"), skill="Minmatar Dreadnought") + + return locals() + +def effect6511(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capital Shield Operation"), "duration", + src.getModifiedItemAttr("shipBonusDreadnoughtM2"), skill="Minmatar Dreadnought") + + return locals() + +def effect6513(): + from eos.modifiedAttributeDict import ModifiedAttributeDict + type = "projected", "active" + def handler(fit, module, context, **kwargs): + if "projected" in context: + strModifier = 1 - module.getModifiedItemAttr("scan{0}StrengthBonus".format(fit.scanType)) / fit.scanStrength + if 'effect' in kwargs: + strModifier *= ModifiedAttributeDict.getResistance(fit, kwargs['effect']) + fit.ecmProjectedStr *= strModifier + + return locals() + +def effect6526(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capacitor Emission Systems") or + mod.item.requiresSkill("Capital Capacitor Emission Systems"), + "powerTransferAmount", src.getModifiedItemAttr("shipBonusForceAuxiliaryA1"), + skill="Amarr Carrier") + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Remote Armor Repair Systems") or + mod.item.requiresSkill("Capital Remote Armor Repair Systems"), + "armorDamageAmount", src.getModifiedItemAttr("shipBonusForceAuxiliaryA1"), + skill="Amarr Carrier") + + return locals() + +def effect6527(): + type = "passive" + def handler(fit, src, context): + fit.ship.boostItemAttr("armorKineticDamageResonance", src.getModifiedItemAttr("shipBonusForceAuxiliaryA2"), + skill="Amarr Carrier") + fit.ship.boostItemAttr("armorExplosiveDamageResonance", src.getModifiedItemAttr("shipBonusForceAuxiliaryA2"), + skill="Amarr Carrier") + fit.ship.boostItemAttr("armorEmDamageResonance", src.getModifiedItemAttr("shipBonusForceAuxiliaryA2"), + skill="Amarr Carrier") + fit.ship.boostItemAttr("armorThermalDamageResonance", src.getModifiedItemAttr("shipBonusForceAuxiliaryA2"), + skill="Amarr Carrier") + + return locals() + +def effect6533(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Armored Command") or + mod.item.requiresSkill("Information Command"), + "warfareBuff4Value", src.getModifiedItemAttr("shipBonusForceAuxiliaryA4"), skill="Amarr Carrier") + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Armored Command") or + mod.item.requiresSkill("Information Command"), + "warfareBuff3Value", src.getModifiedItemAttr("shipBonusForceAuxiliaryA4"), skill="Amarr Carrier") + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Armored Command") or + mod.item.requiresSkill("Information Command"), + "warfareBuff1Value", src.getModifiedItemAttr("shipBonusForceAuxiliaryA4"), skill="Amarr Carrier") + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Armored Command") or + mod.item.requiresSkill("Information Command"), + "buffDuration", src.getModifiedItemAttr("shipBonusForceAuxiliaryA4"), skill="Amarr Carrier") + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Armored Command") or + mod.item.requiresSkill("Information Command"), + "warfareBuff2Value", src.getModifiedItemAttr("shipBonusForceAuxiliaryA4"), skill="Amarr Carrier") + + return locals() + +def effect6534(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost( + lambda mod: mod.item.requiresSkill("Skirmish Command") or mod.item.requiresSkill("Shield Command"), + "warfareBuff3Value", src.getModifiedItemAttr("shipBonusForceAuxiliaryM4"), skill="Minmatar Carrier") + fit.modules.filteredItemBoost( + lambda mod: mod.item.requiresSkill("Skirmish Command") or mod.item.requiresSkill("Shield Command"), + "warfareBuff2Value", src.getModifiedItemAttr("shipBonusForceAuxiliaryM4"), skill="Minmatar Carrier") + fit.modules.filteredItemBoost( + lambda mod: mod.item.requiresSkill("Skirmish Command") or mod.item.requiresSkill("Shield Command"), + "warfareBuff1Value", src.getModifiedItemAttr("shipBonusForceAuxiliaryM4"), skill="Minmatar Carrier") + fit.modules.filteredItemBoost( + lambda mod: mod.item.requiresSkill("Skirmish Command") or mod.item.requiresSkill("Shield Command"), + "buffDuration", src.getModifiedItemAttr("shipBonusForceAuxiliaryM4"), skill="Minmatar Carrier") + fit.modules.filteredItemBoost( + lambda mod: mod.item.requiresSkill("Skirmish Command") or mod.item.requiresSkill("Shield Command"), + "warfareBuff4Value", src.getModifiedItemAttr("shipBonusForceAuxiliaryM4"), skill="Minmatar Carrier") + + return locals() + +def effect6535(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost( + lambda mod: mod.item.requiresSkill("Skirmish Command") or mod.item.requiresSkill("Armored Command"), + "warfareBuff3Value", src.getModifiedItemAttr("shipBonusForceAuxiliaryG4"), skill="Gallente Carrier") + fit.modules.filteredItemBoost( + lambda mod: mod.item.requiresSkill("Skirmish Command") or mod.item.requiresSkill("Armored Command"), + "warfareBuff4Value", src.getModifiedItemAttr("shipBonusForceAuxiliaryG4"), skill="Gallente Carrier") + fit.modules.filteredItemBoost( + lambda mod: mod.item.requiresSkill("Skirmish Command") or mod.item.requiresSkill("Armored Command"), + "buffDuration", src.getModifiedItemAttr("shipBonusForceAuxiliaryG4"), skill="Gallente Carrier") + fit.modules.filteredItemBoost( + lambda mod: mod.item.requiresSkill("Skirmish Command") or mod.item.requiresSkill("Armored Command"), + "warfareBuff2Value", src.getModifiedItemAttr("shipBonusForceAuxiliaryG4"), skill="Gallente Carrier") + fit.modules.filteredItemBoost( + lambda mod: mod.item.requiresSkill("Skirmish Command") or mod.item.requiresSkill("Armored Command"), + "warfareBuff1Value", src.getModifiedItemAttr("shipBonusForceAuxiliaryG4"), skill="Gallente Carrier") + + return locals() + +def effect6536(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost( + lambda mod: mod.item.requiresSkill("Shield Command") or mod.item.requiresSkill("Information Command"), + "warfareBuff3Value", src.getModifiedItemAttr("shipBonusForceAuxiliaryC4"), skill="Caldari Carrier") + fit.modules.filteredItemBoost( + lambda mod: mod.item.requiresSkill("Shield Command") or mod.item.requiresSkill("Information Command"), + "warfareBuff4Value", src.getModifiedItemAttr("shipBonusForceAuxiliaryC4"), skill="Caldari Carrier") + fit.modules.filteredItemBoost( + lambda mod: mod.item.requiresSkill("Shield Command") or mod.item.requiresSkill("Information Command"), + "warfareBuff2Value", src.getModifiedItemAttr("shipBonusForceAuxiliaryC4"), skill="Caldari Carrier") + fit.modules.filteredItemBoost( + lambda mod: mod.item.requiresSkill("Shield Command") or mod.item.requiresSkill("Information Command"), + "buffDuration", src.getModifiedItemAttr("shipBonusForceAuxiliaryC4"), skill="Caldari Carrier") + fit.modules.filteredItemBoost( + lambda mod: mod.item.requiresSkill("Shield Command") or mod.item.requiresSkill("Information Command"), + "warfareBuff1Value", src.getModifiedItemAttr("shipBonusForceAuxiliaryC4"), skill="Caldari Carrier") + + return locals() + +def effect6537(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Leadership"), "cpu", + src.getModifiedItemAttr("shipBonusRole1")) + + return locals() + +def effect6545(): + type = "passive" + def handler(fit, src, context): + if src.getModifiedItemAttr("shipBonusForceAuxiliaryC1") is None: + return # See GH Issue 1321 + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capacitor Emission Systems") or + mod.item.requiresSkill("Capital Capacitor Emission Systems"), + "powerTransferAmount", src.getModifiedItemAttr("shipBonusForceAuxiliaryC1"), + skill="Caldari Carrier") + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Emission Systems") or + mod.item.requiresSkill("Capital Shield Emission Systems"), + "shieldBonus", src.getModifiedItemAttr("shipBonusForceAuxiliaryC1"), + skill="Caldari Carrier") + + return locals() + +def effect6546(): + type = "passive" + def handler(fit, src, context): + fit.ship.boostItemAttr("shieldEmDamageResonance", src.getModifiedItemAttr("shipBonusForceAuxiliaryC2"), + skill="Caldari Carrier") + fit.ship.boostItemAttr("shieldExplosiveDamageResonance", src.getModifiedItemAttr("shipBonusForceAuxiliaryC2"), + skill="Caldari Carrier") + fit.ship.boostItemAttr("shieldKineticDamageResonance", src.getModifiedItemAttr("shipBonusForceAuxiliaryC2"), + skill="Caldari Carrier") + fit.ship.boostItemAttr("shieldThermalDamageResonance", src.getModifiedItemAttr("shipBonusForceAuxiliaryC2"), + skill="Caldari Carrier") + + return locals() + +def effect6548(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Emission Systems") or + mod.item.requiresSkill("Capital Shield Emission Systems"), + "duration", src.getModifiedItemAttr("shipBonusForceAuxiliaryG1"), + skill="Gallente Carrier") + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Remote Armor Repair Systems") or + mod.item.requiresSkill("Capital Remote Armor Repair Systems"), + "duration", src.getModifiedItemAttr("shipBonusForceAuxiliaryG1"), + skill="Gallente Carrier") + + return locals() + +def effect6549(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Repair Systems"), "armorDamageAmount", + src.getModifiedItemAttr("shipBonusForceAuxiliaryG2"), skill="Gallente Carrier") + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capital Repair Systems"), "armorDamageAmount", + src.getModifiedItemAttr("shipBonusForceAuxiliaryG2"), skill="Gallente Carrier") + + return locals() + +def effect6551(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Emission Systems") or + mod.item.requiresSkill("Capital Shield Emission Systems"), + "duration", src.getModifiedItemAttr("shipBonusForceAuxiliaryM1"), + skill="Minmatar Carrier") + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Remote Armor Repair Systems") or + mod.item.requiresSkill("Capital Remote Armor Repair Systems"), + "duration", src.getModifiedItemAttr("shipBonusForceAuxiliaryM1"), + skill="Minmatar Carrier") + + return locals() + +def effect6552(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capital Shield Operation"), "shieldBonus", + src.getModifiedItemAttr("shipBonusForceAuxiliaryM2"), skill="Minmatar Carrier") + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Operation"), "shieldBonus", + src.getModifiedItemAttr("shipBonusForceAuxiliaryM2"), skill="Minmatar Carrier") + + return locals() + +def effect6555(): + type = "passive" + def handler(fit, src, context): + fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Fighters"), "maxVelocity", + src.getModifiedItemAttr("speedFactor"), stackingPenalties=True) + fit.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Drones"), "maxVelocity", + src.getModifiedItemAttr("speedFactor"), stackingPenalties=True) + + return locals() + +def effect6556(): + type = "passive" + def handler(fit, src, context): + fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Fighters"), + "fighterAbilityMissilesDamageMultiplier", + src.getModifiedItemAttr("droneDamageBonus"), stackingPenalties=True) + fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Fighters"), + "fighterAbilityAttackTurretDamageMultiplier", + src.getModifiedItemAttr("droneDamageBonus"), stackingPenalties=True) + fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Fighters"), + "fighterAbilityAttackMissileDamageMultiplier", + src.getModifiedItemAttr("droneDamageBonus"), stackingPenalties=True) + fit.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Drones"), "damageMultiplier", + src.getModifiedItemAttr("droneDamageBonus"), stackingPenalties=True) + + return locals() + +def effect6557(): + type = "active" + def handler(fit, src, context): + fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Fighters"), + "fighterAbilityAttackTurretRangeFalloff", src.getModifiedItemAttr("falloffBonus"), + stackingPenalties=True) + fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Fighters"), + "fighterAbilityMissilesExplosionVelocity", + src.getModifiedItemAttr("aoeVelocityBonus"), stackingPenalties=True) + fit.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Drones"), "trackingSpeed", + src.getModifiedItemAttr("trackingSpeedBonus"), stackingPenalties=True) + fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Fighters"), + "fighterAbilityAttackMissileExplosionRadius", + src.getModifiedItemAttr("aoeCloudSizeBonus"), stackingPenalties=True) + fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Fighters"), + "fighterAbilityAttackTurretTrackingSpeed", + src.getModifiedItemAttr("trackingSpeedBonus"), stackingPenalties=True) + fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Fighters"), + "fighterAbilityMissilesExplosionRadius", + src.getModifiedItemAttr("aoeCloudSizeBonus"), stackingPenalties=True) + fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Fighters"), "fighterAbilityMissilesRange", + src.getModifiedItemAttr("maxRangeBonus"), stackingPenalties=True) + fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Fighters"), + "fighterAbilityAttackMissileRangeOptimal", src.getModifiedItemAttr("maxRangeBonus"), + stackingPenalties=True) + fit.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Drones"), "falloff", + src.getModifiedItemAttr("falloffBonus"), stackingPenalties=True) + fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Fighters"), + "fighterAbilityAttackMissileExplosionVelocity", + src.getModifiedItemAttr("aoeVelocityBonus"), stackingPenalties=True) + fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Fighters"), + "fighterAbilityAttackMissileRangeFalloff", src.getModifiedItemAttr("falloffBonus"), + stackingPenalties=True) + fit.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Drones"), "maxRange", + src.getModifiedItemAttr("maxRangeBonus"), stackingPenalties=True) + fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Fighters"), + "fighterAbilityAttackTurretRangeOptimal", src.getModifiedItemAttr("maxRangeBonus"), + stackingPenalties=True) + + return locals() + +def effect6558(): + type = "overheat" + def handler(fit, module, context): + overloadBonus = module.getModifiedItemAttr("overloadTrackingModuleStrengthBonus") + module.boostItemAttr("maxRangeBonus", overloadBonus) + module.boostItemAttr("falloffBonus", overloadBonus) + module.boostItemAttr("trackingSpeedBonus", overloadBonus) + module.boostItemAttr("aoeCloudSizeBonus", overloadBonus) + module.boostItemAttr("aoeVelocityBonus", overloadBonus) + + return locals() + +def effect6559(): + type = "passive" + def handler(fit, src, context): + fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Fighters"), + "fighterAbilityAttackMissileExplosionRadius", + src.getModifiedItemAttr("aoeCloudSizeBonus"), stackingPenalties=True) + fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Fighters"), + "fighterAbilityAttackMissileRangeOptimal", src.getModifiedItemAttr("maxRangeBonus"), + stackingPenalties=True) + fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Fighters"), + "fighterAbilityAttackTurretRangeFalloff", src.getModifiedItemAttr("falloffBonus"), + stackingPenalties=True) + fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Fighters"), + "fighterAbilityMissilesExplosionRadius", + src.getModifiedItemAttr("aoeCloudSizeBonus"), stackingPenalties=True) + fit.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Drones"), "falloff", + src.getModifiedItemAttr("falloffBonus"), stackingPenalties=True) + fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Fighters"), + "fighterAbilityAttackMissileRangeFalloff", src.getModifiedItemAttr("falloffBonus"), + stackingPenalties=True) + fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Fighters"), + "fighterAbilityAttackTurretTrackingSpeed", + src.getModifiedItemAttr("trackingSpeedBonus"), stackingPenalties=True) + fit.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Drones"), "maxRange", + src.getModifiedItemAttr("maxRangeBonus"), stackingPenalties=True) + fit.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Drones"), "trackingSpeed", + src.getModifiedItemAttr("trackingSpeedBonus"), stackingPenalties=True) + fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Fighters"), + "fighterAbilityAttackTurretRangeOptimal", src.getModifiedItemAttr("maxRangeBonus"), + stackingPenalties=True) + fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Fighters"), + "fighterAbilityMissilesExplosionVelocity", + src.getModifiedItemAttr("aoeVelocityBonus"), stackingPenalties=True) + fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Fighters"), + "fighterAbilityAttackMissileExplosionVelocity", + src.getModifiedItemAttr("aoeVelocityBonus"), stackingPenalties=True) + fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Fighters"), "fighterAbilityMissilesRange", + src.getModifiedItemAttr("maxRangeBonus"), stackingPenalties=True) + + return locals() + +def effect6560(): + type = "passive" + def handler(fit, src, context): + lvl = src.level + fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Fighters"), + "fighterAbilityAttackMissileDamageMultiplier", + src.getModifiedItemAttr("damageMultiplierBonus") * lvl) + fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Fighters"), + "fighterAbilityAttackTurretDamageMultiplier", + src.getModifiedItemAttr("damageMultiplierBonus") * lvl) + fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Fighters"), + "fighterAbilityMissilesDamageMultiplier", + src.getModifiedItemAttr("damageMultiplierBonus") * lvl) + + return locals() + +def effect6561(): + type = "passive" + def handler(fit, src, context): + lvl = src.level + fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Light Fighters"), "maxVelocity", + src.getModifiedItemAttr("maxVelocityBonus") * lvl) + + return locals() + +def effect6562(): + type = "passive" + def handler(fit, src, context): + lvl = src.level + fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Support Fighters"), "shieldCapacity", + src.getModifiedItemAttr("shieldBonus") * lvl) + + return locals() + +def effect6563(): + type = "passive" + def handler(fit, src, context): + lvl = src.level + fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Heavy Fighters"), + "fighterAbilityMissilesDamageMultiplier", + src.getModifiedItemAttr("damageMultiplierBonus") * lvl) + fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Heavy Fighters"), + "fighterAbilityAttackMissileDamageMultiplier", + src.getModifiedItemAttr("damageMultiplierBonus") * lvl) + fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Heavy Fighters"), + "fighterAbilityAttackTurretDamageMultiplier", + src.getModifiedItemAttr("damageMultiplierBonus") * lvl) + + return locals() + +def effect6565(): + type = "passive" + runTime = "early" + def handler(fit, src, context): + for attr in [ + "structureRigDoomsdayDamageLossTargetBonus", + "structureRigScanResBonus", + "structureRigPDRangeBonus", + "structureRigPDCapUseBonus", + "structureRigMissileExploVeloBonus", + "structureRigMissileVelocityBonus", + "structureRigEwarOptimalBonus", + "structureRigEwarFalloffBonus", + "structureRigEwarCapUseBonus", + "structureRigMissileExplosionRadiusBonus" + ]: + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Jury Rigging"), + attr, src.getModifiedItemAttr("structureRoleBonus")) + + return locals() + +def effect6566(): + type = "passive" + def handler(fit, src, context): + fit.fighters.filteredItemMultiply(lambda mod: mod.item.requiresSkill("Fighters"), "shieldCapacity", + src.getModifiedItemAttr("fighterBonusShieldCapacityPercent")) + fit.fighters.filteredItemMultiply(lambda mod: mod.item.requiresSkill("Fighters"), "maxVelocity", + src.getModifiedItemAttr("fighterBonusVelocityPercent"), stackingPenalties=True, penaltyGroup="postMul") + fit.fighters.filteredItemMultiply(lambda mod: mod.item.requiresSkill("Fighters"), + "fighterAbilityAttackMissileDuration", + src.getModifiedItemAttr("fighterBonusROFPercent"), stackingPenalties=True, penaltyGroup="postMul") + fit.fighters.filteredItemMultiply(lambda mod: mod.item.requiresSkill("Fighters"), "fighterAbilityAttackTurretDuration", + src.getModifiedItemAttr("fighterBonusROFPercent"), stackingPenalties=True, penaltyGroup="postMul") + fit.fighters.filteredItemMultiply(lambda mod: mod.item.requiresSkill("Fighters"), "fighterAbilityMissilesDuration", + src.getModifiedItemAttr("fighterBonusROFPercent"), stackingPenalties=True, penaltyGroup="postMul") + fit.fighters.filteredItemMultiply(lambda mod: mod.item.requiresSkill("Fighters"), "shieldRechargeRate", + src.getModifiedItemAttr("fighterBonusShieldRechargePercent")) + + return locals() + +def effect6567(): + type = "active" + def handler(fit, src, context): + fit.ship.boostItemAttr("scanResolution", src.getModifiedItemAttr("scanResolutionBonus"), stackingPenalties=True) + for scanType in ('Magnetometric', 'Ladar', 'Gravimetric', 'Radar'): + attr = "scan{}Strength".format(scanType) + bonus = src.getModifiedItemAttr("scan{}StrengthPercent".format(scanType)) + fit.ship.boostItemAttr(attr, bonus, stackingPenalties=True) + fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Fighters"), attr, bonus, + stackingPenalties=True) + groups = [ + 'Burst Jammer', + 'Weapon Disruptor', + 'ECM', + 'Stasis Grappler', + 'Sensor Dampener', + 'Target Painter'] + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name in groups or + mod.item.requiresSkill("Propulsion Jamming"), + "capacitorNeed", src.getModifiedItemAttr("ewCapacitorNeedBonus")) + + return locals() + +def effect657(): + type = "passive" + def handler(fit, module, context): + fit.ship.boostItemAttr("agility", + module.getModifiedItemAttr("agilityMultiplier"), + stackingPenalties=True) + + return locals() + +def effect6570(): + type = "passive" + def handler(fit, src, context): + lvl = src.level + fit.ship.boostItemAttr("fighterCapacity", src.getModifiedItemAttr("skillBonusFighterHangarSize") * lvl) + + return locals() + +def effect6571(): + type = "passive" + def handler(fit, src, context): + lvl = src.level + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capital Autocannon Specialization"), + "damageMultiplier", src.getModifiedItemAttr("damageMultiplierBonus") * lvl) + + return locals() + +def effect6572(): + type = "passive" + def handler(fit, src, context): + lvl = src.level + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capital Artillery Specialization"), + "damageMultiplier", src.getModifiedItemAttr("damageMultiplierBonus") * lvl) + + return locals() + +def effect6573(): + type = "passive" + def handler(fit, src, context): + lvl = src.level + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capital Blaster Specialization"), + "damageMultiplier", src.getModifiedItemAttr("damageMultiplierBonus") * lvl) + + return locals() + +def effect6574(): + type = "passive" + def handler(fit, src, context): + lvl = src.level + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capital Railgun Specialization"), + "damageMultiplier", src.getModifiedItemAttr("damageMultiplierBonus") * lvl) + + return locals() + +def effect6575(): + type = "passive" + def handler(fit, src, context): + lvl = src.level + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capital Pulse Laser Specialization"), + "damageMultiplier", src.getModifiedItemAttr("damageMultiplierBonus") * lvl) + + return locals() + +def effect6576(): + type = "passive" + def handler(fit, src, context): + lvl = src.level + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capital Beam Laser Specialization"), + "damageMultiplier", src.getModifiedItemAttr("damageMultiplierBonus") * lvl) + + return locals() + +def effect6577(): + type = "passive" + def handler(fit, src, context): + lvl = src.level + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("XL Cruise Missile Specialization"), "speed", + src.getModifiedItemAttr("rofBonus") * lvl) + + return locals() + +def effect6578(): + type = "passive" + def handler(fit, src, context): + lvl = src.level + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("XL Torpedo Specialization"), "speed", + src.getModifiedItemAttr("rofBonus") * lvl) + + return locals() + +def effect6580(): + type = "passive" + def handler(fit, src, context): + fit.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Repair Drone Operation"), "structureDamageAmount", + src.getModifiedItemAttr("shipBonusRole2")) + fit.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Repair Drone Operation"), "armorDamageAmount", + src.getModifiedItemAttr("shipBonusRole2")) + fit.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Repair Drone Operation"), "shieldBonus", + src.getModifiedItemAttr("shipBonusRole2")) + + return locals() + +def effect6581(): + type = "active" + runTime = "early" + def handler(fit, src, context): + for skill, amtAttr, stack in ( + ("Capital Remote Armor Repair Systems", "armorDamageAmount", True), + ("Capital Shield Emission Systems", "shieldBonus", True), + ("Capital Capacitor Emission Systems", "powerTransferAmount", False), + ("Capital Remote Hull Repair Systems", "structureDamageAmount", False)): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill(skill), "duration", + src.getModifiedItemAttr("siegeRemoteLogisticsDurationBonus")) + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill(skill), amtAttr, + src.getModifiedItemAttr("siegeRemoteLogisticsAmountBonus"), + stackingPenalties=stack) + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill(skill), "maxRange", + src.getModifiedItemAttr("siegeRemoteLogisticsRangeBonus"), stackingPenalties=True) + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill(skill), "falloffEffectiveness", + src.getModifiedItemAttr("siegeRemoteLogisticsRangeBonus"), stackingPenalties=True) + for skill, amtAttr in ( + ("Capital Shield Operation", "shieldBonus"), + ("Capital Repair Systems", "armorDamageAmount")): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill(skill), "duration", + src.getModifiedItemAttr("siegeLocalLogisticsDurationBonus")) + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill(skill), amtAttr, + src.getModifiedItemAttr("siegeLocalLogisticsAmountBonus")) + fit.ship.boostItemAttr("maxVelocity", src.getModifiedItemAttr("speedFactor"), stackingPenalties=True) + fit.ship.multiplyItemAttr("scanResolution", src.getModifiedItemAttr("scanResolutionMultiplier"), + stackingPenalties=True) + fit.ship.multiplyItemAttr("mass", src.getModifiedItemAttr("siegeMassMultiplier"), stackingPenalties=True) + fit.ship.increaseItemAttr("maxLockedTargets", src.getModifiedItemAttr("maxLockedTargetsBonus")) + groups = [ + 'Burst Jammer', + 'Weapon Disruptor', + 'ECM', + 'Stasis Grappler', + 'Sensor Dampener', + 'Target Painter'] + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name in groups or + mod.item.requiresSkill("Propulsion Jamming"), + "capacitorNeed", src.getModifiedItemAttr("ewCapacitorNeedBonus")) + fit.ship.forceItemAttr("disallowOffensiveModifiers", src.getModifiedItemAttr("disallowOffensiveModifiers")) + fit.ship.forceItemAttr("disallowAssistance", src.getModifiedItemAttr("disallowAssistance")) + fit.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Drones"), "damageMultiplier", + src.getModifiedItemAttr("droneDamageBonus"), stackingPenalties=True) + fit.ship.increaseItemAttr("warpScrambleStatus", src.getModifiedItemAttr("siegeModeWarpStatus")) + fit.ship.boostItemAttr("sensorDampenerResistance", src.getModifiedItemAttr("sensorDampenerResistanceBonus")) + fit.ship.boostItemAttr("remoteAssistanceImpedance", src.getModifiedItemAttr("remoteAssistanceImpedanceBonus")) + fit.ship.boostItemAttr("remoteRepairImpedance", src.getModifiedItemAttr("remoteRepairImpedanceBonus")) + fit.ship.forceItemAttr("disallowTethering", src.getModifiedItemAttr("disallowTethering")) + fit.ship.forceItemAttr("disallowDocking", src.getModifiedItemAttr("disallowDocking")) + + return locals() + +def effect6582(): + type = "active" + runTime = "early" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capital Energy Turret") or + mod.item.requiresSkill("Capital Hybrid Turret") or + mod.item.requiresSkill("Capital Projectile Turret"), + "damageMultiplier", src.getModifiedItemAttr("siegeTurretDamageBonus")) + for type in ("kinetic", "thermal", "explosive", "em"): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("XL Torpedoes") or + mod.charge.requiresSkill("XL Cruise Missiles") or + mod.charge.requiresSkill("Torpedoes"), + "%sDamage" % type, src.getModifiedItemAttr("siegeMissileDamageBonus")) + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capital Shield Operation") or + mod.item.requiresSkill("Capital Repair Systems"), + "duration", src.getModifiedItemAttr("siegeLocalLogisticsDurationBonus")) + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capital Shield Operation"), + "shieldBonus", src.getModifiedItemAttr("siegeLocalLogisticsAmountBonus"), + stackingPenalties=True) + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capital Repair Systems"), + "armorDamageAmount", src.getModifiedItemAttr("siegeLocalLogisticsAmountBonus"), + stackingPenalties=True) + fit.ship.boostItemAttr("maxVelocity", src.getModifiedItemAttr("speedFactor")) + fit.ship.multiplyItemAttr("mass", src.getModifiedItemAttr("siegeMassMultiplier"), + stackingPenalties=True, penaltyGroup="postMul") + fit.ship.forceItemAttr("disallowOffensiveModifiers", src.getModifiedItemAttr("disallowOffensiveModifiers")) + fit.ship.forceItemAttr("disallowAssistance", src.getModifiedItemAttr("disallowAssistance")) + for group in ("Missile Launcher XL Torpedo", "Missile Launcher Rapid Torpedo", "Missile Launcher XL Cruise"): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == group, "speed", + src.getModifiedItemAttr("siegeLauncherROFBonus")) + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Torpedoes"), "maxVelocity", + src.getModifiedItemAttr("siegeTorpedoVelocityBonus"), stackingPenalties=True) + fit.ship.increaseItemAttr("warpScrambleStatus", src.getModifiedItemAttr("siegeModeWarpStatus")) + fit.ship.boostItemAttr("remoteRepairImpedance", src.getModifiedItemAttr("remoteRepairImpedanceBonus")) + fit.ship.boostItemAttr("sensorDampenerResistance", src.getModifiedItemAttr("sensorDampenerResistanceBonus")) + fit.ship.boostItemAttr("remoteAssistanceImpedance", src.getModifiedItemAttr("remoteAssistanceImpedanceBonus")) + fit.ship.boostItemAttr("weaponDisruptionResistance", src.getModifiedItemAttr("weaponDisruptionResistanceBonus")) + fit.ship.forceItemAttr("disallowDocking", src.getModifiedItemAttr("disallowDocking")) + fit.ship.forceItemAttr("disallowTethering", src.getModifiedItemAttr("disallowTethering")) + + return locals() + +def effect6591(): + type = "passive" + def handler(fit, src, context): + fit.ship.increaseItemAttr("warpScrambleStatus", src.getModifiedItemAttr("shipBonusSupercarrierA3"), + skill="Amarr Carrier") + + return locals() + +def effect6592(): + type = "passive" + def handler(fit, src, context): + fit.ship.increaseItemAttr("warpScrambleStatus", src.getModifiedItemAttr("shipBonusSupercarrierC3"), + skill="Caldari Carrier") + + return locals() + +def effect6593(): + type = "passive" + def handler(fit, src, context): + fit.ship.increaseItemAttr("warpScrambleStatus", src.getModifiedItemAttr("shipBonusSupercarrierG3"), + skill="Gallente Carrier") + + return locals() + +def effect6594(): + type = "passive" + def handler(fit, src, context): + fit.ship.increaseItemAttr("warpScrambleStatus", src.getModifiedItemAttr("shipBonusSupercarrierM3"), + skill="Minmatar Carrier") + + return locals() + +def effect6595(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost( + lambda mod: mod.item.requiresSkill("Armored Command") or mod.item.requiresSkill("Information Command"), + "buffDuration", src.getModifiedItemAttr("shipBonusCarrierA4"), skill="Amarr Carrier") + fit.modules.filteredItemBoost( + lambda mod: mod.item.requiresSkill("Armored Command") or mod.item.requiresSkill("Information Command"), + "warfareBuff3Value", src.getModifiedItemAttr("shipBonusCarrierA4"), skill="Amarr Carrier") + fit.modules.filteredItemBoost( + lambda mod: mod.item.requiresSkill("Armored Command") or mod.item.requiresSkill("Information Command"), + "warfareBuff1Value", src.getModifiedItemAttr("shipBonusCarrierA4"), skill="Amarr Carrier") + fit.modules.filteredItemBoost( + lambda mod: mod.item.requiresSkill("Armored Command") or mod.item.requiresSkill("Information Command"), + "warfareBuff4Value", src.getModifiedItemAttr("shipBonusCarrierA4"), skill="Amarr Carrier") + fit.modules.filteredItemBoost( + lambda mod: mod.item.requiresSkill("Armored Command") or mod.item.requiresSkill("Information Command"), + "warfareBuff2Value", src.getModifiedItemAttr("shipBonusCarrierA4"), skill="Amarr Carrier") + + return locals() + +def effect6596(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost( + lambda mod: mod.item.requiresSkill("Shield Command") or mod.item.requiresSkill("Information Command"), + "warfareBuff2Value", src.getModifiedItemAttr("shipBonusCarrierC4"), skill="Caldari Carrier") + fit.modules.filteredItemBoost( + lambda mod: mod.item.requiresSkill("Shield Command") or mod.item.requiresSkill("Information Command"), + "buffDuration", src.getModifiedItemAttr("shipBonusCarrierC4"), skill="Caldari Carrier") + fit.modules.filteredItemBoost( + lambda mod: mod.item.requiresSkill("Shield Command") or mod.item.requiresSkill("Information Command"), + "warfareBuff3Value", src.getModifiedItemAttr("shipBonusCarrierC4"), skill="Caldari Carrier") + fit.modules.filteredItemBoost( + lambda mod: mod.item.requiresSkill("Shield Command") or mod.item.requiresSkill("Information Command"), + "warfareBuff4Value", src.getModifiedItemAttr("shipBonusCarrierC4"), skill="Caldari Carrier") + fit.modules.filteredItemBoost( + lambda mod: mod.item.requiresSkill("Shield Command") or mod.item.requiresSkill("Information Command"), + "warfareBuff1Value", src.getModifiedItemAttr("shipBonusCarrierC4"), skill="Caldari Carrier") + + return locals() + +def effect6597(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost( + lambda mod: mod.item.requiresSkill("Skirmish Command") or mod.item.requiresSkill("Armored Command"), + "warfareBuff2Value", src.getModifiedItemAttr("shipBonusCarrierG4"), skill="Gallente Carrier") + fit.modules.filteredItemBoost( + lambda mod: mod.item.requiresSkill("Skirmish Command") or mod.item.requiresSkill("Armored Command"), + "warfareBuff3Value", src.getModifiedItemAttr("shipBonusCarrierG4"), skill="Gallente Carrier") + fit.modules.filteredItemBoost( + lambda mod: mod.item.requiresSkill("Skirmish Command") or mod.item.requiresSkill("Armored Command"), + "warfareBuff4Value", src.getModifiedItemAttr("shipBonusCarrierG4"), skill="Gallente Carrier") + fit.modules.filteredItemBoost( + lambda mod: mod.item.requiresSkill("Skirmish Command") or mod.item.requiresSkill("Armored Command"), + "buffDuration", src.getModifiedItemAttr("shipBonusCarrierG4"), skill="Gallente Carrier") + fit.modules.filteredItemBoost( + lambda mod: mod.item.requiresSkill("Skirmish Command") or mod.item.requiresSkill("Armored Command"), + "warfareBuff1Value", src.getModifiedItemAttr("shipBonusCarrierG4"), skill="Gallente Carrier") + + return locals() + +def effect6598(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost( + lambda mod: mod.item.requiresSkill("Skirmish Command") or mod.item.requiresSkill("Shield Command"), + "warfareBuff4Value", src.getModifiedItemAttr("shipBonusCarrierM4"), skill="Minmatar Carrier") + fit.modules.filteredItemBoost( + lambda mod: mod.item.requiresSkill("Skirmish Command") or mod.item.requiresSkill("Shield Command"), + "warfareBuff2Value", src.getModifiedItemAttr("shipBonusCarrierM4"), skill="Minmatar Carrier") + fit.modules.filteredItemBoost( + lambda mod: mod.item.requiresSkill("Skirmish Command") or mod.item.requiresSkill("Shield Command"), + "warfareBuff3Value", src.getModifiedItemAttr("shipBonusCarrierM4"), skill="Minmatar Carrier") + fit.modules.filteredItemBoost( + lambda mod: mod.item.requiresSkill("Skirmish Command") or mod.item.requiresSkill("Shield Command"), + "warfareBuff1Value", src.getModifiedItemAttr("shipBonusCarrierM4"), skill="Minmatar Carrier") + fit.modules.filteredItemBoost( + lambda mod: mod.item.requiresSkill("Skirmish Command") or mod.item.requiresSkill("Shield Command"), + "buffDuration", src.getModifiedItemAttr("shipBonusCarrierM4"), skill="Minmatar Carrier") + + return locals() + +def effect6599(): + type = "passive" + def handler(fit, src, context): + fit.ship.boostItemAttr("armorKineticDamageResonance", src.getModifiedItemAttr("shipBonusCarrierA1"), + skill="Amarr Carrier") + fit.ship.boostItemAttr("armorEmDamageResonance", src.getModifiedItemAttr("shipBonusCarrierA1"), + skill="Amarr Carrier") + fit.ship.boostItemAttr("armorExplosiveDamageResonance", src.getModifiedItemAttr("shipBonusCarrierA1"), + skill="Amarr Carrier") + fit.ship.boostItemAttr("armorThermalDamageResonance", src.getModifiedItemAttr("shipBonusCarrierA1"), + skill="Amarr Carrier") + + return locals() + +def effect660(): + type = "passive" + def handler(fit, skill, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill(skill), + "emDamage", skill.getModifiedItemAttr("damageMultiplierBonus") * skill.level) + + return locals() + +def effect6600(): + type = "passive" + def handler(fit, src, context): + fit.ship.boostItemAttr("shieldThermalDamageResonance", src.getModifiedItemAttr("shipBonusCarrierC1"), + skill="Caldari Carrier") + fit.ship.boostItemAttr("shieldEmDamageResonance", src.getModifiedItemAttr("shipBonusCarrierC1"), + skill="Caldari Carrier") + fit.ship.boostItemAttr("shieldKineticDamageResonance", src.getModifiedItemAttr("shipBonusCarrierC1"), + skill="Caldari Carrier") + fit.ship.boostItemAttr("shieldExplosiveDamageResonance", src.getModifiedItemAttr("shipBonusCarrierC1"), + skill="Caldari Carrier") + + return locals() + +def effect6601(): + type = "passive" + def handler(fit, src, context): + fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Fighters"), + "fighterAbilityMissilesDamageMultiplier", + src.getModifiedItemAttr("shipBonusCarrierG1"), skill="Gallente Carrier") + fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Fighters"), + "fighterAbilityAttackTurretDamageMultiplier", + src.getModifiedItemAttr("shipBonusCarrierG1"), skill="Gallente Carrier") + fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Fighters"), + "fighterAbilityAttackMissileDamageMultiplier", + src.getModifiedItemAttr("shipBonusCarrierG1"), skill="Gallente Carrier") + + return locals() + +def effect6602(): + type = "passive" + def handler(fit, src, context): + fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Fighters"), + "fighterAbilityAttackMissileDamageMultiplier", + src.getModifiedItemAttr("shipBonusCarrierM1"), skill="Minmatar Carrier") + fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Fighters"), + "fighterAbilityMissilesDamageMultiplier", + src.getModifiedItemAttr("shipBonusCarrierM1"), skill="Minmatar Carrier") + fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Fighters"), + "fighterAbilityAttackTurretDamageMultiplier", + src.getModifiedItemAttr("shipBonusCarrierM1"), skill="Minmatar Carrier") + + return locals() + +def effect6603(): + type = "passive" + def handler(fit, src, context): + fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Fighters"), + "fighterAbilityMissilesDamageMultiplier", + src.getModifiedItemAttr("shipBonusSupercarrierA1"), skill="Amarr Carrier") + fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Fighters"), + "fighterAbilityAttackMissileDamageMultiplier", + src.getModifiedItemAttr("shipBonusSupercarrierA1"), skill="Amarr Carrier") + fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Fighters"), + "fighterAbilityAttackTurretDamageMultiplier", + src.getModifiedItemAttr("shipBonusSupercarrierA1"), skill="Amarr Carrier") + + return locals() + +def effect6604(): + type = "passive" + def handler(fit, src, context): + fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Fighters"), + "fighterAbilityMissilesDamageMultiplier", + src.getModifiedItemAttr("shipBonusSupercarrierC1"), skill="Caldari Carrier") + fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Fighters"), + "fighterAbilityAttackTurretDamageMultiplier", + src.getModifiedItemAttr("shipBonusSupercarrierC1"), skill="Caldari Carrier") + fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Fighters"), + "fighterAbilityAttackMissileDamageMultiplier", + src.getModifiedItemAttr("shipBonusSupercarrierC1"), skill="Caldari Carrier") + + return locals() + +def effect6605(): + type = "passive" + def handler(fit, src, context): + fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Fighters"), + "fighterAbilityAttackTurretDamageMultiplier", + src.getModifiedItemAttr("shipBonusSupercarrierG1"), skill="Gallente Carrier") + fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Fighters"), + "fighterAbilityMissilesDamageMultiplier", + src.getModifiedItemAttr("shipBonusSupercarrierG1"), skill="Gallente Carrier") + fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Fighters"), + "fighterAbilityAttackMissileDamageMultiplier", + src.getModifiedItemAttr("shipBonusSupercarrierG1"), skill="Gallente Carrier") + + return locals() + +def effect6606(): + type = "passive" + def handler(fit, src, context): + fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Fighters"), + "fighterAbilityAttackMissileDamageMultiplier", + src.getModifiedItemAttr("shipBonusSupercarrierM1"), skill="Minmatar Carrier") + fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Fighters"), + "fighterAbilityMissilesDamageMultiplier", + src.getModifiedItemAttr("shipBonusSupercarrierM1"), skill="Minmatar Carrier") + fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Fighters"), + "fighterAbilityAttackTurretDamageMultiplier", + src.getModifiedItemAttr("shipBonusSupercarrierM1"), skill="Minmatar Carrier") + + return locals() + +def effect6607(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost( + lambda mod: mod.item.requiresSkill("Armored Command") or mod.item.requiresSkill("Information Command"), + "warfareBuff4Value", src.getModifiedItemAttr("shipBonusSupercarrierA5"), skill="Amarr Carrier") + fit.modules.filteredItemBoost( + lambda mod: mod.item.requiresSkill("Armored Command") or mod.item.requiresSkill("Information Command"), + "warfareBuff3Value", src.getModifiedItemAttr("shipBonusSupercarrierA5"), skill="Amarr Carrier") + fit.modules.filteredItemBoost( + lambda mod: mod.item.requiresSkill("Armored Command") or mod.item.requiresSkill("Information Command"), + "buffDuration", src.getModifiedItemAttr("shipBonusSupercarrierA5"), skill="Amarr Carrier") + fit.modules.filteredItemBoost( + lambda mod: mod.item.requiresSkill("Armored Command") or mod.item.requiresSkill("Information Command"), + "warfareBuff2Value", src.getModifiedItemAttr("shipBonusSupercarrierA5"), skill="Amarr Carrier") + fit.modules.filteredItemBoost( + lambda mod: mod.item.requiresSkill("Armored Command") or mod.item.requiresSkill("Information Command"), + "warfareBuff1Value", src.getModifiedItemAttr("shipBonusSupercarrierA5"), skill="Amarr Carrier") + + return locals() + +def effect6608(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost( + lambda mod: mod.item.requiresSkill("Shield Command") or mod.item.requiresSkill("Information Command"), + "buffDuration", src.getModifiedItemAttr("shipBonusSupercarrierC5"), skill="Caldari Carrier") + fit.modules.filteredItemBoost( + lambda mod: mod.item.requiresSkill("Shield Command") or mod.item.requiresSkill("Information Command"), + "warfareBuff2Value", src.getModifiedItemAttr("shipBonusSupercarrierC5"), skill="Caldari Carrier") + fit.modules.filteredItemBoost( + lambda mod: mod.item.requiresSkill("Shield Command") or mod.item.requiresSkill("Information Command"), + "warfareBuff1Value", src.getModifiedItemAttr("shipBonusSupercarrierC5"), skill="Caldari Carrier") + fit.modules.filteredItemBoost( + lambda mod: mod.item.requiresSkill("Shield Command") or mod.item.requiresSkill("Information Command"), + "warfareBuff4Value", src.getModifiedItemAttr("shipBonusSupercarrierC5"), skill="Caldari Carrier") + fit.modules.filteredItemBoost( + lambda mod: mod.item.requiresSkill("Shield Command") or mod.item.requiresSkill("Information Command"), + "warfareBuff3Value", src.getModifiedItemAttr("shipBonusSupercarrierC5"), skill="Caldari Carrier") + + return locals() + +def effect6609(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost( + lambda mod: mod.item.requiresSkill("Skirmish Command") or mod.item.requiresSkill("Armored Command"), + "warfareBuff2Value", src.getModifiedItemAttr("shipBonusSupercarrierG5"), skill="Gallente Carrier") + fit.modules.filteredItemBoost( + lambda mod: mod.item.requiresSkill("Skirmish Command") or mod.item.requiresSkill("Armored Command"), + "buffDuration", src.getModifiedItemAttr("shipBonusSupercarrierG5"), skill="Gallente Carrier") + fit.modules.filteredItemBoost( + lambda mod: mod.item.requiresSkill("Skirmish Command") or mod.item.requiresSkill("Armored Command"), + "warfareBuff1Value", src.getModifiedItemAttr("shipBonusSupercarrierG5"), skill="Gallente Carrier") + fit.modules.filteredItemBoost( + lambda mod: mod.item.requiresSkill("Skirmish Command") or mod.item.requiresSkill("Armored Command"), + "warfareBuff3Value", src.getModifiedItemAttr("shipBonusSupercarrierG5"), skill="Gallente Carrier") + fit.modules.filteredItemBoost( + lambda mod: mod.item.requiresSkill("Skirmish Command") or mod.item.requiresSkill("Armored Command"), + "warfareBuff4Value", src.getModifiedItemAttr("shipBonusSupercarrierG5"), skill="Gallente Carrier") + + return locals() + +def effect661(): + type = "passive" + def handler(fit, skill, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill(skill), + "explosiveDamage", skill.getModifiedItemAttr("damageMultiplierBonus") * skill.level) + + return locals() + +def effect6610(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost( + lambda mod: mod.item.requiresSkill("Skirmish Command") or mod.item.requiresSkill("Shield Command"), + "warfareBuff4Value", src.getModifiedItemAttr("shipBonusSupercarrierM5"), skill="Minmatar Carrier") + fit.modules.filteredItemBoost( + lambda mod: mod.item.requiresSkill("Skirmish Command") or mod.item.requiresSkill("Shield Command"), + "warfareBuff1Value", src.getModifiedItemAttr("shipBonusSupercarrierM5"), skill="Minmatar Carrier") + fit.modules.filteredItemBoost( + lambda mod: mod.item.requiresSkill("Skirmish Command") or mod.item.requiresSkill("Shield Command"), + "warfareBuff3Value", src.getModifiedItemAttr("shipBonusSupercarrierM5"), skill="Minmatar Carrier") + fit.modules.filteredItemBoost( + lambda mod: mod.item.requiresSkill("Skirmish Command") or mod.item.requiresSkill("Shield Command"), + "buffDuration", src.getModifiedItemAttr("shipBonusSupercarrierM5"), skill="Minmatar Carrier") + fit.modules.filteredItemBoost( + lambda mod: mod.item.requiresSkill("Skirmish Command") or mod.item.requiresSkill("Shield Command"), + "warfareBuff2Value", src.getModifiedItemAttr("shipBonusSupercarrierM5"), skill="Minmatar Carrier") + + return locals() + +def effect6611(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Afterburner"), "speedFactor", + src.getModifiedItemAttr("shipBonusSupercarrierC2"), skill="Caldari Carrier") + + return locals() + +def effect6612(): + type = "passive" + def handler(fit, src, context): + fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Fighters"), + "fighterAbilityMissilesExplosionVelocity", + src.getModifiedItemAttr("shipBonusSupercarrierA2"), skill="Amarr Carrier") + fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Fighters"), + "fighterAbilityAttackMissileExplosionVelocity", + src.getModifiedItemAttr("shipBonusSupercarrierA2"), skill="Amarr Carrier") + + return locals() + +def effect6613(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemIncrease(lambda mod: mod.item.requiresSkill("Leadership"), "maxGroupActive", + src.getModifiedItemAttr("shipBonusRole1")) + + return locals() + +def effect6614(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Hull Upgrades"), "armorHPBonusAdd", + src.getModifiedItemAttr("shipBonusRole2")) + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Upgrades"), "capacityBonus", + src.getModifiedItemAttr("shipBonusRole2")) + + return locals() + +def effect6615(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Burst Projector Operation"), + "durationWeaponDisruptionBurstProjector", + src.getModifiedItemAttr("shipBonusSupercarrierA4"), skill="Amarr Carrier") + + return locals() + +def effect6616(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Burst Projector Operation"), + "durationECMJammerBurstProjector", src.getModifiedItemAttr("shipBonusSupercarrierC4"), + skill="Caldari Carrier") + + return locals() + +def effect6617(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Burst Projector Operation"), + "durationSensorDampeningBurstProjector", + src.getModifiedItemAttr("shipBonusSupercarrierG4"), skill="Gallente Carrier") + + return locals() + +def effect6618(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Burst Projector Operation"), + "durationTargetIlluminationBurstProjector", + src.getModifiedItemAttr("shipBonusSupercarrierM4"), skill="Minmatar Carrier") + + return locals() + +def effect6619(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemIncrease(lambda mod: mod.item.requiresSkill("Leadership"), "maxGroupActive", + src.getModifiedItemAttr("shipBonusRole1")) + + return locals() + +def effect662(): + type = "passive" + def handler(fit, skill, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill(skill), + "thermalDamage", skill.getModifiedItemAttr("damageMultiplierBonus") * skill.level) + + return locals() + +def effect6620(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Missile Launcher Operation"), "reloadTime", + src.getModifiedItemAttr("shipBonusDreadnoughtC3"), skill="Caldari Dreadnought") + + return locals() + +def effect6621(): + type = "passive" + def handler(fit, src, context): + fit.ship.boostItemAttr("armorExplosiveDamageResonance", src.getModifiedItemAttr("shipBonusSupercarrierA2"), + skill="Amarr Carrier") + fit.ship.boostItemAttr("armorEmDamageResonance", src.getModifiedItemAttr("shipBonusSupercarrierA2"), + skill="Amarr Carrier") + fit.ship.boostItemAttr("armorThermalDamageResonance", src.getModifiedItemAttr("shipBonusSupercarrierA2"), + skill="Amarr Carrier") + fit.ship.boostItemAttr("armorKineticDamageResonance", src.getModifiedItemAttr("shipBonusSupercarrierA2"), + skill="Amarr Carrier") + + return locals() + +def effect6622(): + type = "passive" + def handler(fit, src, context): + fit.ship.boostItemAttr("shieldThermalDamageResonance", src.getModifiedItemAttr("shipBonusSupercarrierC2"), + skill="Caldari Carrier") + fit.ship.boostItemAttr("shieldEmDamageResonance", src.getModifiedItemAttr("shipBonusSupercarrierC2"), + skill="Caldari Carrier") + fit.ship.boostItemAttr("shieldKineticDamageResonance", src.getModifiedItemAttr("shipBonusSupercarrierC2"), + skill="Caldari Carrier") + fit.ship.boostItemAttr("shieldExplosiveDamageResonance", src.getModifiedItemAttr("shipBonusSupercarrierC2"), + skill="Caldari Carrier") + + return locals() + +def effect6623(): + type = "passive" + def handler(fit, src, context): + fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Fighters"), "shieldCapacity", + src.getModifiedItemAttr("shipBonusSupercarrierG2"), skill="Gallente Carrier") + + return locals() + +def effect6624(): + type = "passive" + def handler(fit, src, context): + fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Fighters"), "maxVelocity", + src.getModifiedItemAttr("shipBonusSupercarrierM2"), skill="Minmatar Carrier") + + return locals() + +def effect6625(): + type = "passive" + def handler(fit, src, context): + fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Support Fighters"), "fighterSquadronOrbitRange", + src.getModifiedItemAttr("shipBonusCarrierA2"), skill="Amarr Carrier") + fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Support Fighters"), + "fighterAbilityEnergyNeutralizerOptimalRange", + src.getModifiedItemAttr("shipBonusCarrierA2"), skill="Amarr Carrier") + + return locals() + +def effect6626(): + type = "passive" + def handler(fit, src, context): + fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Support Fighters"), "fighterSquadronOrbitRange", + src.getModifiedItemAttr("shipBonusCarrierC2"), skill="Caldari Carrier") + fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Support Fighters"), + "fighterAbilityECMRangeOptimal", src.getModifiedItemAttr("shipBonusCarrierC2"), + skill="Caldari Carrier") + + return locals() + +def effect6627(): + type = "passive" + def handler(fit, src, context): + fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Support Fighters"), "fighterSquadronOrbitRange", + src.getModifiedItemAttr("shipBonusCarrierG2"), skill="Gallente Carrier") + fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Support Fighters"), + "fighterAbilityWarpDisruptionRange", src.getModifiedItemAttr("shipBonusCarrierG2"), + skill="Gallente Carrier") + + return locals() + +def effect6628(): + type = "passive" + def handler(fit, src, context): + fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Support Fighters"), "fighterSquadronOrbitRange", + src.getModifiedItemAttr("shipBonusCarrierM2"), skill="Minmatar Carrier") + fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Support Fighters"), + "fighterAbilityStasisWebifierOptimalRange", + src.getModifiedItemAttr("shipBonusCarrierM2"), skill="Minmatar Carrier") + + return locals() + +def effect6629(): + type = "passive" + def handler(fit, src, context): + src.boostItemAttr("emDamageResistanceBonus", src.getModifiedChargeAttr("emDamageResistanceBonusBonus")) + src.boostItemAttr("explosiveDamageResistanceBonus", + src.getModifiedChargeAttr("explosiveDamageResistanceBonusBonus")) + src.boostItemAttr("kineticDamageResistanceBonus", src.getModifiedChargeAttr("kineticDamageResistanceBonusBonus")) + src.boostItemAttr("thermalDamageResistanceBonus", src.getModifiedChargeAttr("thermalDamageResistanceBonusBonus")) + + return locals() + +def effect6634(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capital Energy Turret"), "damageMultiplier", + src.getModifiedItemAttr("shipBonusTitanA1"), skill="Amarr Titan") + + return locals() + +def effect6635(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("XL Torpedoes"), "kineticDamage", + src.getModifiedItemAttr("shipBonusTitanC1"), skill="Caldari Titan") + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("XL Cruise Missiles"), "kineticDamage", + src.getModifiedItemAttr("shipBonusTitanC1"), skill="Caldari Titan") + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Torpedoes"), "kineticDamage", + src.getModifiedItemAttr("shipBonusTitanC1"), skill="Caldari Titan") + + return locals() + +def effect6636(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capital Hybrid Turret"), "damageMultiplier", + src.getModifiedItemAttr("shipBonusTitanG1"), skill="Gallente Titan") + + return locals() + +def effect6637(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capital Projectile Turret"), "damageMultiplier", + src.getModifiedItemAttr("shipBonusTitanM1"), skill="Minmatar Titan") + + return locals() + +def effect6638(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Missile Launcher XL Cruise", "speed", + src.getModifiedItemAttr("shipBonusTitanC2"), skill="Caldari Titan") + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Missile Launcher Rapid Torpedo", "speed", + src.getModifiedItemAttr("shipBonusTitanC2"), skill="Caldari Titan") + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Missile Launcher XL Torpedo", "speed", + src.getModifiedItemAttr("shipBonusTitanC2"), skill="Caldari Titan") + + return locals() + +def effect6639(): + type = "passive" + def handler(fit, src, context): + fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Fighters"), + "fighterAbilityMissilesExplosionRadius", + src.getModifiedItemAttr("shipBonusSupercarrierA4"), skill="Amarr Carrier") + fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Fighters"), + "fighterAbilityAttackMissileExplosionRadius", + src.getModifiedItemAttr("shipBonusSupercarrierA4"), skill="Amarr Carrier") + + return locals() + +def effect6640(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemIncrease(lambda mod: mod.item.requiresSkill("Leadership"), "maxGroupActive", + src.getModifiedItemAttr("shipBonusRole1")) + + return locals() + +def effect6641(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Hull Upgrades"), "armorHPBonusAdd", + src.getModifiedItemAttr("shipBonusRole2")) + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Upgrades"), "capacityBonus", + src.getModifiedItemAttr("shipBonusRole2")) + + return locals() + +def effect6642(): + type = "passive" + def handler(fit, src, context): + lvl = src.level + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Doomsday Operation"), "duration", + src.getModifiedItemAttr("rofBonus") * lvl) + + return locals() + +def effect6647(): + type = "passive" + def handler(fit, src, context): + fit.ship.increaseItemAttr("warpScrambleStatus", src.getModifiedItemAttr("shipBonusTitanA3"), skill="Amarr Titan") + + return locals() + +def effect6648(): + type = "passive" + def handler(fit, src, context): + fit.ship.increaseItemAttr("warpScrambleStatus", src.getModifiedItemAttr("shipBonusTitanC3"), skill="Caldari Titan") + + return locals() + +def effect6649(): + type = "passive" + def handler(fit, src, context): + fit.ship.increaseItemAttr("warpScrambleStatus", src.getModifiedItemAttr("shipBonusTitanG3"), skill="Gallente Titan") + + return locals() + +def effect6650(): + type = "passive" + def handler(fit, src, context): + fit.ship.increaseItemAttr("warpScrambleStatus", src.getModifiedItemAttr("shipBonusTitanM3"), skill="Minmatar Titan") + + return locals() + +def effect6651(): + type = "projected", "active" + runTime = "late" + def handler(fit, module, context, **kwargs): + if "projected" not in context: + return + if module.charge and module.charge.name == "Nanite Repair Paste": + multiplier = 3 + else: + multiplier = 1 + amount = module.getModifiedItemAttr("armorDamageAmount") * multiplier + speed = module.getModifiedItemAttr("duration") / 1000.0 + rps = amount / speed + fit.extraAttributes.increase("armorRepair", rps) + fit.extraAttributes.increase("armorRepairPreSpool", rps) + fit.extraAttributes.increase("armorRepairFullSpool", rps) + + return locals() + +def effect6652(): + type = "projected", "active" + runTime = "late" + def handler(fit, module, context, **kwargs): + if "projected" not in context: + return + amount = module.getModifiedItemAttr("shieldBonus") + speed = module.getModifiedItemAttr("duration") / 1000.0 + fit.extraAttributes.increase("shieldRepair", amount / speed, **kwargs) + + return locals() + +def effect6653(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capital Energy Turret"), "capacitorNeed", + src.getModifiedItemAttr("shipBonusTitanA2"), skill="Amarr Titan") + + return locals() + +def effect6654(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capital Hybrid Turret"), "speed", + src.getModifiedItemAttr("shipBonusTitanG2"), skill="Gallente Titan") + + return locals() + +def effect6655(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capital Projectile Turret"), "speed", + src.getModifiedItemAttr("shipBonusTitanM2"), skill="Minmatar Titan") + + return locals() + +def effect6656(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Torpedoes"), "maxVelocity", + src.getModifiedItemAttr("shipBonusRole3")) + + return locals() + +def effect6657(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Torpedoes"), "emDamage", + src.getModifiedItemAttr("shipBonusTitanC5"), skill="Caldari Titan") + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Torpedoes"), "explosiveDamage", + src.getModifiedItemAttr("shipBonusTitanC5"), skill="Caldari Titan") + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Torpedoes"), "thermalDamage", + src.getModifiedItemAttr("shipBonusTitanC5"), skill="Caldari Titan") + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("XL Cruise Missiles"), "explosiveDamage", + src.getModifiedItemAttr("shipBonusTitanC5"), skill="Caldari Titan") + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("XL Cruise Missiles"), "thermalDamage", + src.getModifiedItemAttr("shipBonusTitanC5"), skill="Caldari Titan") + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("XL Cruise Missiles"), "emDamage", + src.getModifiedItemAttr("shipBonusTitanC5"), skill="Caldari Titan") + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("XL Torpedoes"), "thermalDamage", + src.getModifiedItemAttr("shipBonusTitanC5"), skill="Caldari Titan") + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("XL Torpedoes"), "emDamage", + src.getModifiedItemAttr("shipBonusTitanC5"), skill="Caldari Titan") + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("XL Torpedoes"), "explosiveDamage", + src.getModifiedItemAttr("shipBonusTitanC5"), skill="Caldari Titan") + + return locals() + +def effect6658(): + type = "active" + runTime = "early" + def handler(fit, src, context): + for layer, attrPrefix in (('shield', 'shield'), ('armor', 'armor'), ('hull', '')): + for damageType in ('Kinetic', 'Thermal', 'Explosive', 'Em'): + bonus = "%s%sDamageResonance" % (attrPrefix, damageType) + bonus = "%s%s" % (bonus[0].lower(), bonus[1:]) + booster = "%s%sDamageResonance" % (layer, damageType) + penalize = False if layer == 'hull' else True + fit.ship.multiplyItemAttr(bonus, src.getModifiedItemAttr(booster), + stackingPenalties=penalize, penaltyGroup="preMul") + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Large Energy Turret") or + mod.item.requiresSkill("Large Hybrid Turret") or + mod.item.requiresSkill("Large Projectile Turret"), + "maxRange", src.getModifiedItemAttr("maxRangeBonus"), + stackingPenalties=True) + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Large Energy Turret") or + mod.item.requiresSkill("Large Hybrid Turret") or + mod.item.requiresSkill("Large Projectile Turret"), + "falloff", src.getModifiedItemAttr("falloffBonus"), + stackingPenalties=True) + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Torpedoes") or + mod.charge.requiresSkill("Cruise Missiles") or + mod.charge.requiresSkill("Heavy Missiles"), + "maxVelocity", src.getModifiedItemAttr("missileVelocityBonus")) + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Repair Systems"), + "armorDamageAmount", src.getModifiedItemAttr("armorDamageAmountBonus"), + stackingPenalties=True) + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Operation"), + "shieldBonus", src.getModifiedItemAttr("shieldBoostMultiplier"), + stackingPenalties=True) + fit.ship.boostItemAttr("maxVelocity", src.getModifiedItemAttr("speedFactor")) + fit.ship.forceItemAttr("maxLockedTargets", src.getModifiedItemAttr("maxLockedTargets")) + fit.ship.forceItemAttr("disallowOffensiveModifiers", src.getModifiedItemAttr("disallowOffensiveModifiers")) + for scanType in ('Magnetometric', 'Ladar', 'Gravimetric', 'Radar'): + fit.ship.boostItemAttr("scan{}Strength".format(scanType), + src.getModifiedItemAttr("scan{}StrengthPercent".format(scanType)), + stackingPenalties=True) + fit.ship.boostItemAttr("remoteRepairImpedance", src.getModifiedItemAttr("remoteRepairImpedanceBonus")) + fit.ship.boostItemAttr("remoteAssistanceImpedance", src.getModifiedItemAttr("remoteAssistanceImpedanceBonus")) + fit.ship.boostItemAttr("sensorDampenerResistance", src.getModifiedItemAttr("sensorDampenerResistanceBonus")) + fit.modules.filteredItemIncrease(lambda mod: mod.item.requiresSkill("Micro Jump Drive Operation"), + "activationBlocked", src.getModifiedItemAttr("activationBlockedStrenght")) + fit.ship.boostItemAttr("targetPainterResistance", src.getModifiedItemAttr("targetPainterResistanceBonus")) + fit.ship.boostItemAttr("weaponDisruptionResistance", src.getModifiedItemAttr("weaponDisruptionResistanceBonus")) + fit.ship.increaseItemAttr("warpScrambleStatus", src.getModifiedItemAttr("siegeModeWarpStatus")) + fit.ship.forceItemAttr("disallowDocking", src.getModifiedItemAttr("disallowDocking")) + fit.ship.forceItemAttr("disallowTethering", src.getModifiedItemAttr("disallowTethering")) + + return locals() + +def effect6661(): + type = "passive" + def handler(fit, src, context): + fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Fighters"), "maxVelocity", + src.getModifiedItemAttr("shipBonusCarrierM3"), skill="Minmatar Carrier") + + return locals() + +def effect6662(): + type = "passive" + def handler(fit, src, context): + fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Fighters"), "shieldCapacity", + src.getModifiedItemAttr("shipBonusCarrierG3"), skill="Gallente Carrier") + + return locals() + +def effect6663(): + type = "passive" + def handler(fit, src, context): + lvl = src.level if "skill" in context else 1 + fit.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Drones"), "damageMultiplier", + src.getModifiedItemAttr("damageMultiplierBonus") * lvl) + fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Fighters"), + "fighterAbilityAttackMissileDamageMultiplier", + src.getModifiedItemAttr("damageMultiplierBonus") * lvl) + fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Fighters"), + "fighterAbilityAttackTurretDamageMultiplier", + src.getModifiedItemAttr("damageMultiplierBonus") * lvl) + fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Fighters"), + "fighterAbilityMissilesDamageMultiplier", + src.getModifiedItemAttr("damageMultiplierBonus") * lvl) + fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Mining Drone Operation"), "miningDroneAmountPercent", + src.getModifiedItemAttr("miningAmountBonus") * lvl) + + return locals() + +def effect6664(): + type = "passive" + def handler(fit, src, context): + lvl = src.level if "skill" in context else 1 + fit.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Drones"), "maxRange", + src.getModifiedItemAttr("rangeSkillBonus") * lvl) + fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Fighters"), "fighterAbilityMissilesRange", + src.getModifiedItemAttr("rangeSkillBonus") * lvl) + fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Fighters"), + "fighterAbilityAttackTurretRangeOptimal", + src.getModifiedItemAttr("rangeSkillBonus") * lvl) + fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Fighters"), + "fighterAbilityAttackMissileRangeOptimal", + src.getModifiedItemAttr("rangeSkillBonus") * lvl) + + return locals() + +def effect6665(): + type = "passive" + def handler(fit, src, context): + lvl = src.level if "skill" in context else 1 + fit.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Drones"), "hp", + src.getModifiedItemAttr("hullHpBonus") * lvl) + fit.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Drones"), "armorHP", + src.getModifiedItemAttr("armorHpBonus") * lvl) + fit.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Drones"), "shieldCapacity", + src.getModifiedItemAttr("shieldCapacityBonus") * lvl) + fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Fighters"), "shieldCapacity", + src.getModifiedItemAttr("shieldCapacityBonus") * lvl) + + return locals() + +def effect6667(): + type = "passive" + def handler(fit, src, context): + lvl = src.level if "skill" in context else 1 + fit.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Drones"), "maxVelocity", + src.getModifiedItemAttr("maxVelocityBonus") * lvl) + fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Fighters"), "maxVelocity", + src.getModifiedItemAttr("maxVelocityBonus") * lvl) + + return locals() + +def effect6669(): + type = "passive" + def handler(fit, src, context): + fit.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Drones"), "armorHP", + src.getModifiedItemAttr("hullHpBonus")) + fit.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Drones"), "hp", + src.getModifiedItemAttr("hullHpBonus")) + fit.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Drones"), "shieldCapacity", + src.getModifiedItemAttr("hullHpBonus")) + fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Fighters"), "shieldCapacity", + src.getModifiedItemAttr("hullHpBonus")) + fit.ship.boostItemAttr("cpuOutput", src.getModifiedItemAttr("drawback")) + + return locals() + +def effect6670(): + type = "passive" + def handler(fit, src, context): + fit.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Drones"), "maxRange", + src.getModifiedItemAttr("rangeSkillBonus"), stackingPenalties=True) + fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Fighters"), "fighterAbilityMissilesRange", + src.getModifiedItemAttr("rangeSkillBonus"), stackingPenalties=True) + fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Fighters"), + "fighterAbilityAttackTurretRangeOptimal", src.getModifiedItemAttr("rangeSkillBonus"), + stackingPenalties=True) + fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Fighters"), + "fighterAbilityAttackMissileRangeOptimal", + src.getModifiedItemAttr("rangeSkillBonus"), stackingPenalties=True) + fit.ship.boostItemAttr("cpuOutput", src.getModifiedItemAttr("drawback")) + + return locals() + +def effect6671(): + type = "passive" + def handler(fit, src, context): + fit.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Drones"), "maxVelocity", + src.getModifiedItemAttr("droneMaxVelocityBonus"), stackingPenalties=True) + fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Fighters"), "maxVelocity", + src.getModifiedItemAttr("droneMaxVelocityBonus"), stackingPenalties=True) + fit.ship.boostItemAttr("cpuOutput", src.getModifiedItemAttr("drawback")) + + return locals() + +def effect6679(): + type = "passive", "structure" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Structure Doomsday Weapon", + "duration", src.getModifiedItemAttr("durationBonus"), + skill="Structure Doomsday Operation") + + return locals() + +def effect668(): + type = "passive" + def handler(fit, skill, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill(skill), + "kineticDamage", skill.getModifiedItemAttr("damageMultiplierBonus") * skill.level) + + return locals() + +def effect6681(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemIncrease(lambda mod: mod.item.requiresSkill("Leadership"), "maxGroupActive", + src.getModifiedItemAttr("shipBonusRole3")) + + return locals() + +def effect6682(): + type = "active", "projected" + def handler(fit, module, context, *args, **kwargs): + if "projected" not in context: + return + fit.ship.boostItemAttr("maxVelocity", module.getModifiedItemAttr("speedFactor"), + stackingPenalties=True, *args, **kwargs) + + return locals() + +def effect6683(): + type = "projected", "active" + def handler(fit, container, context, *args, **kwargs): + if "projected" in context: + fit.ship.boostItemAttr("signatureRadius", container.getModifiedItemAttr("signatureRadiusBonus"), + stackingPenalties=True, *args, **kwargs) + + return locals() + +def effect6684(): + type = "projected", "active" + def handler(fit, module, context, *args, **kwargs): + if "projected" not in context: + return + fit.ship.boostItemAttr("maxTargetRange", module.getModifiedItemAttr("maxTargetRangeBonus"), + stackingPenalties=True, *args, **kwargs) + fit.ship.boostItemAttr("scanResolution", module.getModifiedItemAttr("scanResolutionBonus"), + stackingPenalties=True, *args, **kwargs) + + return locals() + +def effect6685(): + type = "projected", "active" + def handler(fit, module, context): + if "projected" in context: + strModifier = 1 - module.getModifiedItemAttr("scan{0}StrengthBonus".format(fit.scanType)) / fit.scanStrength + fit.ecmProjectedStr *= strModifier + + return locals() + +def effect6686(): + type = "active", "projected" + def handler(fit, module, context, *args, **kwargs): + if "projected" in context: + for srcAttr, tgtAttr in ( + ("aoeCloudSizeBonus", "aoeCloudSize"), + ("aoeVelocityBonus", "aoeVelocity"), + ("missileVelocityBonus", "maxVelocity"), + ("explosionDelayBonus", "explosionDelay"), + ): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), + tgtAttr, module.getModifiedItemAttr(srcAttr), + stackingPenalties=True, *args, **kwargs) + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Gunnery"), + "trackingSpeed", module.getModifiedItemAttr("trackingSpeedBonus"), + stackingPenalties=True, *args, **kwargs) + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Gunnery"), + "maxRange", module.getModifiedItemAttr("maxRangeBonus"), + stackingPenalties=True, *args, **kwargs) + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Gunnery"), + "falloff", module.getModifiedItemAttr("falloffBonus"), + stackingPenalties=True, *args, **kwargs) + + return locals() + +def effect6687(): + type = "projected", "active" + def handler(fit, container, context): + if "projected" in context: + bonus = container.getModifiedItemAttr("armorDamageAmount") + duration = container.getModifiedItemAttr("duration") / 1000.0 + rps = bonus / duration + fit.extraAttributes.increase("armorRepair", rps) + fit.extraAttributes.increase("armorRepairPreSpool", rps) + fit.extraAttributes.increase("armorRepairFullSpool", rps) + + return locals() + +def effect6688(): + type = "projected", "active" + def handler(fit, container, context): + if "projected" in context: + bonus = container.getModifiedItemAttr("shieldBonus") + duration = container.getModifiedItemAttr("duration") / 1000.0 + fit.extraAttributes.increase("shieldRepair", bonus / duration) + + return locals() + +def effect6689(): + type = "projected", "active" + runTime = "late" + def handler(fit, module, context): + if "projected" not in context: + return + bonus = module.getModifiedItemAttr("structureDamageAmount") + duration = module.getModifiedItemAttr("duration") / 1000.0 + fit.extraAttributes.increase("hullRepair", bonus / duration) + + return locals() + +def effect6690(): + type = "active", "projected" + def handler(fit, module, context, *args, **kwargs): + if "projected" not in context: + return + fit.ship.boostItemAttr("maxVelocity", module.getModifiedItemAttr("speedFactor"), + stackingPenalties=True, *args, **kwargs) + + return locals() + +def effect6691(): + from eos.saveddata.module import State + from eos.modifiedAttributeDict import ModifiedAttributeDict + type = "active", "projected" + def handler(fit, src, context, **kwargs): + if "projected" in context and ((hasattr(src, "state") and src.state >= State.ACTIVE) or + hasattr(src, "amountActive")): + amount = src.getModifiedItemAttr("energyNeutralizerAmount") + time = src.getModifiedItemAttr("energyNeutralizerDuration") + if 'effect' in kwargs: + amount *= ModifiedAttributeDict.getResistance(fit, kwargs['effect']) + fit.addDrain(src, time, amount, 0) + + return locals() + +def effect6692(): + type = "projected", "active" + def handler(fit, container, context, *args, **kwargs): + if "projected" in context: + fit.ship.boostItemAttr("signatureRadius", container.getModifiedItemAttr("signatureRadiusBonus"), + stackingPenalties=True, *args, **kwargs) + + return locals() + +def effect6693(): + type = "projected", "active" + def handler(fit, module, context, *args, **kwargs): + if "projected" not in context: + return + fit.ship.boostItemAttr("maxTargetRange", module.getModifiedItemAttr("maxTargetRangeBonus"), + stackingPenalties=True, *args, **kwargs) + fit.ship.boostItemAttr("scanResolution", module.getModifiedItemAttr("scanResolutionBonus"), + stackingPenalties=True, *args, **kwargs) + + return locals() + +def effect6694(): + type = "projected", "active" + def handler(fit, module, context, *args, **kwargs): + if "projected" in context: + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Gunnery"), + "trackingSpeed", module.getModifiedItemAttr("trackingSpeedBonus"), + stackingPenalties=True, *args, **kwargs) + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Gunnery"), + "maxRange", module.getModifiedItemAttr("maxRangeBonus"), + stackingPenalties=True, *args, **kwargs) + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Gunnery"), + "falloff", module.getModifiedItemAttr("falloffBonus"), + stackingPenalties=True, *args, **kwargs) + + return locals() + +def effect6695(): + from eos.modifiedAttributeDict import ModifiedAttributeDict + type = "projected", "active" + def handler(fit, module, context, **kwargs): + if "projected" in context: + strModifier = 1 - module.getModifiedItemAttr("scan{0}StrengthBonus".format(fit.scanType)) / fit.scanStrength + if 'effect' in kwargs: + strModifier *= ModifiedAttributeDict.getResistance(fit, kwargs['effect']) + fit.ecmProjectedStr *= strModifier + + return locals() + +def effect6697(): + type = "passive" + def handler(fit, src, context): + lvl = src.level + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Rig Armor", "drawback", + src.getModifiedItemAttr("rigDrawbackBonus") * lvl) + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Rig Resource Processing", "drawback", + src.getModifiedItemAttr("rigDrawbackBonus") * lvl) + + return locals() + +def effect6698(): + type = "passive" + def handler(fit, src, context): + lvl = src.level + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Rig Navigation", "drawback", + src.getModifiedItemAttr("rigDrawbackBonus") * lvl) + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Rig Anchor", "drawback", + src.getModifiedItemAttr("rigDrawbackBonus") * lvl) + + return locals() + +def effect6699(): + type = "passive" + def handler(fit, src, context): + lvl = src.level + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Rig Drones", "drawback", + src.getModifiedItemAttr("rigDrawbackBonus") * lvl) + + return locals() + +def effect67(): + type = 'active' + def handler(fit, module, context): + module.reloadTime = 1000 + + return locals() + +def effect670(): + type = "passive" + def handler(fit, module, context): + fit.ship.increaseItemAttr("warpScrambleStatus", module.getModifiedItemAttr("warpScrambleStrength")) + + return locals() + +def effect6700(): + type = "passive" + def handler(fit, src, context): + lvl = src.level + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Rig Electronic Systems", "drawback", + src.getModifiedItemAttr("rigDrawbackBonus") * lvl) + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Rig Scanning", "drawback", + src.getModifiedItemAttr("rigDrawbackBonus") * lvl) + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Rig Targeting", "drawback", + src.getModifiedItemAttr("rigDrawbackBonus") * lvl) + + return locals() + +def effect6701(): + type = "passive" + def handler(fit, src, context): + lvl = src.level + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Rig Projectile Weapon", "drawback", + src.getModifiedItemAttr("rigDrawbackBonus") * lvl) + + return locals() + +def effect6702(): + type = "passive" + def handler(fit, src, context): + lvl = src.level + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Rig Energy Weapon", "drawback", + src.getModifiedItemAttr("rigDrawbackBonus") * lvl) + + return locals() + +def effect6703(): + type = "passive" + def handler(fit, src, context): + lvl = src.level + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Rig Hybrid Weapon", "drawback", + src.getModifiedItemAttr("rigDrawbackBonus") * lvl) + + return locals() + +def effect6704(): + type = "passive" + def handler(fit, src, context): + lvl = src.level + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Rig Launcher", "drawback", + src.getModifiedItemAttr("rigDrawbackBonus") * lvl) + + return locals() + +def effect6705(): + type = "passive" + def handler(fit, src, context): + lvl = src.level + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Rig Shield", "drawback", + src.getModifiedItemAttr("rigDrawbackBonus") * lvl) + + return locals() + +def effect6706(): + runTime = "early" + type = "passive" + def handler(fit, src, context): + fit.appliedImplants.filteredItemMultiply(lambda mod: mod.item.requiresSkill("Cybernetics"), + "armorRepairBonus", src.getModifiedItemAttr("implantSetSerpentis2")) + + return locals() + +def effect6708(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Repair Systems"), + "armorDamageAmount", src.getModifiedItemAttr("armorRepairBonus")) + + return locals() + +def effect6709(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capital Hybrid Turret"), + "damageMultiplier", ship.getModifiedItemAttr("shipBonusRole1")) + + return locals() + +def effect6710(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Stasis Web", "speedFactor", + src.getModifiedItemAttr("shipBonusDreadnoughtM1"), skill="Minmatar Dreadnought") + + return locals() + +def effect6711(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capital Hybrid Turret"), "damageMultiplier", + src.getModifiedItemAttr("shipBonusRole3")) + + return locals() + +def effect6712(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Stasis Web", "speedFactor", + src.getModifiedItemAttr("shipBonusTitanM1"), skill="Minmatar Titan") + + return locals() + +def effect6713(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Burst Projector Operation"), "speedFactor", + src.getModifiedItemAttr("shipBonusSupercarrierM1"), skill="Minmatar Carrier") + + return locals() + +def effect6714(): + from eos.modifiedAttributeDict import ModifiedAttributeDict + type = "projected", "active" + def handler(fit, module, context, **kwargs): + if "projected" in context: + strModifier = 1 - module.getModifiedItemAttr("scan{0}StrengthBonus".format(fit.scanType)) / fit.scanStrength + if 'effect' in kwargs: + strModifier *= ModifiedAttributeDict.getResistance(fit, kwargs['effect']) + fit.ecmProjectedStr *= strModifier + + return locals() + +def effect6717(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Mining"), "capacitorNeed", + src.getModifiedItemAttr("miningDurationRoleBonus")) + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Mining"), "duration", + src.getModifiedItemAttr("miningDurationRoleBonus")) + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Ice Harvesting"), "duration", + src.getModifiedItemAttr("miningDurationRoleBonus")) + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Ice Harvesting"), "capacitorNeed", + src.getModifiedItemAttr("miningDurationRoleBonus")) + + return locals() + +def effect6720(): + type = "passive" + def handler(fit, src, context): + fit.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Drones"), "shieldBonus", + src.getModifiedItemAttr("shipBonusMC"), skill="Minmatar Cruiser") + fit.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Drones"), "structureDamageAmount", + src.getModifiedItemAttr("shipBonusMC"), skill="Minmatar Cruiser") + fit.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Drones"), "armorDamageAmount", + src.getModifiedItemAttr("shipBonusMC"), skill="Minmatar Cruiser") + + return locals() + +def effect6721(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Remote Armor Repair Systems"), + "falloffEffectiveness", + src.getModifiedItemAttr("eliteBonusLogistics1"), + skill="Logistics Cruisers") + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Remote Armor Repair Systems"), + "maxRange", + src.getModifiedItemAttr("eliteBonusLogistics1"), + skill="Logistics Cruisers") + + return locals() + +def effect6722(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Remote Armor Repair Systems"), + "falloffEffectiveness", + src.getModifiedItemAttr("roleBonusRepairRange")) + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Remote Armor Repair Systems"), + "maxRange", + src.getModifiedItemAttr("roleBonusRepairRange")) + + return locals() + +def effect6723(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Cloaking"), "cpu", + src.getModifiedItemAttr("shipBonusMC2"), skill="Minmatar Cruiser") + + return locals() + +def effect6724(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Remote Armor Repair Systems"), "duration", + src.getModifiedItemAttr("eliteBonusLogistics3"), skill="Logistics Cruisers") + + return locals() + +def effect6725(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Energy Turret"), "falloff", + src.getModifiedItemAttr("shipBonus2AF"), skill="Amarr Frigate") + + return locals() + +def effect6726(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Cloaking"), "cpu", + src.getModifiedItemAttr("shipBonusMF"), skill="Minmatar Frigate") + + return locals() + +def effect6727(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name in ("Energy Nosferatu", "Energy Neutralizer"), + "falloffEffectiveness", src.getModifiedItemAttr("eliteBonusCovertOps1"), + stackingPenalties=True, skill="Covert Ops") + + return locals() + +def effect6730(): + type = "active" + runTime = "late" + def handler(fit, module, context): + fit.ship.increaseItemAttr("mass", module.getModifiedItemAttr("massAddition")) + speedBoost = module.getModifiedItemAttr("speedFactor") + mass = fit.ship.getModifiedItemAttr("mass") + thrust = module.getModifiedItemAttr("speedBoostFactor") + fit.ship.boostItemAttr("maxVelocity", speedBoost * thrust / mass) + fit.ship.boostItemAttr("signatureRadius", module.getModifiedItemAttr("signatureRadiusBonus"), + stackingPenalties=True) + + return locals() + +def effect6731(): + type = "active" + runTime = "late" + def handler(fit, module, context): + fit.ship.increaseItemAttr("mass", module.getModifiedItemAttr("massAddition")) + speedBoost = module.getModifiedItemAttr("speedFactor") + mass = fit.ship.getModifiedItemAttr("mass") + thrust = module.getModifiedItemAttr("speedBoostFactor") + fit.ship.boostItemAttr("maxVelocity", speedBoost * thrust / mass) + + return locals() + +def effect6732(): + """ + Some documentation: + When the fit is calculated, we gather up all the gang effects and stick them onto the fit. We don't run the actual + effect yet, only give the fit details so that it can run the effect at a later time. We need to do this so that we can + only run the strongest effect. When we are done, one of the last things that we do with the fit is to loop through those + bonuses and actually run the effect. To do this, we have a special argument passed into the effect handler that tells it + which warfareBuffID to run (shouldn't need this right now, but better safe than sorry) + """ + type = "active", "gang" + def handler(fit, module, context, **kwargs): + for x in range(1, 5): + if module.getModifiedChargeAttr("warfareBuff{}ID".format(x)): + value = module.getModifiedItemAttr("warfareBuff{}Value".format(x)) + id = module.getModifiedChargeAttr("warfareBuff{}ID".format(x)) + if id: + fit.addCommandBonus(id, value, module, kwargs['effect']) + + return locals() + +def effect6733(): + type = "active", "gang" + def handler(fit, module, context, **kwargs): + for x in range(1, 5): + if module.getModifiedChargeAttr("warfareBuff{}ID".format(x)): + value = module.getModifiedItemAttr("warfareBuff{}Value".format(x)) + id = module.getModifiedChargeAttr("warfareBuff{}ID".format(x)) + if id: + fit.addCommandBonus(id, value, module, kwargs['effect']) + + return locals() + +def effect6734(): + type = "active", "gang" + def handler(fit, module, context, **kwargs): + for x in range(1, 5): + if module.getModifiedChargeAttr("warfareBuff{}ID".format(x)): + value = module.getModifiedItemAttr("warfareBuff{}Value".format(x)) + id = module.getModifiedChargeAttr("warfareBuff{}ID".format(x)) + if id: + fit.addCommandBonus(id, value, module, kwargs['effect']) + + return locals() + +def effect6735(): + type = "active", "gang" + def handler(fit, module, context, **kwargs): + for x in range(1, 5): + if module.getModifiedChargeAttr("warfareBuff{}ID".format(x)): + value = module.getModifiedItemAttr("warfareBuff{}Value".format(x)) + id = module.getModifiedChargeAttr("warfareBuff{}ID".format(x)) + if id: + fit.addCommandBonus(id, value, module, kwargs['effect']) + + return locals() + +def effect6736(): + type = "active", "gang" + def handler(fit, module, context, **kwargs): + for x in range(1, 5): + if module.getModifiedChargeAttr("warfareBuff{}ID".format(x)): + value = module.getModifiedItemAttr("warfareBuff{}Value".format(x)) + id = module.getModifiedChargeAttr("warfareBuff{}ID".format(x)) + if id: + fit.addCommandBonus(id, value, module, kwargs['effect']) + + return locals() + +def effect6737(): + type = "active" + def handler(fit, module, context): + for x in range(1, 4): + value = module.getModifiedChargeAttr("warfareBuff{}Multiplier".format(x)) + module.multiplyItemAttr("warfareBuff{}Value".format(x), value) + + return locals() + +def effect675(): + type = "passive" + def handler(fit, skill, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Energy Pulse Weapons"), + "cpu", skill.getModifiedItemAttr("cpuNeedBonus") * skill.level) + + return locals() + +def effect6753(): + type = "active", "gang" + def handler(fit, module, context, **kwargs): + for x in range(1, 5): + if module.getModifiedItemAttr("warfareBuff{}ID".format(x)): + value = module.getModifiedItemAttr("warfareBuff{}Value".format(x)) + id = module.getModifiedItemAttr("warfareBuff{}ID".format(x)) + if id: + fit.addCommandBonus(id, value, module, kwargs['effect']) + + return locals() + +def effect6762(): + type = "passive" + def handler(fit, src, context): + lvl = src.level + fit.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Mining Drone Specialization"), "miningAmount", + src.getModifiedItemAttr("miningAmountBonus") * lvl) + fit.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Mining Drone Specialization"), "maxVelocity", + src.getModifiedItemAttr("maxVelocityBonus") * lvl) + + return locals() + +def effect6763(): + type = "passive" + def handler(fit, src, context): + lvl = src.level if "skill" in context else 1 + fit.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Ice Harvesting Drone Operation"), "duration", src.getModifiedItemAttr("rofBonus") * lvl) + + return locals() + +def effect6764(): + type = "passive" + def handler(fit, src, context): + lvl = src.level + fit.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Ice Harvesting Drone Specialization"), "duration", + src.getModifiedItemAttr("rofBonus") * lvl) + fit.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Ice Harvesting Drone Specialization"), + "maxVelocity", src.getModifiedItemAttr("maxVelocityBonus") * lvl) + + return locals() + +def effect6765(): + type = "passive" + def handler(fit, src, context): + lvl = src.level + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Spatial Phenomena Generation"), "buffDuration", + src.getModifiedItemAttr("durationBonus") * lvl) + + return locals() + +def effect6766(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemIncrease(lambda mod: mod.item.requiresSkill("Leadership"), "maxGroupActive", + src.getModifiedItemAttr("maxGangModules")) + fit.modules.filteredItemIncrease(lambda mod: mod.item.requiresSkill("Leadership"), "maxGroupOnline", + src.getModifiedItemAttr("maxGangModules")) + + return locals() + +def effect6769(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Leadership"), "maxRange", + src.getModifiedItemAttr("areaOfEffectBonus") * src.level) + + return locals() + +def effect677(): + type = "passive" + def handler(fit, container, context): + level = container.level if "skill" in context else 1 + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Missile Launcher Operation"), + "cpu", container.getModifiedItemAttr("cpuNeedBonus") * level) + + return locals() + +def effect6770(): + type = "passive" + def handler(fit, src, context): + lvl = src.level + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Armored Command"), "buffDuration", + src.getModifiedItemAttr("durationBonus") * lvl) + + return locals() + +def effect6771(): + type = "passive" + def handler(fit, src, context): + lvl = src.level + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Command"), "buffDuration", + src.getModifiedItemAttr("durationBonus") * lvl) + + return locals() + +def effect6772(): + type = "passive" + def handler(fit, src, context): + lvl = src.level + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Information Command"), "buffDuration", + src.getModifiedItemAttr("durationBonus") * lvl) + + return locals() + +def effect6773(): + type = "passive" + def handler(fit, src, context): + lvl = src.level + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Skirmish Command"), "buffDuration", + src.getModifiedItemAttr("durationBonus") * lvl) + + return locals() + +def effect6774(): + type = "passive" + def handler(fit, src, context): + lvl = src.level + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Mining Foreman"), "buffDuration", + src.getModifiedItemAttr("durationBonus") * lvl) + + return locals() + +def effect6776(): + type = "passive" + def handler(fit, src, context): + lvl = src.level + fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill("Armored Command"), "warfareBuff1Multiplier", + src.getModifiedItemAttr("commandStrengthBonus") * lvl) + fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill("Armored Command"), "warfareBuff2Multiplier", + src.getModifiedItemAttr("commandStrengthBonus") * lvl) + fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill("Armored Command"), "warfareBuff4Multiplier", + src.getModifiedItemAttr("commandStrengthBonus") * lvl) + fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill("Armored Command"), "warfareBuff3Multiplier", + src.getModifiedItemAttr("commandStrengthBonus") * lvl) + + return locals() + +def effect6777(): + type = "passive" + def handler(fit, src, context): + lvl = src.level + fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill("Shield Command"), "warfareBuff3Multiplier", + src.getModifiedItemAttr("commandStrengthBonus") * lvl) + fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill("Shield Command"), "warfareBuff1Multiplier", + src.getModifiedItemAttr("commandStrengthBonus") * lvl) + fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill("Shield Command"), "warfareBuff2Multiplier", + src.getModifiedItemAttr("commandStrengthBonus") * lvl) + fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill("Shield Command"), "warfareBuff4Multiplier", + src.getModifiedItemAttr("commandStrengthBonus") * lvl) + + return locals() + +def effect6778(): + type = "passive" + def handler(fit, src, context): + lvl = src.level + fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill("Information Command"), "warfareBuff2Multiplier", + src.getModifiedItemAttr("commandStrengthBonus") * lvl) + fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill("Information Command"), "warfareBuff1Multiplier", + src.getModifiedItemAttr("commandStrengthBonus") * lvl) + fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill("Information Command"), "warfareBuff3Multiplier", + src.getModifiedItemAttr("commandStrengthBonus") * lvl) + fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill("Information Command"), "warfareBuff4Multiplier", + src.getModifiedItemAttr("commandStrengthBonus") * lvl) + + return locals() + +def effect6779(): + type = "passive" + def handler(fit, src, context): + lvl = src.level + fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill("Skirmish Command"), "warfareBuff3Multiplier", + src.getModifiedItemAttr("commandStrengthBonus") * lvl) + fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill("Skirmish Command"), "warfareBuff4Multiplier", + src.getModifiedItemAttr("commandStrengthBonus") * lvl) + fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill("Skirmish Command"), "warfareBuff1Multiplier", + src.getModifiedItemAttr("commandStrengthBonus") * lvl) + fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill("Skirmish Command"), "warfareBuff2Multiplier", + src.getModifiedItemAttr("commandStrengthBonus") * lvl) + + return locals() + +def effect6780(): + type = "passive" + def handler(fit, src, context): + lvl = src.level + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Mining Foreman"), "warfareBuff4Value", src.getModifiedItemAttr("commandStrengthBonus") * lvl) + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Mining Foreman"), "warfareBuff3Value", src.getModifiedItemAttr("commandStrengthBonus") * lvl) + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Mining Foreman"), "warfareBuff2Value", src.getModifiedItemAttr("commandStrengthBonus") * lvl) + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Mining Foreman"), "warfareBuff1Value", src.getModifiedItemAttr("commandStrengthBonus") * lvl) + + return locals() + +def effect6782(): + type = "passive" + def handler(fit, src, context): + lvl = src.level + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Leadership"), + "reloadTime", + src.getModifiedItemAttr("reloadTimeBonus") * lvl) + + return locals() + +def effect6783(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Leadership"), "maxRange", + src.getModifiedItemAttr("roleBonusCommandBurstAoERange")) + + return locals() + +def effect6786(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Command"), "warfareBuff4Multiplier", + src.getModifiedItemAttr("shipBonusICS3"), skill="Industrial Command Ships") + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Command"), "warfareBuff1Multiplier", + src.getModifiedItemAttr("shipBonusICS3"), skill="Industrial Command Ships") + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Command"), "warfareBuff2Multiplier", + src.getModifiedItemAttr("shipBonusICS3"), skill="Industrial Command Ships") + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Command"), "warfareBuff3Multiplier", + src.getModifiedItemAttr("shipBonusICS3"), skill="Industrial Command Ships") + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Command"), "buffDuration", + src.getModifiedItemAttr("shipBonusICS3"), skill="Industrial Command Ships") + + return locals() + +def effect6787(): + type = "passive" + def handler(fit, src, context): + fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Drones"), + "damageMultiplier", + src.getModifiedItemAttr("shipBonusICS4"), + skill="Industrial Command Ships" + ) + fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Drones"), + "shieldCapacity", + src.getModifiedItemAttr("shipBonusICS4"), + skill="Industrial Command Ships" + ) + fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Drones"), + "armorHP", + src.getModifiedItemAttr("shipBonusICS4"), + skill="Industrial Command Ships" + ) + fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Drones"), + "hp", + src.getModifiedItemAttr("shipBonusICS4"), + skill="Industrial Command Ships" + ) + fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Mining Drone Operation"), + "miningAmount", + src.getModifiedItemAttr("shipBonusICS4"), + skill="Industrial Command Ships" + ) + + return locals() + +def effect6788(): + type = "passive" + def handler(fit, src, context): + fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Ice Harvesting Drone Operation"), + "duration", + src.getModifiedItemAttr("shipBonusICS5"), + skill="Industrial Command Ships" + ) + + return locals() + +def effect6789(): + type = "passive" + def handler(fit, src, context): + fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Drones"), + "damageMultiplier", + src.getModifiedItemAttr("industrialBonusDroneDamage")) + + return locals() + +def effect6790(): + type = "passive" + def handler(fit, src, context): + fit.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Ice Harvesting Drone Operation"), "duration", + src.getModifiedItemAttr("roleBonusDroneIceHarvestingSpeed")) + + return locals() + +def effect6792(): + type = "passive" + def handler(fit, src, context): + fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Drones"), + "damageMultiplier", + src.getModifiedItemAttr("shipBonusORECapital4"), + skill="Capital Industrial Ships" + ) + fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Drones"), + "shieldCapacity", + src.getModifiedItemAttr("shipBonusORECapital4"), + skill="Capital Industrial Ships" + ) + fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Drones"), + "armorHP", + src.getModifiedItemAttr("shipBonusORECapital4"), + skill="Capital Industrial Ships" + ) + fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Drones"), + "hp", + src.getModifiedItemAttr("shipBonusORECapital4"), + skill="Capital Industrial Ships" + ) + fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Mining Drone Operation"), + "miningAmount", + src.getModifiedItemAttr("shipBonusORECapital4"), + skill="Capital Industrial Ships" + ) + + return locals() + +def effect6793(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Mining Foreman"), "warfareBuff1Value", + src.getModifiedItemAttr("shipBonusORECapital2"), skill="Capital Industrial Ships") + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Mining Foreman"), "warfareBuff2Value", + src.getModifiedItemAttr("shipBonusORECapital2"), skill="Capital Industrial Ships") + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Mining Foreman"), "warfareBuff4Value", + src.getModifiedItemAttr("shipBonusORECapital2"), skill="Capital Industrial Ships") + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Mining Foreman"), "warfareBuff3Value", + src.getModifiedItemAttr("shipBonusORECapital2"), skill="Capital Industrial Ships") + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Mining Foreman"), "buffDuration", + src.getModifiedItemAttr("shipBonusORECapital2"), skill="Capital Industrial Ships") + + return locals() + +def effect6794(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Command"), "warfareBuff4Value", + src.getModifiedItemAttr("shipBonusORECapital3"), skill="Capital Industrial Ships") + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Command"), "buffDuration", + src.getModifiedItemAttr("shipBonusORECapital3"), skill="Capital Industrial Ships") + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Command"), "warfareBuff1Value", + src.getModifiedItemAttr("shipBonusORECapital3"), skill="Capital Industrial Ships") + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Command"), "warfareBuff3Value", + src.getModifiedItemAttr("shipBonusORECapital3"), skill="Capital Industrial Ships") + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Command"), "warfareBuff2Value", + src.getModifiedItemAttr("shipBonusORECapital3"), skill="Capital Industrial Ships") + + return locals() + +def effect6795(): + type = "passive" + def handler(fit, src, context): + fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Ice Harvesting Drone Operation"), + "duration", + src.getModifiedItemAttr("shipBonusORECapital5"), + skill="Capital Industrial Ships" + ) + + return locals() + +def effect6796(): + type = "passive" + def handler(fit, module, context): + fit.modules.filteredItemMultiply( + lambda mod: mod.item.requiresSkill("Small Hybrid Turret"), + "damageMultiplier", + 1 / module.getModifiedItemAttr("modeDamageBonusPostDiv"), + stackingPenalties=True, + penaltyGroup="postDiv" + ) + + return locals() + +def effect6797(): + type = "passive" + def handler(fit, module, context): + fit.modules.filteredItemMultiply( + lambda mod: mod.item.requiresSkill("Small Projectile Turret"), + "damageMultiplier", + 1 / module.getModifiedItemAttr("modeDamageBonusPostDiv"), + stackingPenalties=True, + penaltyGroup="postDiv" + ) + + return locals() + +def effect6798(): + type = "passive" + def handler(fit, module, context): + fit.modules.filteredItemMultiply( + lambda mod: mod.item.requiresSkill("Small Energy Turret"), + "damageMultiplier", + 1 / module.getModifiedItemAttr("modeDamageBonusPostDiv"), + stackingPenalties=True, + penaltyGroup="postDiv" + ) + + return locals() + +def effect6799(): + type = "passive" + def handler(fit, module, context): + types = ("thermal", "em", "explosive", "kinetic") + for type in types: + fit.modules.filteredChargeMultiply(lambda mod: mod.charge.requiresSkill("Rockets") or mod.charge.requiresSkill("Light Missiles"), + "{}Damage".format(type), + 1 / module.getModifiedItemAttr("modeDamageBonusPostDiv"), + stackingPenalties=True, + penaltyGroup="postDiv") + + return locals() + +def effect6800(): + type = "passive" + def handler(fit, module, context): + fit.ship.multiplyItemAttr("weaponDisruptionResistance", 1 / module.getModifiedItemAttr("modeEwarResistancePostDiv")) + fit.ship.multiplyItemAttr("sensorDampenerResistance", 1 / module.getModifiedItemAttr("modeEwarResistancePostDiv")) + + return locals() + +def effect6801(): + type = "passive" + def handler(fit, module, context): + fit.modules.filteredItemMultiply( + lambda mod: mod.item.requiresSkill("High Speed Maneuvering") or mod.item.requiresSkill("Afterburner"), + "speedFactor", + 1 / module.getModifiedItemAttr("modeVelocityPostDiv"), + stackingPenalties=True, + penaltyGroup="postDiv" + ) + + return locals() + +def effect6807(): + type = "passive" + def handler(fit, src, context): + lvl = src.level + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Invulnerability Core Operation"), "buffDuration", + src.getModifiedItemAttr("durationBonus") * lvl) + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Invulnerability Core Operation"), "duration", + src.getModifiedItemAttr("durationBonus") * lvl) + + return locals() + +def effect6844(): + type = "passive" + def handler(fit, skill, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Defender Missiles"), + "maxVelocity", skill.getModifiedItemAttr("missileVelocityBonus") * skill.level) + + return locals() + +def effect6845(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Defender Missiles"), + "moduleReactivationDelay", ship.getModifiedItemAttr("shipBonusRole1")) + + return locals() + +def effect6851(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capital Energy Turret"), "damageMultiplier", src.getModifiedItemAttr("shipBonusRole3")) + + return locals() + +def effect6852(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Stasis Web", + "maxRange", src.getModifiedItemAttr("shipBonusTitanM1"), skill="Minmatar Titan") + + return locals() + +def effect6853(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Nosferatu", + "powerTransferAmount", src.getModifiedItemAttr("shipBonusTitanA1"), skill="Amarr Titan") + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Neutralizer", + "energyNeutralizerAmount", src.getModifiedItemAttr("shipBonusTitanA1"), skill="Amarr Titan") + + return locals() + +def effect6855(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Nosferatu", + "powerTransferAmount", src.getModifiedItemAttr("shipBonusDreadnoughtA1"), skill="Amarr Dreadnought") + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Neutralizer", + "energyNeutralizerAmount", src.getModifiedItemAttr("shipBonusDreadnoughtA1"), skill="Amarr Dreadnought") + + return locals() + +def effect6856(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Stasis Web", + "maxRange", src.getModifiedItemAttr("shipBonusDreadnoughtM1"), skill="Minmatar Dreadnought") + + return locals() + +def effect6857(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Nosferatu", + "maxRange", src.getModifiedItemAttr("shipBonusForceAuxiliaryA1"), skill="Amarr Carrier") + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Nosferatu", + "falloffEffectiveness", src.getModifiedItemAttr("shipBonusForceAuxiliaryA1"), skill="Amarr Carrier") + + return locals() + +def effect6858(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Nosferatu", + "powerTransferAmount", src.getModifiedItemAttr("shipBonusForceAuxiliaryA1"), skill="Amarr Carrier") + + return locals() + +def effect6859(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Nosferatu", "cpu", src.getModifiedItemAttr("shipBonusRole4")) + + return locals() + +def effect6860(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Remote Armor Repair Systems"), "power", + src.getModifiedItemAttr("shipBonusRole5")) + + return locals() + +def effect6861(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capital Remote Armor Repair Systems"), "power", src.getModifiedItemAttr("shipBonusRole5")) + + return locals() + +def effect6862(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Remote Armor Repair Systems"), + "duration", src.getModifiedItemAttr("shipBonusForceAuxiliaryM1"), skill="Minmatar Carrier") + + return locals() + +def effect6865(): + type = "passive" + def handler(fit, src, context): + fit.ship.boostItemAttr("warpSpeedMultiplier", src.getModifiedItemAttr("eliteBonusCovertOps1"), skill="Covert Ops") + + return locals() + +def effect6866(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Rockets"), + "explosionDelay", src.getModifiedItemAttr("shipBonusCF"), skill="Caldari Frigate") + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Light Missiles"), + "explosionDelay", src.getModifiedItemAttr("shipBonusCF"), skill="Caldari Frigate") + + return locals() + +def effect6867(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Projectile Turret"), + "speed", src.getModifiedItemAttr("shipBonusMF"), skill="Minmatar Frigate") + + return locals() + +def effect6871(): + type = "passive" + def handler(fit, src, context): + try: + bonus = max(0, min(50.0, (src.parent.character.secStatus * 10))) + except: + bonus = None + if bonus is not None: + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Repair Systems"), + "armorDamageAmount", bonus, stackingPenalties=True) + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Operation"), + "shieldBonus", bonus, stackingPenalties=True) + + return locals() + +def effect6872(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Stasis Web", "maxRange", src.getModifiedItemAttr("eliteBonusReconShip1"), skill="Recon Ships") + + return locals() + +def effect6873(): + type = "passive" + def handler(fit, src, context): + fit.ship.boostItemAttr("warpSpeedMultiplier", src.getModifiedItemAttr("eliteBonusReconShip3"), skill="Recon Ships") + + return locals() + +def effect6874(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Missiles"), + "explosionDelay", src.getModifiedItemAttr("shipBonusCC2"), skill="Caldari Cruiser") + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Assault Missiles"), + "explosionDelay", src.getModifiedItemAttr("shipBonusCC2"), skill="Caldari Cruiser") + + return locals() + +def effect6877(): + type = "passive" + def handler(fit, src, context): + fit.ship.boostItemAttr("warpSpeedMultiplier", src.getModifiedItemAttr("eliteBonusBlackOps1"), stackingPenalties=True, skill="Black Ops") + + return locals() + +def effect6878(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Warp Scrambler", "maxRange", + src.getModifiedItemAttr("eliteBonusBlackOps4"), stackingPenalties=True, skill="Black Ops") + + return locals() + +def effect6879(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Stasis Web", "maxRange", + src.getModifiedItemAttr("eliteBonusBlackOps3"), stackingPenalties=True, skill="Black Ops") + + return locals() + +def effect6880(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Missile Launcher Cruise", "speed", + src.getModifiedItemAttr("shipBonus2CB"), skill="Caldari Battleship") + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Missile Launcher Torpedo", "speed", + src.getModifiedItemAttr("shipBonus2CB"), skill="Caldari Battleship") + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Missile Launcher Rapid Heavy", "speed", + src.getModifiedItemAttr("shipBonus2CB"), skill="Caldari Battleship") + + return locals() + +def effect6881(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Torpedoes"), "explosionDelay", + src.getModifiedItemAttr("shipBonusCB"), skill="Caldari Battleship") + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Cruise Missiles"), "explosionDelay", + src.getModifiedItemAttr("shipBonusCB"), skill="Caldari Battleship") + + return locals() + +def effect6883(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Repair Systems"), + "armorDamageAmount", src.getModifiedItemAttr("shipBonusForceAuxiliaryM2"), skill="Minmatar Carrier") + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capital Repair Systems"), + "armorDamageAmount", src.getModifiedItemAttr("shipBonusForceAuxiliaryM2"), skill="Minmatar Carrier") + + return locals() + +def effect6894(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name in ("Energy Nosferatu", "Energy Neutralizer"), + "cpu", src.getModifiedItemAttr("subsystemEnergyNeutFittingReduction")) + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name in ("Energy Nosferatu", "Energy Neutralizer"), + "power", src.getModifiedItemAttr("subsystemEnergyNeutFittingReduction")) + + return locals() + +def effect6895(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Energy Turret"), + "cpu", src.getModifiedItemAttr("subsystemMETFittingReduction")) + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Energy Turret"), + "power", src.getModifiedItemAttr("subsystemMETFittingReduction")) + + return locals() + +def effect6896(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Hybrid Turret"), + "cpu", src.getModifiedItemAttr("subsystemMHTFittingReduction")) + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Hybrid Turret"), + "power", src.getModifiedItemAttr("subsystemMHTFittingReduction")) + + return locals() + +def effect6897(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Projectile Turret"), + "power", src.getModifiedItemAttr("subsystemMPTFittingReduction")) + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Projectile Turret"), + "cpu", src.getModifiedItemAttr("subsystemMPTFittingReduction")) + + return locals() + +def effect6898(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Remote Armor Repair Systems") and + mod.getModifiedItemAttr('mediumRemoteRepFittingMultiplier', 0) == 1, + "cpu", src.getModifiedItemAttr("subsystemMRARFittingReduction")) + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Remote Armor Repair Systems") and + mod.getModifiedItemAttr('mediumRemoteRepFittingMultiplier', 0) == 1, + "power", src.getModifiedItemAttr("subsystemMRARFittingReduction")) + + return locals() + +def effect6899(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Emission Systems") and + mod.getModifiedItemAttr('mediumRemoteRepFittingMultiplier', 0) == 1, + "cpu", src.getModifiedItemAttr("subsystemMRSBFittingReduction")) + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Emission Systems") and + mod.getModifiedItemAttr('mediumRemoteRepFittingMultiplier', 0) == 1, + "power", src.getModifiedItemAttr("subsystemMRSBFittingReduction")) + + return locals() + +def effect6900(): + type = "passive" + def handler(fit, src, context): + groups = ("Missile Launcher Heavy", "Missile Launcher Rapid Light", "Missile Launcher Heavy Assault") + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name in groups, + "cpu", src.getModifiedItemAttr("subsystemMMissileFittingReduction")) + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name in groups, + "power", src.getModifiedItemAttr("subsystemMMissileFittingReduction")) + + return locals() + +def effect6908(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: True, "moduleRepairRate", + ship.getModifiedItemAttr("shipBonusStrategicCruiserCaldari2"), + skill="Caldari Strategic Cruiser") + + return locals() + +def effect6909(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: True, "moduleRepairRate", + ship.getModifiedItemAttr("shipBonusStrategicCruiserAmarr2"), + skill="Amarr Strategic Cruiser") + + return locals() + +def effect6910(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: True, "moduleRepairRate", + ship.getModifiedItemAttr("shipBonusStrategicCruiserGallente2"), + skill="Gallente Strategic Cruiser") + + return locals() + +def effect6911(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: True, "moduleRepairRate", + ship.getModifiedItemAttr("shipBonusStrategicCruiserMinmatar2"), + skill="Minmatar Strategic Cruiser") + + return locals() + +def effect6920(): + type = "passive" + def handler(fit, module, context): + fit.ship.increaseItemAttr("hp", module.getModifiedItemAttr("structureHPBonusAdd") or 0) + + return locals() + +def effect6921(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Astrometrics"), + "baseSensorStrength", src.getModifiedItemAttr("subsystemBonusAmarrDefensive2"), + skill="Amarr Defensive Systems") + + return locals() + +def effect6923(): + type = "passive" + def handler(fit, container, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Missiles") or mod.charge.requiresSkill("Heavy Assault Missiles"), + "maxVelocity", container.getModifiedItemAttr("subsystemBonusMinmatarOffensive"), + skill="Minmatar Offensive Systems") + + return locals() + +def effect6924(): + type = "passive" + def handler(fit, container, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), + "aoeVelocity", container.getModifiedItemAttr("subsystemBonusMinmatarOffensive3"), + skill="Minmatar Offensive Systems") + + return locals() + +def effect6925(): + type = "passive" + def handler(fit, src, context): + fit.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Drones"), + "maxVelocity", src.getModifiedItemAttr("subsystemBonusGallenteOffensive2"), + skill="Gallente Offensive Systems") + fit.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Drones"), + "trackingSpeed", src.getModifiedItemAttr("subsystemBonusGallenteOffensive2"), + skill="Gallente Offensive Systems") + + return locals() + +def effect6926(): + type = "passive" + def handler(fit, src, context): + fit.ship.boostItemAttr("warpCapacitorNeed", src.getModifiedItemAttr("subsystemBonusAmarrPropulsion"), skill="Amarr Propulsion Systems") + + return locals() + +def effect6927(): + type = "passive" + def handler(fit, src, context): + fit.ship.boostItemAttr("warpCapacitorNeed", src.getModifiedItemAttr("subsystemBonusMinmatarPropulsion"), + skill="Minmatar Propulsion Systems") + + return locals() + +def effect6928(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Afterburner") or mod.item.requiresSkill("High Speed Maneuvering"), + "overloadSpeedFactorBonus", src.getModifiedItemAttr("subsystemBonusCaldariPropulsion2"), + skill="Caldari Propulsion Systems") + + return locals() + +def effect6929(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Afterburner") or mod.item.requiresSkill("High Speed Maneuvering"), + "overloadSpeedFactorBonus", src.getModifiedItemAttr("subsystemBonusGallentePropulsion2"), + skill="Gallente Propulsion Systems") + + return locals() + +def effect6930(): + type = "passive" + def handler(fit, src, context): + fit.ship.boostItemAttr("energyWarfareResistance", src.getModifiedItemAttr("subsystemBonusAmarrCore2"), skill="Amarr Core Systems") + + return locals() + +def effect6931(): + type = "passive" + def handler(fit, src, context): + fit.ship.boostItemAttr("energyWarfareResistance", src.getModifiedItemAttr("subsystemBonusMinmatarCore2"), + skill="Minmatar Core Systems") + + return locals() + +def effect6932(): + type = "passive" + def handler(fit, src, context): + fit.ship.boostItemAttr("energyWarfareResistance", src.getModifiedItemAttr("subsystemBonusGallenteCore2"), + skill="Gallente Core Systems") + + return locals() + +def effect6933(): + type = "passive" + def handler(fit, src, context): + fit.ship.boostItemAttr("energyWarfareResistance", src.getModifiedItemAttr("subsystemBonusCaldariCore2"), + skill="Caldari Core Systems") + + return locals() + +def effect6934(): + type = "passive" + def handler(fit, src, context): + fit.ship.increaseItemAttr("maxLockedTargets", src.getModifiedItemAttr("maxLockedTargetsBonus")) + + return locals() + +def effect6935(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name in ("Energy Nosferatu", "Energy Neutralizer"), "overloadSelfDurationBonus", + src.getModifiedItemAttr("subsystemBonusAmarrCore3"), skill="Amarr Core Systems") + + return locals() + +def effect6936(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Stasis Web", + "overloadRangeBonus", src.getModifiedItemAttr("subsystemBonusMinmatarCore3"), + skill="Minmatar Core Systems") + + return locals() + +def effect6937(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Warp Scrambler", "overloadRangeBonus", + src.getModifiedItemAttr("subsystemBonusGallenteCore3"), skill="Gallente Core Systems") + + return locals() + +def effect6938(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "ECM", "overloadECMStrengthBonus", + src.getModifiedItemAttr("subsystemBonusCaldariCore3"), skill="Caldari Core Systems") + + return locals() + +def effect6939(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Hull Upgrades"), "overloadSelfDurationBonus", + src.getModifiedItemAttr("subsystemBonusAmarrDefensive2"), skill="Amarr Defensive Systems") + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Hull Upgrades"), "overloadHardeningBonus", + src.getModifiedItemAttr("subsystemBonusAmarrDefensive2"), skill="Amarr Defensive Systems") + + return locals() + +def effect6940(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Hull Upgrades"), "overloadHardeningBonus", + src.getModifiedItemAttr("subsystemBonusGallenteDefensive2"), skill="Gallente Defensive Systems") + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Hull Upgrades"), "overloadSelfDurationBonus", + src.getModifiedItemAttr("subsystemBonusGallenteDefensive2"), skill="Gallente Defensive Systems") + + return locals() + +def effect6941(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Tactical Shield Manipulation"), + "overloadHardeningBonus", src.getModifiedItemAttr("subsystemBonusCaldariDefensive2"), + skill="Caldari Defensive Systems") + + return locals() + +def effect6942(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Hull Upgrades"), "overloadSelfDurationBonus", + src.getModifiedItemAttr("subsystemBonusMinmatarDefensive2"), skill="Minmatar Defensive Systems") + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Hull Upgrades"), "overloadHardeningBonus", + src.getModifiedItemAttr("subsystemBonusMinmatarDefensive2"), skill="Minmatar Defensive Systems") + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Tactical Shield Manipulation"), "overloadHardeningBonus", + src.getModifiedItemAttr("subsystemBonusMinmatarDefensive2"), skill="Minmatar Defensive Systems") + + return locals() + +def effect6943(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Repair Systems"), + "overloadSelfDurationBonus", src.getModifiedItemAttr("subsystemBonusAmarrDefensive3"), + skill="Amarr Defensive Systems") + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Repair Systems"), + "overloadArmorDamageAmount", src.getModifiedItemAttr("subsystemBonusAmarrDefensive3"), + skill="Amarr Defensive Systems") + + return locals() + +def effect6944(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Repair Systems"), + "overloadSelfDurationBonus", src.getModifiedItemAttr("subsystemBonusGallenteDefensive3"), + skill="Gallente Defensive Systems") + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Repair Systems"), + "overloadArmorDamageAmount", src.getModifiedItemAttr("subsystemBonusGallenteDefensive3"), + skill="Gallente Defensive Systems") + + return locals() + +def effect6945(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Operation"), + "overloadShieldBonus", src.getModifiedItemAttr("subsystemBonusCaldariDefensive3"), + skill="Caldari Defensive Systems") + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Operation"), + "overloadSelfDurationBonus", src.getModifiedItemAttr("subsystemBonusCaldariDefensive3"), + skill="Caldari Defensive Systems") + + return locals() + +def effect6946(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Repair Systems") or mod.item.requiresSkill("Shield Operation"), + "overloadArmorDamageAmount", src.getModifiedItemAttr("subsystemBonusMinmatarDefensive3"), + skill="Minmatar Defensive Systems") + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Repair Systems") or mod.item.requiresSkill("Shield Operation"), + "overloadSelfDurationBonus", src.getModifiedItemAttr("subsystemBonusMinmatarDefensive3"), + skill="Minmatar Defensive Systems") + + return locals() + +def effect6947(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Astrometrics"), + "baseSensorStrength", src.getModifiedItemAttr("subsystemBonusCaldariDefensive2"), + skill="Caldari Defensive Systems") + + return locals() + +def effect6949(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Astrometrics"), "baseSensorStrength", + src.getModifiedItemAttr("subsystemBonusGallenteDefensive2"), skill="Gallente Defensive Systems") + + return locals() + +def effect6951(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Astrometrics"), "baseSensorStrength", + src.getModifiedItemAttr("subsystemBonusMinmatarDefensive2"), skill="Minmatar Defensive Systems") + + return locals() + +def effect6953(): + type = "passive" + def handler(fit, module, context): + module.multiplyItemAttr("power", module.getModifiedItemAttr("mediumRemoteRepFittingMultiplier")) + module.multiplyItemAttr("cpu", module.getModifiedItemAttr("mediumRemoteRepFittingMultiplier")) + + return locals() + +def effect6954(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Leadership"), "power", + src.getModifiedItemAttr("subsystemCommandBurstFittingReduction")) + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Leadership"), "cpu", + src.getModifiedItemAttr("subsystemCommandBurstFittingReduction")) + + return locals() + +def effect6955(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name in ("Remote Shield Booster", "Ancillary Remote Shield Booster"), + "falloffEffectiveness", src.getModifiedItemAttr("remoteShieldBoosterFalloffBonus")) + + return locals() + +def effect6956(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name in ("Remote Armor Repairer", "Ancillary Remote Armor Repairer"), + "maxRange", src.getModifiedItemAttr("remoteArmorRepairerOptimalBonus")) + + return locals() + +def effect6957(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name in ("Remote Armor Repairer", "Ancillary Remote Armor Repairer"), + "falloffEffectiveness", src.getModifiedItemAttr("remoteArmorRepairerFalloffBonus")) + + return locals() + +def effect6958(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Remote Armor Repair Systems"), "overloadSelfDurationBonus", + src.getModifiedItemAttr("subsystemBonusAmarrOffensive3"), skill="Amarr Offensive Systems") + + return locals() + +def effect6959(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Remote Armor Repair Systems"), "overloadSelfDurationBonus", + src.getModifiedItemAttr("subsystemBonusGallenteOffensive3"), skill="Gallente Offensive Systems") + + return locals() + +def effect6960(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Emission Systems"), + "overloadSelfDurationBonus", src.getModifiedItemAttr("subsystemBonusCaldariOffensive3"), + skill="Caldari Offensive Systems") + + return locals() + +def effect6961(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Emission Systems") or mod.item.requiresSkill("Remote Armor Repair Systems"), + "overloadSelfDurationBonus", src.getModifiedItemAttr("subsystemBonusMinmatarOffensive3"), + skill="Minmatar Offensive Systems") + + return locals() + +def effect6962(): + type = "passive" + def handler(fit, src, context): + fit.ship.boostItemAttr("warpSpeedMultiplier", src.getModifiedItemAttr("subsystemBonusAmarrPropulsion2"), + skill="Amarr Propulsion Systems") + + return locals() + +def effect6963(): + type = "passive" + def handler(fit, src, context): + fit.ship.boostItemAttr("warpSpeedMultiplier", src.getModifiedItemAttr("subsystemBonusMinmatarPropulsion2"), + skill="Minmatar Propulsion Systems") + + return locals() + +def effect6964(): + type = "passive" + def handler(fit, module, context): + fit.ship.boostItemAttr("baseWarpSpeed", module.getModifiedItemAttr("subsystemBonusGallentePropulsion"), + skill="Gallente Propulsion Systems") + + return locals() + +def effect6981(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill("Torpedoes"), "thermalDamage", + src.getModifiedItemAttr("shipBonusTitanG1"), skill="Gallente Titan") + fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill("Torpedoes"), "kineticDamage", + src.getModifiedItemAttr("shipBonusTitanG1"), skill="Gallente Titan") + fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill("XL Torpedoes"), "thermalDamage", + src.getModifiedItemAttr("shipBonusTitanG1"), skill="Gallente Titan") + fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill("XL Torpedoes"), "kineticDamage", + src.getModifiedItemAttr("shipBonusTitanG1"), skill="Gallente Titan") + fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill("XL Cruise Missiles"), "thermalDamage", + src.getModifiedItemAttr("shipBonusTitanG1"), skill="Gallente Titan") + fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill("XL Cruise Missiles"), "kineticDamage", + src.getModifiedItemAttr("shipBonusTitanG1"), skill="Gallente Titan") + + return locals() + +def effect6982(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill("Torpedoes"), "explosiveDamage", + src.getModifiedItemAttr("shipBonusTitanG2"), skill="Gallente Titan") + fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill("Torpedoes"), "emDamage", + src.getModifiedItemAttr("shipBonusTitanG2"), skill="Gallente Titan") + fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill("XL Torpedoes"), "emDamage", + src.getModifiedItemAttr("shipBonusTitanG2"), skill="Gallente Titan") + fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill("XL Torpedoes"), "explosiveDamage", + src.getModifiedItemAttr("shipBonusTitanG2"), skill="Gallente Titan") + fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill("XL Cruise Missiles"), "emDamage", + src.getModifiedItemAttr("shipBonusTitanG2"), skill="Gallente Titan") + fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill("XL Cruise Missiles"), "explosiveDamage", + src.getModifiedItemAttr("shipBonusTitanG2"), skill="Gallente Titan") + + return locals() + +def effect6983(): + type = "passive" + def handler(fit, src, context): + fit.ship.boostItemAttr("shieldKineticDamageResonance", src.getModifiedItemAttr("shipBonusTitanC1"), skill="Caldari Titan") + fit.ship.boostItemAttr("shieldEmDamageResonance", src.getModifiedItemAttr("shipBonusTitanC1"), skill="Caldari Titan") + fit.ship.boostItemAttr("shieldExplosiveDamageResonance", src.getModifiedItemAttr("shipBonusTitanC1"), skill="Caldari Titan") + fit.ship.boostItemAttr("shieldThermalDamageResonance", src.getModifiedItemAttr("shipBonusTitanC1"), skill="Caldari Titan") + + return locals() + +def effect6984(): + type = "passive" + def handler(fit, src, context): + fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Fighters"), "shieldCapacity", + src.getModifiedItemAttr("shipBonusRole4")) + fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Fighters"), "fighterAbilityAttackTurretDamageMultiplier", + src.getModifiedItemAttr("shipBonusRole4")) + fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Fighters"), "fighterAbilityAttackMissileDamageMultiplier", + src.getModifiedItemAttr("shipBonusRole4")) + fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Fighters"), "fighterAbilityMissilesDamageMultiplier", + src.getModifiedItemAttr("shipBonusRole4")) + + return locals() + +def effect6985(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill("Torpedoes"), "kineticDamage", + src.getModifiedItemAttr("shipBonusDreadnoughtG1"), skill="Gallente Dreadnought") + fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill("Torpedoes"), "thermalDamage", + src.getModifiedItemAttr("shipBonusDreadnoughtG1"), skill="Gallente Dreadnought") + fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill("XL Torpedoes"), "kineticDamage", + src.getModifiedItemAttr("shipBonusDreadnoughtG1"), skill="Gallente Dreadnought") + fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill("XL Torpedoes"), "thermalDamage", + src.getModifiedItemAttr("shipBonusDreadnoughtG1"), skill="Gallente Dreadnought") + fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill("XL Cruise Missiles"), "thermalDamage", + src.getModifiedItemAttr("shipBonusDreadnoughtG1"), skill="Gallente Dreadnought") + fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill("XL Cruise Missiles"), "kineticDamage", + src.getModifiedItemAttr("shipBonusDreadnoughtG1"), skill="Gallente Dreadnought") + + return locals() + +def effect6986(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capital Shield Emission Systems"), "shieldBonus", + src.getModifiedItemAttr("shipBonusForceAuxiliaryG1"), skill="Gallente Carrier") + + return locals() + +def effect6987(): + type = "passive" + def handler(fit, src, context): + fit.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Repair Drone Operation"), + "structureDamageAmount", src.getModifiedItemAttr("shipBonusRole2")) + fit.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Repair Drone Operation"), + "shieldBonus", src.getModifiedItemAttr("shipBonusRole2")) + fit.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Repair Drone Operation"), + "armorDamageAmount", src.getModifiedItemAttr("shipBonusRole2")) + fit.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Repair Drone Operation"), + "armorHP", src.getModifiedItemAttr("shipBonusRole2")) + fit.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Repair Drone Operation"), + "shieldCapacity", src.getModifiedItemAttr("shipBonusRole2")) + fit.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Repair Drone Operation"), + "hp", src.getModifiedItemAttr("shipBonusRole2")) + + return locals() + +def effect699(): + type = "passive" + def handler(fit, container, context): + level = container.level if "skill" in context else 1 + penalized = False if "skill" in context or "implant" in context or "booster" in context else True + fit.ship.boostItemAttr("scanResolution", container.getModifiedItemAttr("scanResolutionBonus") * level, + stackingPenalties=penalized) + + return locals() + +def effect6992(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Hybrid Turret"), "damageMultiplier", src.getModifiedItemAttr("shipBonusRole1")) + + return locals() + +def effect6993(): + type = "passive" + def handler(fit, src, context): + fit.boosters.filteredItemBoost(lambda mod: mod.item.group.name == "Booster", "boosterMissileAOECloudPenalty", src.getModifiedItemAttr("shipBonusRole2")) + fit.boosters.filteredItemBoost(lambda mod: mod.item.group.name == "Booster", "boosterCapacitorCapacityPenalty", src.getModifiedItemAttr("shipBonusRole2")) + fit.boosters.filteredItemBoost(lambda mod: mod.item.group.name == "Booster", "boosterAOEVelocityPenalty", src.getModifiedItemAttr("shipBonusRole2")) + fit.boosters.filteredItemBoost(lambda mod: mod.item.group.name == "Booster", "boosterArmorRepairAmountPenalty", src.getModifiedItemAttr("shipBonusRole2")) + fit.boosters.filteredItemBoost(lambda mod: mod.item.group.name == "Booster", "boosterMissileVelocityPenalty", src.getModifiedItemAttr("shipBonusRole2")) + fit.boosters.filteredItemBoost(lambda mod: mod.item.group.name == "Booster", "boosterTurretTrackingPenalty", src.getModifiedItemAttr("shipBonusRole2")) + fit.boosters.filteredItemBoost(lambda mod: mod.item.group.name == "Booster", "boosterShieldCapacityPenalty", src.getModifiedItemAttr("shipBonusRole2")) + fit.boosters.filteredItemBoost(lambda mod: mod.item.group.name == "Booster", "boosterTurretOptimalRangePenalty", src.getModifiedItemAttr("shipBonusRole2")) + fit.boosters.filteredItemBoost(lambda mod: mod.item.group.name == "Booster", "boosterShieldBoostAmountPenalty", src.getModifiedItemAttr("shipBonusRole2")) + fit.boosters.filteredItemBoost(lambda mod: mod.item.group.name == "Booster", "boosterTurretFalloffPenalty", src.getModifiedItemAttr("shipBonusRole2")) + fit.boosters.filteredItemBoost(lambda mod: mod.item.group.name == "Booster", "boosterArmorHPPenalty", src.getModifiedItemAttr("shipBonusRole2")) + fit.boosters.filteredItemBoost(lambda mod: mod.item.group.name == "Booster", "boosterMaxVelocityPenalty", src.getModifiedItemAttr("shipBonusRole2")) + + return locals() + +def effect6994(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Hybrid Turret"), "damageMultiplier", + src.getModifiedItemAttr("eliteBonusReconShip1"), skill="Recon Ships") + + return locals() + +def effect6995(): + type = 'active' + def handler(fit, module, context): + module.reloadTime = 1000 + + return locals() + +def effect6996(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Repair Systems"), "armorDamageAmount", + src.getModifiedItemAttr("eliteBonusReconShip3"), skill="Recon Ships") + + return locals() + +def effect6997(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Repair Systems"), "armorDamageAmount", + src.getModifiedItemAttr("eliteBonusCovertOps4"), skill="Covert Ops") + + return locals() + +def effect6999(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemMultiply(lambda mod: mod.item.group.name == "Missile Launcher Torpedo", + "cpu", ship.getModifiedItemAttr("stealthBomberLauncherCPU")) + + return locals() + +def effect7000(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Hybrid Turret"), "falloff", + src.getModifiedItemAttr("shipBonusGF"), skill="Gallente Frigate") + + return locals() + +def effect7001(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Missile Launcher Torpedo", "speed", src.getModifiedItemAttr("shipBonusRole1")) + + return locals() + +def effect7002(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Bomb Deployment"), "power", src.getModifiedItemAttr("shipBonusRole3")) + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Bomb Deployment"), "cpu", src.getModifiedItemAttr("shipBonusRole3")) + + return locals() + +def effect7003(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Hybrid Turret"), "damageMultiplier", + src.getModifiedItemAttr("eliteBonusCovertOps3"), skill="Covert Ops") + + return locals() + +def effect7008(): + type = "passive" + def handler(fit, src, context): + fit.ship.multiplyItemAttr("shieldCapacity", src.getModifiedItemAttr("structureFullPowerStateHitpointMultiplier") or 0) + fit.ship.multiplyItemAttr("armorHP", src.getModifiedItemAttr("structureFullPowerStateHitpointMultiplier") or 0) + + return locals() + +def effect7009(): + type = "passive" + runTime = "early" + def handler(fit, src, context): + fit.ship.forceItemAttr("structureFullPowerStateHitpointMultiplier", src.getModifiedItemAttr("serviceModuleFullPowerStateHitpointMultiplier")) + + return locals() + +def effect7012(): + type = "active" + runTime = "early" + def handler(fit, src, context): + for layer, attrPrefix in (('shield', 'shield'), ('armor', 'armor'), ('hull', '')): + for damageType in ('Kinetic', 'Thermal', 'Explosive', 'Em'): + bonus = "%s%sDamageResonance" % (attrPrefix, damageType) + bonus = "%s%s" % (bonus[0].lower(), bonus[1:]) + booster = "%s%sDamageResonance" % (layer, damageType) + src.forceItemAttr(booster, src.getModifiedItemAttr("resistanceMultiplier")) + + return locals() + +def effect7013(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), "kineticDamage", + src.getModifiedItemAttr("eliteBonusGunship1"), skill="Assault Frigates") + + return locals() + +def effect7014(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), "thermalDamage", + src.getModifiedItemAttr("eliteBonusGunship1"), skill="Assault Frigates") + + return locals() + +def effect7015(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), "emDamage", + src.getModifiedItemAttr("eliteBonusGunship1"), skill="Assault Frigates") + + return locals() + +def effect7016(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), "explosiveDamage", + src.getModifiedItemAttr("eliteBonusGunship1"), skill="Assault Frigates") + + return locals() + +def effect7017(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), "aoeVelocity", + src.getModifiedItemAttr("eliteBonusGunship2"), stackingPenalties=True, skill="Assault Frigates") + + return locals() + +def effect7018(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Energy Turret"), "speed", + src.getModifiedItemAttr("shipBonusAF"), stackingPenalties=False, skill="Amarr Frigate") + + return locals() + +def effect7020(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Stasis Web", "maxRange", + src.getModifiedItemAttr("stasisWebRangeBonus"), stackingPenalties=False) + + return locals() + +def effect7021(): + type = "passive" + def handler(fit, module, context): + fit.ship.boostItemAttr("maxTargetRange", module.getModifiedItemAttr("structureRigMaxTargetRangeBonus")) + + return locals() + +def effect7024(): + type = "passive" + def handler(fit, src, context): + fit.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Drones"), "trackingSpeed", + src.getModifiedItemAttr("eliteBonusGunship2"), skill="Assault Frigates") + + return locals() + +def effect7026(): + type = "passive" + runTime = "early" + def handler(fit, src, context, *args, **kwargs): + src.boostItemAttr("maxRange", src.getModifiedChargeAttr("warpScrambleRangeBonus")) + + return locals() + +def effect7027(): + type = "passive" + def handler(fit, ship, context): + fit.ship.increaseItemAttr("capacitorCapacity", ship.getModifiedItemAttr("capacitorBonus")) + + return locals() + +def effect7028(): + type = "passive" + def handler(fit, module, context): + fit.ship.multiplyItemAttr("rechargeRate", module.getModifiedItemAttr("capacitorRechargeRateMultiplier")) + + return locals() + +def effect7029(): + type = "passive" + runTime = "early" + def handler(fit, src, context): + fit.ship.boostItemAttr("hiddenArmorHPMultiplier", src.getModifiedItemAttr("armorHpBonus"), stackingPenalties=True) + + return locals() + +def effect7030(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Structure Guided Bomb Launcher", + "speed", ship.getModifiedItemAttr("structureAoERoFRoleBonus")) + for attr in ["duration", "durationTargetIlluminationBurstProjector", "durationWeaponDisruptionBurstProjector", + "durationECMJammerBurstProjector", "durationSensorDampeningBurstProjector", "capacitorNeed"]: + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Structure Burst Projector", + attr, ship.getModifiedItemAttr("structureAoERoFRoleBonus")) + + return locals() + +def effect7031(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Missiles"), "kineticDamage", + src.getModifiedItemAttr("shipBonusCBC2"), skill="Caldari Battlecruiser") + + return locals() + +def effect7032(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Missiles"), "thermalDamage", + src.getModifiedItemAttr("shipBonusCBC2"), skill="Caldari Battlecruiser") + + return locals() + +def effect7033(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Missiles"), + "emDamage", src.getModifiedItemAttr("shipBonusCBC2"), skill="Caldari Battlecruiser") + + return locals() + +def effect7034(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Missiles"), "explosiveDamage", + src.getModifiedItemAttr("shipBonusCBC2"), skill="Caldari Battlecruiser") + + return locals() + +def effect7035(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Assault Missiles"), "explosiveDamage", + src.getModifiedItemAttr("shipBonusCBC2"), skill="Caldari Battlecruiser") + + return locals() + +def effect7036(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Assault Missiles"), "emDamage", + src.getModifiedItemAttr("shipBonusCBC2"), skill="Caldari Battlecruiser") + + return locals() + +def effect7037(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Assault Missiles"), + "thermalDamage", src.getModifiedItemAttr("shipBonusCBC2"), skill="Caldari Battlecruiser") + + return locals() + +def effect7038(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Assault Missiles"), + "kineticDamage", src.getModifiedItemAttr("shipBonusCBC2"), skill="Caldari Battlecruiser") + + return locals() + +def effect7039(): + type = "passive" + def handler(fit, src, context): + groups = ("Structure Anti-Subcapital Missile", "Structure Anti-Capital Missile") + for dmgType in ("em", "kinetic", "explosive", "thermal"): + fit.modules.filteredChargeMultiply(lambda mod: mod.item.group.name in groups, + "%sDamage" % dmgType, + src.getModifiedItemAttr("hiddenMissileDamageMultiplier")) + + return locals() + +def effect7040(): + type = "passive" + def handler(fit, src, context): + fit.ship.multiplyItemAttr("armorHP", src.getModifiedItemAttr("hiddenArmorHPMultiplier") or 0) + + return locals() + +def effect7042(): + type = "passive" + def handler(fit, src, context): + fit.ship.boostItemAttr("armorHP", src.getModifiedItemAttr("shipBonusAC"), skill="Amarr Cruiser") + + return locals() + +def effect7043(): + type = "passive" + def handler(fit, src, context): + fit.ship.boostItemAttr("shieldCapacity", src.getModifiedItemAttr("shipBonusCC"), skill="Caldari Cruiser") + + return locals() + +def effect7044(): + type = "passive" + def handler(fit, src, context): + fit.ship.boostItemAttr("agility", src.getModifiedItemAttr("shipBonusGC"), skill="Gallente Cruiser") + + return locals() + +def effect7045(): + type = "passive" + def handler(fit, src, context): + fit.ship.boostItemAttr("signatureRadius", src.getModifiedItemAttr("shipBonusMC"), skill="Minmatar Cruiser") + + return locals() + +def effect7046(): + type = "passive" + def handler(fit, src, context): + fit.ship.boostItemAttr("explosiveDamageResonance", src.getModifiedItemAttr("eliteBonusFlagCruisers1"), skill="Flag Cruisers") + fit.ship.boostItemAttr("shieldKineticDamageResonance", src.getModifiedItemAttr("eliteBonusFlagCruisers1"), skill="Flag Cruisers") + fit.ship.boostItemAttr("shieldExplosiveDamageResonance", src.getModifiedItemAttr("eliteBonusFlagCruisers1"), skill="Flag Cruisers") + fit.ship.boostItemAttr("armorThermalDamageResonance", src.getModifiedItemAttr("eliteBonusFlagCruisers1"), skill="Flag Cruisers") + fit.ship.boostItemAttr("thermalDamageResonance", src.getModifiedItemAttr("eliteBonusFlagCruisers1"), skill="Flag Cruisers") + fit.ship.boostItemAttr("shieldEmDamageResonance", src.getModifiedItemAttr("eliteBonusFlagCruisers1"), skill="Flag Cruisers") + fit.ship.boostItemAttr("armorExplosiveDamageResonance", src.getModifiedItemAttr("eliteBonusFlagCruisers1"), skill="Flag Cruisers") + fit.ship.boostItemAttr("armorEmDamageResonance", src.getModifiedItemAttr("eliteBonusFlagCruisers1"), skill="Flag Cruisers") + fit.ship.boostItemAttr("shieldThermalDamageResonance", src.getModifiedItemAttr("eliteBonusFlagCruisers1"), skill="Flag Cruisers") + fit.ship.boostItemAttr("kineticDamageResonance", src.getModifiedItemAttr("eliteBonusFlagCruisers1"), skill="Flag Cruisers") + fit.ship.boostItemAttr("armorKineticDamageResonance", src.getModifiedItemAttr("eliteBonusFlagCruisers1"), skill="Flag Cruisers") + fit.ship.boostItemAttr("emDamageResonance", src.getModifiedItemAttr("eliteBonusFlagCruisers1"), skill="Flag Cruisers") + + return locals() + +def effect7047(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name in ("Propulsion Module", "Micro Jump Drive"), + "power", src.getModifiedItemAttr("flagCruiserFittingBonusPropMods")) + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name in ("Propulsion Module", "Micro Jump Drive"), + "cpu", src.getModifiedItemAttr("flagCruiserFittingBonusPropMods")) + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name in ("Target Painter", "Scan Probe Launcher"), + "cpu", src.getModifiedItemAttr("flagCruiserFittingBonusPainterProbes")) + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name in ("Target Painter", "Scan Probe Launcher"), + "power", src.getModifiedItemAttr("flagCruiserFittingBonusPainterProbes")) + + return locals() + +def effect7050(): + runTime = "early" + type = ("projected", "passive", "gang") + def handler(fit, beacon, context, **kwargs): + for x in range(1, 3): + if beacon.getModifiedItemAttr("warfareBuff{}ID".format(x)): + value = beacon.getModifiedItemAttr("warfareBuff{}Value".format(x)) + id = beacon.getModifiedItemAttr("warfareBuff{}ID".format(x)) + if id: + fit.addCommandBonus(id, value, beacon, kwargs['effect'], 'early') + + return locals() + +def effect7051(): + runTime = "early" + type = ("projected", "passive", "gang") + def handler(fit, beacon, context, **kwargs): + for x in range(1, 3): + if beacon.getModifiedItemAttr("warfareBuff{}ID".format(x)): + value = beacon.getModifiedItemAttr("warfareBuff{}Value".format(x)) + id = beacon.getModifiedItemAttr("warfareBuff{}ID".format(x)) + if id: + fit.addCommandBonus(id, value, beacon, kwargs['effect'], 'early') + + return locals() + +def effect7052(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Target Painter", "signatureRadiusBonus", + src.getModifiedItemAttr("targetPainterStrengthModifierFlagCruisers")) + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Target Painter", "maxRange", + src.getModifiedItemAttr("targetPainterRangeModifierFlagCruisers")) + + return locals() + +def effect7055(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Large Hybrid Turret"), "damageMultiplier", + src.getModifiedItemAttr("shipBonusRole7")) + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Large Projectile Turret"), "damageMultiplier", + src.getModifiedItemAttr("shipBonusRole7")) + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Large Energy Turret"), "damageMultiplier", + src.getModifiedItemAttr("shipBonusRole7")) + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Missiles"), "thermalDamage", + src.getModifiedItemAttr("shipBonusRole7")) + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Missiles"), "emDamage", + src.getModifiedItemAttr("shipBonusRole7")) + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Missiles"), "kineticDamage", + src.getModifiedItemAttr("shipBonusRole7")) + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Missiles"), "explosiveDamage", + src.getModifiedItemAttr("shipBonusRole7")) + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Torpedoes"), "emDamage", + src.getModifiedItemAttr("shipBonusRole7")) + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Torpedoes"), "kineticDamage", + src.getModifiedItemAttr("shipBonusRole7")) + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Torpedoes"), "explosiveDamage", + src.getModifiedItemAttr("shipBonusRole7")) + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Torpedoes"), "thermalDamage", + src.getModifiedItemAttr("shipBonusRole7")) + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Cruise Missiles"), "thermalDamage", + src.getModifiedItemAttr("shipBonusRole7")) + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Cruise Missiles"), "explosiveDamage", + src.getModifiedItemAttr("shipBonusRole7")) + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Cruise Missiles"), "kineticDamage", + src.getModifiedItemAttr("shipBonusRole7")) + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Cruise Missiles"), "emDamage", + src.getModifiedItemAttr("shipBonusRole7")) + + return locals() + +def effect7058(): + runTime = "early" + type = ("projected", "passive", "gang") + def handler(fit, beacon, context, **kwargs): + for x in range(1, 3): + if beacon.getModifiedItemAttr("warfareBuff{}ID".format(x)): + value = beacon.getModifiedItemAttr("warfareBuff{}Value".format(x)) + id = beacon.getModifiedItemAttr("warfareBuff{}ID".format(x)) + if id: + fit.addCommandBonus(id, value, beacon, kwargs['effect'], 'early') + + return locals() + +def effect7059(): + runTime = "early" + type = ("projected", "passive", "gang") + def handler(fit, beacon, context, **kwargs): + for x in range(1, 3): + if beacon.getModifiedItemAttr("warfareBuff{}ID".format(x)): + value = beacon.getModifiedItemAttr("warfareBuff{}Value".format(x)) + id = beacon.getModifiedItemAttr("warfareBuff{}ID".format(x)) + if id: + fit.addCommandBonus(id, value, beacon, kwargs['effect'], 'early') + + return locals() + +def effect706(): + type = "passive" + def handler(fit, src, context): + fit.ship.increaseItemAttr("warpFactor", src.getModifiedItemAttr("eliteBonusCovertOps1"), skill="Covert Ops") + + return locals() + +def effect7060(): + runTime = "early" + type = ("projected", "passive", "gang") + def handler(fit, beacon, context, **kwargs): + for x in range(1, 5): + if beacon.getModifiedItemAttr("warfareBuff{}ID".format(x)): + value = beacon.getModifiedItemAttr("warfareBuff{}Value".format(x)) + id = beacon.getModifiedItemAttr("warfareBuff{}ID".format(x)) + if id: + fit.addCommandBonus(id, value, beacon, kwargs['effect'], 'early') + + return locals() + +def effect7061(): + runTime = "early" + type = ("projected", "passive", "gang") + def handler(fit, beacon, context, **kwargs): + for x in range(1, 3): + if beacon.getModifiedItemAttr("warfareBuff{}ID".format(x)): + value = beacon.getModifiedItemAttr("warfareBuff{}Value".format(x)) + id = beacon.getModifiedItemAttr("warfareBuff{}ID".format(x)) + if id: + fit.addCommandBonus(id, value, beacon, kwargs['effect'], 'early') + + return locals() + +def effect7062(): + runTime = "early" + type = ("projected", "passive", "gang") + def handler(fit, beacon, context, **kwargs): + for x in range(1, 3): + if beacon.getModifiedItemAttr("warfareBuff{}ID".format(x)): + value = beacon.getModifiedItemAttr("warfareBuff{}Value".format(x)) + id = beacon.getModifiedItemAttr("warfareBuff{}ID".format(x)) + if id: + fit.addCommandBonus(id, value, beacon, kwargs['effect'], 'early') + + return locals() + +def effect7063(): + runTime = "early" + type = ("projected", "passive", "gang") + def handler(fit, beacon, context, **kwargs): + for x in range(1, 3): + if beacon.getModifiedItemAttr("warfareBuff{}ID".format(x)): + value = beacon.getModifiedItemAttr("warfareBuff{}Value".format(x)) + id = beacon.getModifiedItemAttr("warfareBuff{}ID".format(x)) + if id: + fit.addCommandBonus(id, value, beacon, kwargs['effect'], 'early') + + return locals() + +def effect7064(): + runTime = "early" + type = ("projected", "passive") + def handler(fit, beacon, context): + pass + + return locals() + +def effect7071(): + type = "passive" + def handler(fit, container, context): + level = container.level if "skill" in context else 1 + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Precursor Weapon"), + "damageMultiplier", container.getModifiedItemAttr("damageMultiplierBonus") * level) + + return locals() + +def effect7072(): + type = "passive" + def handler(fit, container, context): + level = container.level if "skill" in context else 1 + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Precursor Weapon"), + "damageMultiplier", container.getModifiedItemAttr("damageMultiplierBonus") * level) + + return locals() + +def effect7073(): + type = "passive" + def handler(fit, container, context): + level = container.level if "skill" in context else 1 + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Large Precursor Weapon"), + "damageMultiplier", container.getModifiedItemAttr("damageMultiplierBonus") * level) + + return locals() + +def effect7074(): + type = "passive" + def handler(fit, container, context): + level = container.level if "skill" in context else 1 + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Disintegrator Specialization"), + "damageMultiplier", container.getModifiedItemAttr("damageMultiplierBonus") * level) + + return locals() + +def effect7075(): + type = "passive" + def handler(fit, container, context): + level = container.level if "skill" in context else 1 + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Disintegrator Specialization"), + "damageMultiplier", container.getModifiedItemAttr("damageMultiplierBonus") * level) + + return locals() + +def effect7076(): + type = "passive" + def handler(fit, container, context): + level = container.level if "skill" in context else 1 + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Large Disintegrator Specialization"), + "damageMultiplier", container.getModifiedItemAttr("damageMultiplierBonus") * level) + + return locals() + +def effect7077(): + type = "passive" + def handler(fit, module, context): + fit.modules.filteredItemMultiply(lambda mod: mod.item.group.name == "Precursor Weapon", + "damageMultiplier", module.getModifiedItemAttr("damageMultiplier"), + stackingPenalties=True) + + return locals() + +def effect7078(): + type = "passive" + def handler(fit, module, context): + fit.modules.filteredItemMultiply(lambda mod: mod.item.group.name == "Precursor Weapon", + "speed", module.getModifiedItemAttr("speedMultiplier"), + stackingPenalties=True) + + return locals() + +def effect7079(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Large Precursor Weapon"), + "speed", ship.getModifiedItemAttr("shipBonusPBS1"), skill="Precursor Battleship") + + return locals() + +def effect7080(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Large Precursor Weapon"), + "damageMultiplier", ship.getModifiedItemAttr("shipBonusPBS2"), skill="Precursor Battleship") + + return locals() + +def effect7085(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Precursor Weapon"), + "damageMultiplier", ship.getModifiedItemAttr("shipBonusPC1"), skill="Precursor Cruiser") + + return locals() + +def effect7086(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Precursor Weapon"), + "trackingSpeed", ship.getModifiedItemAttr("shipBonusPC2"), skill="Precursor Cruiser") + + return locals() + +def effect7087(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Precursor Weapon"), + "maxRange", ship.getModifiedItemAttr("shipBonusPF2"), skill="Precursor Frigate") + + return locals() + +def effect7088(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Precursor Weapon"), + "damageMultiplier", ship.getModifiedItemAttr("shipBonusPF1"), skill="Precursor Frigate") + + return locals() + +def effect7091(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capacitor Emission Systems"), "capacitorNeed", src.getModifiedItemAttr("shipBonusRole2")) + + return locals() + +def effect7092(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Remote Armor Repair Systems"), + "capacitorNeed", ship.getModifiedItemAttr("shipBonusRole2")) + + return locals() + +def effect7093(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Energy Pulse Weapons"), + "capacitorNeed", ship.getModifiedItemAttr("shipBonusRole2")) + + return locals() + +def effect7094(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Remote Armor Repair Systems"), + "maxRange", ship.getModifiedItemAttr("shipBonusRole1")) + + return locals() + +def effect7097(): + type = "passive" + def handler(fit, skill, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Precursor Weapon", + "damageMultiplier", skill.getModifiedItemAttr("damageMultiplierBonus") * skill.level) + + return locals() + +def effect7111(): + runTime = "early" + type = ("projected", "passive") + def handler(fit, module, context): + fit.modules.filteredItemMultiply(lambda mod: mod.item.requiresSkill("Small Precursor Weapon"), + "damageMultiplier", module.getModifiedItemAttr("smallWeaponDamageMultiplier"), + stackingPenalties=True) + + return locals() + +def effect7112(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Neutralizer", "capacitorNeed", + src.getModifiedItemAttr("shipBonusRole2")) + + return locals() + +def effect7116(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Astrometrics"), "baseSensorStrength", + src.getModifiedItemAttr("eliteBonusReconShip2"), skill="Recon Ships") + + return locals() + +def effect7117(): + type = "passive" + def handler(fit, src, context): + fit.ship.boostItemAttr("warpSpeedMultiplier", src.getModifiedItemAttr("shipRoleBonusWarpSpeed")) + + return locals() + +def effect7118(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemIncrease(lambda mod: mod.item.requiresSkill("Small Precursor Weapon"), "damageMultiplierBonusPerCycle", + src.getModifiedItemAttr("eliteBonusCovertOps3"), skill="Covert Ops") + + return locals() + +def effect7119(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemIncrease(lambda mod: mod.item.requiresSkill("Medium Precursor Weapon"), "damageMultiplierBonusPerCycle", + src.getModifiedItemAttr("eliteBonusReconShip3"), skill="Recon Ships") + + return locals() + +def effect7142(): + type = "active" + def handler(fit, src, context): + fit.ship.increaseItemAttr("warpScrambleStatus", src.getModifiedItemAttr("warpScrambleStrength")) + fit.ship.boostItemAttr("mass", src.getModifiedItemAttr("massBonusPercentage"), stackingPenalties=True) + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Afterburner"), "speedFactor", + src.getModifiedItemAttr("speedFactorBonus"), stackingPenalties=True) + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Afterburner"), "speedBoostFactor", + src.getModifiedItemAttr("speedBoostFactorBonus")) + fit.modules.filteredItemIncrease(lambda mod: mod.item.requiresSkill("High Speed Maneuvering"), "activationBlocked", + src.getModifiedItemAttr("activationBlockedStrenght")) + fit.ship.boostItemAttr("maxVelocity", src.getModifiedItemAttr("maxVelocityBonus"), stackingPenalties=True) + + return locals() + +def effect7154(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Precursor Weapon"), + "damageMultiplier", ship.getModifiedItemAttr("shipBonusPD1"), + skill="Precursor Destroyer") + + return locals() + +def effect7155(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Precursor Weapon"), + "damageMultiplier", ship.getModifiedItemAttr("shipBonusPBC1"), + skill="Precursor Battlecruiser") + + return locals() + +def effect7156(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Precursor Weapon"), + "maxRange", ship.getModifiedItemAttr("maxRangeBonus")) + + return locals() + +def effect7157(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Precursor Weapon"), + "maxRange", ship.getModifiedItemAttr("shipBonusPD2"), + skill="Precursor Destroyer") + + return locals() + +def effect7158(): + type = "passive" + def handler(fit, ship, context): + fit.ship.boostItemAttr("armorKineticDamageResonance", ship.getModifiedItemAttr("shipBonusPBC2"), + skill="Precursor Battlecruiser") + + return locals() + +def effect7159(): + type = "passive" + def handler(fit, ship, context): + fit.ship.boostItemAttr("armorThermalDamageResonance", ship.getModifiedItemAttr("shipBonusPBC2"), + skill="Precursor Battlecruiser") + + return locals() + +def effect7160(): + type = "passive" + def handler(fit, ship, context): + fit.ship.boostItemAttr("armorEmDamageResonance", ship.getModifiedItemAttr("shipBonusPBC2"), + skill="Precursor Battlecruiser") + + return locals() + +def effect7161(): + type = "passive" + def handler(fit, ship, context): + fit.ship.boostItemAttr("armorExplosiveDamageResonance", ship.getModifiedItemAttr("shipBonusPBC2"), + skill="Precursor Battlecruiser") + + return locals() + +def effect7162(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Precursor Weapon"), + "maxRange", ship.getModifiedItemAttr("roleBonusCBC")) + + return locals() + +def effect7166(): + from eos.utils.spoolSupport import SpoolType, SpoolOptions, calculateSpoolup, resolveSpoolOptions + type = "projected", "active" + runTime = "late" + def handler(fit, container, context, **kwargs): + if "projected" in context: + repAmountBase = container.getModifiedItemAttr("armorDamageAmount") + cycleTime = container.getModifiedItemAttr("duration") / 1000.0 + repSpoolMax = container.getModifiedItemAttr("repairMultiplierBonusMax") + repSpoolPerCycle = container.getModifiedItemAttr("repairMultiplierBonusPerCycle") + defaultSpoolValue = 1 + spoolType, spoolAmount = resolveSpoolOptions(SpoolOptions(SpoolType.SCALE, defaultSpoolValue, False), container) + rps = repAmountBase * (1 + calculateSpoolup(repSpoolMax, repSpoolPerCycle, cycleTime, spoolType, spoolAmount)[0]) / cycleTime + rpsPreSpool = repAmountBase * (1 + calculateSpoolup(repSpoolMax, repSpoolPerCycle, cycleTime, SpoolType.SCALE, 0)[0]) / cycleTime + rpsFullSpool = repAmountBase * (1 + calculateSpoolup(repSpoolMax, repSpoolPerCycle, cycleTime, SpoolType.SCALE, 1)[0]) / cycleTime + fit.extraAttributes.increase("armorRepair", rps, **kwargs) + fit.extraAttributes.increase("armorRepairPreSpool", rpsPreSpool, **kwargs) + fit.extraAttributes.increase("armorRepairFullSpool", rpsFullSpool, **kwargs) + + return locals() + +def effect7167(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Remote Capacitor Transmitter", "maxRange", src.getModifiedItemAttr("shipBonusRole1")) + + return locals() + +def effect7168(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Mutadaptive Remote Armor Repairer", "maxRange", src.getModifiedItemAttr("shipBonusRole3")) + + return locals() + +def effect7169(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Mutadaptive Remote Armor Repairer", "armorDamageAmount", src.getModifiedItemAttr("shipBonusPC1"), skill="Precursor Cruiser") + + return locals() + +def effect7170(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Mutadaptive Remote Armor Repairer", "capacitorNeed", src.getModifiedItemAttr("shipBonusPC2"), skill="Precursor Cruiser") + + return locals() + +def effect7171(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Mutadaptive Remote Armor Repairer", "maxRange", src.getModifiedItemAttr("shipBonusPC1"), skill="Precursor Cruiser") + + return locals() + +def effect7172(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Mutadaptive Remote Armor Repairer", "capacitorNeed", src.getModifiedItemAttr("eliteBonusLogistics1"), skill="Logistics Cruisers") + + return locals() + +def effect7173(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Mutadaptive Remote Armor Repairer", "armorDamageAmount", src.getModifiedItemAttr("eliteBonusLogistics2"), skill="Logistics Cruisers") + + return locals() + +def effect7176(): + type = "passive" + def handler(fit, src, context): + fit.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Drones"), "damageMultiplier", + src.getModifiedItemAttr("damageMultiplierBonus")) + + return locals() + +def effect7177(): + type = "passive" + def handler(fit, src, context): + fit.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Drones"), "hp", + src.getModifiedItemAttr("hullHpBonus")) + fit.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Drones"), "armorHP", + src.getModifiedItemAttr("armorHpBonus")) + fit.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Drones"), "shieldCapacity", + src.getModifiedItemAttr("shieldCapacityBonus")) + + return locals() + +def effect7179(): + type = "passive" + def handler(fit, module, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Strip Miner", + "duration", module.getModifiedItemAttr("miningDurationMultiplier")) + + return locals() + +def effect7180(): + type = "passive" + def handler(fit, module, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Mining Laser", + "duration", module.getModifiedItemAttr("miningDurationMultiplier")) + + return locals() + +def effect7183(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Warp Scrambler", "maxRange", + src.getModifiedItemAttr("warpScrambleRangeBonus"), stackingPenalties=False) + + return locals() + +def effect726(): + type = "passive" + def handler(fit, ship, context): + if "shipBonusGI" in fit.ship.item.attributes: + bonusAttr = "shipBonusGI" + else: + bonusAttr = "shipBonusGI2" + fit.ship.boostItemAttr("capacity", ship.getModifiedItemAttr(bonusAttr), skill="Gallente Industrial") + + return locals() + +def effect727(): + type = "passive" + def handler(fit, ship, context): + fit.ship.boostItemAttr("capacity", ship.getModifiedItemAttr("shipBonusCI"), skill="Caldari Industrial") + + return locals() + +def effect728(): + type = "passive" + def handler(fit, ship, context): + fit.ship.boostItemAttr("capacity", ship.getModifiedItemAttr("shipBonusMI"), skill="Minmatar Industrial") + + return locals() + +def effect729(): + type = "passive" + def handler(fit, ship, context): + if "shipBonusGI" in fit.ship.item.attributes: + bonusAttr = "shipBonusGI" + else: + bonusAttr = "shipBonusGI2" + fit.ship.boostItemAttr("maxVelocity", ship.getModifiedItemAttr(bonusAttr), skill="Gallente Industrial") + + return locals() + +def effect730(): + type = "passive" + def handler(fit, ship, context): + fit.ship.boostItemAttr("maxVelocity", ship.getModifiedItemAttr("shipBonusCI"), skill="Caldari Industrial") + + return locals() + +def effect732(): + type = "passive" + def handler(fit, ship, context): + fit.ship.boostItemAttr("maxVelocity", ship.getModifiedItemAttr("shipBonusAI"), skill="Amarr Industrial") + + return locals() + +def effect736(): + type = "passive" + def handler(fit, ship, context): + fit.ship.boostItemAttr("capacitorCapacity", ship.getModifiedItemAttr("shipBonusAB2"), skill="Amarr Battleship") + + return locals() + +def effect744(): + type = "passive" + def handler(fit, container, context): + level = container.level if "skill" in context else 1 + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("CPU Management"), + "duration", container.getModifiedItemAttr("scanspeedBonus") * level) + + return locals() + +def effect754(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Hybrid Turret"), + "damageMultiplier", ship.getModifiedItemAttr("shipBonusCF"), skill="Caldari Frigate") + + return locals() + +def effect757(): + type = "passive" + def handler(fit, src, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Energy Turret"), "damageMultiplier", + src.getModifiedItemAttr("shipBonusAF"), skill="Amarr Frigate") + + return locals() + +def effect760(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Missile Launcher Operation"), + "speed", ship.getModifiedItemAttr("shipBonusCF2"), skill="Caldari Frigate") + + return locals() + +def effect763(): + type = "passive" + def handler(fit, container, context): + for dmgType in ("em", "kinetic", "explosive", "thermal"): + fit.modules.filteredChargeMultiply(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), + "%sDamage" % dmgType, + container.getModifiedItemAttr("missileDamageMultiplierBonus"), + stackingPenalties=True) + + return locals() + +def effect784(): + type = "passive" + def handler(fit, container, context): + level = container.level if "skill" in context else 1 + penalized = False if "skill" in context or "implant" in context or "booster" in context else True + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), + "explosionDelay", container.getModifiedItemAttr("maxFlightTimeBonus") * level, + stackingPenalties=penalized) + + return locals() + +def effect804(): + type = "passive" + def handler(fit, module, context): + rawAttr = module.item.getAttribute("capacitorNeed") + if rawAttr is not None and rawAttr >= 0: + module.boostItemAttr("capacitorNeed", module.getModifiedChargeAttr("capNeedBonus") or 0) + + return locals() + +def effect836(): + type = "passive" + def handler(fit, module, context): + fit.ship.boostItemAttr("capacity", module.getModifiedItemAttr("cargoCapacityBonus")) + + return locals() + +def effect848(): + type = "passive" + def handler(fit, skill, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Cloaking"), + "cloakingTargetingDelay", + skill.getModifiedItemAttr("cloakingTargetingDelayBonus") * skill.level) + + return locals() + +def effect854(): + type = "offline" + def handler(fit, module, context): + fit.ship.multiplyItemAttr("scanResolution", + module.getModifiedItemAttr("scanResolutionMultiplier"), + stackingPenalties=True, penaltyGroup="cloakingScanResolutionMultiplier") + + return locals() + +def effect856(): + type = "passive" + def handler(fit, container, context): + penalized = False if "skill" in context or "implant" in context else True + fit.ship.boostItemAttr("baseWarpSpeed", container.getModifiedItemAttr("WarpSBonus"), + stackingPenalties=penalized) + + return locals() + +def effect874(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Projectile Turret"), + "maxRange", ship.getModifiedItemAttr("shipBonusMF2"), skill="Minmatar Frigate") + + return locals() + +def effect882(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Hybrid Turret"), + "maxRange", ship.getModifiedItemAttr("shipBonusCF2"), skill="Caldari Frigate") + + return locals() + +def effect887(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Large Energy Turret"), + "speed", ship.getModifiedItemAttr("shipBonusAB2"), skill="Amarr Battleship") + + return locals() + +def effect889(): + type = "passive" + def handler(fit, module, context): + fit.modules.filteredItemMultiply(lambda mod: mod.item.requiresSkill("Missile Launcher Operation"), + "speed", module.getModifiedItemAttr("speedMultiplier"), + stackingPenalties=True) + + return locals() + +def effect89(): + type = "passive" + def handler(fit, module, context): + fit.modules.filteredItemMultiply(lambda mod: mod.item.group.name == "Projectile Weapon", + "speed", module.getModifiedItemAttr("speedMultiplier"), + stackingPenalties=True) + + return locals() + +def effect891(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Cruise Missiles"), + "maxVelocity", ship.getModifiedItemAttr("shipBonusCB3"), skill="Caldari Battleship") + + return locals() + +def effect892(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Torpedoes"), + "maxVelocity", ship.getModifiedItemAttr("shipBonusCB3"), skill="Caldari Battleship") + + return locals() + +def effect896(): + type = "passive" + def handler(fit, container, context): + fit.modules.filteredItemMultiply(lambda mod: mod.item.group.name == "Cloaking Device", + "cpu", container.getModifiedItemAttr("cloakingCpuNeedBonus")) + + return locals() + +def effect898(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), + "kineticDamage", ship.getModifiedItemAttr("shipBonusCF"), skill="Caldari Frigate") + + return locals() + +def effect899(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), + "kineticDamage", ship.getModifiedItemAttr("shipBonusCC"), skill="Caldari Cruiser") + + return locals() + +def effect900(): + type = "passive" + def handler(fit, ship, context): + fit.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Light Drone Operation"), + "thermalDamage", ship.getModifiedItemAttr("shipBonusGF2"), skill="Gallente Frigate") + + return locals() + +def effect907(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Energy Turret"), + "speed", ship.getModifiedItemAttr("shipBonusAC2"), skill="Amarr Cruiser") + + return locals() + +def effect909(): + type = "passive" + def handler(fit, ship, context): + fit.ship.boostItemAttr("armorHP", ship.getModifiedItemAttr("shipBonusAC2"), skill="Amarr Cruiser") + + return locals() + +def effect91(): + type = "passive" + def handler(fit, module, context): + fit.modules.filteredItemMultiply(lambda mod: mod.item.group.name == "Energy Weapon", + "damageMultiplier", module.getModifiedItemAttr("damageMultiplier"), + stackingPenalties=True) + + return locals() + +def effect912(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Missile Launcher Operation"), + "speed", ship.getModifiedItemAttr("shipBonusCC2"), skill="Caldari Cruiser") + + return locals() + +def effect918(): + type = "passive" + def handler(fit, ship, context): + fit.extraAttributes.increase("maxActiveDrones", ship.getModifiedItemAttr("shipBonusGC2"), skill="Gallente Cruiser") + + return locals() + +def effect919(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Hybrid Turret"), + "trackingSpeed", ship.getModifiedItemAttr("shipBonusGC2"), skill="Gallente Cruiser") + + return locals() + +def effect92(): + type = "passive" + def handler(fit, module, context): + fit.modules.filteredItemMultiply(lambda mod: mod.item.group.name == "Projectile Weapon", + "damageMultiplier", module.getModifiedItemAttr("damageMultiplier"), + stackingPenalties=True) + + return locals() + +def effect93(): + type = "passive" + def handler(fit, module, context): + fit.modules.filteredItemMultiply(lambda mod: mod.item.group.name == "Hybrid Weapon", + "damageMultiplier", module.getModifiedItemAttr("damageMultiplier"), + stackingPenalties=True) + + return locals() + +def effect95(): + type = "passive" + def handler(fit, module, context): + fit.modules.filteredItemMultiply(lambda mod: mod.item.group.name == "Energy Weapon", + "speed", module.getModifiedItemAttr("speedMultiplier"), + stackingPenalties=True) + + return locals() + +def effect958(): + type = "passive" + def handler(fit, ship, context): + fit.ship.boostItemAttr("armorEmDamageResonance", ship.getModifiedItemAttr("shipBonusAC2"), skill="Amarr Cruiser") + + return locals() + +def effect959(): + type = "passive" + def handler(fit, ship, context): + fit.ship.boostItemAttr("armorExplosiveDamageResonance", ship.getModifiedItemAttr("shipBonusAC2"), + skill="Amarr Cruiser") + + return locals() + +def effect96(): + type = "passive" + def handler(fit, module, context): + fit.modules.filteredItemMultiply(lambda mod: mod.item.group.name == "Hybrid Weapon", + "speed", module.getModifiedItemAttr("speedMultiplier"), + stackingPenalties=True) + + return locals() + +def effect960(): + type = "passive" + def handler(fit, ship, context): + fit.ship.boostItemAttr("armorKineticDamageResonance", ship.getModifiedItemAttr("shipBonusAC2"), + skill="Amarr Cruiser") + + return locals() + +def effect961(): + type = "passive" + def handler(fit, ship, context): + fit.ship.boostItemAttr("armorThermalDamageResonance", ship.getModifiedItemAttr("shipBonusAC2"), + skill="Amarr Cruiser") + + return locals() + +def effect968(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Projectile Turret"), + "damageMultiplier", ship.getModifiedItemAttr("shipBonusMC2"), + skill="Minmatar Cruiser") + + return locals() + +def effect980(): + type = "active" + runTime = "early" + def handler(fit, ship, context): + fit.extraAttributes["cloaked"] = True + + return locals() + +def effect989(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Hybrid Turret"), + "maxRange", ship.getModifiedItemAttr("eliteBonusGunship1"), skill="Assault Frigates") + + return locals() + +def effect991(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Energy Turret"), + "maxRange", ship.getModifiedItemAttr("eliteBonusGunship1"), skill="Assault Frigates") + + return locals() + +def effect996(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Hybrid Turret"), + "trackingSpeed", ship.getModifiedItemAttr("eliteBonusGunship2"), + skill="Assault Frigates") + + return locals() + +def effect998(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Projectile Turret"), + "falloff", ship.getModifiedItemAttr("eliteBonusGunship2"), skill="Assault Frigates") + + return locals() + +def effect999(): + type = "passive" + def handler(fit, ship, context): + fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Operation"), + "shieldBonus", ship.getModifiedItemAttr("eliteBonusGunship2"), + skill="Assault Frigates") + + return locals() + diff --git a/gui/copySelectDialog.py b/gui/copySelectDialog.py index 600526578..32c6385fe 100644 --- a/gui/copySelectDialog.py +++ b/gui/copySelectDialog.py @@ -26,6 +26,10 @@ import wx from service.port.eft import EFT_OPTIONS from service.port.multibuy import MULTIBUY_OPTIONS from service.settings import SettingsProvider +from service.port import EfsPort, Port +from service.const import PortMultiBuyOptions +from eos.db import getFit +from gui.utils.clipboard import toClipboard class CopySelectDialog(wx.Dialog): @@ -39,6 +43,17 @@ class CopySelectDialog(wx.Dialog): def __init__(self, parent): wx.Dialog.__init__(self, parent, id=wx.ID_ANY, title="Select a format", size=(-1, -1), style=wx.DEFAULT_DIALOG_STYLE) + + self.CopySelectDict = { + CopySelectDialog.copyFormatEft : self.exportEft, + CopySelectDialog.copyFormatXml : self.exportXml, + CopySelectDialog.copyFormatDna : self.exportDna, + CopySelectDialog.copyFormatEsi : self.exportEsi, + CopySelectDialog.copyFormatMultiBuy: self.exportMultiBuy, + CopySelectDialog.copyFormatEfs : self.exportEfs + } + + self.mainFrame = parent mainSizer = wx.BoxSizer(wx.VERTICAL) self.copyFormats = OrderedDict(( @@ -99,6 +114,29 @@ class CopySelectDialog(wx.Dialog): self.Fit() self.Center() + def Validate(self): + selected = self.GetSelected() + options = self.GetOptions() + + settings = SettingsProvider.getInstance().getSettings("pyfaExport") + settings["format"] = selected + settings["options"] = options + self.waitDialog = None + + def cb(text): + if self.waitDialog: + del self.waitDialog +q toClipboard(text) + self.EndModal(wx.ID_OK) + + export_options = options.get(selected) + if selected == CopySelectDialog.copyFormatMultiBuy and export_options.get(PortMultiBuyOptions.OPTIMIZE_PRICES, False): + self.waitDialog = wx.BusyInfo("Optimizing Prices", parent=self) + + self.CopySelectDict[selected](export_options, callback=cb) + + return False + def Selected(self, event): obj = event.GetEventObject() formatName = obj.GetLabel() @@ -119,3 +157,27 @@ class CopySelectDialog(wx.Dialog): for formatId in self.options: options[formatId] = {optId: ch.IsChecked() for optId, ch in self.options[formatId].items()} return options + + def exportEft(self, options, callback): + fit = getFit(self.mainFrame.getActiveFit()) + Port.exportEft(fit, options, callback) + + def exportDna(self, options, callback): + fit = getFit(self.mainFrame.getActiveFit()) + Port.exportDna(fit, callback) + + def exportEsi(self, options, callback): + fit = getFit(self.mainFrame.getActiveFit()) + Port.exportESI(fit, callback) + + def exportXml(self, options, callback): + fit = getFit(self.mainFrame.getActiveFit()) + Port.exportXml(None, fit, callback) + + def exportMultiBuy(self, options, callback): + fit = getFit(self.mainFrame.getActiveFit()) + Port.exportMultiBuy(fit, options, callback) + + def exportEfs(self, options, callback): + fit = getFit(self.mainFrame.getActiveFit()) + EfsPort.exportEfs(fit, 0, callback) \ No newline at end of file diff --git a/gui/mainFrame.py b/gui/mainFrame.py index c3aad91d0..3d17f9f65 100644 --- a/gui/mainFrame.py +++ b/gui/mainFrame.py @@ -37,7 +37,6 @@ import config import gui.globalEvents as GE from eos.config import gamedata_date, gamedata_version from eos.db.saveddata.loadDefaultDatabaseValues import DefaultDatabaseValues -from eos.db.saveddata.queries import getFit as db_getFit # import this to access override setting from eos.modifiedAttributeDict import ModifiedAttributeDict from gui import graphFrame @@ -64,11 +63,11 @@ from gui.setEditor import ImplantSetEditorDlg from gui.shipBrowser import ShipBrowser from gui.statsPane import StatsPane from gui.updateDialog import UpdateDialog -from gui.utils.clipboard import fromClipboard, toClipboard +from gui.utils.clipboard import fromClipboard from service.character import Character from service.esi import Esi from service.fit import Fit -from service.port import EfsPort, IPortUser, Port +from service.port import IPortUser, Port from service.price import Price from service.settings import HTMLExportSettings, SettingsProvider from service.update import Update @@ -708,30 +707,6 @@ class MainFrame(wx.Frame): else: self.marketBrowser.search.Focus() - def exportEft(self, options, callback): - fit = db_getFit(self.getActiveFit()) - Port.exportEft(fit, options, callback) - - def exportDna(self, options, callback): - fit = db_getFit(self.getActiveFit()) - Port.exportDna(fit, callback) - - def exportEsi(self, options, callback): - fit = db_getFit(self.getActiveFit()) - Port.exportESI(fit, callback) - - def exportXml(self, options, callback): - fit = db_getFit(self.getActiveFit()) - Port.exportXml(None, fit, callback) - - def exportMultiBuy(self, options, callback): - fit = db_getFit(self.getActiveFit()) - Port.exportMultiBuy(fit, options, callback) - - def exportEfs(self, options, callback): - fit = db_getFit(self.getActiveFit()) - EfsPort.exportEfs(fit, 0, callback) - def importFromClipboard(self, event): clipboard = fromClipboard() activeFit = self.getActiveFit() @@ -748,36 +723,8 @@ class MainFrame(wx.Frame): self._openAfterImport(importData) def exportToClipboard(self, event): - CopySelectDict = {CopySelectDialog.copyFormatEft: self.exportEft, - CopySelectDialog.copyFormatXml: self.exportXml, - CopySelectDialog.copyFormatDna: self.exportDna, - CopySelectDialog.copyFormatEsi: self.exportEsi, - CopySelectDialog.copyFormatMultiBuy: self.exportMultiBuy, - CopySelectDialog.copyFormatEfs: self.exportEfs} - dlg = CopySelectDialog(self) - btnPressed = dlg.ShowModal() - - def killDialog(): - try: - dlg.Destroy() - except RuntimeError: - pyfalog.error("Tried to destroy an object that doesn't exist in .") - - if btnPressed == wx.ID_OK: - selected = dlg.GetSelected() - options = dlg.GetOptions() - - settings = SettingsProvider.getInstance().getSettings("pyfaExport") - settings["format"] = selected - settings["options"] = options - - def cb(text): - toClipboard(text) - killDialog() - - CopySelectDict[selected](options.get(selected), callback=cb) - else: - killDialog() + with CopySelectDialog(self) as dlg: + dlg.ShowModal() def exportSkillsNeeded(self, event): """ Exports skills needed for active fit and active character """ diff --git a/scripts/effect_rename.py b/scripts/effect_rename.py new file mode 100644 index 000000000..98dbd175f --- /dev/null +++ b/scripts/effect_rename.py @@ -0,0 +1,100 @@ +#!/usr/bin/env python3 +#====================================================================== +# Copyright (C) 2010 Anton Vorobyov +# +# This file is part of eos. +# +# eos is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as +# published by the Free Software Foundation, either version 3 of +# the License, or (at your option) any later version. +# +# eos is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with eos. If not, see . +#====================================================================== +""" +Go through all effects and fill them with 'used by' comments. + +There're several big stages: +Stage 1. Gather all required data into 'global' dictionaries. We have +2 dictionaries per grouping type, one which lists groups per typeid, +and another which lists typeIDs per group. +Stage 2. Cycle through each effect. +Stage 2.1. Compose similar set of dictionaries like in stage 1, but +this time we take into consideration typeIDs affected by effect picked +in stage 2. +Stage 2.2. Create several lists (1 per grouping type) which will keep +IDs of these groups which will describe set of the typeIDs, and start +iterating. Each iteration one ID will be appended to any of the lists. +Stage 2.2.1. Compose score dictionaries per grouping type, and +calculate total score for given grouping type. +Stage 2.2.2. Pick grouping type with highest score, find winner group +inside grouping type, append its ID to corresponding list created in +stage 2.2. If score is less than certain value, stop iterating. If some +items are not covered by set of winners from lists, they'll be +presented as single items. +Stage 2.3. Print results to file if anything has been changed. + +Grouping types used are: +Groups (groupID of an item); +Categories (categoryID of groupID of an item); +Base types (variations, like they appear on eve's variation tab); +Market groups + variations (marketGroupID of an item, plus variations +of all items from given market group, excluding items with +marketGroupID). +Type names (various combinations of words taken from typeName of item). +""" + +import copy +import itertools +import os.path +import re +import sqlite3 +from optparse import OptionParser + +script_dir = os.path.dirname(__file__) + +# Form list of effects for processing +effects_path = os.path.join(script_dir, "..", "eos", "effects") + +usage = "usage: %prog --database=DB [--debug=DEBUG]" +parser = OptionParser(usage=usage) +parser.add_option("-d", "--database", help="path to eve cache data dump in \ + sqlite format, default to eve database file included in pyfa (../eve.db)", + type="string", default=os.path.join(script_dir, "..", "eve.db")) +parser.add_option("-e", "--effects", help="explicit comma-separated list of \ +effects to process", type="string", default="") +parser.add_option("-r", "--remove", help="remove effect files that are not \ +used by any items", action="store_true", dest="remove", default=False) +parser.add_option("-x", "--remove2", help="remove effect files that do not exist \ +in database", action="store_true", dest="remove2", default=False) +parser.add_option("-u", "--debug", help="debug level, 0 by default", + type="int", default=0) +(options, args) = parser.parse_args() + +# Connect to database and set up cursor +db = sqlite3.connect(os.path.expanduser(options.database)) +cursor = db.cursor() + +QUERY_ALLEFFECTS = 'SELECT effectID, effectName FROM dgmeffects' + + +# Compose list of effects w/o symbols which eos doesn't take into +# consideration, we'll use it to find proper effect IDs from file +# names +globalmap_effectnameeos_effectid = {} +globalmap_effectnameeos_effectnamedb = {} +STRIPSPEC = "[^A-Za-z0-9]" +cursor.execute(QUERY_ALLEFFECTS) +for row in cursor: + effectid = row[0] + effectnamedb = row[1] + effectnameeos = re.sub(STRIPSPEC, "", effectnamedb).lower() + if(os.path.isfile(os.path.join('..', 'eos','effects',effectnameeos+'.py'))): + os.rename(os.path.join('..', 'eos','effects',effectnameeos+'.py'), os.path.join('..', 'eos','effects','effect{}.py'.format(effectid))) + # There may be different effects with the same name, so form From 0b511af48a05b78630cf4f02ecff796801136aea Mon Sep 17 00:00:00 2001 From: Ryan Holmes Date: Tue, 19 Mar 2019 11:34:54 -0400 Subject: [PATCH 76/88] Remove weird typo, whoops --- gui/copySelectDialog.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gui/copySelectDialog.py b/gui/copySelectDialog.py index 32c6385fe..853fd3566 100644 --- a/gui/copySelectDialog.py +++ b/gui/copySelectDialog.py @@ -126,7 +126,7 @@ class CopySelectDialog(wx.Dialog): def cb(text): if self.waitDialog: del self.waitDialog -q toClipboard(text) + toClipboard(text) self.EndModal(wx.ID_OK) export_options = options.get(selected) From cc56611783986bbbd5589a3688008e842b3af6fd Mon Sep 17 00:00:00 2001 From: Ryan Holmes Date: Tue, 19 Mar 2019 11:36:30 -0400 Subject: [PATCH 77/88] add comment --- gui/copySelectDialog.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/gui/copySelectDialog.py b/gui/copySelectDialog.py index 853fd3566..985b98d01 100644 --- a/gui/copySelectDialog.py +++ b/gui/copySelectDialog.py @@ -115,6 +115,8 @@ class CopySelectDialog(wx.Dialog): self.Center() def Validate(self): + # Since this dialog is shown through aa ShowModal(), we hook into the Validate function to veto the closing of the dialog until we're ready. + # This always returns False, and when we're ready will EndModal() selected = self.GetSelected() options = self.GetOptions() From eea7220e3d5a19074f3a4e05b876585890c361f4 Mon Sep 17 00:00:00 2001 From: Ryan Holmes Date: Tue, 19 Mar 2019 11:47:55 -0400 Subject: [PATCH 78/88] remove incorrect files --- eos/effects/all.py | 18674 ------------------------------------- scripts/effect_rename.py | 100 - 2 files changed, 18774 deletions(-) delete mode 100644 eos/effects/all.py delete mode 100644 scripts/effect_rename.py diff --git a/eos/effects/all.py b/eos/effects/all.py deleted file mode 100644 index 291ed55f4..000000000 --- a/eos/effects/all.py +++ /dev/null @@ -1,18674 +0,0 @@ -def effect10(): - type = 'active' - def handler(fit, module, context): - module.reloadTime = 1000 - - return locals() - -def effect1001(): - type = "passive" - def handler(fit, ship, context): - fit.ship.boostItemAttr("rechargeRate", ship.getModifiedItemAttr("eliteBonusGunship2"), skill="Assault Frigates") - - return locals() - -def effect1003(): - type = "passive" - def handler(fit, skill, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Pulse Laser Specialization"), - "damageMultiplier", skill.getModifiedItemAttr("damageMultiplierBonus") * skill.level) - - return locals() - -def effect1004(): - type = "passive" - def handler(fit, skill, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Beam Laser Specialization"), - "damageMultiplier", skill.getModifiedItemAttr("damageMultiplierBonus") * skill.level) - - return locals() - -def effect1005(): - type = "passive" - def handler(fit, skill, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Blaster Specialization"), - "damageMultiplier", skill.getModifiedItemAttr("damageMultiplierBonus") * skill.level) - - return locals() - -def effect1006(): - type = "passive" - def handler(fit, skill, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Railgun Specialization"), - "damageMultiplier", skill.getModifiedItemAttr("damageMultiplierBonus") * skill.level) - - return locals() - -def effect1007(): - type = "passive" - def handler(fit, skill, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Autocannon Specialization"), - "damageMultiplier", skill.getModifiedItemAttr("damageMultiplierBonus") * skill.level) - - return locals() - -def effect1008(): - type = "passive" - def handler(fit, skill, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Artillery Specialization"), - "damageMultiplier", skill.getModifiedItemAttr("damageMultiplierBonus") * skill.level) - - return locals() - -def effect1009(): - type = "passive" - def handler(fit, skill, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Pulse Laser Specialization"), - "damageMultiplier", skill.getModifiedItemAttr("damageMultiplierBonus") * skill.level) - - return locals() - -def effect101(): - type = 'active', "projected" - def handler(fit, src, context): - src.reloadTime = 10000 - if "projected" in context: - if src.item.group.name == 'Missile Launcher Bomb': - moduleReactivationDelay = src.getModifiedItemAttr("moduleReactivationDelay") - speed = src.getModifiedItemAttr("speed") - neutAmount = src.getModifiedChargeAttr("energyNeutralizerAmount") - if moduleReactivationDelay and neutAmount and speed: - fit.addDrain(src, speed + moduleReactivationDelay, neutAmount, 0) - ecmStrengthBonus = src.getModifiedChargeAttr("scan{0}StrengthBonus".format(fit.scanType)) - if ecmStrengthBonus: - strModifier = 1 - ecmStrengthBonus / fit.scanStrength - fit.ecmProjectedStr *= strModifier - - return locals() - -def effect1010(): - type = "passive" - def handler(fit, skill, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Beam Laser Specialization"), - "damageMultiplier", skill.getModifiedItemAttr("damageMultiplierBonus") * skill.level) - - return locals() - -def effect1011(): - type = "passive" - def handler(fit, skill, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Blaster Specialization"), - "damageMultiplier", skill.getModifiedItemAttr("damageMultiplierBonus") * skill.level) - - return locals() - -def effect1012(): - type = "passive" - def handler(fit, skill, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Railgun Specialization"), - "damageMultiplier", skill.getModifiedItemAttr("damageMultiplierBonus") * skill.level) - - return locals() - -def effect1013(): - type = "passive" - def handler(fit, skill, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Autocannon Specialization"), - "damageMultiplier", skill.getModifiedItemAttr("damageMultiplierBonus") * skill.level) - - return locals() - -def effect1014(): - type = "passive" - def handler(fit, skill, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Artillery Specialization"), - "damageMultiplier", skill.getModifiedItemAttr("damageMultiplierBonus") * skill.level) - - return locals() - -def effect1015(): - type = "passive" - def handler(fit, skill, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Large Pulse Laser Specialization"), - "damageMultiplier", skill.getModifiedItemAttr("damageMultiplierBonus") * skill.level) - - return locals() - -def effect1016(): - type = "passive" - def handler(fit, skill, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Large Beam Laser Specialization"), - "damageMultiplier", skill.getModifiedItemAttr("damageMultiplierBonus") * skill.level) - - return locals() - -def effect1017(): - type = "passive" - def handler(fit, skill, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Large Blaster Specialization"), - "damageMultiplier", skill.getModifiedItemAttr("damageMultiplierBonus") * skill.level) - - return locals() - -def effect1018(): - type = "passive" - def handler(fit, skill, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Large Railgun Specialization"), - "damageMultiplier", skill.getModifiedItemAttr("damageMultiplierBonus") * skill.level) - - return locals() - -def effect1019(): - type = "passive" - def handler(fit, skill, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Large Autocannon Specialization"), - "damageMultiplier", skill.getModifiedItemAttr("damageMultiplierBonus") * skill.level) - - return locals() - -def effect1020(): - type = "passive" - def handler(fit, skill, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Large Artillery Specialization"), - "damageMultiplier", skill.getModifiedItemAttr("damageMultiplierBonus") * skill.level) - - return locals() - -def effect1021(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Hybrid Turret"), - "damageMultiplier", ship.getModifiedItemAttr("eliteBonusGunship2"), - skill="Assault Frigates") - - return locals() - -def effect1024(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Missiles"), - "maxVelocity", ship.getModifiedItemAttr("shipBonusCC2"), skill="Caldari Cruiser") - - return locals() - -def effect1025(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Light Missiles"), - "maxVelocity", ship.getModifiedItemAttr("shipBonusCC2"), skill="Caldari Cruiser") - - return locals() - -def effect1030(): - type = "passive" - def handler(fit, container, context): - level = container.level if "skill" in context else 1 - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Remote Armor Repair Systems"), - "capacitorNeed", container.getModifiedItemAttr("capNeedBonus") * level) - - return locals() - -def effect1033(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Remote Armor Repair Systems"), "capacitorNeed", - src.getModifiedItemAttr("eliteBonusLogistics1"), skill="Logistics Cruisers") - - return locals() - -def effect1034(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Remote Armor Repair Systems"), "capacitorNeed", - src.getModifiedItemAttr("eliteBonusLogistics2"), skill="Logistics Cruisers") - - return locals() - -def effect1035(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Emission Systems"), "capacitorNeed", - src.getModifiedItemAttr("eliteBonusLogistics2"), skill="Logistics Cruisers") - - return locals() - -def effect1036(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Emission Systems"), "capacitorNeed", - src.getModifiedItemAttr("eliteBonusLogistics1"), skill="Logistics Cruisers") - - return locals() - -def effect1046(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Remote Armor Repair Systems"), "maxRange", - src.getModifiedItemAttr("shipBonusGC"), skill="Gallente Cruiser") - - return locals() - -def effect1047(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Remote Armor Repair Systems"), "maxRange", - src.getModifiedItemAttr("shipBonusAC2"), skill="Amarr Cruiser") - - return locals() - -def effect1048(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Emission Systems"), "maxRange", - src.getModifiedItemAttr("shipBonusCC"), skill="Caldari Cruiser") - - return locals() - -def effect1049(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Emission Systems"), "maxRange", - src.getModifiedItemAttr("shipBonusMC2"), skill="Minmatar Cruiser") - - return locals() - -def effect1056(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Hybrid Turret"), - "maxRange", ship.getModifiedItemAttr("eliteBonusHeavyGunship1"), - skill="Heavy Assault Cruisers") - - return locals() - -def effect1057(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Projectile Turret"), - "maxRange", ship.getModifiedItemAttr("eliteBonusHeavyGunship1"), - skill="Heavy Assault Cruisers") - - return locals() - -def effect1058(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Energy Turret"), - "maxRange", ship.getModifiedItemAttr("eliteBonusHeavyGunship1"), - skill="Heavy Assault Cruisers") - - return locals() - -def effect1060(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Projectile Turret"), - "falloff", ship.getModifiedItemAttr("eliteBonusHeavyGunship1"), - skill="Heavy Assault Cruisers") - - return locals() - -def effect1061(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Hybrid Turret"), - "damageMultiplier", ship.getModifiedItemAttr("eliteBonusHeavyGunship2"), - skill="Heavy Assault Cruisers") - - return locals() - -def effect1062(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Energy Turret"), - "damageMultiplier", ship.getModifiedItemAttr("eliteBonusHeavyGunship2"), - skill="Heavy Assault Cruisers") - - return locals() - -def effect1063(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Projectile Turret"), - "trackingSpeed", ship.getModifiedItemAttr("eliteBonusHeavyGunship2"), - skill="Heavy Assault Cruisers") - - return locals() - -def effect1080(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Hybrid Turret"), - "falloff", ship.getModifiedItemAttr("eliteBonusHeavyGunship1"), - skill="Heavy Assault Cruisers") - - return locals() - -def effect1081(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Missiles"), - "explosionDelay", ship.getModifiedItemAttr("eliteBonusHeavyGunship1"), - skill="Heavy Assault Cruisers") - - return locals() - -def effect1082(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Light Missiles"), - "explosionDelay", ship.getModifiedItemAttr("eliteBonusHeavyGunship1"), - skill="Heavy Assault Cruisers") - - return locals() - -def effect1084(): - type = "passive" - def handler(fit, ship, context): - fit.extraAttributes.increase("droneControlRange", ship.getModifiedItemAttr("eliteBonusHeavyGunship1"), - skill="Heavy Assault Cruisers") - - return locals() - -def effect1087(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Projectile Turret"), - "damageMultiplier", ship.getModifiedItemAttr("eliteBonusHeavyGunship2"), - skill="Heavy Assault Cruisers") - - return locals() - -def effect1099(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Projectile Turret"), - "trackingSpeed", ship.getModifiedItemAttr("shipBonusMF2"), skill="Minmatar Frigate") - - return locals() - -def effect1176(): - type = "passive" - def handler(fit, container, context): - level = container.level if "skill" in context else 1 - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Propulsion Module", - "speedFactor", container.getModifiedItemAttr("speedFBonus") * level) - - return locals() - -def effect1179(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Energy Turret"), - "damageMultiplier", ship.getModifiedItemAttr("eliteBonusGunship2"), - skill="Assault Frigates") - - return locals() - -def effect118(): - type = "passive" - def handler(fit, module, context): - fit.ship.increaseItemAttr("maxLockedTargets", module.getModifiedItemAttr("maxLockedTargetsBonus")) - - return locals() - -def effect1181(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Remote Capacitor Transmitter", - "capacitorNeed", ship.getModifiedItemAttr("eliteBonusLogistics1"), - skill="Logistics Cruisers") - - return locals() - -def effect1182(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Remote Capacitor Transmitter", - "maxRange", ship.getModifiedItemAttr("shipBonusAC"), skill="Amarr Cruiser") - - return locals() - -def effect1183(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Remote Capacitor Transmitter", - "capacitorNeed", ship.getModifiedItemAttr("eliteBonusLogistics2"), - skill="Logistics Cruisers") - - return locals() - -def effect1184(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Remote Capacitor Transmitter", - "maxRange", ship.getModifiedItemAttr("shipBonusCC2"), skill="Caldari Cruiser") - - return locals() - -def effect1185(): - type = "passive" - def handler(fit, implant, context): - fit.ship.boostItemAttr("signatureRadius", implant.getModifiedItemAttr("signatureRadiusBonus")) - - return locals() - -def effect1190(): - type = "passive" - def handler(fit, container, context): - level = container.level if "skill" in context else 1 - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Ice Harvesting"), - "duration", container.getModifiedItemAttr("iceHarvestCycleBonus") * level) - - return locals() - -def effect1200(): - type = "passive" - def handler(fit, module, context): - module.multiplyItemAttr("specialtyMiningAmount", - module.getModifiedChargeAttr("specialisationAsteroidYieldMultiplier")) - - return locals() - -def effect1212(): - type = "passive" - runTime = "late" - def handler(fit, module, context): - module.preAssignItemAttr("specialtyMiningAmount", module.getModifiedItemAttr("miningAmount")) - - return locals() - -def effect1215(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Nosferatu", - "powerTransferAmount", ship.getModifiedItemAttr("shipBonusAF"), skill="Amarr Frigate") - - return locals() - -def effect1218(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Hybrid Turret"), - "damageMultiplier", ship.getModifiedItemAttr("shipBonusRole7")) - - return locals() - -def effect1219(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Nosferatu", - "powerTransferAmount", ship.getModifiedItemAttr("shipBonusAB"), - skill="Amarr Battleship") - - return locals() - -def effect1220(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Nosferatu", - "powerTransferAmount", ship.getModifiedItemAttr("shipBonusAC"), skill="Amarr Cruiser") - - return locals() - -def effect1221(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Stasis Web", - "maxRange", ship.getModifiedItemAttr("shipBonusMB"), skill="Minmatar Battleship") - - return locals() - -def effect1222(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Stasis Web", - "maxRange", ship.getModifiedItemAttr("shipBonusMC2"), skill="Minmatar Cruiser") - - return locals() - -def effect1228(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Projectile Turret"), - "trackingSpeed", ship.getModifiedItemAttr("shipBonusGF"), skill="Gallente Frigate") - - return locals() - -def effect1230(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), - "maxVelocity", ship.getModifiedItemAttr("shipBonusRole7")) - - return locals() - -def effect1232(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Projectile Turret"), - "speed", ship.getModifiedItemAttr("shipBonusRole7")) - - return locals() - -def effect1233(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Hybrid Turret"), - "damageMultiplier", ship.getModifiedItemAttr("shipBonusRole7")) - - return locals() - -def effect1234(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Light Missiles"), - "maxVelocity", ship.getModifiedItemAttr("shipBonusRole7")) - - return locals() - -def effect1239(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Large Projectile Turret"), - "speed", ship.getModifiedItemAttr("shipBonusRole7")) - - return locals() - -def effect1240(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Large Hybrid Turret"), - "damageMultiplier", ship.getModifiedItemAttr("shipBonusRole7")) - - return locals() - -def effect1255(): - runTime = "early" - type = "passive" - def handler(fit, implant, context): - fit.appliedImplants.filteredItemMultiply(lambda mod: mod.item.group.name == "Cyberimplant", - "durationBonus", implant.getModifiedItemAttr("implantSetBloodraider")) - - return locals() - -def effect1256(): - type = "passive" - def handler(fit, implant, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capacitor Emission Systems"), - "duration", implant.getModifiedItemAttr("durationBonus")) - - return locals() - -def effect1261(): - runTime = "early" - type = "passive" - def handler(fit, implant, context): - fit.appliedImplants.filteredItemMultiply(lambda mod: mod.item.group.name == "Cyberimplant", - "velocityBonus", implant.getModifiedItemAttr("implantSetSerpentis")) - - return locals() - -def effect1264(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Hybrid Turret"), - "trackingSpeed", ship.getModifiedItemAttr("eliteBonusInterceptor2"), - skill="Interceptors") - - return locals() - -def effect1268(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Energy Turret"), - "trackingSpeed", ship.getModifiedItemAttr("eliteBonusInterceptor2"), - skill="Interceptors") - - return locals() - -def effect1281(): - type = "passive" - def handler(fit, container, context): - penalized = "implant" not in context - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Repair Systems"), - "armorDamageAmount", container.getModifiedItemAttr("repairBonus"), - stackingPenalties=penalized) - - return locals() - -def effect1318(): - type = "passive" - def handler(fit, container, context): - groups = ("ECM", "Burst Jammer") - level = container.level if "skill" in context else 1 - for scanType in ("Gravimetric", "Ladar", "Magnetometric", "Radar"): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name in groups, - "scan{0}StrengthBonus".format(scanType), - container.getModifiedItemAttr("scanSkillEwStrengthBonus") * level, - stackingPenalties=False if "skill" in context else True) - - return locals() - -def effect1360(): - type = "passive" - def handler(fit, container, context): - level = container.level if "skill" in context else 1 - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Sensor Linking"), - "capacitorNeed", container.getModifiedItemAttr("capNeedBonus") * level) - - return locals() - -def effect1361(): - type = "passive" - def handler(fit, container, context): - level = container.level if "skill" in context else 1 - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Weapon Disruption"), - "capacitorNeed", container.getModifiedItemAttr("capNeedBonus") * level) - - return locals() - -def effect1370(): - type = "passive" - def handler(fit, container, context): - level = container.level if "skill" in context else 1 - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Target Painting"), - "capacitorNeed", container.getModifiedItemAttr("capNeedBonus") * level) - - return locals() - -def effect1372(): - type = "passive" - def handler(fit, container, context): - level = container.level if "skill" in context else 1 - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "ECM", - "capacitorNeed", container.getModifiedItemAttr("capNeedBonus") * level) - - return locals() - -def effect1395(): - type = "passive" - def handler(fit, container, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Operation"), - "shieldBonus", container.getModifiedItemAttr("shieldBoostMultiplier")) - - return locals() - -def effect1397(): - runTime = "early" - type = "passive" - def handler(fit, implant, context): - fit.appliedImplants.filteredItemMultiply(lambda mod: mod.item.group.name == "Cyberimplant", - "shieldBoostMultiplier", implant.getModifiedItemAttr("implantSetGuristas")) - - return locals() - -def effect1409(): - type = "passive" - def handler(fit, container, context): - level = container.level if "skill" in context else 1 - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Astrometrics"), - "duration", container.getModifiedItemAttr("durationBonus") * level) - - return locals() - -def effect1410(): - type = "passive" - def handler(fit, container, context): - level = container.level if "skill" in context else 1 - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Propulsion Jamming"), - "capacitorNeed", container.getModifiedItemAttr("capNeedBonus") * level) - - return locals() - -def effect1412(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Large Hybrid Turret"), - "maxRange", ship.getModifiedItemAttr("shipBonusCB"), skill="Caldari Battleship") - - return locals() - -def effect1434(): - type = "passive" - def handler(fit, ship, context): - for sensorType in ("Gravimetric", "Ladar", "Magnetometric", "Radar"): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Electronic Warfare"), - "scan{0}StrengthBonus".format(sensorType), - ship.getModifiedItemAttr("shipBonusCB"), stackingPenalties=True, - skill="Caldari Battleship") - - return locals() - -def effect1441(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "ECM", - "maxRange", ship.getModifiedItemAttr("shipBonusCB3"), skill="Caldari Battleship") - - return locals() - -def effect1442(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "ECM", - "maxRange", ship.getModifiedItemAttr("shipBonusCC2"), skill="Caldari Cruiser") - - return locals() - -def effect1443(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "ECM", - "capacitorNeed", ship.getModifiedItemAttr("shipBonusCC"), skill="Caldari Cruiser") - - return locals() - -def effect1445(): - type = "passive" - def handler(fit, container, context): - level = container.level if "skill" in context else 1 - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Sensor Linking"), - "maxRange", container.getModifiedItemAttr("rangeSkillBonus") * level, - stackingPenalties="skill" not in context) - - return locals() - -def effect1446(): - type = "passive" - def handler(fit, container, context): - level = container.level if "skill" in context else 1 - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Target Painter", - "maxRange", container.getModifiedItemAttr("rangeSkillBonus") * level, - stackingPenalties="skill" not in context) - - return locals() - -def effect1448(): - type = "passive" - def handler(fit, container, context): - level = container.level if "skill" in context else 1 - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Weapon Disruptor", - "maxRange", container.getModifiedItemAttr("rangeSkillBonus") * level, - stackingPenalties="skill" not in context) - - return locals() - -def effect1449(): - type = "passive" - def handler(fit, skill, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Sensor Linking"), - "falloffEffectiveness", skill.getModifiedItemAttr("falloffBonus") * skill.level) - - return locals() - -def effect1450(): - type = "passive" - def handler(fit, skill, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Target Painter", - "falloffEffectiveness", skill.getModifiedItemAttr("falloffBonus") * skill.level) - - return locals() - -def effect1451(): - type = "passive" - def handler(fit, skill, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Weapon Disruptor", - "falloffEffectiveness", skill.getModifiedItemAttr("falloffBonus") * skill.level) - - return locals() - -def effect1452(): - type = "passive" - def handler(fit, container, context): - level = container.level if "skill" in context else 1 - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "ECM", - "maxRange", container.getModifiedItemAttr("rangeSkillBonus") * level, - stackingPenalties="skill" not in context and "implant" not in context) - - return locals() - -def effect1453(): - type = "passive" - def handler(fit, skill, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "ECM", - "falloffEffectiveness", skill.getModifiedItemAttr("falloffBonus") * skill.level) - - return locals() - -def effect1472(): - type = "passive" - def handler(fit, container, context): - level = container.level if "skill" in context else 1 - penalize = False if "skill" in context or "implant" in context else True - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), - "aoeCloudSize", container.getModifiedItemAttr("aoeCloudSizeBonus") * level, - stackingPenalties=penalize) - - return locals() - -def effect1500(): - type = "passive" - def handler(fit, container, context): - level = container.level if "skill" in context else 1 - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Operation"), - "capacitorNeed", container.getModifiedItemAttr("shieldBoostCapacitorBonus") * level) - - return locals() - -def effect1550(): - type = "passive" - def handler(fit, skill, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Target Painter", - "signatureRadiusBonus", - skill.getModifiedItemAttr("scanSkillTargetPaintStrengthBonus") * skill.level) - - return locals() - -def effect1551(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Target Painter", - "signatureRadiusBonus", ship.getModifiedItemAttr("shipBonusMF2"), - skill="Minmatar Frigate") - - return locals() - -def effect157(): - type = "passive" - def handler(fit, container, context): - level = container.level if "skill" in context else 1 - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Large Hybrid Turret"), - "damageMultiplier", container.getModifiedItemAttr("damageMultiplierBonus") * level) - - return locals() - -def effect1577(): - runTime = "early" - type = "passive" - def handler(fit, implant, context): - fit.appliedImplants.filteredItemMultiply( - lambda implant: "signatureRadiusBonus" in implant.itemModifiedAttributes and - "implantSetAngel" in implant.itemModifiedAttributes, - "signatureRadiusBonus", - implant.getModifiedItemAttr("implantSetAngel")) - - return locals() - -def effect1579(): - runTime = "early" - type = "passive" - def handler(fit, implant, context): - fit.appliedImplants.filteredItemMultiply(lambda target: target.item.requiresSkill("Cybernetics"), - "armorHpBonus", implant.getModifiedItemAttr("implantSetSansha") or 1) - - return locals() - -def effect1581(): - type = "passive" - def handler(fit, skill, context): - fit.ship.boostItemAttr("jumpDriveRange", skill.getModifiedItemAttr("jumpDriveRangeBonus") * skill.level) - - return locals() - -def effect1585(): - type = "passive" - def handler(fit, skill, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capital Energy Turret"), - "damageMultiplier", skill.getModifiedItemAttr("damageMultiplierBonus") * skill.level) - - return locals() - -def effect1586(): - type = "passive" - def handler(fit, skill, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capital Projectile Turret"), - "damageMultiplier", skill.getModifiedItemAttr("damageMultiplierBonus") * skill.level) - - return locals() - -def effect1587(): - type = "passive" - def handler(fit, skill, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capital Hybrid Turret"), - "damageMultiplier", skill.getModifiedItemAttr("damageMultiplierBonus") * skill.level) - - return locals() - -def effect1588(): - type = "passive" - def handler(fit, container, context): - level = container.level if "skill" in context else 1 - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("XL Torpedoes"), - "kineticDamage", container.getModifiedItemAttr("damageMultiplierBonus") * level) - - return locals() - -def effect159(): - type = "passive" - def handler(fit, container, context): - level = container.level if "skill" in context else 1 - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Energy Turret"), - "damageMultiplier", container.getModifiedItemAttr("damageMultiplierBonus") * level) - - return locals() - -def effect1590(): - type = "passive" - def handler(fit, container, context): - level = container.level if "skill" in context else 1 - penalize = False if "skill" in context or "implant" in context else True - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), - "aoeVelocity", container.getModifiedItemAttr("aoeVelocityBonus") * level, - stackingPenalties=penalize) - - return locals() - -def effect1592(): - type = "passive" - def handler(fit, container, context): - level = container.level if "skill" in context else 1 - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("XL Torpedoes"), - "emDamage", container.getModifiedItemAttr("damageMultiplierBonus") * level) - - return locals() - -def effect1593(): - type = "passive" - def handler(fit, container, context): - level = container.level if "skill" in context else 1 - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("XL Torpedoes"), - "explosiveDamage", container.getModifiedItemAttr("damageMultiplierBonus") * level) - - return locals() - -def effect1594(): - type = "passive" - def handler(fit, container, context): - level = container.level if "skill" in context else 1 - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("XL Torpedoes"), - "thermalDamage", container.getModifiedItemAttr("damageMultiplierBonus") * level) - - return locals() - -def effect1595(): - type = "passive" - def handler(fit, src, context): - mod = src.level if "skill" in context else 1 - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), - "emDamage", src.getModifiedItemAttr("damageMultiplierBonus") * mod) - - return locals() - -def effect1596(): - type = "passive" - def handler(fit, src, context): - mod = src.level if "skill" in context else 1 - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), - "explosiveDamage", src.getModifiedItemAttr("damageMultiplierBonus") * mod) - - return locals() - -def effect1597(): - type = "passive" - def handler(fit, src, context): - mod = src.level if "skill" in context else 1 - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), - "kineticDamage", src.getModifiedItemAttr("damageMultiplierBonus") * mod) - - return locals() - -def effect160(): - type = "passive" - def handler(fit, container, context): - level = container.level if "skill" in context else 1 - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Hybrid Turret"), - "damageMultiplier", container.getModifiedItemAttr("damageMultiplierBonus") * level) - - return locals() - -def effect161(): - type = "passive" - def handler(fit, container, context): - level = container.level if "skill" in context else 1 - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Projectile Turret"), - "damageMultiplier", container.getModifiedItemAttr("damageMultiplierBonus") * level) - - return locals() - -def effect1615(): - type = "passive" - def handler(fit, ship, context): - skillName = "Advanced Spaceship Command" - skill = fit.character.getSkill(skillName) - fit.ship.boostItemAttr("agility", skill.getModifiedItemAttr("agilityBonus"), skill=skillName) - - return locals() - -def effect1616(): - type = "passive" - def handler(fit, skill, context): - if fit.ship.item.requiresSkill("Capital Ships"): - fit.ship.boostItemAttr("agility", skill.getModifiedItemAttr("agilityBonus") * skill.level) - - return locals() - -def effect1617(): - type = "passive" - def handler(fit, src, context): - fit.ship.multiplyItemAttr("agility", src.getModifiedItemAttr("advancedCapitalAgility"), stackingPenalties=True) - - return locals() - -def effect162(): - type = "passive" - def handler(fit, container, context): - level = container.level if "skill" in context else 1 - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Large Energy Turret"), - "damageMultiplier", container.getModifiedItemAttr("damageMultiplierBonus") * level) - - return locals() - -def effect1634(): - type = "passive" - def handler(fit, container, context): - level = container.level if "skill" in context else 1 - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capital Shield Operation"), - "capacitorNeed", container.getModifiedItemAttr("shieldBoostCapacitorBonus") * level) - - return locals() - -def effect1635(): - type = "passive" - def handler(fit, container, context): - level = container.level if "skill" in context else 1 - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capital Repair Systems"), - "duration", container.getModifiedItemAttr("durationSkillBonus") * level, - stackingPenalties="skill" not in context) - - return locals() - -def effect1638(): - type = "passive" - def handler(fit, skill, context): - fit.modules.filteredItemBoost( - lambda mod: mod.item.requiresSkill("Gunnery") or mod.item.requiresSkill("Missile Launcher Operation"), - "power", skill.getModifiedItemAttr("powerNeedBonus") * skill.level) - - return locals() - -def effect1643(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill("Armored Command"), "warfareBuff2Multiplier", - src.getModifiedItemAttr("mindlinkBonus")) - fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill("Armored Command"), "warfareBuff1Multiplier", - src.getModifiedItemAttr("mindlinkBonus")) - fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill("Armored Command"), "warfareBuff4Multiplier", - src.getModifiedItemAttr("mindlinkBonus")) - fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill("Armored Command"), "warfareBuff3Multiplier", - src.getModifiedItemAttr("mindlinkBonus")) - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Armored Command"), "buffDuration", - src.getModifiedItemAttr("mindlinkBonus")) - - return locals() - -def effect1644(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill("Skirmish Command"), "warfareBuff3Multiplier", - src.getModifiedItemAttr("mindlinkBonus")) - fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill("Skirmish Command"), "warfareBuff4Multiplier", - src.getModifiedItemAttr("mindlinkBonus")) - fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill("Skirmish Command"), "warfareBuff2Multiplier", - src.getModifiedItemAttr("mindlinkBonus")) - fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill("Skirmish Command"), "warfareBuff1Multiplier", - src.getModifiedItemAttr("mindlinkBonus")) - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Skirmish Command"), "buffDuration", - src.getModifiedItemAttr("mindlinkBonus")) - - return locals() - -def effect1645(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill("Shield Command"), "warfareBuff4Multiplier", - src.getModifiedItemAttr("mindlinkBonus")) - fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill("Shield Command"), "warfareBuff3Multiplier", - src.getModifiedItemAttr("mindlinkBonus")) - fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill("Shield Command"), "warfareBuff2Multiplier", - src.getModifiedItemAttr("mindlinkBonus")) - fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill("Shield Command"), "warfareBuff1Multiplier", - src.getModifiedItemAttr("mindlinkBonus")) - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Command"), "buffDuration", - src.getModifiedItemAttr("mindlinkBonus")) - - return locals() - -def effect1646(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill("Information Command"), "warfareBuff4Multiplier", - src.getModifiedItemAttr("mindlinkBonus")) - fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill("Information Command"), "warfareBuff3Multiplier", - src.getModifiedItemAttr("mindlinkBonus")) - fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill("Information Command"), "warfareBuff1Multiplier", - src.getModifiedItemAttr("mindlinkBonus")) - fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill("Information Command"), "warfareBuff2Multiplier", - src.getModifiedItemAttr("mindlinkBonus")) - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Information Command"), "buffDuration", - src.getModifiedItemAttr("mindlinkBonus")) - - return locals() - -def effect1650(): - type = "passive" - def handler(fit, skill, context): - amount = -skill.getModifiedItemAttr("consumptionQuantityBonus") - fit.modules.filteredItemIncrease(lambda mod: mod.item.requiresSkill(skill), - "consumptionQuantity", amount * skill.level) - - return locals() - -def effect1657(): - type = "passive" - def handler(fit, src, context): - mod = src.level if "skill" in context else 1 - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), - "thermalDamage", src.getModifiedItemAttr("damageMultiplierBonus") * mod) - - return locals() - -def effect1668(): - type = "passive" - def handler(fit, ship, context): - fit.ship.boostItemAttr("capacity", ship.getModifiedItemAttr("freighterBonusA2"), skill="Amarr Freighter") - - return locals() - -def effect1669(): - type = "passive" - def handler(fit, ship, context): - fit.ship.boostItemAttr("capacity", ship.getModifiedItemAttr("freighterBonusC2"), skill="Caldari Freighter") - - return locals() - -def effect1670(): - type = "passive" - def handler(fit, ship, context): - fit.ship.boostItemAttr("capacity", ship.getModifiedItemAttr("freighterBonusG2"), skill="Gallente Freighter") - - return locals() - -def effect1671(): - type = "passive" - def handler(fit, ship, context): - fit.ship.boostItemAttr("capacity", ship.getModifiedItemAttr("freighterBonusM2"), skill="Minmatar Freighter") - - return locals() - -def effect1672(): - type = "passive" - def handler(fit, ship, context): - fit.ship.boostItemAttr("maxVelocity", ship.getModifiedItemAttr("freighterBonusA1"), skill="Amarr Freighter") - - return locals() - -def effect1673(): - type = "passive" - def handler(fit, ship, context): - fit.ship.boostItemAttr("maxVelocity", ship.getModifiedItemAttr("freighterBonusC1"), skill="Caldari Freighter") - - return locals() - -def effect1674(): - type = "passive" - def handler(fit, ship, context): - fit.ship.boostItemAttr("maxVelocity", ship.getModifiedItemAttr("freighterBonusG1"), skill="Gallente Freighter") - - return locals() - -def effect1675(): - type = "passive" - def handler(fit, ship, context): - fit.ship.boostItemAttr("maxVelocity", ship.getModifiedItemAttr("freighterBonusM1"), skill="Minmatar Freighter") - - return locals() - -def effect17(): - type = "passive" - grouped = True - def handler(fit, container, context): - miningDroneAmountPercent = container.getModifiedItemAttr("miningDroneAmountPercent") - if (miningDroneAmountPercent is None) or (miningDroneAmountPercent == 0): - pass - else: - container.multiplyItemAttr("miningAmount", miningDroneAmountPercent / 100) - - return locals() - -def effect172(): - type = "passive" - def handler(fit, container, context): - level = container.level if "skill" in context else 1 - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Energy Turret"), - "damageMultiplier", container.getModifiedItemAttr("damageMultiplierBonus") * level) - - return locals() - -def effect1720(): - type = "passive" - def handler(fit, module, context): - fit.modules.filteredItemBoost( - lambda mod: mod.item.requiresSkill("Shield Operation") or mod.item.requiresSkill("Capital Shield Operation"), - "shieldBonus", module.getModifiedItemAttr("shieldBoostMultiplier"), - stackingPenalties=True) - - return locals() - -def effect1722(): - type = "passive" - def handler(fit, skill, context): - fit.ship.boostItemAttr("jumpDriveCapacitorNeed", - skill.getModifiedItemAttr("jumpDriveCapacitorNeedBonus") * skill.level) - - return locals() - -def effect173(): - type = "passive" - def handler(fit, container, context): - level = container.level if "skill" in context else 1 - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Hybrid Turret"), - "damageMultiplier", container.getModifiedItemAttr("damageMultiplierBonus") * level) - - return locals() - -def effect1730(): - type = "passive" - def handler(fit, skill, context): - fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill(skill), - "damageMultiplier", skill.getModifiedItemAttr("damageMultiplierBonus") * skill.level) - - return locals() - -def effect1738(): - type = "active" - def handler(fit, module, context): - pass - - return locals() - -def effect174(): - type = "passive" - def handler(fit, container, context): - level = container.level if "skill" in context else 1 - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Projectile Turret"), - "damageMultiplier", container.getModifiedItemAttr("damageMultiplierBonus") * level) - - return locals() - -def effect1763(): - type = "passive" - def handler(fit, container, context): - level = container.level if "skill" in context else 1 - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Missile Launcher Operation"), - "speed", container.getModifiedItemAttr("rofBonus") * level) - - return locals() - -def effect1764(): - type = "passive" - def handler(fit, container, context): - level = container.level if "skill" in context else 1 - penalized = False if "skill" in context or "implant" in context else True - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), - "maxVelocity", container.getModifiedItemAttr("speedFactor") * level, - stackingPenalties=penalized) - - return locals() - -def effect1773(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Hybrid Turret"), - "falloff", ship.getModifiedItemAttr("shipBonusGF2"), skill="Gallente Frigate") - - return locals() - -def effect1804(): - type = "passive" - def handler(fit, ship, context): - fit.ship.boostItemAttr("armorEmDamageResonance", ship.getModifiedItemAttr("shipBonusAF"), skill="Amarr Frigate") - - return locals() - -def effect1805(): - type = "passive" - def handler(fit, ship, context): - fit.ship.boostItemAttr("armorThermalDamageResonance", ship.getModifiedItemAttr("shipBonusAF"), - skill="Amarr Frigate") - - return locals() - -def effect1806(): - type = "passive" - def handler(fit, ship, context): - fit.ship.boostItemAttr("armorKineticDamageResonance", ship.getModifiedItemAttr("shipBonusAF"), - skill="Amarr Frigate") - - return locals() - -def effect1807(): - type = "passive" - def handler(fit, ship, context): - fit.ship.boostItemAttr("armorExplosiveDamageResonance", ship.getModifiedItemAttr("shipBonusAF"), - skill="Amarr Frigate") - - return locals() - -def effect1812(): - type = "passive" - def handler(fit, ship, context): - fit.ship.boostItemAttr("shieldEmDamageResonance", ship.getModifiedItemAttr("shipBonusCC2"), skill="Caldari Cruiser") - - return locals() - -def effect1813(): - type = "passive" - def handler(fit, ship, context): - fit.ship.boostItemAttr("shieldThermalDamageResonance", ship.getModifiedItemAttr("shipBonusCC2"), - skill="Caldari Cruiser") - - return locals() - -def effect1814(): - type = "passive" - def handler(fit, ship, context): - fit.ship.boostItemAttr("shieldKineticDamageResonance", ship.getModifiedItemAttr("shipBonusCC2"), - skill="Caldari Cruiser") - - return locals() - -def effect1815(): - type = "passive" - def handler(fit, ship, context): - fit.ship.boostItemAttr("shieldExplosiveDamageResonance", ship.getModifiedItemAttr("shipBonusCC2"), - skill="Caldari Cruiser") - - return locals() - -def effect1816(): - type = "passive" - def handler(fit, ship, context): - fit.ship.boostItemAttr("shieldEmDamageResonance", ship.getModifiedItemAttr("shipBonusCF"), skill="Caldari Frigate") - - return locals() - -def effect1817(): - type = "passive" - def handler(fit, ship, context): - fit.ship.boostItemAttr("shieldThermalDamageResonance", ship.getModifiedItemAttr("shipBonusCF"), - skill="Caldari Frigate") - - return locals() - -def effect1819(): - type = "passive" - def handler(fit, ship, context): - fit.ship.boostItemAttr("shieldKineticDamageResonance", ship.getModifiedItemAttr("shipBonusCF"), - skill="Caldari Frigate") - - return locals() - -def effect1820(): - type = "passive" - def handler(fit, ship, context): - fit.ship.boostItemAttr("shieldExplosiveDamageResonance", ship.getModifiedItemAttr("shipBonusCF"), - skill="Caldari Frigate") - - return locals() - -def effect1848(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill("Mining Foreman"), "warfareBuff4Multiplier", - src.getModifiedItemAttr("mindlinkBonus")) - fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill("Mining Foreman"), "warfareBuff2Multiplier", - src.getModifiedItemAttr("mindlinkBonus")) - fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill("Mining Foreman"), "warfareBuff1Multiplier", - src.getModifiedItemAttr("mindlinkBonus")) - fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill("Mining Foreman"), "warfareBuff3Multiplier", - src.getModifiedItemAttr("mindlinkBonus")) - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Mining Foreman"), "buffDuration", - src.getModifiedItemAttr("mindlinkBonus")) - - return locals() - -def effect1851(): - type = "passive" - def handler(fit, skill, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill(skill), - "speed", skill.getModifiedItemAttr("rofBonus") * skill.level) - - return locals() - -def effect1862(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), - "emDamage", ship.getModifiedItemAttr("shipBonusCF2"), skill="Caldari Frigate") - - return locals() - -def effect1863(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), - "thermalDamage", ship.getModifiedItemAttr("shipBonusCF2"), skill="Caldari Frigate") - - return locals() - -def effect1864(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), - "explosiveDamage", ship.getModifiedItemAttr("shipBonusCF2"), - skill="Caldari Frigate") - - return locals() - -def effect1882(): - type = "passive" - def handler(fit, module, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Mining"), - "miningAmount", module.getModifiedItemAttr("miningAmountBonus")) - - return locals() - -def effect1885(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Missile Launcher Cruise", - "speed", ship.getModifiedItemAttr("shipBonus2CB"), skill="Caldari Battleship") - - return locals() - -def effect1886(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Missile Launcher Torpedo", - "speed", ship.getModifiedItemAttr("shipBonus2CB"), skill="Caldari Battleship") - - return locals() - -def effect1896(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Ice Harvesting"), - "duration", ship.getModifiedItemAttr("eliteBonusBarge2"), skill="Exhumers") - - return locals() - -def effect1910(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Nosferatu", - "powerTransferAmount", ship.getModifiedItemAttr("eliteBonusReconShip2"), - skill="Recon Ships") - - return locals() - -def effect1911(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "ECM", - "scanGravimetricStrengthBonus", ship.getModifiedItemAttr("eliteBonusReconShip2"), - skill="Recon Ships") - - return locals() - -def effect1912(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "ECM", - "scanMagnetometricStrengthBonus", ship.getModifiedItemAttr("eliteBonusReconShip2"), - skill="Recon Ships") - - return locals() - -def effect1913(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "ECM", - "scanRadarStrengthBonus", ship.getModifiedItemAttr("eliteBonusReconShip2"), - skill="Recon Ships") - - return locals() - -def effect1914(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "ECM", - "scanLadarStrengthBonus", ship.getModifiedItemAttr("eliteBonusReconShip2"), - skill="Recon Ships") - - return locals() - -def effect1921(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Stasis Web", - "maxRange", ship.getModifiedItemAttr("eliteBonusReconShip2"), skill="Recon Ships") - - return locals() - -def effect1922(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Warp Scrambler", - "maxRange", ship.getModifiedItemAttr("eliteBonusReconShip2"), skill="Recon Ships") - - return locals() - -def effect1959(): - type = "passive" - def handler(fit, module, context): - fit.ship.increaseItemAttr("mass", module.getModifiedItemAttr("massAddition")) - - return locals() - -def effect1964(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Emission Systems"), "capacitorNeed", - src.getModifiedItemAttr("shipBonusCC"), skill="Caldari Cruiser") - - return locals() - -def effect1969(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Remote Armor Repair Systems"), "capacitorNeed", - src.getModifiedItemAttr("shipBonusGC"), skill="Gallente Cruiser") - - return locals() - -def effect1996(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "ECM", - "capacitorNeed", ship.getModifiedItemAttr("shipBonusCF2"), skill="Caldari Frigate") - - return locals() - -def effect2000(): - type = "passive" - def handler(fit, module, context): - amount = module.getModifiedItemAttr("droneRangeBonus") - fit.extraAttributes.increase("droneControlRange", amount) - - return locals() - -def effect2008(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Cynosural Field Generator", - "duration", ship.getModifiedItemAttr("durationBonus")) - - return locals() - -def effect2013(): - type = "passive" - def handler(fit, container, context): - level = container.level if "skill" in context else 1 - fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Drones"), - "maxVelocity", container.getModifiedItemAttr("droneMaxVelocityBonus") * level, stackingPenalties=True) - - return locals() - -def effect2014(): - type = "passive" - def handler(fit, container, context): - level = container.level if "skill" in context else 1 - stacking = False if "skill" in context else True - fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Drones"), - "maxRange", - container.getModifiedItemAttr("rangeSkillBonus") * level, - stackingPenalties=stacking) - - return locals() - -def effect2015(): - type = "passive" - def handler(fit, module, context): - fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Drones"), - "shieldCapacity", module.getModifiedItemAttr("hullHpBonus")) - - return locals() - -def effect2016(): - type = "passive" - def handler(fit, module, context): - fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Drones"), - "armorHP", module.getModifiedItemAttr("hullHpBonus")) - - return locals() - -def effect2017(): - type = "passive" - def handler(fit, container, context): - level = container.level if "skill" in context else 1 - fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Drones"), - "hp", container.getModifiedItemAttr("hullHpBonus") * level) - - return locals() - -def effect2019(): - type = "passive" - def handler(fit, container, context): - level = container.level if "skill" in context else 1 - fit.drones.filteredItemBoost(lambda drone: drone.item.group.name == "Logistic Drone", - "shieldBonus", container.getModifiedItemAttr("damageHP") * level) - - return locals() - -def effect2020(): - type = "passive" - def handler(fit, container, context): - level = container.level if "skill" in context else 1 - fit.drones.filteredItemBoost(lambda drone: drone.item.group.name == "Logistic Drone", - "armorDamageAmount", container.getModifiedItemAttr("damageHP") * level, - stackingPenalties=True) - - return locals() - -def effect2029(): - type = "passive" - def handler(fit, module, context): - fit.ship.increaseItemAttr("signatureRadius", module.getModifiedItemAttr("signatureRadiusAdd")) - - return locals() - -def effect2041(): - type = "passive" - def handler(fit, module, context): - for type in ("kinetic", "thermal", "explosive", "em"): - fit.ship.boostItemAttr("armor%sDamageResonance" % type.capitalize(), - module.getModifiedItemAttr("%sDamageResistanceBonus" % type), - stackingPenalties=True) - - return locals() - -def effect2052(): - type = "passive" - def handler(fit, module, context): - for type in ("kinetic", "thermal", "explosive", "em"): - fit.ship.boostItemAttr("shield%sDamageResonance" % type.capitalize(), - module.getModifiedItemAttr("%sDamageResistanceBonus" % type), - stackingPenalties=True) - - return locals() - -def effect2053(): - type = "passive" - def handler(fit, skill, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Shield Resistance Amplifier", - "emDamageResistanceBonus", skill.getModifiedItemAttr("hardeningBonus") * skill.level) - - return locals() - -def effect2054(): - type = "passive" - def handler(fit, skill, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Shield Resistance Amplifier", - "explosiveDamageResistanceBonus", - skill.getModifiedItemAttr("hardeningBonus") * skill.level) - - return locals() - -def effect2055(): - type = "passive" - def handler(fit, skill, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Shield Resistance Amplifier", - "kineticDamageResistanceBonus", - skill.getModifiedItemAttr("hardeningBonus") * skill.level) - - return locals() - -def effect2056(): - type = "passive" - def handler(fit, skill, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Shield Resistance Amplifier", - "thermalDamageResistanceBonus", - skill.getModifiedItemAttr("hardeningBonus") * skill.level) - - return locals() - -def effect21(): - type = "passive" - def handler(fit, module, context): - fit.ship.increaseItemAttr("shieldCapacity", module.getModifiedItemAttr("capacityBonus")) - - return locals() - -def effect2105(): - type = "passive" - def handler(fit, skill, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Armor Coating", - "emDamageResistanceBonus", skill.getModifiedItemAttr("hardeningBonus") * skill.level) - - return locals() - -def effect2106(): - type = "passive" - def handler(fit, skill, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Armor Coating", - "explosiveDamageResistanceBonus", - skill.getModifiedItemAttr("hardeningBonus") * skill.level) - - return locals() - -def effect2107(): - type = "passive" - def handler(fit, skill, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Armor Coating", - "kineticDamageResistanceBonus", - skill.getModifiedItemAttr("hardeningBonus") * skill.level) - - return locals() - -def effect2108(): - type = "passive" - def handler(fit, skill, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Armor Coating", - "thermalDamageResistanceBonus", - skill.getModifiedItemAttr("hardeningBonus") * skill.level) - - return locals() - -def effect2109(): - type = "passive" - def handler(fit, skill, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Armor Plating Energized", - "emDamageResistanceBonus", skill.getModifiedItemAttr("hardeningBonus") * skill.level) - - return locals() - -def effect2110(): - type = "passive" - def handler(fit, skill, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Armor Plating Energized", - "explosiveDamageResistanceBonus", - skill.getModifiedItemAttr("hardeningBonus") * skill.level) - - return locals() - -def effect2111(): - type = "passive" - def handler(fit, skill, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Armor Plating Energized", - "kineticDamageResistanceBonus", - skill.getModifiedItemAttr("hardeningBonus") * skill.level) - - return locals() - -def effect2112(): - type = "passive" - def handler(fit, skill, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Armor Plating Energized", - "thermalDamageResistanceBonus", - skill.getModifiedItemAttr("hardeningBonus") * skill.level) - - return locals() - -def effect212(): - type = "passive" - def handler(fit, container, context): - level = container.level if "skill" in context else 1 - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Electronics Upgrades"), - "cpu", container.getModifiedItemAttr("cpuNeedBonus") * level) - - return locals() - -def effect2130(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Hybrid Turret"), - "maxRange", ship.getModifiedItemAttr("maxRangeBonus")) - - return locals() - -def effect2131(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Energy Turret"), - "maxRange", ship.getModifiedItemAttr("maxRangeBonus")) - - return locals() - -def effect2132(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Projectile Turret"), - "maxRange", ship.getModifiedItemAttr("maxRangeBonus")) - - return locals() - -def effect2133(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Remote Capacitor Transmitter", - "maxRange", ship.getModifiedItemAttr("maxRangeBonus2")) - - return locals() - -def effect2134(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Remote Shield Booster", "maxRange", - ship.getModifiedItemAttr("maxRangeBonus")) - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Ancillary Remote Shield Booster", "maxRange", - ship.getModifiedItemAttr("maxRangeBonus")) - - return locals() - -def effect2135(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Remote Armor Repairer", "maxRange", - src.getModifiedItemAttr("maxRangeBonus")) - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Ancillary Remote Armor Repairer", "maxRange", - src.getModifiedItemAttr("maxRangeBonus")) - - return locals() - -def effect214(): - type = "passive", "structure" - def handler(fit, skill, context): - amount = skill.getModifiedItemAttr("maxTargetBonus") * skill.level - fit.extraAttributes.increase("maxTargetsLockedFromSkills", amount) - - return locals() - -def effect2143(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Target Painter", - "signatureRadiusBonus", ship.getModifiedItemAttr("shipBonusMC2"), - skill="Minmatar Cruiser") - - return locals() - -def effect2155(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Projectile Turret"), - "damageMultiplier", ship.getModifiedItemAttr("eliteBonusCommandShips1"), - skill="Command Ships") - - return locals() - -def effect2156(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Projectile Turret"), - "falloff", ship.getModifiedItemAttr("eliteBonusCommandShips2"), skill="Command Ships") - - return locals() - -def effect2157(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Energy Turret"), - "damageMultiplier", ship.getModifiedItemAttr("eliteBonusCommandShips1"), - skill="Command Ships") - - return locals() - -def effect2158(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Energy Turret"), - "speed", ship.getModifiedItemAttr("eliteBonusCommandShips2"), skill="Command Ships") - - return locals() - -def effect2160(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Hybrid Turret"), - "falloff", ship.getModifiedItemAttr("eliteBonusCommandShips2"), skill="Command Ships") - - return locals() - -def effect2161(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Hybrid Turret"), - "maxRange", ship.getModifiedItemAttr("eliteBonusCommandShips1"), - skill="Command Ships") - - return locals() - -def effect2179(): - type = "passive" - def handler(fit, ship, context): - for type in ("shieldCapacity", "armorHP", "hp"): - fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Drones"), - type, ship.getModifiedItemAttr("shipBonusGC2"), skill="Gallente Cruiser") - - return locals() - -def effect2181(): - type = "passive" - def handler(fit, ship, context): - for type in ("shieldCapacity", "armorHP", "hp"): - fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Drones"), - type, ship.getModifiedItemAttr("shipBonusAC2"), skill="Amarr Cruiser") - - return locals() - -def effect2186(): - type = "passive" - def handler(fit, ship, context): - for type in ("shieldCapacity", "armorHP", "hp"): - fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Drones"), - type, ship.getModifiedItemAttr("shipBonusGB2"), skill="Gallente Battleship") - - return locals() - -def effect2187(): - type = "passive" - def handler(fit, ship, context): - fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Drones"), - "damageMultiplier", ship.getModifiedItemAttr("shipBonusGB2"), - skill="Gallente Battleship") - - return locals() - -def effect2188(): - type = "passive" - def handler(fit, ship, context): - fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Drones"), - "damageMultiplier", ship.getModifiedItemAttr("shipBonusGC2"), skill="Gallente Cruiser") - - return locals() - -def effect2189(): - type = "passive" - def handler(fit, ship, context): - fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Drones"), - "damageMultiplier", ship.getModifiedItemAttr("shipBonusAC2"), skill="Amarr Cruiser") - - return locals() - -def effect2200(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredChargeBoost( - lambda mod: mod.charge.requiresSkill("Light Missiles") or mod.charge.requiresSkill("Rockets"), - "kineticDamage", ship.getModifiedItemAttr("eliteBonusInterdictors1"), skill="Interdictors") - - return locals() - -def effect2201(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Projectile Turret"), - "falloff", ship.getModifiedItemAttr("eliteBonusInterdictors1"), skill="Interdictors") - - return locals() - -def effect2215(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Projectile Turret"), - "damageMultiplier", ship.getModifiedItemAttr("shipBonusRole7")) - - return locals() - -def effect223(): - type = "passive" - def handler(fit, implant, context): - fit.ship.boostItemAttr("maxVelocity", implant.getModifiedItemAttr("velocityBonus")) - - return locals() - -def effect2232(): - type = "passive" - def handler(fit, module, context): - for type in ("Gravimetric", "Magnetometric", "Radar", "Ladar"): - fit.ship.boostItemAttr("scan%sStrength" % type, - module.getModifiedItemAttr("scan%sStrengthPercent" % type), - stackingPenalties=True) - - return locals() - -def effect2249(): - type = "passive" - def handler(fit, ship, context): - fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Drones"), - "miningAmount", ship.getModifiedItemAttr("shipBonusAC2"), skill="Amarr Cruiser") - - return locals() - -def effect2250(): - type = "passive" - def handler(fit, ship, context): - fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Mining Drone Operation"), - "miningAmount", ship.getModifiedItemAttr("shipBonusGC2"), skill="Gallente Cruiser") - - return locals() - -def effect2251(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemIncrease(lambda mod: mod.item.requiresSkill("Leadership"), "maxGroupActive", - src.getModifiedItemAttr("maxGangModules")) - fit.modules.filteredItemIncrease(lambda mod: mod.item.requiresSkill("Leadership"), "maxGroupOnline", - src.getModifiedItemAttr("maxGangModules")) - - return locals() - -def effect2252(): - type = "passive" - def handler(fit, container, context): - fit.modules.filteredItemForce(lambda mod: mod.item.requiresSkill("Cloaking"), - "moduleReactivationDelay", - container.getModifiedItemAttr("covertOpsAndReconOpsCloakModuleDelay")) - - return locals() - -def effect2253(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemForce(lambda mod: mod.item.group.name == "Cloaking Device", - "cloakingTargetingDelay", - ship.getModifiedItemAttr("covertOpsStealthBomberTargettingDelay")) - - return locals() - -def effect2255(): - type = "active" - def handler(fit, module, context): - pass - - return locals() - -def effect227(): - type = "passive" - def handler(fit, container, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Propulsion Module", - "capacitorNeed", container.getModifiedItemAttr("capNeedBonus")) - - return locals() - -def effect2298(): - type = "passive" - def handler(fit, implant, context): - for type in ("Gravimetric", "Magnetometric", "Radar", "Ladar"): - sensorType = "scan{0}Strength".format(type) - sensorBoost = "scan{0}StrengthPercent".format(type) - if sensorBoost in implant.item.attributes: - fit.ship.boostItemAttr(sensorType, implant.getModifiedItemAttr(sensorBoost)) - - return locals() - -def effect230(): - type = "passive" - def handler(fit, container, context): - level = container.level if "skill" in context else 1 - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Afterburner"), - "duration", container.getModifiedItemAttr("durationBonus") * level) - - return locals() - -def effect2302(): - type = "passive" - def handler(fit, module, context): - for layer, attrPrefix in (('shield', 'shield'), ('armor', 'armor'), ('hull', '')): - for damageType in ('Kinetic', 'Thermal', 'Explosive', 'Em'): - bonus = "%s%sDamageResonance" % (attrPrefix, damageType) - bonus = "%s%s" % (bonus[0].lower(), bonus[1:]) - booster = "%s%sDamageResonance" % (layer, damageType) - fit.ship.multiplyItemAttr(bonus, module.getModifiedItemAttr(booster), - stackingPenalties=True, penaltyGroup="preMul") - - return locals() - -def effect2305(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Neutralizer", - "energyNeutralizerAmount", ship.getModifiedItemAttr("eliteBonusReconShip2"), - skill="Recon Ships") - - return locals() - -def effect235(): - type = "passive" - def handler(fit, implant, context): - fit.ship.boostItemAttr("warpCapacitorNeed", implant.getModifiedItemAttr("warpCapacitorNeedBonus")) - - return locals() - -def effect2354(): - type = "passive" - def handler(fit, container, context): - level = container.level if "skill" in context else 1 - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capital Remote Armor Repair Systems"), - "capacitorNeed", container.getModifiedItemAttr("capNeedBonus") * level) - - return locals() - -def effect2355(): - type = "passive" - def handler(fit, container, context): - level = container.level if "skill" in context else 1 - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capital Shield Emission Systems"), - "capacitorNeed", container.getModifiedItemAttr("capNeedBonus") * level) - - return locals() - -def effect2356(): - type = "passive" - def handler(fit, skill, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capital Capacitor Emission Systems"), - "capacitorNeed", skill.getModifiedItemAttr("capNeedBonus") * skill.level) - - return locals() - -def effect2402(): - type = "passive" - def handler(fit, skill, context): - damageTypes = ("em", "explosive", "kinetic", "thermal") - for dmgType in damageTypes: - dmgAttr = "{0}Damage".format(dmgType) - fit.modules.filteredItemBoost( - lambda mod: mod.item.group.name == "Super Weapon" and dmgAttr in mod.itemModifiedAttributes, - dmgAttr, skill.getModifiedItemAttr("damageMultiplierBonus") * skill.level) - - return locals() - -def effect242(): - type = "passive" - def handler(fit, implant, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Propulsion Module", - "speedFactor", implant.getModifiedItemAttr("speedFBonus")) - - return locals() - -def effect2422(): - type = "passive" - def handler(fit, implant, context): - fit.ship.boostItemAttr("maxVelocity", implant.getModifiedItemAttr("implantBonusVelocity")) - - return locals() - -def effect2432(): - type = "passive" - def handler(fit, container, context): - level = container.level if "skill" in context else 1 - fit.ship.boostItemAttr("capacitorCapacity", container.getModifiedItemAttr("capacitorCapacityBonus") * level) - - return locals() - -def effect244(): - type = "passive" - def handler(fit, container, context): - level = container.level if "skill" in context else 1 - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("High Speed Maneuvering"), - "capacitorNeed", container.getModifiedItemAttr("capNeedBonus") * level) - - return locals() - -def effect2444(): - type = "passive" - def handler(fit, module, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Mining"), - "cpu", module.getModifiedItemAttr("cpuPenaltyPercent")) - - return locals() - -def effect2445(): - type = "passive" - def handler(fit, module, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Ice Harvesting"), - "cpu", module.getModifiedItemAttr("cpuPenaltyPercent")) - - return locals() - -def effect2456(): - type = "passive" - def handler(fit, container, context): - level = container.level if "skill" in context else 1 - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Mining Upgrades"), - "cpuPenaltyPercent", - container.getModifiedItemAttr("miningUpgradeCPUReductionBonus") * level) - - return locals() - -def effect2465(): - type = "passive" - def handler(fit, ship, context): - for type in ("Em", "Explosive", "Kinetic", "Thermal"): - fit.ship.boostItemAttr("armor{0}DamageResonance".format(type), ship.getModifiedItemAttr("shipBonusAB"), - skill="Amarr Battleship") - - return locals() - -def effect2479(): - type = "passive" - def handler(fit, module, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Ice Harvesting"), - "duration", module.getModifiedItemAttr("iceHarvestCycleBonus")) - - return locals() - -def effect2485(): - type = "passive" - def handler(fit, implant, context): - fit.ship.boostItemAttr("armorHP", implant.getModifiedItemAttr("armorHpBonus2")) - - return locals() - -def effect2488(): - type = "passive" - def handler(fit, implant, context): - fit.ship.boostItemAttr("maxVelocity", implant.getModifiedItemAttr("velocityBonus2")) - - return locals() - -def effect2489(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Remote Tracking Computer", - "falloffEffectiveness", ship.getModifiedItemAttr("shipBonusMC"), - skill="Minmatar Cruiser") - - return locals() - -def effect2490(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Remote Tracking Computer", - "falloffEffectiveness", ship.getModifiedItemAttr("shipBonusGC2"), - skill="Gallente Cruiser") - - return locals() - -def effect2491(): - type = "passive" - def handler(fit, container, context): - level = container.level if "skill" in context else 1 - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Burst Jammer", - "ecmBurstRange", container.getModifiedItemAttr("rangeSkillBonus") * level, - stackingPenalties=False if "skill" in context else True) - - return locals() - -def effect2492(): - type = "passive" - def handler(fit, container, context): - level = container.level if "skill" in context else 1 - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Burst Jammer", - "capacitorNeed", container.getModifiedItemAttr("capNeedBonus") * level) - - return locals() - -def effect25(): - type = "passive" - def handler(fit, ship, context): - fit.ship.increaseItemAttr("capacitorCapacity", ship.getModifiedItemAttr("capacitorBonus")) - - return locals() - -def effect2503(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Large Hybrid Turret"), - "trackingSpeed", ship.getModifiedItemAttr("shipBonusGB2"), - skill="Gallente Battleship") - - return locals() - -def effect2504(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Hybrid Turret"), - "trackingSpeed", ship.getModifiedItemAttr("shipBonusGF2"), skill="Gallente Frigate") - - return locals() - -def effect2561(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), - "maxVelocity", ship.getModifiedItemAttr("eliteBonusGunship1"), - skill="Assault Frigates") - - return locals() - -def effect2589(): - type = "passive" - def handler(fit, container, context): - level = container.level if "skill" in context else 1 - for i in range(5): - attr = "boosterEffectChance{0}".format(i + 1) - fit.boosters.filteredItemBoost(lambda booster: attr in booster.itemModifiedAttributes, - attr, container.getModifiedItemAttr("boosterChanceBonus") * level) - - return locals() - -def effect26(): - type = "active" - runTime = "late" - def handler(fit, module, context): - amount = module.getModifiedItemAttr("structureDamageAmount") - speed = module.getModifiedItemAttr("duration") / 1000.0 - fit.extraAttributes.increase("hullRepair", amount / speed) - - return locals() - -def effect2602(): - type = "passive" - def handler(fit, ship, context): - fit.ship.boostItemAttr("shieldEmDamageResonance", ship.getModifiedItemAttr("shipBonus2CB"), - skill="Caldari Battleship") - - return locals() - -def effect2603(): - type = "passive" - def handler(fit, ship, context): - fit.ship.boostItemAttr("shieldExplosiveDamageResonance", ship.getModifiedItemAttr("shipBonus2CB"), - skill="Caldari Battleship") - - return locals() - -def effect2604(): - type = "passive" - def handler(fit, ship, context): - fit.ship.boostItemAttr("shieldKineticDamageResonance", ship.getModifiedItemAttr("shipBonus2CB"), - skill="Caldari Battleship") - - return locals() - -def effect2605(): - type = "passive" - def handler(fit, ship, context): - fit.ship.boostItemAttr("shieldThermalDamageResonance", ship.getModifiedItemAttr("shipBonus2CB"), - skill="Caldari Battleship") - - return locals() - -def effect2611(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Projectile Turret"), - "damageMultiplier", ship.getModifiedItemAttr("eliteBonusGunship1"), - skill="Assault Frigates") - - return locals() - -def effect2644(): - type = "passive" - def handler(fit, module, context): - fit.ship.boostItemAttr("signatureRadius", module.getModifiedItemAttr("signatureRadiusBonus"), stackingPenalties=True) - - return locals() - -def effect2645(): - type = "passive" - def handler(fit, module, context): - fit.ship.multiplyItemAttr("scanResolution", module.getModifiedItemAttr("scanResolutionMultiplier"), - stackingPenalties=True) - - return locals() - -def effect2646(): - type = "passive" - def handler(fit, module, context): - fit.ship.boostItemAttr("maxTargetRange", module.getModifiedItemAttr("maxTargetRangeBonus"), - stackingPenalties=True) - - return locals() - -def effect2647(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Missile Launcher Heavy", - "speed", ship.getModifiedItemAttr("eliteBonusHeavyGunship2"), - skill="Heavy Assault Cruisers") - - return locals() - -def effect2648(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Missile Launcher Heavy Assault", - "speed", ship.getModifiedItemAttr("eliteBonusHeavyGunship2"), - skill="Heavy Assault Cruisers") - - return locals() - -def effect2649(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Missile Launcher Rapid Light", - "speed", ship.getModifiedItemAttr("eliteBonusHeavyGunship2"), - skill="Heavy Assault Cruisers") - - return locals() - -def effect2670(): - type = "active" - def handler(fit, module, context): - fit.ship.boostItemAttr("maxTargetRange", module.getModifiedItemAttr("maxTargetRangeBonus"), - stackingPenalties=True) - fit.ship.boostItemAttr("scanResolution", module.getModifiedItemAttr("scanResolutionBonus"), - stackingPenalties=True) - for scanType in ("Gravimetric", "Magnetometric", "Radar", "Ladar"): - fit.ship.boostItemAttr( - "scan{}Strength".format(scanType), - module.getModifiedItemAttr("scan{}StrengthPercent".format(scanType)), - stackingPenalties=True - ) - - return locals() - -def effect2688(): - type = "passive" - def handler(fit, module, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Weapon", - "capacitorNeed", module.getModifiedItemAttr("capNeedBonus")) - - return locals() - -def effect2689(): - type = "passive" - def handler(fit, module, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Hybrid Weapon", - "capacitorNeed", module.getModifiedItemAttr("capNeedBonus")) - - return locals() - -def effect2690(): - type = "passive" - def handler(fit, module, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Weapon", - "cpu", module.getModifiedItemAttr("cpuNeedBonus")) - - return locals() - -def effect2691(): - type = "passive" - def handler(fit, module, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Hybrid Weapon", - "cpu", module.getModifiedItemAttr("cpuNeedBonus")) - - return locals() - -def effect2693(): - type = "passive" - def handler(fit, module, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Weapon", - "falloff", module.getModifiedItemAttr("falloffBonus"), - stackingPenalties=True) - - return locals() - -def effect2694(): - type = "passive" - def handler(fit, module, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Hybrid Weapon", - "falloff", module.getModifiedItemAttr("falloffBonus"), - stackingPenalties=True) - - return locals() - -def effect2695(): - type = "passive" - def handler(fit, module, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Projectile Weapon", - "falloff", module.getModifiedItemAttr("falloffBonus"), - stackingPenalties=True) - - return locals() - -def effect2696(): - type = "passive" - def handler(fit, module, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Weapon", - "maxRange", module.getModifiedItemAttr("maxRangeBonus"), - stackingPenalties=True) - - return locals() - -def effect2697(): - type = "passive" - def handler(fit, module, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Hybrid Weapon", - "maxRange", module.getModifiedItemAttr("maxRangeBonus"), - stackingPenalties=True) - - return locals() - -def effect2698(): - type = "passive" - def handler(fit, module, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Projectile Weapon", - "maxRange", module.getModifiedItemAttr("maxRangeBonus"), - stackingPenalties=True) - - return locals() - -def effect27(): - runTime = "late" - type = "active" - def handler(fit, module, context): - amount = module.getModifiedItemAttr("armorDamageAmount") - speed = module.getModifiedItemAttr("duration") / 1000.0 - rps = amount / speed - fit.extraAttributes.increase("armorRepair", rps) - fit.extraAttributes.increase("armorRepairPreSpool", rps) - fit.extraAttributes.increase("armorRepairFullSpool", rps) - - return locals() - -def effect2706(): - type = "passive" - def handler(fit, module, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Weapon", - "power", module.getModifiedItemAttr("drawback")) - - return locals() - -def effect2707(): - type = "passive" - def handler(fit, module, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Hybrid Weapon", - "power", module.getModifiedItemAttr("drawback")) - - return locals() - -def effect2708(): - type = "passive" - def handler(fit, module, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Projectile Weapon", - "power", module.getModifiedItemAttr("drawback")) - - return locals() - -def effect271(): - type = "passive" - def handler(fit, container, context): - level = container.level if "skill" in context else 1 - fit.ship.boostItemAttr("armorHP", (container.getModifiedItemAttr("armorHpBonus") or 0) * level) - - return locals() - -def effect2712(): - type = "passive" - def handler(fit, module, context): - fit.ship.boostItemAttr("armorHP", module.getModifiedItemAttr("drawback")) - - return locals() - -def effect2713(): - type = "passive" - def handler(fit, module, context): - fit.ship.boostItemAttr("cpuOutput", module.getModifiedItemAttr("drawback")) - - return locals() - -def effect2714(): - type = "passive" - def handler(fit, module, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Missile Launcher Operation"), - "cpu", module.getModifiedItemAttr("drawback")) - - return locals() - -def effect2716(): - type = "passive" - def handler(fit, module, context): - fit.ship.boostItemAttr("signatureRadius", module.getModifiedItemAttr("drawback"), stackingPenalties=True) - - return locals() - -def effect2717(): - type = "passive" - def handler(fit, module, context): - fit.ship.boostItemAttr("maxVelocity", module.getModifiedItemAttr("drawback"), - stackingPenalties=True) - - return locals() - -def effect2718(): - type = "passive" - def handler(fit, module, context): - fit.ship.boostItemAttr("shieldCapacity", module.getModifiedItemAttr("drawback")) - - return locals() - -def effect272(): - type = "passive" - def handler(fit, container, context): - level = container.level if "skill" in context else 1 - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Repair Systems"), - "duration", container.getModifiedItemAttr("durationSkillBonus") * level) - - return locals() - -def effect2726(): - type = "active" - def handler(fit, module, context): - pass - - return locals() - -def effect2727(): - type = "passive" - def handler(fit, skill, context): - fit.modules.filteredItemIncrease(lambda mod: mod.item.group.name == "Gas Cloud Harvester", - "maxGroupActive", skill.level) - - return locals() - -def effect273(): - type = "passive" - def handler(fit, container, context): - level = container.level if "skill" in context else 1 - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Upgrades"), - "power", container.getModifiedItemAttr("powerNeedBonus") * level) - - return locals() - -def effect2734(): - type = "passive" - def handler(fit, ship, context): - for type in ("Gravimetric", "Ladar", "Radar", "Magnetometric"): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "ECM", - "scan{0}StrengthBonus".format(type), - ship.getModifiedItemAttr("shipBonusCF"), skill="Caldari Frigate") - - return locals() - -def effect2735(): - type = "boosterSideEffect" - displayName = "Armor Capacity" - attr = "boosterArmorHPPenalty" - def handler(fit, booster, context): - fit.ship.boostItemAttr("armorHP", booster.getModifiedItemAttr(attr)) - - return locals() - -def effect2736(): - type = "boosterSideEffect" - displayName = "Armor Repair Amount" - attr = "boosterArmorRepairAmountPenalty" - def handler(fit, booster, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Armor Repair Unit", - "armorDamageAmount", booster.getModifiedItemAttr(attr)) - - return locals() - -def effect2737(): - type = "boosterSideEffect" - displayName = "Shield Capacity" - attr = "boosterShieldCapacityPenalty" - def handler(fit, booster, context): - fit.ship.boostItemAttr("shieldCapacity", booster.getModifiedItemAttr(attr)) - - return locals() - -def effect2739(): - type = "boosterSideEffect" - displayName = "Turret Optimal Range" - attr = "boosterTurretOptimalRangePenalty" - def handler(fit, booster, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Gunnery"), - "maxRange", booster.getModifiedItemAttr(attr)) - - return locals() - -def effect2741(): - type = "boosterSideEffect" - displayName = "Turret Falloff" - attr = "boosterTurretFalloffPenalty" - def handler(fit, booster, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Gunnery"), - "falloff", booster.getModifiedItemAttr(attr)) - - return locals() - -def effect2745(): - type = "boosterSideEffect" - displayName = "Cap Capacity" - attr = "boosterCapacitorCapacityPenalty" - def handler(fit, booster, context): - fit.ship.boostItemAttr("capacitorCapacity", booster.getModifiedItemAttr(attr)) - - return locals() - -def effect2746(): - type = "boosterSideEffect" - displayName = "Velocity" - attr = "boosterMaxVelocityPenalty" - def handler(fit, booster, context): - fit.ship.boostItemAttr("maxVelocity", booster.getModifiedItemAttr(attr)) - - return locals() - -def effect2747(): - type = "boosterSideEffect" - displayName = "Turret Tracking" - attr = "boosterTurretTrackingPenalty" - def handler(fit, booster, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Gunnery"), - "trackingSpeed", booster.getModifiedItemAttr(attr)) - - return locals() - -def effect2748(): - type = "boosterSideEffect" - displayName = "Missile Velocity" - attr = "boosterMissileVelocityPenalty" - def handler(fit, booster, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), - "maxVelocity", booster.getModifiedItemAttr(attr)) - - return locals() - -def effect2749(): - type = "boosterSideEffect" - displayName = "Missile Explosion Velocity" - attr = "boosterAOEVelocityPenalty" - def handler(fit, booster, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), - "aoeVelocity", booster.getModifiedItemAttr(attr)) - - return locals() - -def effect2756(): - type = "passive" - def handler(fit, ship, context): - for type in ("Gravimetric", "Magnetometric", "Ladar", "Radar"): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "ECM", - "scan{0}StrengthBonus".format(type), ship.getModifiedItemAttr("shipBonusCC"), - skill="Caldari Cruiser") - - return locals() - -def effect2757(): - type = "active" - def handler(fit, module, context): - pass - - return locals() - -def effect2760(): - runTime = 'early' - type = "passive" - def handler(fit, container, context): - level = container.level if "skill" in context else 1 - attrs = ("boosterArmorHPPenalty", "boosterArmorRepairAmountPenalty") - for attr in attrs: - fit.boosters.filteredItemBoost(lambda booster: True, attr, - container.getModifiedItemAttr("boosterAttributeModifier") * level) - - return locals() - -def effect2763(): - type = "passive" - def handler(fit, container, context): - level = container.level if "skill" in context else 1 - attrs = ("boosterShieldBoostAmountPenalty", "boosterShieldCapacityPenalty", "shieldBoostMultiplier") - for attr in attrs: - fit.boosters.filteredItemBoost(lambda booster: booster.getModifiedItemAttr(attr) < 0, - attr, container.getModifiedItemAttr("boosterAttributeModifier") * level) - - return locals() - -def effect2766(): - type = "passive" - def handler(fit, container, context): - level = container.level if "skill" in context else 1 - attrs = ("boosterCapacitorCapacityPenalty", "boosterMaxVelocityPenalty") - for attr in attrs: - fit.boosters.filteredItemBoost(lambda booster: True, attr, - container.getModifiedItemAttr("boosterAttributeModifier") * level) - - return locals() - -def effect277(): - type = "passive" - def handler(fit, skill, context): - fit.ship.increaseItemAttr("shieldUniformity", skill.getModifiedItemAttr("uniformityBonus") * skill.level) - - return locals() - -def effect2776(): - type = "passive" - def handler(fit, container, context): - level = container.level if "skill" in context else 1 - attrs = ("boosterAOEVelocityPenalty", "boosterMissileAOECloudPenalty", "boosterMissileVelocityPenalty") - for attr in attrs: - fit.boosters.filteredItemBoost(lambda booster: True, attr, - container.getModifiedItemAttr("boosterAttributeModifier") * level) - - return locals() - -def effect2778(): - type = "passive" - def handler(fit, container, context): - level = container.level if "skill" in context else 1 - attrs = ("boosterTurretFalloffPenalty", "boosterTurretOptimalRangePenalty", "boosterTurretTrackingPenalty") - for attr in attrs: - fit.boosters.filteredItemBoost(lambda booster: True, attr, - container.getModifiedItemAttr("boosterAttributeModifier") * level) - - return locals() - -def effect279(): - type = "passive" - def handler(fit, container, context): - level = container.level if "skill" in context else 1 - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Emission Systems"), - "capacitorNeed", container.getModifiedItemAttr("capNeedBonus") * level) - - return locals() - -def effect2791(): - type = "boosterSideEffect" - displayName = "Missile Explosion Radius" - attr = "boosterMissileAOECloudPenalty" - def handler(fit, booster, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), - "aoeCloudSize", booster.getModifiedItemAttr(attr)) - - return locals() - -def effect2792(): - type = "passive" - def handler(fit, module, context): - for type in ("kinetic", "thermal", "explosive", "em"): - fit.ship.boostItemAttr("armor" + type.capitalize() + "DamageResonance", - module.getModifiedItemAttr(type + "DamageResistanceBonus") or 0, - stackingPenalties=True) - - return locals() - -def effect2794(): - type = "passive" - def handler(fit, container, context): - fit.modules.filteredItemIncrease(lambda mod: mod.item.requiresSkill("Salvaging"), - "accessDifficultyBonus", container.getModifiedItemAttr("accessDifficultyBonus"), - position="post") - - return locals() - -def effect2795(): - type = "passive" - def handler(fit, module, context): - for type in ("kinetic", "thermal", "explosive", "em"): - fit.ship.boostItemAttr("shield" + type.capitalize() + "DamageResonance", - module.getModifiedItemAttr(type + "DamageResistanceBonus") or 0, - stackingPenalties=True) - - return locals() - -def effect2796(): - type = "passive" - def handler(fit, module, context): - fit.ship.boostItemAttr("mass", module.getModifiedItemAttr("massBonusPercentage"), stackingPenalties=True) - - return locals() - -def effect2797(): - type = "passive" - def handler(fit, module, context): - fit.modules.filteredItemMultiply(lambda mod: mod.item.group.name == "Projectile Weapon", - "speed", module.getModifiedItemAttr("speedMultiplier"), - stackingPenalties=True) - - return locals() - -def effect2798(): - type = "passive" - def handler(fit, module, context): - fit.modules.filteredItemMultiply(lambda mod: mod.item.group.name == "Projectile Weapon", - "damageMultiplier", module.getModifiedItemAttr("damageMultiplier"), - stackingPenalties=True) - - return locals() - -def effect2799(): - type = "passive" - def handler(fit, module, context): - fit.modules.filteredItemMultiply(lambda mod: mod.item.requiresSkill("Missile Launcher Operation"), - "speed", module.getModifiedItemAttr("speedMultiplier"), - stackingPenalties=True) - - return locals() - -def effect2801(): - type = "passive" - def handler(fit, module, context): - fit.modules.filteredItemMultiply(lambda mod: mod.item.group.name == "Energy Weapon", - "speed", module.getModifiedItemAttr("speedMultiplier"), - stackingPenalties=True) - - return locals() - -def effect2802(): - type = "passive" - def handler(fit, module, context): - fit.modules.filteredItemMultiply(lambda mod: mod.item.group.name == "Hybrid Weapon", - "damageMultiplier", module.getModifiedItemAttr("damageMultiplier"), - stackingPenalties=True) - - return locals() - -def effect2803(): - type = "passive" - def handler(fit, module, context): - fit.modules.filteredItemMultiply(lambda mod: mod.item.group.name == "Energy Weapon", - "damageMultiplier", module.getModifiedItemAttr("damageMultiplier"), - stackingPenalties=True) - - return locals() - -def effect2804(): - type = "passive" - def handler(fit, module, context): - fit.modules.filteredItemMultiply(lambda mod: mod.item.group.name == "Hybrid Weapon", - "speed", module.getModifiedItemAttr("speedMultiplier"), - stackingPenalties=True) - - return locals() - -def effect2805(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Large Energy Turret"), - "damageMultiplier", ship.getModifiedItemAttr("shipBonusAB2"), - skill="Amarr Battleship") - - return locals() - -def effect2809(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Assault Missiles"), - "maxVelocity", ship.getModifiedItemAttr("shipBonusCC2"), skill="Caldari Cruiser") - - return locals() - -def effect2810(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Assault Missiles"), - "explosionDelay", ship.getModifiedItemAttr("eliteBonusHeavyGunship1"), - skill="Heavy Assault Cruisers") - - return locals() - -def effect2812(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Burst Jammer", - "ecmBurstRange", ship.getModifiedItemAttr("shipBonusCB3"), skill="Caldari Battleship") - - return locals() - -def effect2837(): - type = "passive" - def handler(fit, module, context): - fit.ship.increaseItemAttr("armorHP", module.getModifiedItemAttr("armorHPBonusAdd")) - - return locals() - -def effect2847(): - type = "passive" - def handler(fit, container, context): - level = container.level if "skill" in context else 1 - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Gunnery"), - "trackingSpeed", container.getModifiedItemAttr("trackingSpeedBonus") * level) - - return locals() - -def effect2848(): - type = "passive" - def handler(fit, container, context): - fit.modules.filteredItemIncrease(lambda module: module.item.requiresSkill("Archaeology"), - "accessDifficultyBonus", - container.getModifiedItemAttr("accessDifficultyBonusModifier"), position="post") - - return locals() - -def effect2849(): - type = "passive" - def handler(fit, container, context): - fit.modules.filteredItemIncrease(lambda c: c.item.requiresSkill("Hacking"), - "accessDifficultyBonus", - container.getModifiedItemAttr("accessDifficultyBonusModifier"), position="post") - - return locals() - -def effect2850(): - type = "passive" - def handler(fit, module, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Propulsion Module", - "duration", module.getModifiedItemAttr("durationBonus")) - - return locals() - -def effect2851(): - type = "passive" - def handler(fit, container, context): - for dmgType in ("em", "kinetic", "explosive", "thermal"): - fit.modules.filteredChargeMultiply(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), - "%sDamage" % dmgType, - container.getModifiedItemAttr("missileDamageMultiplierBonus"), - stackingPenalties=True) - - return locals() - -def effect2853(): - type = "passive" - def handler(fit, module, context): - fit.modules.filteredItemBoost(lambda module: module.item.requiresSkill("Cloaking"), - "cloakingTargetingDelay", module.getModifiedItemAttr("cloakingTargetingDelayBonus")) - - return locals() - -def effect2857(): - type = "active" - def handler(fit, module, context): - fit.ship.boostItemAttr("maxVelocity", module.getModifiedItemAttr("speedFactor")) - - return locals() - -def effect2865(): - type = "passive" - def handler(fit, module, context): - fit.ship.boostItemAttr("maxVelocity", module.getModifiedItemAttr("implantBonusVelocity"), - stackingPenalties=True) - - return locals() - -def effect2866(): - type = "passive" - def handler(fit, container, context): - level = container.level if "skill" in context else 1 - fit.boosters.filteredItemBoost(lambda bst: True, "boosterDuration", - container.getModifiedItemAttr("durationBonus") * level) - - return locals() - -def effect2867(): - type = "passive" - def handler(fit, module, context): - fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Sentry Drone Interfacing"), - "damageMultiplier", module.getModifiedItemAttr("damageMultiplierBonus"), - stackingPenalties=True) - - return locals() - -def effect2868(): - type = "passive" - def handler(fit, implant, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capital Repair Systems"), - "armorDamageAmount", implant.getModifiedItemAttr("repairBonus"), - stackingPenalties=True) - - return locals() - -def effect287(): - type = "passive" - def handler(fit, container, context): - level = container.level if "skill" in context else 1 - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Gunnery"), - "capacitorNeed", container.getModifiedItemAttr("capNeedBonus") * level) - - return locals() - -def effect2872(): - type = "passive" - def handler(fit, container, context): - fit.modules.filteredChargeMultiply(lambda mod: mod.charge.requiresSkill("Defender Missiles"), - "maxVelocity", container.getModifiedItemAttr("missileVelocityBonus")) - - return locals() - -def effect2881(): - type = "passive" - def handler(fit, implant, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Cruise Missiles"), - "emDamage", implant.getModifiedItemAttr("damageMultiplierBonus")) - - return locals() - -def effect2882(): - type = "passive" - def handler(fit, container, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Cruise Missiles"), - "explosiveDamage", container.getModifiedItemAttr("damageMultiplierBonus")) - - return locals() - -def effect2883(): - type = "passive" - def handler(fit, container, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Cruise Missiles"), - "kineticDamage", container.getModifiedItemAttr("damageMultiplierBonus")) - - return locals() - -def effect2884(): - type = "passive" - def handler(fit, container, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Cruise Missiles"), - "thermalDamage", container.getModifiedItemAttr("damageMultiplierBonus")) - - return locals() - -def effect2885(): - type = "passive" - def handler(fit, implant, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Gas Cloud Harvesting"), - "duration", implant.getModifiedItemAttr("durationBonus")) - - return locals() - -def effect2887(): - type = "passive" - def handler(fit, implant, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Rockets"), - "emDamage", implant.getModifiedItemAttr("damageMultiplierBonus")) - - return locals() - -def effect2888(): - type = "passive" - def handler(fit, container, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Rockets"), - "explosiveDamage", container.getModifiedItemAttr("damageMultiplierBonus")) - - return locals() - -def effect2889(): - type = "passive" - def handler(fit, container, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Rockets"), - "kineticDamage", container.getModifiedItemAttr("damageMultiplierBonus")) - - return locals() - -def effect2890(): - type = "passive" - def handler(fit, container, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Rockets"), - "thermalDamage", container.getModifiedItemAttr("damageMultiplierBonus")) - - return locals() - -def effect2891(): - type = "passive" - def handler(fit, implant, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Light Missiles"), - "emDamage", implant.getModifiedItemAttr("damageMultiplierBonus")) - - return locals() - -def effect2892(): - type = "passive" - def handler(fit, container, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Light Missiles"), - "explosiveDamage", container.getModifiedItemAttr("damageMultiplierBonus")) - - return locals() - -def effect2893(): - type = "passive" - def handler(fit, container, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Light Missiles"), - "kineticDamage", container.getModifiedItemAttr("damageMultiplierBonus")) - - return locals() - -def effect2894(): - type = "passive" - def handler(fit, container, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Light Missiles"), - "thermalDamage", container.getModifiedItemAttr("damageMultiplierBonus")) - - return locals() - -def effect2899(): - type = "passive" - def handler(fit, implant, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Missiles"), - "emDamage", implant.getModifiedItemAttr("damageMultiplierBonus")) - - return locals() - -def effect290(): - type = "passive" - def handler(fit, container, context): - level = container.level if "skill" in context else 1 - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Gunnery"), - "maxRange", container.getModifiedItemAttr("rangeSkillBonus") * level) - - return locals() - -def effect2900(): - type = "passive" - def handler(fit, container, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Missiles"), - "explosiveDamage", container.getModifiedItemAttr("damageMultiplierBonus")) - - return locals() - -def effect2901(): - type = "passive" - def handler(fit, container, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Missiles"), - "kineticDamage", container.getModifiedItemAttr("damageMultiplierBonus")) - - return locals() - -def effect2902(): - type = "passive" - def handler(fit, container, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Missiles"), - "thermalDamage", container.getModifiedItemAttr("damageMultiplierBonus")) - - return locals() - -def effect2903(): - type = "passive" - def handler(fit, implant, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Assault Missiles"), - "emDamage", implant.getModifiedItemAttr("damageMultiplierBonus")) - - return locals() - -def effect2904(): - type = "passive" - def handler(fit, container, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Assault Missiles"), - "explosiveDamage", container.getModifiedItemAttr("damageMultiplierBonus")) - - return locals() - -def effect2905(): - type = "passive" - def handler(fit, container, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Assault Missiles"), - "kineticDamage", container.getModifiedItemAttr("damageMultiplierBonus")) - - return locals() - -def effect2906(): - type = "passive" - def handler(fit, container, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Assault Missiles"), - "thermalDamage", container.getModifiedItemAttr("damageMultiplierBonus")) - - return locals() - -def effect2907(): - type = "passive" - def handler(fit, implant, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Torpedoes"), - "emDamage", implant.getModifiedItemAttr("damageMultiplierBonus")) - - return locals() - -def effect2908(): - type = "passive" - def handler(fit, container, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Torpedoes"), - "explosiveDamage", container.getModifiedItemAttr("damageMultiplierBonus")) - - return locals() - -def effect2909(): - type = "passive" - def handler(fit, container, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Torpedoes"), - "kineticDamage", container.getModifiedItemAttr("damageMultiplierBonus")) - - return locals() - -def effect2910(): - type = "passive" - def handler(fit, container, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Torpedoes"), - "thermalDamage", container.getModifiedItemAttr("damageMultiplierBonus")) - - return locals() - -def effect2911(): - type = "passive" - def handler(fit, implant, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Data Miners", - "duration", implant.getModifiedItemAttr("durationBonus")) - - return locals() - -def effect2967(): - type = "passive" - def handler(fit, skill, context): - amount = -skill.getModifiedItemAttr("consumptionQuantityBonus") - fit.modules.filteredItemIncrease(lambda mod: mod.item.requiresSkill(skill), - "consumptionQuantity", amount * skill.level) - - return locals() - -def effect2977(): - type = "passive" - def handler(fit, skill, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Remote Hull Repair Systems"), - "capacitorNeed", skill.getModifiedItemAttr("capNeedBonus") * skill.level) - - return locals() - -def effect298(): - type = "passive" - def handler(fit, container, context): - level = container.level if "skill" in context else 1 - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Gunnery"), - "falloff", container.getModifiedItemAttr("falloffBonus") * level) - - return locals() - -def effect2980(): - type = "passive" - def handler(fit, skill, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capital Remote Hull Repair Systems"), - "capacitorNeed", skill.getModifiedItemAttr("capNeedBonus") * skill.level) - - return locals() - -def effect2982(): - type = "passive" - def handler(fit, skill, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Burst Projector Operation") and - mod.item.getAttribute("duration"), - "duration", - skill.getModifiedItemAttr("projECMDurationBonus") * skill.level) - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Burst Projector Operation") and - mod.item.getAttribute("durationECMJammerBurstProjector"), - "durationECMJammerBurstProjector", - skill.getModifiedItemAttr("projECMDurationBonus") * skill.level) - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Burst Projector Operation") and - mod.item.getAttribute("durationTargetIlluminationBurstProjector"), - "durationTargetIlluminationBurstProjector", - skill.getModifiedItemAttr("projECMDurationBonus") * skill.level) - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Burst Projector Operation") and - mod.item.getAttribute("durationSensorDampeningBurstProjector"), - "durationSensorDampeningBurstProjector", - skill.getModifiedItemAttr("projECMDurationBonus") * skill.level) - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Burst Projector Operation") and - mod.item.getAttribute("durationWeaponDisruptionBurstProjector"), - "durationWeaponDisruptionBurstProjector", - skill.getModifiedItemAttr("projECMDurationBonus") * skill.level) - - return locals() - -def effect3001(): - type = "overheat" - def handler(fit, module, context): - module.boostItemAttr("speed", module.getModifiedItemAttr("overloadRofBonus")) - - return locals() - -def effect3002(): - type = "overheat" - def handler(fit, module, context): - module.boostItemAttr("duration", module.getModifiedItemAttr("overloadSelfDurationBonus") or 0) - - return locals() - -def effect3024(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Bomb Deployment"), - "explosiveDamage", ship.getModifiedItemAttr("eliteBonusCovertOps1"), - skill="Covert Ops") - - return locals() - -def effect3025(): - type = "overheat" - def handler(fit, module, context): - module.boostItemAttr("damageMultiplier", module.getModifiedItemAttr("overloadDamageModifier")) - - return locals() - -def effect3026(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Bomb Deployment"), - "kineticDamage", ship.getModifiedItemAttr("eliteBonusCovertOps1"), - skill="Covert Ops") - - return locals() - -def effect3027(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Bomb Deployment"), - "thermalDamage", ship.getModifiedItemAttr("eliteBonusCovertOps1"), - skill="Covert Ops") - - return locals() - -def effect3028(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Bomb Deployment"), - "emDamage", ship.getModifiedItemAttr("eliteBonusCovertOps1"), skill="Covert Ops") - - return locals() - -def effect3029(): - type = "overheat" - def handler(fit, module, context): - module.boostItemAttr("emDamageResistanceBonus", module.getModifiedItemAttr("overloadHardeningBonus")) - - return locals() - -def effect3030(): - type = "overheat" - def handler(fit, module, context): - module.boostItemAttr("thermalDamageResistanceBonus", module.getModifiedItemAttr("overloadHardeningBonus")) - - return locals() - -def effect3031(): - type = "overheat" - def handler(fit, module, context): - module.boostItemAttr("explosiveDamageResistanceBonus", module.getModifiedItemAttr("overloadHardeningBonus")) - - return locals() - -def effect3032(): - type = "overheat" - def handler(fit, module, context): - module.boostItemAttr("kineticDamageResistanceBonus", module.getModifiedItemAttr("overloadHardeningBonus")) - - return locals() - -def effect3035(): - type = "overheat" - def handler(fit, module, context): - for type in ("kinetic", "thermal", "explosive", "em"): - module.boostItemAttr("%sDamageResistanceBonus" % type, - module.getModifiedItemAttr("overloadHardeningBonus")) - - return locals() - -def effect3036(): - type = "passive" - def handler(fit, skill, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Missile Launcher Bomb", - "moduleReactivationDelay", skill.getModifiedItemAttr("reactivationDelayBonus") * skill.level) - - return locals() - -def effect3046(): - type = "passive" - def handler(fit, module, context): - fit.ship.multiplyItemAttr("maxVelocity", module.getModifiedItemAttr("maxVelocityModifier"), stackingPenalties=True) - - return locals() - -def effect3047(): - type = "passive" - def handler(fit, module, context): - fit.ship.multiplyItemAttr("hp", module.getModifiedItemAttr("structureHPMultiplier")) - - return locals() - -def effect3061(): - type = "passive" - def handler(fit, module, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Operation"), - "heatDamage", module.getModifiedItemAttr("heatDamageBonus")) - - return locals() - -def effect315(): - type = "passive" - def handler(fit, skill, context): - amount = skill.getModifiedItemAttr("maxActiveDroneBonus") * skill.level - fit.extraAttributes.increase("maxActiveDrones", amount) - - return locals() - -def effect3169(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Emission Systems"), "cpu", - src.getModifiedItemAttr("shieldTransportCpuNeedBonus")) - - return locals() - -def effect3172(): - type = "passive" - def handler(fit, ship, context): - fit.drones.filteredItemBoost(lambda drone: drone.item.group.name == "Logistic Drone", - "armorDamageAmount", ship.getModifiedItemAttr("droneArmorDamageAmountBonus")) - - return locals() - -def effect3173(): - type = "passive" - def handler(fit, ship, context): - fit.drones.filteredItemBoost(lambda drone: drone.item.group.name == "Logistic Drone", - "shieldBonus", ship.getModifiedItemAttr("droneShieldBonusBonus")) - - return locals() - -def effect3174(): - type = "overheat" - def handler(fit, module, context): - module.boostItemAttr("maxRange", module.getModifiedItemAttr("overloadRangeBonus"), - stackingPenalties=True) - - return locals() - -def effect3175(): - type = "overheat" - def handler(fit, module, context): - module.boostItemAttr("speedFactor", module.getModifiedItemAttr("overloadSpeedFactorBonus"), - stackingPenalties=True) - - return locals() - -def effect3182(): - type = "overheat" - def handler(fit, module, context): - if "projected" not in context: - for scanType in ("Gravimetric", "Magnetometric", "Radar", "Ladar"): - module.boostItemAttr("scan{0}StrengthBonus".format(scanType), - module.getModifiedItemAttr("overloadECMStrengthBonus"), - stackingPenalties=True) - - return locals() - -def effect3196(): - type = "passive" - def handler(fit, skill, context): - fit.modules.filteredItemBoost(lambda mod: "heatDamage" in mod.item.attributes, "heatDamage", - skill.getModifiedItemAttr("thermodynamicsHeatDamage") * skill.level) - - return locals() - -def effect3200(): - type = "overheat" - def handler(fit, module, context): - module.boostItemAttr("duration", module.getModifiedItemAttr("overloadSelfDurationBonus")) - module.boostItemAttr("armorDamageAmount", module.getModifiedItemAttr("overloadArmorDamageAmount"), - stackingPenalties=True) - - return locals() - -def effect3201(): - type = "overheat" - def handler(fit, module, context): - module.boostItemAttr("duration", module.getModifiedItemAttr("overloadSelfDurationBonus")) - module.boostItemAttr("shieldBonus", module.getModifiedItemAttr("overloadShieldBonus"), stackingPenalties=True) - - return locals() - -def effect3212(): - type = "passive" - def handler(fit, container, context): - level = container.level if "skill" in context else 1 - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("FoF Missiles"), - "aoeCloudSize", container.getModifiedItemAttr("aoeCloudSizeBonus") * level) - - return locals() - -def effect3234(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Rockets"), - "explosiveDamage", ship.getModifiedItemAttr("shipBonusAF"), skill="Amarr Frigate") - - return locals() - -def effect3235(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Rockets"), - "kineticDamage", ship.getModifiedItemAttr("shipBonusAF"), skill="Amarr Frigate") - - return locals() - -def effect3236(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Rockets"), - "thermalDamage", ship.getModifiedItemAttr("shipBonusAF"), skill="Amarr Frigate") - - return locals() - -def effect3237(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Rockets"), - "emDamage", ship.getModifiedItemAttr("shipBonusAF"), skill="Amarr Frigate") - - return locals() - -def effect3241(): - type = "passive" - def handler(fit, ship, context): - fit.ship.boostItemAttr("armorEmDamageResonance", ship.getModifiedItemAttr("eliteBonusGunship1"), - skill="Assault Frigates") - - return locals() - -def effect3242(): - type = "passive" - def handler(fit, ship, context): - fit.ship.boostItemAttr("armorThermalDamageResonance", ship.getModifiedItemAttr("eliteBonusGunship1"), - skill="Assault Frigates") - - return locals() - -def effect3243(): - type = "passive" - def handler(fit, ship, context): - fit.ship.boostItemAttr("armorKineticDamageResonance", ship.getModifiedItemAttr("eliteBonusGunship1"), - skill="Assault Frigates") - - return locals() - -def effect3244(): - type = "passive" - def handler(fit, ship, context): - fit.ship.boostItemAttr("armorExplosiveDamageResonance", ship.getModifiedItemAttr("eliteBonusGunship1"), - skill="Assault Frigates") - - return locals() - -def effect3249(): - type = "passive" - def handler(fit, ship, context): - fit.ship.boostItemAttr("rechargeRate", ship.getModifiedItemAttr("shipBonus2AF"), skill="Amarr Frigate") - - return locals() - -def effect3264(): - type = "passive" - def handler(fit, skill, context): - amount = -skill.getModifiedItemAttr("consumptionQuantityBonus") - fit.modules.filteredItemIncrease(lambda mod: mod.item.requiresSkill(skill), - "consumptionQuantity", amount * skill.level) - - return locals() - -def effect3267(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Industrial Reconfiguration"), - "consumptionQuantity", ship.getModifiedItemAttr("shipBonusORECapital1"), - skill="Capital Industrial Ships") - - return locals() - -def effect3297(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Neutralizer", - "energyNeutralizerAmount", ship.getModifiedItemAttr("shipBonusAB"), - skill="Amarr Battleship") - - return locals() - -def effect3298(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Neutralizer", - "energyNeutralizerAmount", ship.getModifiedItemAttr("shipBonusAC"), - skill="Amarr Cruiser") - - return locals() - -def effect3299(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Neutralizer", - "energyNeutralizerAmount", ship.getModifiedItemAttr("shipBonusAF"), - skill="Amarr Frigate") - - return locals() - -def effect3313(): - type = "passive" - def handler(fit, skill, context): - fit.ship.boostItemAttr("maxJumpClones", skill.getModifiedItemAttr("maxJumpClonesBonus") * skill.level) - - return locals() - -def effect3331(): - type = "passive" - def handler(fit, ship, context): - fit.ship.boostItemAttr("armorHP", ship.getModifiedItemAttr("eliteBonusCommandShips1"), skill="Command Ships") - - return locals() - -def effect3335(): - type = "passive" - def handler(fit, ship, context): - fit.ship.boostItemAttr("armorEmDamageResonance", ship.getModifiedItemAttr("shipBonusMC2"), skill="Minmatar Cruiser") - - return locals() - -def effect3336(): - type = "passive" - def handler(fit, ship, context): - fit.ship.boostItemAttr("armorExplosiveDamageResonance", ship.getModifiedItemAttr("shipBonusMC2"), - skill="Minmatar Cruiser") - - return locals() - -def effect3339(): - type = "passive" - def handler(fit, ship, context): - fit.ship.boostItemAttr("armorKineticDamageResonance", ship.getModifiedItemAttr("shipBonusMC2"), - skill="Minmatar Cruiser") - - return locals() - -def effect3340(): - type = "passive" - def handler(fit, ship, context): - fit.ship.boostItemAttr("armorThermalDamageResonance", ship.getModifiedItemAttr("shipBonusMC2"), - skill="Minmatar Cruiser") - - return locals() - -def effect3343(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Projectile Turret"), - "falloff", ship.getModifiedItemAttr("eliteBonusHeavyInterdictors1"), - skill="Heavy Interdiction Cruisers") - - return locals() - -def effect3355(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Missiles"), - "maxVelocity", ship.getModifiedItemAttr("eliteBonusHeavyInterdictors1"), - skill="Heavy Interdiction Cruisers") - - return locals() - -def effect3356(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Assault Missiles"), - "maxVelocity", ship.getModifiedItemAttr("eliteBonusHeavyInterdictors1"), - skill="Heavy Interdiction Cruisers") - - return locals() - -def effect3357(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Light Missiles"), - "maxVelocity", ship.getModifiedItemAttr("eliteBonusHeavyInterdictors1"), - skill="Heavy Interdiction Cruisers") - - return locals() - -def effect3366(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Sensor Dampener", - "capacitorNeed", ship.getModifiedItemAttr("shipBonusGF"), skill="Gallente Frigate") - - return locals() - -def effect3367(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Warp Scrambler", - "maxRange", ship.getModifiedItemAttr("eliteBonusElectronicAttackShip1"), - skill="Electronic Attack Ships") - - return locals() - -def effect3369(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "ECM", - "maxRange", ship.getModifiedItemAttr("eliteBonusElectronicAttackShip1"), - skill="Electronic Attack Ships") - - return locals() - -def effect3370(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Stasis Web", - "maxRange", ship.getModifiedItemAttr("eliteBonusElectronicAttackShip1"), - skill="Electronic Attack Ships") - - return locals() - -def effect3371(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Warp Scrambler", - "capacitorNeed", ship.getModifiedItemAttr("eliteBonusElectronicAttackShip2"), - skill="Electronic Attack Ships") - - return locals() - -def effect3374(): - type = "passive" - def handler(fit, ship, context): - fit.ship.boostItemAttr("signatureRadius", ship.getModifiedItemAttr("eliteBonusElectronicAttackShip2"), - skill="Electronic Attack Ships") - - return locals() - -def effect3379(): - type = "passive" - def handler(fit, implant, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Afterburner"), - "capacitorNeed", implant.getModifiedItemAttr("capNeedBonus")) - - return locals() - -def effect3380(): - from eos.saveddata.module import State - type = "projected", "active" - runTime = "early" - def handler(fit, module, context): - if "projected" in context: - fit.ship.increaseItemAttr("warpScrambleStatus", module.getModifiedItemAttr("warpScrambleStrength")) - if module.charge is not None and module.charge.ID == 45010: - for mod in fit.modules: - if not mod.isEmpty and mod.item.requiresSkill("High Speed Maneuvering") and mod.state > State.ONLINE: - mod.state = State.ONLINE - if not mod.isEmpty and mod.item.requiresSkill("Micro Jump Drive Operation") and mod.state > State.ONLINE: - mod.state = State.ONLINE - else: - if module.charge is None: - fit.ship.boostItemAttr("mass", module.getModifiedItemAttr("massBonusPercentage")) - fit.ship.boostItemAttr("signatureRadius", module.getModifiedItemAttr("signatureRadiusBonus")) - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Propulsion Module", - "speedBoostFactor", module.getModifiedItemAttr("speedBoostFactorBonus")) - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Propulsion Module", - "speedFactor", module.getModifiedItemAttr("speedFactorBonus")) - fit.ship.forceItemAttr("disallowAssistance", 1) - - return locals() - -def effect3392(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Large Energy Turret"), - "trackingSpeed", ship.getModifiedItemAttr("eliteBonusBlackOps1"), skill="Black Ops") - - return locals() - -def effect34(): - type = 'active' - def handler(fit, module, context): - rt = module.getModifiedItemAttr("reloadTime") - if not rt: - module.reloadTime = 10000 - else: - module.reloadTime = rt - - return locals() - -def effect3403(): - type = "passive" - def handler(fit, ship, context): - if fit.extraAttributes["cloaked"]: - fit.ship.multiplyItemAttr("maxVelocity", ship.getModifiedItemAttr("eliteBonusBlackOps2"), skill="Black Ops") - - return locals() - -def effect3406(): - type = "passive" - def handler(fit, ship, context): - fit.ship.boostItemAttr("maxVelocity", ship.getModifiedItemAttr("eliteBonusBlackOps1"), skill="Black Ops") - - return locals() - -def effect3415(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Large Energy Turret"), - "damageMultiplier", ship.getModifiedItemAttr("eliteBonusViolatorsRole1")) - - return locals() - -def effect3416(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Large Hybrid Turret"), - "damageMultiplier", ship.getModifiedItemAttr("eliteBonusViolatorsRole1")) - - return locals() - -def effect3417(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Large Projectile Turret"), - "damageMultiplier", ship.getModifiedItemAttr("eliteBonusViolatorsRole1")) - - return locals() - -def effect3424(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Large Hybrid Turret"), - "trackingSpeed", ship.getModifiedItemAttr("eliteBonusViolators1"), skill="Marauders") - - return locals() - -def effect3425(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Large Projectile Turret"), - "trackingSpeed", ship.getModifiedItemAttr("eliteBonusViolators1"), skill="Marauders") - - return locals() - -def effect3427(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Tractor Beam", - "maxRange", ship.getModifiedItemAttr("eliteBonusViolatorsRole2")) - - return locals() - -def effect3439(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Target Painter", - "signatureRadiusBonus", ship.getModifiedItemAttr("eliteBonusViolators1"), - skill="Marauders") - - return locals() - -def effect3447(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Large Projectile Turret"), - "falloff", ship.getModifiedItemAttr("shipBonusMB"), skill="Minmatar Battleship") - - return locals() - -def effect3466(): - type = "passive" - def handler(fit, ship, context): - fit.ship.boostItemAttr("rechargeRate", ship.getModifiedItemAttr("eliteBonusElectronicAttackShip2"), - skill="Electronic Attack Ships") - - return locals() - -def effect3467(): - type = "passive" - def handler(fit, ship, context): - fit.ship.boostItemAttr("capacitorCapacity", ship.getModifiedItemAttr("eliteBonusElectronicAttackShip2"), - skill="Electronic Attack Ships") - - return locals() - -def effect3468(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Warp Disrupt Field Generator", - "warpScrambleRange", ship.getModifiedItemAttr("eliteBonusHeavyInterdictors2"), - skill="Heavy Interdiction Cruisers") - - return locals() - -def effect3473(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Tractor Beam", - "maxTractorVelocity", ship.getModifiedItemAttr("eliteBonusViolatorsRole3")) - - return locals() - -def effect3478(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Large Energy Turret"), - "damageMultiplier", ship.getModifiedItemAttr("shipBonusRole7")) - - return locals() - -def effect3480(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Large Energy Turret"), - "trackingSpeed", ship.getModifiedItemAttr("shipBonusAB2"), skill="Amarr Battleship") - - return locals() - -def effect3483(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Energy Turret"), - "damageMultiplier", ship.getModifiedItemAttr("shipBonusRole7")) - - return locals() - -def effect3484(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Energy Turret"), - "trackingSpeed", ship.getModifiedItemAttr("shipBonusAC2"), skill="Amarr Cruiser") - - return locals() - -def effect3487(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Energy Turret"), - "damageMultiplier", ship.getModifiedItemAttr("shipBonusRole7")) - - return locals() - -def effect3489(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Energy Turret"), - "trackingSpeed", ship.getModifiedItemAttr("shipBonus2AF"), skill="Amarr Frigate") - - return locals() - -def effect3493(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Cargo Scanner", - "cargoScanRange", ship.getModifiedItemAttr("cargoScannerRangeBonus")) - - return locals() - -def effect3494(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Survey Scanner", - "surveyScanRange", ship.getModifiedItemAttr("surveyScannerRangeBonus")) - - return locals() - -def effect3495(): - type = "passive" - def handler(fit, ship, context): - groups = ("Stasis Web", "Warp Scrambler") - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name in groups, - "capacitorNeed", ship.getModifiedItemAttr("eliteBonusInterceptorRole")) - - return locals() - -def effect3496(): - runTime = "early" - type = "passive" - def handler(fit, implant, context): - fit.appliedImplants.filteredItemMultiply(lambda mod: mod.item.group.name == "Cyberimplant", - "agilityBonus", implant.getModifiedItemAttr("implantSetThukker")) - - return locals() - -def effect3498(): - runTime = "early" - type = "passive" - def handler(fit, implant, context): - fit.appliedImplants.filteredItemMultiply(lambda mod: mod.item.group.name == "Cyberimplant", - "scanStrengthBonus", implant.getModifiedItemAttr("implantSetSisters")) - - return locals() - -def effect3499(): - runTime = "early" - type = "passive" - def handler(fit, implant, context): - fit.appliedImplants.filteredItemMultiply(lambda mod: mod.item.group.name == "Cyberimplant", - "boosterAttributeModifier", - implant.getModifiedItemAttr("implantSetSyndicate")) - - return locals() - -def effect3513(): - runTime = "early" - type = "passive" - def handler(fit, implant, context): - fit.appliedImplants.filteredItemMultiply(lambda mod: mod.item.group.name == "Cyberimplant", - "rangeSkillBonus", implant.getModifiedItemAttr("implantSetMordus")) - - return locals() - -def effect3514(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Warp Scrambler", - "maxRange", ship.getModifiedItemAttr("eliteBonusInterceptor2"), skill="Interceptors") - - return locals() - -def effect3519(): - type = "passive" - def handler(fit, skill, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Bomb Deployment"), - "cpu", skill.getModifiedItemAttr("cpuNeedBonus") * skill.level) - - return locals() - -def effect3520(): - type = "passive" - def handler(fit, skill, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Bomb Deployment"), - "power", skill.getModifiedItemAttr("powerNeedBonus") * skill.level) - - return locals() - -def effect3526(): - type = "passive" - def handler(fit, container, context): - level = container.level if "skill" in context else 1 - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Cynosural Field Generator", - "consumptionQuantity", - container.getModifiedItemAttr("consumptionQuantityBonusPercentage") * level) - - return locals() - -def effect3530(): - type = "passive" - def handler(fit, ship, context): - fit.ship.boostItemAttr("agility", ship.getModifiedItemAttr("eliteBonusBlackOps1"), skill="Black Ops") - - return locals() - -def effect3532(): - type = "passive" - def handler(fit, skill, context): - fit.ship.boostItemAttr("jumpDriveConsumptionAmount", - skill.getModifiedItemAttr("consumptionQuantityBonusPercentage") * skill.level) - - return locals() - -def effect3561(): - type = "passive" - def handler(fit, container, context): - level = container.level if "skill" in context else 1 - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Weapon Disruptor", - "trackingSpeedBonus", - container.getModifiedItemAttr("scanSkillEwStrengthBonus") * level) - - return locals() - -def effect3568(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Remote Tracking Computer", - "maxRangeBonus", ship.getModifiedItemAttr("eliteBonusLogistics1"), - skill="Logistics Cruisers") - - return locals() - -def effect3569(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Remote Tracking Computer", - "maxRangeBonus", ship.getModifiedItemAttr("eliteBonusLogistics2"), - skill="Logistics Cruisers") - - return locals() - -def effect3570(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Remote Tracking Computer", - "trackingSpeedBonus", ship.getModifiedItemAttr("eliteBonusLogistics2"), - skill="Logistics Cruisers") - - return locals() - -def effect3571(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Remote Tracking Computer", - "trackingSpeedBonus", ship.getModifiedItemAttr("eliteBonusLogistics1"), - skill="Logistics Cruisers") - - return locals() - -def effect3586(): - type = "passive" - def handler(fit, container, context): - level = container.level if "skill" in context else 1 - penalized = False if "skill" in context else True - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Sensor Dampener", - "scanResolutionBonus", - container.getModifiedItemAttr("scanSkillEwStrengthBonus") * level, - stackingPenalties=penalized) - - return locals() - -def effect3587(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Sensor Dampener", - "maxTargetRangeBonus", ship.getModifiedItemAttr("shipBonusGC2"), - skill="Gallente Cruiser") - - return locals() - -def effect3588(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Sensor Dampener", - "maxTargetRangeBonus", ship.getModifiedItemAttr("shipBonusGF2"), - skill="Gallente Frigate") - - return locals() - -def effect3589(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Sensor Dampener", - "scanResolutionBonus", ship.getModifiedItemAttr("shipBonusGF2"), - skill="Gallente Frigate") - - return locals() - -def effect3590(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Sensor Dampener", - "scanResolutionBonus", ship.getModifiedItemAttr("shipBonusGC2"), - skill="Gallente Cruiser") - - return locals() - -def effect3591(): - type = "passive" - def handler(fit, container, context): - level = container.level if "skill" in context else 1 - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Sensor Dampener", - "maxTargetRangeBonus", - container.getModifiedItemAttr("scanSkillEwStrengthBonus") * level) - - return locals() - -def effect3592(): - type = "passive" - def handler(fit, ship, context): - fit.ship.boostItemAttr("hp", ship.getModifiedItemAttr("eliteBonusJumpFreighter1"), skill="Jump Freighters") - - return locals() - -def effect3593(): - type = "passive" - def handler(fit, ship, context): - fit.ship.boostItemAttr("jumpDriveConsumptionAmount", ship.getModifiedItemAttr("eliteBonusJumpFreighter2"), - skill="Jump Freighters") - - return locals() - -def effect3597(): - type = "passive" - def handler(fit, module, context): - module.boostItemAttr("scanResolutionBonus", module.getModifiedChargeAttr("scanResolutionBonusBonus")) - - return locals() - -def effect3598(): - type = "passive" - def handler(fit, module, context): - module.boostItemAttr("maxTargetRangeBonus", module.getModifiedChargeAttr("maxTargetRangeBonusBonus")) - - return locals() - -def effect3599(): - type = "passive" - def handler(fit, module, context): - module.boostItemAttr("trackingSpeedBonus", module.getModifiedChargeAttr("trackingSpeedBonusBonus")) - - return locals() - -def effect3600(): - type = "passive" - def handler(fit, module, context): - module.boostItemAttr("maxRangeBonus", module.getModifiedChargeAttr("maxRangeBonusBonus")) - - return locals() - -def effect3601(): - type = "passive" - def handler(fit, module, context): - module.forceItemAttr("disallowInEmpireSpace", module.getModifiedChargeAttr("disallowInEmpireSpace")) - - return locals() - -def effect3602(): - type = "passive" - def handler(fit, module, context): - module.boostItemAttr("duration", module.getModifiedChargeAttr("durationBonus")) - - return locals() - -def effect3617(): - type = "passive" - runTime = "early" - def handler(fit, module, context): - module.boostItemAttr("signatureRadiusBonus", module.getModifiedChargeAttr("signatureRadiusBonusBonus")) - - return locals() - -def effect3618(): - type = "passive" - runTime = "early" - def handler(fit, module, context): - module.boostItemAttr("massBonusPercentage", module.getModifiedChargeAttr("massBonusPercentageBonus")) - - return locals() - -def effect3619(): - type = "passive" - runTime = "early" - def handler(fit, module, context): - module.boostItemAttr("speedBoostFactorBonus", module.getModifiedChargeAttr("speedBoostFactorBonusBonus")) - - return locals() - -def effect3620(): - type = "passive" - runTime = "early" - def handler(fit, module, context): - module.boostItemAttr("speedFactorBonus", module.getModifiedChargeAttr("speedFactorBonusBonus")) - - return locals() - -def effect3648(): - type = "passive" - def handler(fit, module, context): - module.boostItemAttr("warpScrambleRange", module.getModifiedChargeAttr("warpScrambleRangeBonus")) - - return locals() - -def effect3649(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Large Energy Turret"), - "damageMultiplier", ship.getModifiedItemAttr("eliteBonusViolators1"), - skill="Marauders") - - return locals() - -def effect3650(): - type = "passive" - def handler(fit, implant, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Sensor Dampener", - "maxRange", implant.getModifiedItemAttr("rangeSkillBonus")) - - return locals() - -def effect3651(): - type = "passive" - def handler(fit, implant, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Target Painter", - "maxRange", implant.getModifiedItemAttr("rangeSkillBonus")) - - return locals() - -def effect3652(): - type = "passive" - def handler(fit, implant, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Weapon Disruptor", - "maxRange", implant.getModifiedItemAttr("rangeSkillBonus")) - - return locals() - -def effect3653(): - type = "passive" - def handler(fit, implant, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Burst Projectors", - "maxRange", implant.getModifiedItemAttr("rangeSkillBonus")) - - return locals() - -def effect3655(): - type = "passive" - def handler(fit, module, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Gunnery"), - "maxRange", module.getModifiedItemAttr("maxRangeBonus"), - stackingPenalties=True) - - return locals() - -def effect3656(): - type = "passive" - def handler(fit, module, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Gunnery"), - "trackingSpeed", module.getModifiedItemAttr("trackingSpeedBonus"), - stackingPenalties=True) - - return locals() - -def effect3657(): - type = "passive" - def handler(fit, module, context): - fit.ship.boostItemAttr("scanResolution", module.getModifiedItemAttr("scanResolutionBonus"), - stackingPenalties=True) - - return locals() - -def effect3659(): - type = "passive" - def handler(fit, module, context): - fit.ship.boostItemAttr("maxTargetRange", module.getModifiedItemAttr("maxTargetRangeBonus"), - stackingPenalties=True) - - return locals() - -def effect3660(): - type = "passive" - def handler(fit, module, context): - fit.ship.increaseItemAttr("maxLockedTargets", module.getModifiedItemAttr("maxLockedTargetsBonus")) - - return locals() - -def effect3668(): - type = "passive" - def handler(fit, implant, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Mining Laser", - "maxRange", implant.getModifiedItemAttr("maxRangeBonus")) - - return locals() - -def effect3669(): - type = "passive" - def handler(fit, implant, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Frequency Mining Laser", - "maxRange", implant.getModifiedItemAttr("maxRangeBonus")) - - return locals() - -def effect3670(): - type = "passive" - def handler(fit, implant, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Strip Miner", - "maxRange", implant.getModifiedItemAttr("maxRangeBonus")) - - return locals() - -def effect3671(): - type = "passive" - def handler(fit, implant, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Gas Cloud Harvester", - "maxRange", implant.getModifiedItemAttr("maxRangeBonus")) - - return locals() - -def effect3672(): - runTime = "early" - type = "passive" - def handler(fit, implant, context): - fit.appliedImplants.filteredItemMultiply(lambda mod: mod.item.group.name == "Cyberimplant", - "maxRangeBonus", implant.getModifiedItemAttr("implantSetORE")) - - return locals() - -def effect3677(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Large Energy Turret"), - "maxRange", ship.getModifiedItemAttr("shipBonusAB2"), skill="Amarr Battleship") - - return locals() - -def effect3678(): - type = "passive" - def handler(fit, ship, context): - fit.ship.boostItemAttr("shieldCapacity", ship.getModifiedItemAttr("eliteBonusJumpFreighter1"), - skill="Jump Freighters") - - return locals() - -def effect3679(): - type = "passive" - def handler(fit, ship, context): - fit.ship.boostItemAttr("armorHP", ship.getModifiedItemAttr("eliteBonusJumpFreighter1"), skill="Jump Freighters") - - return locals() - -def effect3680(): - type = "passive" - def handler(fit, ship, context): - fit.ship.boostItemAttr("agility", ship.getModifiedItemAttr("freighterBonusC1"), skill="Caldari Freighter") - - return locals() - -def effect3681(): - type = "passive" - def handler(fit, ship, context): - fit.ship.boostItemAttr("agility", ship.getModifiedItemAttr("freighterBonusM1"), skill="Minmatar Freighter") - - return locals() - -def effect3682(): - type = "passive" - def handler(fit, ship, context): - fit.ship.boostItemAttr("agility", ship.getModifiedItemAttr("freighterBonusG1"), skill="Gallente Freighter") - - return locals() - -def effect3683(): - type = "passive" - def handler(fit, ship, context): - fit.ship.boostItemAttr("agility", ship.getModifiedItemAttr("freighterBonusA1"), skill="Amarr Freighter") - - return locals() - -def effect3686(): - type = "passive" - def handler(fit, module, context): - module.boostItemAttr("falloffBonus", module.getModifiedChargeAttr("falloffBonusBonus")) - - return locals() - -def effect3703(): - type = "passive" - def handler(fit, ship, context): - groups = ("Missile Launcher Rapid Light", "Missile Launcher Heavy", "Missile Launcher Heavy Assault") - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name in groups, - "speed", ship.getModifiedItemAttr("shipBonusMC2"), skill="Minmatar Cruiser") - - return locals() - -def effect3705(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Hybrid Turret"), - "speed", ship.getModifiedItemAttr("shipBonusGC2"), skill="Gallente Cruiser") - - return locals() - -def effect3706(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Projectile Turret"), - "trackingSpeed", ship.getModifiedItemAttr("shipBonusMC2"), skill="Minmatar Cruiser") - - return locals() - -def effect3726(): - type = "passive" - def handler(fit, module, context): - fit.ship.boostItemAttr("agility", module.getModifiedItemAttr("agilityBonus"), stackingPenalties=True) - - return locals() - -def effect3727(): - type = "passive" - def handler(fit, module, context): - fit.ship.boostItemAttr("maxVelocity", module.getModifiedItemAttr("implantBonusVelocity"), - stackingPenalties=True) - - return locals() - -def effect3739(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Tractor Beam", "maxRange", - src.getModifiedItemAttr("roleBonusTractorBeamRange")) - - return locals() - -def effect3740(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Tractor Beam", "maxTractorVelocity", - ship.getModifiedItemAttr("roleBonusTractorBeamVelocity")) - - return locals() - -def effect3742(): - type = "passive" - def handler(fit, src, context): - fit.ship.boostItemAttr("specialOreHoldCapacity", - src.getModifiedItemAttr("shipBonusICS1"), - skill="Industrial Command Ships") - fit.ship.boostItemAttr("capacity", - src.getModifiedItemAttr("shipBonusICS1"), - skill="Industrial Command Ships") - - return locals() - -def effect3744(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Mining Foreman"), "warfareBuff4Value", - src.getModifiedItemAttr("shipBonusICS2"), skill="Industrial Command Ships") - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Mining Foreman"), "warfareBuff1Value", - src.getModifiedItemAttr("shipBonusICS2"), skill="Industrial Command Ships") - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Mining Foreman"), "buffDuration", - src.getModifiedItemAttr("shipBonusICS2"), skill="Industrial Command Ships") - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Mining Foreman"), "warfareBuff3Value", - src.getModifiedItemAttr("shipBonusICS2"), skill="Industrial Command Ships") - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Mining Foreman"), "warfareBuff2Value", - src.getModifiedItemAttr("shipBonusICS2"), skill="Industrial Command Ships") - - return locals() - -def effect3745(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Survey Scanner", "surveyScanRange", - src.getModifiedItemAttr("roleBonusSurveyScannerRange")) - - return locals() - -def effect3765(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemMultiply(lambda mod: mod.item.group.name == "Missile Launcher Torpedo", - "power", ship.getModifiedItemAttr("stealthBomberLauncherPower")) - - return locals() - -def effect3766(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("High Speed Maneuvering"), - "signatureRadiusBonus", ship.getModifiedItemAttr("eliteBonusInterceptor"), - skill="Interceptors") - - return locals() - -def effect3767(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Missiles"), - "aoeVelocity", ship.getModifiedItemAttr("eliteBonusCommandShips2"), - skill="Command Ships") - - return locals() - -def effect3771(): - type = "passive" - def handler(fit, module, context): - fit.ship.increaseItemAttr("armorHP", module.getModifiedItemAttr("armorHPBonusAdd") or 0) - - return locals() - -def effect3773(): - type = "passive" - def handler(fit, module, context): - fit.ship.increaseItemAttr("turretSlotsLeft", module.getModifiedItemAttr("turretHardPointModifier")) - fit.ship.increaseItemAttr("launcherSlotsLeft", module.getModifiedItemAttr("launcherHardPointModifier")) - - return locals() - -def effect3774(): - type = "passive" - def handler(fit, module, context): - fit.ship.increaseItemAttr("hiSlots", module.getModifiedItemAttr("hiSlotModifier")) - fit.ship.increaseItemAttr("medSlots", module.getModifiedItemAttr("medSlotModifier")) - fit.ship.increaseItemAttr("lowSlots", module.getModifiedItemAttr("lowSlotModifier")) - - return locals() - -def effect3782(): - type = "passive" - def handler(fit, module, context): - fit.ship.increaseItemAttr("powerOutput", module.getModifiedItemAttr("powerOutput")) - - return locals() - -def effect3783(): - type = "passive" - def handler(fit, module, context): - fit.ship.increaseItemAttr("cpuOutput", module.getModifiedItemAttr("cpuOutput")) - - return locals() - -def effect3797(): - type = "passive" - def handler(fit, module, context): - fit.ship.increaseItemAttr("droneBandwidth", module.getModifiedItemAttr("droneBandwidth")) - - return locals() - -def effect3799(): - type = "passive" - def handler(fit, module, context): - fit.ship.increaseItemAttr("droneCapacity", module.getModifiedItemAttr("droneCapacity")) - - return locals() - -def effect38(): - type = "active" - def handler(fit, module, context): - pass - - return locals() - -def effect3807(): - type = "passive" - def handler(fit, module, context): - fit.ship.increaseItemAttr("maxTargetRange", module.getModifiedItemAttr("maxTargetRange")) - - return locals() - -def effect3808(): - type = "passive" - def handler(fit, module, context): - fit.ship.increaseItemAttr("signatureRadius", module.getModifiedItemAttr("signatureRadius")) - - return locals() - -def effect3810(): - type = "passive" - def handler(fit, subsystem, context): - fit.ship.increaseItemAttr("capacity", subsystem.getModifiedItemAttr("cargoCapacityAdd") or 0) - - return locals() - -def effect3811(): - type = "passive" - def handler(fit, module, context): - fit.ship.increaseItemAttr("capacitorCapacity", module.getModifiedItemAttr("capacitorCapacity") or 0) - - return locals() - -def effect3831(): - type = "passive" - def handler(fit, module, context): - fit.ship.increaseItemAttr("shieldCapacity", module.getModifiedItemAttr("shieldCapacity")) - - return locals() - -def effect3857(): - type = "passive" - def handler(fit, module, context): - fit.ship.boostItemAttr("maxVelocity", module.getModifiedItemAttr("subsystemBonusAmarrPropulsion"), - skill="Amarr Propulsion Systems") - - return locals() - -def effect3859(): - type = "passive" - def handler(fit, src, context): - fit.ship.boostItemAttr("maxVelocity", src.getModifiedItemAttr("subsystemBonusCaldariPropulsion"), - skill="Caldari Propulsion Systems") - - return locals() - -def effect3860(): - type = "passive" - def handler(fit, module, context): - fit.ship.boostItemAttr("maxVelocity", module.getModifiedItemAttr("subsystemBonusMinmatarPropulsion"), - skill="Minmatar Propulsion Systems") - - return locals() - -def effect3861(): - type = "passive" - def handler(fit, module, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Afterburner"), - "speedFactor", module.getModifiedItemAttr("subsystemBonusMinmatarPropulsion"), - skill="Minmatar Propulsion Systems") - - return locals() - -def effect3863(): - type = "passive" - def handler(fit, module, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Afterburner"), - "speedFactor", module.getModifiedItemAttr("subsystemBonusCaldariPropulsion"), - skill="Caldari Propulsion Systems") - - return locals() - -def effect3864(): - type = "passive" - def handler(fit, module, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Afterburner"), - "speedFactor", module.getModifiedItemAttr("subsystemBonusAmarrPropulsion"), - skill="Amarr Propulsion Systems") - - return locals() - -def effect3865(): - type = "passive" - def handler(fit, src, context): - fit.ship.boostItemAttr("agility", src.getModifiedItemAttr("subsystemBonusAmarrPropulsion2"), - skill="Amarr Propulsion Systems") - - return locals() - -def effect3866(): - type = "passive" - def handler(fit, src, context): - fit.ship.boostItemAttr("agility", src.getModifiedItemAttr("subsystemBonusCaldariPropulsion2"), - skill="Caldari Propulsion Systems") - - return locals() - -def effect3867(): - type = "passive" - def handler(fit, src, context): - fit.ship.boostItemAttr("agility", src.getModifiedItemAttr("subsystemBonusGallentePropulsion2"), - skill="Gallente Propulsion Systems") - - return locals() - -def effect3868(): - type = "passive" - def handler(fit, src, context): - fit.ship.boostItemAttr("agility", src.getModifiedItemAttr("subsystemBonusMinmatarPropulsion2"), - skill="Minmatar Propulsion Systems") - - return locals() - -def effect3869(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("High Speed Maneuvering"), - "signatureRadiusBonus", src.getModifiedItemAttr("subsystemBonusMinmatarPropulsion2"), - skill="Minmatar Propulsion Systems") - - return locals() - -def effect3872(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("High Speed Maneuvering"), - "signatureRadiusBonus", src.getModifiedItemAttr("subsystemBonusAmarrPropulsion2"), - skill="Amarr Propulsion Systems") - - return locals() - -def effect3875(): - type = "passive" - def handler(fit, module, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Propulsion Module", - "capacitorNeed", module.getModifiedItemAttr("subsystemBonusGallentePropulsion"), - skill="Gallente Propulsion Systems") - - return locals() - -def effect3893(): - type = "passive" - def handler(fit, src, context): - fit.ship.boostItemAttr("scanLadarStrength", src.getModifiedItemAttr("subsystemBonusMinmatarCore"), - skill="Minmatar Core Systems") - - return locals() - -def effect3895(): - type = "passive" - def handler(fit, src, context): - fit.ship.boostItemAttr("scanMagnetometricStrength", src.getModifiedItemAttr("subsystemBonusGallenteCore"), - skill="Gallente Core Systems") - - return locals() - -def effect3897(): - type = "passive" - def handler(fit, src, context): - fit.ship.boostItemAttr("scanGravimetricStrength", src.getModifiedItemAttr("subsystemBonusCaldariCore"), skill="Caldari Core Systems") - - return locals() - -def effect39(): - type = "projected", "active" - def handler(fit, module, context): - if "projected" in context: - fit.ship.increaseItemAttr("warpScrambleStatus", module.getModifiedItemAttr("warpScrambleStrength")) - - return locals() - -def effect3900(): - type = "passive" - def handler(fit, src, context): - fit.ship.boostItemAttr("scanRadarStrength", src.getModifiedItemAttr("subsystemBonusAmarrCore"), - skill="Amarr Core Systems") - - return locals() - -def effect391(): - type = "passive" - def handler(fit, container, context): - level = container.level if "skill" in context else 1 - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Mining"), - "miningAmount", container.getModifiedItemAttr("miningAmountBonus") * level) - - return locals() - -def effect392(): - type = "passive" - def handler(fit, container, context): - level = container.level if "skill" in context else 1 - fit.ship.boostItemAttr("hp", container.getModifiedItemAttr("hullHpBonus") * level) - - return locals() - -def effect394(): - type = "passive" - def handler(fit, container, context): - level = container.level if "skill" in context else 1 - amount = container.getModifiedItemAttr("velocityBonus") or 0 - fit.ship.boostItemAttr("maxVelocity", amount * level, - stackingPenalties="skill" not in context and "implant" not in context and "booster" not in context) - - return locals() - -def effect395(): - type = "passive" - def handler(fit, container, context): - level = container.level if "skill" in context else 1 - fit.ship.boostItemAttr("agility", container.getModifiedItemAttr("agilityBonus") * level, - stackingPenalties="skill" not in context and "implant" not in context) - - return locals() - -def effect3959(): - type = "passive" - def handler(fit, module, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Repair Systems"), - "armorDamageAmount", module.getModifiedItemAttr("subsystemBonusAmarrDefensive"), - skill="Amarr Defensive Systems") - - return locals() - -def effect396(): - type = "passive" - def handler(fit, container, context): - level = container.level if "skill" in context else 1 - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Energy Grid Upgrades"), - "cpu", container.getModifiedItemAttr("cpuNeedBonus") * level) - - return locals() - -def effect3961(): - type = "passive" - def handler(fit, module, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Repair Systems"), - "armorDamageAmount", module.getModifiedItemAttr("subsystemBonusGallenteDefensive"), - skill="Gallente Defensive Systems") - - return locals() - -def effect3962(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Repair Systems"), - "armorDamageAmount", src.getModifiedItemAttr("subsystemBonusMinmatarDefensive"), - skill="Minmatar Defensive Systems") - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Operation"), - "shieldBonus", src.getModifiedItemAttr("subsystemBonusMinmatarDefensive"), - skill="Minmatar Defensive Systems") - - return locals() - -def effect3964(): - type = "passive" - def handler(fit, module, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Operation"), - "shieldBonus", module.getModifiedItemAttr("subsystemBonusCaldariDefensive"), - skill="Caldari Defensive Systems") - - return locals() - -def effect397(): - type = "passive" - def handler(fit, container, context): - level = container.level if "skill" in context else 1 - fit.ship.boostItemAttr("cpuOutput", container.getModifiedItemAttr("cpuOutputBonus2") * level) - - return locals() - -def effect3976(): - type = "passive" - def handler(fit, module, context): - fit.ship.boostItemAttr("shieldCapacity", module.getModifiedItemAttr("subsystemBonusCaldariDefensive"), - skill="Caldari Defensive Systems") - - return locals() - -def effect3979(): - type = "passive" - def handler(fit, src, context): - fit.ship.boostItemAttr("shieldCapacity", src.getModifiedItemAttr("subsystemBonusMinmatarDefensive"), - skill="Minmatar Defensive Systems") - fit.ship.boostItemAttr("armorHP", src.getModifiedItemAttr("subsystemBonusMinmatarDefensive"), - skill="Minmatar Defensive Systems") - - return locals() - -def effect3980(): - type = "passive" - def handler(fit, module, context): - fit.ship.boostItemAttr("armorHP", module.getModifiedItemAttr("subsystemBonusGallenteDefensive"), - skill="Gallente Defensive Systems") - - return locals() - -def effect3982(): - type = "passive" - def handler(fit, module, context): - fit.ship.boostItemAttr("armorHP", module.getModifiedItemAttr("subsystemBonusAmarrDefensive"), - skill="Amarr Defensive Systems") - - return locals() - -def effect3992(): - runTime = "early" - type = ("projected", "passive") - def handler(fit, beacon, context): - fit.ship.multiplyItemAttr("shieldCapacity", beacon.getModifiedItemAttr("shieldCapacityMultiplier")) - - return locals() - -def effect3993(): - runTime = "early" - type = ("projected", "passive") - def handler(fit, beacon, context): - fit.ship.multiplyItemAttr("maxTargetRange", beacon.getModifiedItemAttr("maxTargetRangeMultiplier"), - stackingPenalties=True, penaltyGroup="postMul") - - return locals() - -def effect3995(): - runTime = "early" - type = ("projected", "passive") - def handler(fit, beacon, context): - fit.ship.multiplyItemAttr("signatureRadius", beacon.getModifiedItemAttr("signatureRadiusMultiplier"), - stackingPenalties=True, penaltyGroup="postMul") - - return locals() - -def effect3996(): - runTime = "early" - type = ("projected", "passive") - def handler(fit, beacon, context): - fit.ship.boostItemAttr("armorEmDamageResonance", beacon.getModifiedItemAttr("armorEmDamageResistanceBonus"), - stackingPenalties=True) - - return locals() - -def effect3997(): - runTime = "early" - type = ("projected", "passive") - def handler(fit, beacon, context): - fit.ship.boostItemAttr("armorExplosiveDamageResonance", - beacon.getModifiedItemAttr("armorExplosiveDamageResistanceBonus"), - stackingPenalties=True) - - return locals() - -def effect3998(): - runTime = "early" - type = ("projected", "passive") - def handler(fit, beacon, context): - fit.ship.boostItemAttr("armorKineticDamageResonance", - beacon.getModifiedItemAttr("armorKineticDamageResistanceBonus"), - stackingPenalties=True) - - return locals() - -def effect3999(): - runTime = "early" - type = ("projected", "passive") - def handler(fit, beacon, context): - fit.ship.boostItemAttr("armorThermalDamageResonance", - beacon.getModifiedItemAttr("armorThermalDamageResistanceBonus"), - stackingPenalties=True) - - return locals() - -def effect4(): - runTime = "late" - type = "active" - def handler(fit, module, context): - amount = module.getModifiedItemAttr("shieldBonus") - speed = module.getModifiedItemAttr("duration") / 1000.0 - fit.extraAttributes.increase("shieldRepair", amount / speed) - - return locals() - -def effect4002(): - runTime = "early" - type = ("projected", "passive") - def handler(fit, beacon, context): - fit.modules.filteredChargeMultiply(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), - "maxVelocity", beacon.getModifiedItemAttr("missileVelocityMultiplier"), - stackingPenalties=True, penaltyGroup="postMul") - - return locals() - -def effect4003(): - runTime = "early" - type = ("projected", "passive") - def handler(fit, beacon, context): - fit.ship.multiplyItemAttr("maxVelocity", beacon.getModifiedItemAttr("maxVelocityMultiplier"), - stackingPenalties=True, penaltyGroup="postMul") - - return locals() - -def effect4016(): - runTime = "early" - type = ("projected", "passive") - def handler(fit, beacon, context): - fit.modules.filteredItemMultiply(lambda mod: mod.item.requiresSkill("Gunnery"), - "damageMultiplier", beacon.getModifiedItemAttr("damageMultiplierMultiplier"), - stackingPenalties=True) - - return locals() - -def effect4017(): - runTime = "early" - type = ("projected", "passive") - def handler(fit, beacon, context): - fit.modules.filteredChargeMultiply(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), - "thermalDamage", beacon.getModifiedItemAttr("damageMultiplierMultiplier"), - stackingPenalties=True, penaltyGroup="postMul") - - return locals() - -def effect4018(): - runTime = "early" - type = ("projected", "passive") - def handler(fit, beacon, context): - fit.modules.filteredChargeMultiply(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), - "emDamage", beacon.getModifiedItemAttr("damageMultiplierMultiplier"), - stackingPenalties=True, penaltyGroup="postMul") - - return locals() - -def effect4019(): - runTime = "early" - type = ("projected", "passive") - def handler(fit, beacon, context): - fit.modules.filteredChargeMultiply(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), - "explosiveDamage", beacon.getModifiedItemAttr("damageMultiplierMultiplier"), - stackingPenalties=True, penaltyGroup="postMul") - - return locals() - -def effect4020(): - runTime = "early" - type = ("projected", "passive") - def handler(fit, beacon, context): - fit.modules.filteredChargeMultiply(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), - "kineticDamage", beacon.getModifiedItemAttr("damageMultiplierMultiplier"), - stackingPenalties=True, penaltyGroup="postMul") - - return locals() - -def effect4021(): - runTime = "early" - type = ("projected", "passive") - def handler(fit, beacon, context): - fit.drones.filteredItemMultiply(lambda drone: drone.item.requiresSkill("Drones"), - "damageMultiplier", beacon.getModifiedItemAttr("damageMultiplierMultiplier"), - stackingPenalties=True, penaltyGroup="postMul") - - return locals() - -def effect4022(): - runTime = "early" - type = ("projected", "passive") - def handler(fit, module, context): - fit.modules.filteredItemMultiply(lambda mod: mod.item.requiresSkill("Gunnery"), - "trackingSpeed", module.getModifiedItemAttr("trackingSpeedMultiplier"), - stackingPenalties=True, penaltyGroup="postMul") - - return locals() - -def effect4023(): - runTime = "early" - type = ("projected", "passive") - def handler(fit, beacon, context): - fit.modules.filteredChargeMultiply(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), - "aoeVelocity", beacon.getModifiedItemAttr("aoeVelocityMultiplier")) - - return locals() - -def effect4033(): - runTime = "early" - type = ("projected", "passive") - def handler(fit, module, context): - fit.modules.filteredItemMultiply(lambda mod: "heatDamage" in mod.itemModifiedAttributes, - "heatDamage", module.getModifiedItemAttr("heatDamageMultiplier")) - - return locals() - -def effect4034(): - runTime = "early" - type = ("projected", "passive") - def handler(fit, module, context): - fit.modules.filteredItemMultiply(lambda mod: "overloadArmorDamageAmount" in mod.itemModifiedAttributes, - "overloadArmorDamageAmount", module.getModifiedItemAttr("overloadBonusMultiplier")) - - return locals() - -def effect4035(): - runTime = "early" - type = ("projected", "passive") - def handler(fit, module, context): - fit.modules.filteredItemMultiply(lambda mod: "overloadDamageModifier" in mod.itemModifiedAttributes, - "overloadDamageModifier", module.getModifiedItemAttr("overloadBonusMultiplier")) - - return locals() - -def effect4036(): - runTime = "early" - type = ("projected", "passive") - def handler(fit, module, context): - fit.modules.filteredItemMultiply(lambda mod: "overloadDurationBonus" in mod.itemModifiedAttributes, - "overloadDurationBonus", module.getModifiedItemAttr("overloadBonusMultiplier")) - - return locals() - -def effect4037(): - runTime = "early" - type = ("projected", "passive") - def handler(fit, module, context): - fit.modules.filteredItemMultiply(lambda mod: "overloadECCMStrenghtBonus" in mod.itemModifiedAttributes, - "overloadECCMStrenghtBonus", module.getModifiedItemAttr("overloadBonusMultiplier")) - - return locals() - -def effect4038(): - runTime = "early" - type = ("projected", "passive") - def handler(fit, module, context): - fit.modules.filteredItemMultiply(lambda mod: "overloadECMStrenghtBonus" in mod.itemModifiedAttributes, - "overloadECMStrenghtBonus", module.getModifiedItemAttr("overloadBonusMultiplier")) - - return locals() - -def effect4039(): - runTime = "early" - type = ("projected", "passive") - def handler(fit, module, context): - fit.modules.filteredItemMultiply(lambda mod: "overloadHardeningBonus" in mod.itemModifiedAttributes, - "overloadHardeningBonus", module.getModifiedItemAttr("overloadBonusMultiplier")) - - return locals() - -def effect4040(): - runTime = "early" - type = ("projected", "passive") - def handler(fit, module, context): - fit.modules.filteredItemMultiply(lambda mod: "overloadRangeBonus" in mod.itemModifiedAttributes, - "overloadRangeBonus", module.getModifiedItemAttr("overloadBonusMultiplier")) - - return locals() - -def effect4041(): - runTime = "early" - type = ("projected", "passive") - def handler(fit, module, context): - fit.modules.filteredItemMultiply(lambda mod: "overloadRofBonus" in mod.itemModifiedAttributes, - "overloadRofBonus", module.getModifiedItemAttr("overloadBonusMultiplier")) - - return locals() - -def effect4042(): - runTime = "early" - type = ("projected", "passive") - def handler(fit, module, context): - fit.modules.filteredItemMultiply(lambda mod: "overloadSelfDurationBonus" in mod.itemModifiedAttributes, - "overloadSelfDurationBonus", module.getModifiedItemAttr("overloadBonusMultiplier")) - - return locals() - -def effect4043(): - runTime = "early" - type = ("projected", "passive") - def handler(fit, module, context): - fit.modules.filteredItemMultiply(lambda mod: "overloadShieldBonus" in mod.itemModifiedAttributes, - "overloadShieldBonus", module.getModifiedItemAttr("overloadBonusMultiplier")) - - return locals() - -def effect4044(): - runTime = "early" - type = ("projected", "passive") - def handler(fit, module, context): - fit.modules.filteredItemMultiply(lambda mod: "overloadSpeedFactorBonus" in mod.itemModifiedAttributes, - "overloadSpeedFactorBonus", module.getModifiedItemAttr("overloadBonusMultiplier")) - - return locals() - -def effect4045(): - runTime = "early" - type = ("projected", "passive") - def handler(fit, module, context): - fit.modules.filteredItemMultiply(lambda mod: mod.item.group.name == "Smart Bomb", - "empFieldRange", module.getModifiedItemAttr("empFieldRangeMultiplier")) - - return locals() - -def effect4046(): - runTime = "early" - type = ("projected", "passive") - def handler(fit, module, context): - fit.modules.filteredItemMultiply(lambda mod: mod.item.group.name == "Smart Bomb", - "emDamage", module.getModifiedItemAttr("smartbombDamageMultiplier")) - - return locals() - -def effect4047(): - runTime = "early" - type = ("projected", "passive") - def handler(fit, module, context): - fit.modules.filteredItemMultiply(lambda mod: mod.item.group.name == "Smart Bomb", - "thermalDamage", module.getModifiedItemAttr("smartbombDamageMultiplier")) - - return locals() - -def effect4048(): - runTime = "early" - type = ("projected", "passive") - def handler(fit, module, context): - fit.modules.filteredItemMultiply(lambda mod: mod.item.group.name == "Smart Bomb", - "kineticDamage", module.getModifiedItemAttr("smartbombDamageMultiplier")) - - return locals() - -def effect4049(): - runTime = "early" - type = ("projected", "passive") - def handler(fit, module, context): - fit.modules.filteredItemMultiply(lambda mod: mod.item.group.name == "Smart Bomb", - "explosiveDamage", module.getModifiedItemAttr("smartbombDamageMultiplier")) - - return locals() - -def effect4054(): - runTime = "early" - type = ("projected", "passive") - def handler(fit, module, context): - fit.modules.filteredItemMultiply(lambda mod: mod.item.requiresSkill("Small Energy Turret"), - "damageMultiplier", module.getModifiedItemAttr("smallWeaponDamageMultiplier"), - stackingPenalties=True) - - return locals() - -def effect4055(): - runTime = "early" - type = ("projected", "passive") - def handler(fit, module, context): - fit.modules.filteredItemMultiply(lambda mod: mod.item.requiresSkill("Small Projectile Turret"), - "damageMultiplier", module.getModifiedItemAttr("smallWeaponDamageMultiplier"), - stackingPenalties=True) - - return locals() - -def effect4056(): - runTime = "early" - type = ("projected", "passive") - def handler(fit, module, context): - fit.modules.filteredItemMultiply(lambda mod: mod.item.requiresSkill("Small Hybrid Turret"), - "damageMultiplier", module.getModifiedItemAttr("smallWeaponDamageMultiplier"), - stackingPenalties=True) - - return locals() - -def effect4057(): - runTime = "early" - type = ("projected", "passive") - def handler(fit, beacon, context): - fit.modules.filteredChargeMultiply(lambda mod: mod.charge.requiresSkill("Rockets"), - "emDamage", beacon.getModifiedItemAttr("smallWeaponDamageMultiplier"), - stackingPenalties=True, penaltyGroup="postMul") - - return locals() - -def effect4058(): - runTime = "early" - type = ("projected", "passive") - def handler(fit, beacon, context): - fit.modules.filteredChargeMultiply(lambda mod: mod.charge.requiresSkill("Rockets"), - "explosiveDamage", beacon.getModifiedItemAttr("smallWeaponDamageMultiplier"), - stackingPenalties=True, penaltyGroup="postMul") - - return locals() - -def effect4059(): - runTime = "early" - type = ("projected", "passive") - def handler(fit, beacon, context): - fit.modules.filteredChargeMultiply(lambda mod: mod.charge.requiresSkill("Rockets"), - "kineticDamage", beacon.getModifiedItemAttr("smallWeaponDamageMultiplier"), - stackingPenalties=True, penaltyGroup="postMul") - - return locals() - -def effect4060(): - runTime = "early" - type = ("projected", "passive") - def handler(fit, beacon, context): - fit.modules.filteredChargeMultiply(lambda mod: mod.charge.requiresSkill("Rockets"), - "thermalDamage", beacon.getModifiedItemAttr("smallWeaponDamageMultiplier"), - stackingPenalties=True, penaltyGroup="postMul") - - return locals() - -def effect4061(): - runTime = "early" - type = ("projected", "passive") - def handler(fit, beacon, context): - fit.modules.filteredChargeMultiply(lambda mod: mod.charge.requiresSkill("Light Missiles"), - "thermalDamage", beacon.getModifiedItemAttr("smallWeaponDamageMultiplier"), - stackingPenalties=True, penaltyGroup="postMul") - - return locals() - -def effect4062(): - runTime = "early" - type = ("projected", "passive") - def handler(fit, beacon, context): - fit.modules.filteredChargeMultiply(lambda mod: mod.charge.requiresSkill("Light Missiles"), - "emDamage", beacon.getModifiedItemAttr("smallWeaponDamageMultiplier"), - stackingPenalties=True, penaltyGroup="postMul") - - return locals() - -def effect4063(): - runTime = "early" - type = ("projected", "passive") - def handler(fit, beacon, context): - fit.modules.filteredChargeMultiply(lambda mod: mod.charge.requiresSkill("Light Missiles"), - "explosiveDamage", beacon.getModifiedItemAttr("smallWeaponDamageMultiplier"), - stackingPenalties=True, penaltyGroup="postMul") - - return locals() - -def effect408(): - type = "passive" - def handler(fit, container, context): - level = container.level if "skill" in context else 1 - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Large Projectile Turret"), - "damageMultiplier", container.getModifiedItemAttr("damageMultiplierBonus") * level) - - return locals() - -def effect4086(): - runTime = "early" - type = ("projected", "passive") - def handler(fit, module, context): - fit.modules.filteredItemMultiply(lambda mod: mod.item.requiresSkill("Repair Systems") or - mod.item.requiresSkill("Capital Repair Systems"), - "armorDamageAmount", module.getModifiedItemAttr("armorDamageAmountMultiplier"), - stackingPenalties=True, penaltyGroup="postMul") - - return locals() - -def effect4088(): - runTime = "early" - type = ("projected", "passive") - def handler(fit, module, context): - fit.modules.filteredItemMultiply(lambda mod: mod.item.requiresSkill("Remote Armor Repair Systems"), - "armorDamageAmount", - module.getModifiedItemAttr("armorDamageAmountMultiplierRemote"), - stackingPenalties=True) - - return locals() - -def effect4089(): - runTime = "early" - type = ("projected", "passive") - def handler(fit, module, context): - fit.modules.filteredItemMultiply(lambda mod: mod.item.requiresSkill("Shield Emission Systems"), - "shieldBonus", module.getModifiedItemAttr("shieldBonusMultiplierRemote"), - stackingPenalties=True, penaltyGroup="postMul") - - return locals() - -def effect4090(): - runTime = "early" - type = ("projected", "passive") - def handler(fit, beacon, context): - fit.ship.multiplyItemAttr("capacitorCapacity", beacon.getModifiedItemAttr("capacitorCapacityMultiplierSystem")) - - return locals() - -def effect4091(): - runTime = "early" - type = ("projected", "passive") - def handler(fit, beacon, context): - fit.ship.multiplyItemAttr("rechargeRate", beacon.getModifiedItemAttr("rechargeRateMultiplier")) - - return locals() - -def effect4093(): - type = "passive" - def handler(fit, module, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Energy Turret"), - "damageMultiplier", module.getModifiedItemAttr("subsystemBonusAmarrOffensive"), - skill="Amarr Offensive Systems") - - return locals() - -def effect4104(): - type = "passive" - def handler(fit, module, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Hybrid Turret"), - "maxRange", module.getModifiedItemAttr("subsystemBonusCaldariOffensive"), - skill="Caldari Offensive Systems") - - return locals() - -def effect4106(): - type = "passive" - def handler(fit, module, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Hybrid Turret"), - "falloff", module.getModifiedItemAttr("subsystemBonusGallenteOffensive"), - skill="Gallente Offensive Systems") - - return locals() - -def effect4114(): - type = "passive" - def handler(fit, module, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Projectile Turret"), - "falloff", module.getModifiedItemAttr("subsystemBonusMinmatarOffensive"), - skill="Minmatar Offensive Systems") - - return locals() - -def effect4115(): - type = "passive" - def handler(fit, module, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Projectile Turret"), - "maxRange", module.getModifiedItemAttr("subsystemBonusMinmatarOffensive"), - skill="Minmatar Offensive Systems") - - return locals() - -def effect4122(): - type = "passive" - def handler(fit, src, context): - groups = ("Missile Launcher Heavy", "Missile Launcher Rapid Light", "Missile Launcher Heavy Assault") - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name in groups, - "speed", src.getModifiedItemAttr("subsystemBonusCaldariOffensive"), skill="Caldari Offensive Systems") - - return locals() - -def effect4135(): - runTime = "early" - type = ("projected", "passive") - def handler(fit, beacon, context): - fit.ship.boostItemAttr("shieldEmDamageResonance", beacon.getModifiedItemAttr("shieldEmDamageResistanceBonus"), - stackingPenalties=True) - - return locals() - -def effect4136(): - runTime = "early" - type = ("projected", "passive") - def handler(fit, beacon, context): - fit.ship.boostItemAttr("shieldExplosiveDamageResonance", - beacon.getModifiedItemAttr("shieldExplosiveDamageResistanceBonus"), - stackingPenalties=True) - - return locals() - -def effect4137(): - runTime = "early" - type = ("projected", "passive") - def handler(fit, beacon, context): - fit.ship.boostItemAttr("shieldKineticDamageResonance", - beacon.getModifiedItemAttr("shieldKineticDamageResistanceBonus"), - stackingPenalties=True) - - return locals() - -def effect4138(): - runTime = "early" - type = ("projected", "passive") - def handler(fit, beacon, context): - fit.ship.boostItemAttr("shieldThermalDamageResonance", - beacon.getModifiedItemAttr("shieldThermalDamageResistanceBonus"), - stackingPenalties=True) - - return locals() - -def effect414(): - type = "passive" - def handler(fit, container, context): - level = container.level if "skill" in context else 1 - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Gunnery"), - "speed", container.getModifiedItemAttr("turretSpeeBonus") * level) - - return locals() - -def effect4152(): - type = "passive" - def handler(fit, module, context): - fit.modules.filteredItemBoost(lambda mod: True, "heatDamage", - module.getModifiedItemAttr("subsystemBonusAmarrCore"), - skill="Amarr Core Systems") - - return locals() - -def effect4153(): - type = "passive" - def handler(fit, module, context): - fit.modules.filteredItemBoost(lambda mod: True, "heatDamage", - module.getModifiedItemAttr("subsystemBonusCaldariCore"), - skill="Caldari Core Systems") - - return locals() - -def effect4154(): - type = "passive" - def handler(fit, module, context): - fit.modules.filteredItemBoost(lambda mod: True, "heatDamage", - module.getModifiedItemAttr("subsystemBonusGallenteCore"), - skill="Gallente Core Systems") - - return locals() - -def effect4155(): - type = "passive" - def handler(fit, module, context): - fit.modules.filteredItemBoost(lambda mod: True, "heatDamage", - module.getModifiedItemAttr("subsystemBonusMinmatarCore"), - skill="Minmatar Core Systems") - - return locals() - -def effect4158(): - type = "passive" - def handler(fit, src, context): - fit.ship.boostItemAttr("capacitorCapacity", src.getModifiedItemAttr("subsystemBonusCaldariCore"), - skill="Caldari Core Systems") - - return locals() - -def effect4159(): - type = "passive" - def handler(fit, src, context): - fit.ship.boostItemAttr("capacitorCapacity", src.getModifiedItemAttr("subsystemBonusAmarrCore"), skill="Amarr Core Systems") - - return locals() - -def effect4161(): - type = "passive" - def handler(fit, container, context): - level = container.level if "skill" in context else 1 - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Astrometrics"), - "baseMaxScanDeviation", - container.getModifiedItemAttr("maxScanDeviationModifier") * level) - - return locals() - -def effect4162(): - type = "passive" - def handler(fit, container, context): - level = container.level if "skill" in context else 1 - penalized = False if "skill" in context or "implant" in context else True - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Astrometrics"), - "baseSensorStrength", container.getModifiedItemAttr("scanStrengthBonus") * level, - stackingPenalties=penalized) - - return locals() - -def effect4165(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.group.name == "Scanner Probe", - "baseSensorStrength", ship.getModifiedItemAttr("shipBonusCF2"), - skill="Caldari Frigate") - - return locals() - -def effect4166(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.group.name == "Scanner Probe", - "baseSensorStrength", ship.getModifiedItemAttr("shipBonusMF2"), - skill="Minmatar Frigate") - - return locals() - -def effect4167(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.group.name == "Scanner Probe", - "baseSensorStrength", ship.getModifiedItemAttr("shipBonusGF2"), - skill="Gallente Frigate") - - return locals() - -def effect4168(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.group.name == "Scanner Probe", - "baseSensorStrength", ship.getModifiedItemAttr("eliteBonusCovertOps2"), - skill="Covert Ops") - - return locals() - -def effect4187(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: True, "heatDamage", - ship.getModifiedItemAttr("shipBonusStrategicCruiserAmarr1"), - skill="Amarr Strategic Cruiser") - - return locals() - -def effect4188(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: True, "heatDamage", - ship.getModifiedItemAttr("shipBonusStrategicCruiserCaldari1"), - skill="Caldari Strategic Cruiser") - - return locals() - -def effect4189(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: True, "heatDamage", - ship.getModifiedItemAttr("shipBonusStrategicCruiserGallente1"), - skill="Gallente Strategic Cruiser") - - return locals() - -def effect4190(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: True, "heatDamage", - ship.getModifiedItemAttr("shipBonusStrategicCruiserMinmatar1"), - skill="Minmatar Strategic Cruiser") - - return locals() - -def effect4215(): - type = "passive" - def handler(fit, module, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Energy Turret"), - "capacitorNeed", module.getModifiedItemAttr("subsystemBonusAmarrOffensive2"), - skill="Amarr Offensive Systems") - - return locals() - -def effect4216(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Nosferatu", "powerTransferAmount", - src.getModifiedItemAttr("subsystemBonusAmarrCore2"), skill="Amarr Core Systems") - - return locals() - -def effect4217(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Neutralizer", "energyNeutralizerAmount", - src.getModifiedItemAttr("subsystemBonusAmarrCore2"), skill="Amarr Core Systems") - - return locals() - -def effect4248(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Light Missiles"), - "kineticDamage", src.getModifiedItemAttr("subsystemBonusCaldariOffensive2"), - skill="Caldari Offensive Systems") - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Missiles"), - "kineticDamage", src.getModifiedItemAttr("subsystemBonusCaldariOffensive2"), - skill="Caldari Offensive Systems") - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Assault Missiles"), - "kineticDamage", src.getModifiedItemAttr("subsystemBonusCaldariOffensive2"), - skill="Caldari Offensive Systems") - - return locals() - -def effect4250(): - type = "passive" - def handler(fit, src, context): - fit.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Drones"), - "armorHP", src.getModifiedItemAttr("subsystemBonusGallenteOffensive"), - skill="Gallente Offensive Systems") - fit.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Drones"), - "hp", src.getModifiedItemAttr("subsystemBonusGallenteOffensive"), - skill="Gallente Offensive Systems") - fit.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Drones"), - "damageMultiplier", src.getModifiedItemAttr("subsystemBonusGallenteOffensive"), - skill="Gallente Offensive Systems") - fit.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Drones"), - "shieldCapacity", src.getModifiedItemAttr("subsystemBonusGallenteOffensive"), - skill="Gallente Offensive Systems") - - return locals() - -def effect4251(): - type = "passive" - def handler(fit, module, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Projectile Turret"), - "damageMultiplier", module.getModifiedItemAttr("subsystemBonusMinmatarOffensive2"), - skill="Minmatar Offensive Systems") - - return locals() - -def effect4256(): - type = "passive" - def handler(fit, src, context): - groups = ("Missile Launcher Heavy", "Missile Launcher Rapid Light", "Missile Launcher Heavy Assault") - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name in groups, - "speed", src.getModifiedItemAttr("subsystemBonusMinmatarOffensive2"), - skill="Minmatar Offensive Systems") - - return locals() - -def effect4264(): - type = "passive" - def handler(fit, src, context): - fit.ship.boostItemAttr("rechargeRate", src.getModifiedItemAttr("subsystemBonusMinmatarCore"), - skill="Minmatar Core Systems") - - return locals() - -def effect4265(): - type = "passive" - def handler(fit, src, context): - fit.ship.boostItemAttr("rechargeRate", src.getModifiedItemAttr("subsystemBonusGallenteCore"), - skill="Gallente Core Systems") - - return locals() - -def effect4269(): - type = "passive" - def handler(fit, src, context): - fit.ship.boostItemAttr("scanResolution", src.getModifiedItemAttr("subsystemBonusAmarrCore3"), - skill="Amarr Core Systems") - - return locals() - -def effect4270(): - type = "passive" - def handler(fit, src, context): - fit.ship.boostItemAttr("scanResolution", src.getModifiedItemAttr("subsystemBonusMinmatarCore3"), - skill="Minmatar Core Systems") - - return locals() - -def effect4271(): - type = "passive" - def handler(fit, src, context): - fit.ship.boostItemAttr("maxTargetRange", src.getModifiedItemAttr("subsystemBonusCaldariCore2"), skill="Caldari Core Systems") - - return locals() - -def effect4272(): - type = "passive" - def handler(fit, src, context): - fit.ship.boostItemAttr("maxTargetRange", src.getModifiedItemAttr("subsystemBonusGallenteCore2"), - skill="Gallente Core Systems") - - return locals() - -def effect4273(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Warp Scrambler", "maxRange", - src.getModifiedItemAttr("subsystemBonusGallenteCore2"), skill="Gallente Core Systems") - - return locals() - -def effect4274(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Stasis Web", - "maxRange", src.getModifiedItemAttr("subsystemBonusMinmatarCore2"), skill="Minmatar Core Systems") - - return locals() - -def effect4275(): - type = "passive" - def handler(fit, src, context): - fit.ship.boostItemAttr("warpSpeedMultiplier", src.getModifiedItemAttr("subsystemBonusCaldariPropulsion2"), - skill="Caldari Propulsion Systems") - - return locals() - -def effect4277(): - type = "passive" - def handler(fit, src, context): - fit.ship.boostItemAttr("warpCapacitorNeed", src.getModifiedItemAttr("subsystemBonusGallentePropulsion"), - skill="Gallente Propulsion Systems") - - return locals() - -def effect4278(): - type = "passive" - def handler(fit, src, context): - fit.ship.boostItemAttr("warpSpeedMultiplier", src.getModifiedItemAttr("subsystemBonusGallentePropulsion2"), - skill="Gallente Propulsion Systems") - - return locals() - -def effect4280(): - runTime = "early" - type = ("projected", "passive") - def handler(fit, beacon, context): - fit.ship.multiplyItemAttr("agility", beacon.getModifiedItemAttr("agilityMultiplier"), stackingPenalties=True) - - return locals() - -def effect4282(): - type = "passive" - def handler(fit, module, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Hybrid Turret"), - "damageMultiplier", module.getModifiedItemAttr("subsystemBonusGallenteOffensive2"), - skill="Gallente Offensive Systems") - - return locals() - -def effect4283(): - type = "passive" - def handler(fit, module, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Hybrid Turret"), - "damageMultiplier", module.getModifiedItemAttr("subsystemBonusCaldariOffensive2"), - skill="Caldari Offensive Systems") - - return locals() - -def effect4286(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Remote Armor Repair Systems"), "capacitorNeed", - src.getModifiedItemAttr("subsystemBonusAmarrOffensive2"), skill="Amarr Offensive Systems") - - return locals() - -def effect4288(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Remote Armor Repair Systems"), "capacitorNeed", - src.getModifiedItemAttr("subsystemBonusGallenteOffensive2"), skill="Gallente Offensive Systems") - - return locals() - -def effect4290(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Emission Systems") or mod.item.requiresSkill("Remote Armor Repair Systems"), - "capacitorNeed", src.getModifiedItemAttr("subsystemBonusMinmatarOffensive2"), - skill="Minmatar Offensive Systems") - - return locals() - -def effect4292(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Emission Systems"), - "capacitorNeed", src.getModifiedItemAttr("subsystemBonusCaldariOffensive2"), - skill="Caldari Offensive Systems") - - return locals() - -def effect4321(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "ECM", "scanLadarStrengthBonus", - src.getModifiedItemAttr("subsystemBonusCaldariCore2"), skill="Caldari Core Systems") - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "ECM", "scanRadarStrengthBonus", - src.getModifiedItemAttr("subsystemBonusCaldariCore2"), skill="Caldari Core Systems") - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "ECM", "maxRange", - src.getModifiedItemAttr("subsystemBonusCaldariCore2"), skill="Caldari Core Systems") - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "ECM", "scanGravimetricStrengthBonus", - src.getModifiedItemAttr("subsystemBonusCaldariCore2"), skill="Caldari Core Systems") - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "ECM", "scanMagnetometricStrengthBonus", - src.getModifiedItemAttr("subsystemBonusCaldariCore2"), skill="Caldari Core Systems") - - return locals() - -def effect4327(): - type = "passive" - def handler(fit, src, context): - fit.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Drones"), - "hp", src.getModifiedItemAttr("subsystemBonusAmarrOffensive3"), skill="Amarr Offensive Systems") - fit.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Drones"), - "armorHP", src.getModifiedItemAttr("subsystemBonusAmarrOffensive3"), skill="Amarr Offensive Systems") - fit.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Drones"), - "shieldCapacity", src.getModifiedItemAttr("subsystemBonusAmarrOffensive3"), skill="Amarr Offensive Systems") - fit.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Drones"), - "damageMultiplier", src.getModifiedItemAttr("subsystemBonusAmarrOffensive3"), skill="Amarr Offensive Systems") - - return locals() - -def effect4330(): - type = "passive" - def handler(fit, module, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Energy Turret"), - "maxRange", module.getModifiedItemAttr("subsystemBonusAmarrOffensive3"), - skill="Amarr Offensive Systems") - - return locals() - -def effect4331(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Missiles") or mod.charge.requiresSkill("Heavy Assault Missiles"), - "maxVelocity", src.getModifiedItemAttr("subsystemBonusCaldariOffensive3"), - skill="Caldari Offensive Systems") - - return locals() - -def effect4342(): - type = "passive" - def handler(fit, src, context): - fit.ship.boostItemAttr("maxTargetRange", src.getModifiedItemAttr("subsystemBonusMinmatarCore2"), - skill="Minmatar Core Systems") - - return locals() - -def effect4343(): - type = "passive" - def handler(fit, src, context): - fit.ship.boostItemAttr("maxTargetRange", src.getModifiedItemAttr("subsystemBonusAmarrCore2"), - skill="Amarr Core Systems") - - return locals() - -def effect4347(): - type = "passive" - def handler(fit, module, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Hybrid Turret"), - "trackingSpeed", module.getModifiedItemAttr("subsystemBonusGallenteOffensive3"), - skill="Gallente Offensive Systems") - - return locals() - -def effect4351(): - type = "passive" - def handler(fit, module, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Projectile Turret"), - "trackingSpeed", module.getModifiedItemAttr("subsystemBonusMinmatarOffensive3"), - skill="Minmatar Offensive Systems") - - return locals() - -def effect4358(): - type = "passive" - def handler(fit, module, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "ECM", - "maxRange", module.getModifiedItemAttr("ecmRangeBonus"), - stackingPenalties=True) - - return locals() - -def effect4360(): - type = "passive" - def handler(fit, src, context): - groups = ("Missile Launcher Heavy", "Missile Launcher Rapid Light", "Missile Launcher Heavy Assault") - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name in groups, - "speed", src.getModifiedItemAttr("subsystemBonusAmarrOffensive"), skill="Amarr Offensive Systems") - - return locals() - -def effect4362(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill("Missile Launcher Operation"), - "explosiveDamage", src.getModifiedItemAttr("subsystemBonusAmarrOffensive2"), skill="Amarr Offensive Systems") - fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill("Missile Launcher Operation"), - "kineticDamage", src.getModifiedItemAttr("subsystemBonusAmarrOffensive2"), skill="Amarr Offensive Systems") - fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill("Missile Launcher Operation"), - "emDamage", src.getModifiedItemAttr("subsystemBonusAmarrOffensive2"), skill="Amarr Offensive Systems") - fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill("Missile Launcher Operation"), - "thermalDamage", src.getModifiedItemAttr("subsystemBonusAmarrOffensive2"), skill="Amarr Offensive Systems") - - return locals() - -def effect4366(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Hybrid Turret"), - "damageMultiplier", ship.getModifiedItemAttr("shipBonusCC2"), skill="Caldari Cruiser") - - return locals() - -def effect4369(): - type = "passive" - def handler(fit, module, context): - fit.ship.forceItemAttr("warpBubbleImmune", module.getModifiedItemAttr("warpBubbleImmuneModifier")) - - return locals() - -def effect4370(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "ECM", - "falloffEffectiveness", ship.getModifiedItemAttr("shipBonusCC2"), - skill="Caldari Cruiser") - - return locals() - -def effect4372(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "ECM", - "falloffEffectiveness", ship.getModifiedItemAttr("shipBonusCB3"), - skill="Caldari Battleship") - - return locals() - -def effect4373(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Skirmish Command"), - "buffDuration", src.getModifiedItemAttr("subsystemBonusAmarrOffensive"), skill="Amarr Offensive Systems") - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Skirmish Command"), - "warfareBuff2Value", src.getModifiedItemAttr("subsystemBonusAmarrOffensive"), skill="Amarr Offensive Systems") - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Skirmish Command"), - "warfareBuff3Value", src.getModifiedItemAttr("subsystemBonusAmarrOffensive"), skill="Amarr Offensive Systems") - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Skirmish Command"), - "warfareBuff1Value", src.getModifiedItemAttr("subsystemBonusAmarrOffensive"), skill="Amarr Offensive Systems") - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Skirmish Command"), - "warfareBuff4Value", src.getModifiedItemAttr("subsystemBonusAmarrOffensive"), skill="Amarr Offensive Systems") - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Armored Command"), - "warfareBuff3Value", src.getModifiedItemAttr("subsystemBonusAmarrOffensive"), skill="Amarr Offensive Systems") - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Armored Command"), - "warfareBuff1Value", src.getModifiedItemAttr("subsystemBonusAmarrOffensive"), skill="Amarr Offensive Systems") - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Armored Command"), - "warfareBuff4Value", src.getModifiedItemAttr("subsystemBonusAmarrOffensive"), skill="Amarr Offensive Systems") - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Armored Command"), - "warfareBuff2Value", src.getModifiedItemAttr("subsystemBonusAmarrOffensive"), skill="Amarr Offensive Systems") - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Armored Command"), - "buffDuration", src.getModifiedItemAttr("subsystemBonusAmarrOffensive"), skill="Amarr Offensive Systems") - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Information Command"), - "warfareBuff3Value", src.getModifiedItemAttr("subsystemBonusAmarrOffensive"), skill="Amarr Offensive Systems") - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Information Command"), - "warfareBuff1Value", src.getModifiedItemAttr("subsystemBonusAmarrOffensive"), skill="Amarr Offensive Systems") - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Information Command"), - "warfareBuff2Value", src.getModifiedItemAttr("subsystemBonusAmarrOffensive"), skill="Amarr Offensive Systems") - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Information Command"), - "buffDuration", src.getModifiedItemAttr("subsystemBonusAmarrOffensive"), skill="Amarr Offensive Systems") - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Information Command"), - "warfareBuff4Value", src.getModifiedItemAttr("subsystemBonusAmarrOffensive"), skill="Amarr Offensive Systems") - - return locals() - -def effect4377(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Torpedoes"), - "maxVelocity", ship.getModifiedItemAttr("shipBonusGF2"), skill="Gallente Frigate") - - return locals() - -def effect4378(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Torpedoes"), - "maxVelocity", ship.getModifiedItemAttr("shipBonusMF2"), skill="Minmatar Frigate") - - return locals() - -def effect4379(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Torpedoes"), - "maxVelocity", ship.getModifiedItemAttr("shipBonus2AF"), skill="Amarr Frigate") - - return locals() - -def effect4380(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Torpedoes"), - "maxVelocity", ship.getModifiedItemAttr("shipBonusCF2"), skill="Caldari Frigate") - - return locals() - -def effect4384(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Missiles"), - "maxVelocity", ship.getModifiedItemAttr("eliteBonusReconShip1"), - skill="Recon Ships") - - return locals() - -def effect4385(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Assault Missiles"), - "maxVelocity", ship.getModifiedItemAttr("eliteBonusReconShip1"), - skill="Recon Ships") - - return locals() - -def effect4393(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Torpedoes"), - "thermalDamage", ship.getModifiedItemAttr("eliteBonusCovertOps2"), - skill="Covert Ops") - - return locals() - -def effect4394(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Torpedoes"), - "emDamage", ship.getModifiedItemAttr("eliteBonusCovertOps2"), skill="Covert Ops") - - return locals() - -def effect4395(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Torpedoes"), - "explosiveDamage", ship.getModifiedItemAttr("eliteBonusCovertOps2"), - skill="Covert Ops") - - return locals() - -def effect4396(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Torpedoes"), - "kineticDamage", ship.getModifiedItemAttr("eliteBonusCovertOps2"), - skill="Covert Ops") - - return locals() - -def effect4397(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Torpedoes"), - "aoeVelocity", ship.getModifiedItemAttr("shipBonusGF"), skill="Gallente Frigate") - - return locals() - -def effect4398(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Torpedoes"), - "aoeVelocity", ship.getModifiedItemAttr("shipBonusMF"), skill="Minmatar Frigate") - - return locals() - -def effect4399(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Torpedoes"), - "aoeVelocity", ship.getModifiedItemAttr("shipBonusCF"), skill="Caldari Frigate") - - return locals() - -def effect4400(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Torpedoes"), - "aoeVelocity", ship.getModifiedItemAttr("shipBonusAF"), skill="Amarr Frigate") - - return locals() - -def effect4413(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Torpedoes"), - "explosionDelay", ship.getModifiedItemAttr("shipBonusGF"), skill="Gallente Frigate") - - return locals() - -def effect4415(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Torpedoes"), - "explosionDelay", ship.getModifiedItemAttr("shipBonusMF"), skill="Minmatar Frigate") - - return locals() - -def effect4416(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Torpedoes"), - "explosionDelay", ship.getModifiedItemAttr("shipBonusCF"), skill="Caldari Frigate") - - return locals() - -def effect4417(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Torpedoes"), - "explosionDelay", ship.getModifiedItemAttr("shipBonusAF"), skill="Amarr Frigate") - - return locals() - -def effect4451(): - type = "passive" - def handler(fit, implant, context): - fit.ship.increaseItemAttr("scanRadarStrength", implant.getModifiedItemAttr("scanRadarStrengthModifier")) - - return locals() - -def effect4452(): - type = "passive" - def handler(fit, implant, context): - fit.ship.increaseItemAttr("scanLadarStrength", implant.getModifiedItemAttr("scanLadarStrengthModifier")) - - return locals() - -def effect4453(): - type = "passive" - def handler(fit, implant, context): - fit.ship.increaseItemAttr("scanGravimetricStrength", implant.getModifiedItemAttr("scanGravimetricStrengthModifier")) - - return locals() - -def effect4454(): - type = "passive" - def handler(fit, implant, context): - fit.ship.increaseItemAttr("scanMagnetometricStrength", - implant.getModifiedItemAttr("scanMagnetometricStrengthModifier")) - - return locals() - -def effect4456(): - type = "passive" - runTime = "early" - def handler(fit, implant, context): - fit.appliedImplants.filteredItemMultiply(lambda target: target.item.requiresSkill("Cybernetics"), - "scanMagnetometricStrengthPercent", - implant.getModifiedItemAttr("implantSetFederationNavy")) - - return locals() - -def effect4457(): - type = "passive" - runTime = "early" - def handler(fit, implant, context): - fit.appliedImplants.filteredItemMultiply(lambda target: target.item.requiresSkill("Cybernetics"), - "scanRadarStrengthPercent", - implant.getModifiedItemAttr("implantSetImperialNavy")) - - return locals() - -def effect4458(): - runTime = "early" - type = "passive" - def handler(fit, implant, context): - fit.appliedImplants.filteredItemMultiply(lambda target: target.item.requiresSkill("Cybernetics"), - "scanLadarStrengthPercent", - implant.getModifiedItemAttr("implantSetRepublicFleet")) - - return locals() - -def effect4459(): - runTime = "early" - type = "passive" - def handler(fit, implant, context): - fit.appliedImplants.filteredItemMultiply(lambda target: target.item.requiresSkill("Cybernetics"), - "scanGravimetricStrengthPercent", - implant.getModifiedItemAttr("implantSetCaldariNavy")) - - return locals() - -def effect446(): - type = "passive" - def handler(fit, container, context): - level = container.level if "skill" in context else 1 - fit.ship.boostItemAttr("shieldCapacity", container.getModifiedItemAttr("shieldCapacityBonus") * level) - - return locals() - -def effect4460(): - type = "passive" - runTime = "early" - def handler(fit, implant, context): - fit.appliedImplants.filteredItemMultiply(lambda target: target.item.requiresSkill("Cybernetics"), - "scanRadarStrengthModifier", - implant.getModifiedItemAttr("implantSetLGImperialNavy")) - - return locals() - -def effect4461(): - type = "passive" - runTime = "early" - def handler(fit, implant, context): - fit.appliedImplants.filteredItemMultiply(lambda target: target.item.requiresSkill("Cybernetics"), - "scanMagnetometricStrengthModifier", - implant.getModifiedItemAttr("implantSetLGFederationNavy")) - - return locals() - -def effect4462(): - runTime = "early" - type = "passive" - def handler(fit, implant, context): - fit.appliedImplants.filteredItemMultiply(lambda target: target.item.requiresSkill("Cybernetics"), - "scanGravimetricStrengthModifier", - implant.getModifiedItemAttr("implantSetLGCaldariNavy")) - - return locals() - -def effect4463(): - runTime = "early" - type = "passive" - def handler(fit, implant, context): - fit.appliedImplants.filteredItemMultiply(lambda target: target.item.requiresSkill("Cybernetics"), - "scanLadarStrengthModifier", - implant.getModifiedItemAttr("implantSetLGRepublicFleet")) - - return locals() - -def effect4464(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Projectile Turret"), "speed", - src.getModifiedItemAttr("shipBonusMF"), stackingPenalties=True, skill="Minmatar Frigate") - - return locals() - -def effect4471(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Stasis Web", - "maxRange", ship.getModifiedItemAttr("shipBonusMF2"), skill="Minmatar Frigate") - - return locals() - -def effect4472(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Projectile Turret"), - "damageMultiplier", ship.getModifiedItemAttr("shipBonusMC"), skill="Minmatar Cruiser") - - return locals() - -def effect4473(): - type = "passive" - def handler(fit, ship, context): - fit.ship.boostItemAttr("maxVelocity", ship.getModifiedItemAttr("shipBonusATC1")) - - return locals() - -def effect4474(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Projectile Turret"), - "maxRange", ship.getModifiedItemAttr("shipBonusATC2")) - - return locals() - -def effect4475(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Projectile Turret"), - "falloff", ship.getModifiedItemAttr("shipBonusATC2")) - - return locals() - -def effect4476(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Projectile Turret"), - "falloff", ship.getModifiedItemAttr("shipBonusATF2")) - - return locals() - -def effect4477(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Projectile Turret"), - "maxRange", ship.getModifiedItemAttr("shipBonusATF2")) - - return locals() - -def effect4478(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Propulsion Module", - "capacitorNeed", ship.getModifiedItemAttr("shipBonusATF1")) - - return locals() - -def effect4479(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.group.name == "Survey Probe", - "explosionDelay", ship.getModifiedItemAttr("eliteBonusCovertOps3"), - skill="Covert Ops") - - return locals() - -def effect4482(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Energy Turret"), - "maxRange", ship.getModifiedItemAttr("shipBonus2AF"), skill="Amarr Frigate") - - return locals() - -def effect4484(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Large Projectile Turret"), - "falloff", ship.getModifiedItemAttr("shipBonusGB"), skill="Gallente Battleship") - - return locals() - -def effect4485(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Stasis Web", - "speedFactor", ship.getModifiedItemAttr("shipBonusMB"), skill="Minmatar Battleship") - - return locals() - -def effect4489(): - type = 'active' - def handler(fit, module, context): - pass - - return locals() - -def effect4490(): - type = 'active' - def handler(fit, module, context): - pass - - return locals() - -def effect4491(): - type = 'active' - def handler(fit, module, context): - pass - - return locals() - -def effect4492(): - type = 'active' - def handler(fit, module, context): - pass - - return locals() - -def effect4510(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Stasis Web", - "speedFactor", ship.getModifiedItemAttr("shipBonusMC2"), skill="Minmatar Cruiser") - - return locals() - -def effect4512(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Projectile Turret"), - "falloff", ship.getModifiedItemAttr("shipBonusGC"), skill="Gallente Cruiser") - - return locals() - -def effect4513(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Stasis Web", - "speedFactor", ship.getModifiedItemAttr("shipBonusMF2"), skill="Minmatar Frigate") - - return locals() - -def effect4515(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Projectile Turret"), - "falloff", ship.getModifiedItemAttr("shipBonusMF"), skill="Minmatar Frigate") - - return locals() - -def effect4516(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Hybrid Turret"), - "falloff", ship.getModifiedItemAttr("shipBonusGC"), skill="Gallente Cruiser") - - return locals() - -def effect4527(): - type = "passive" - def handler(fit, module, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Gunnery"), - "falloff", module.getModifiedItemAttr("falloffBonus"), - stackingPenalties=True) - - return locals() - -def effect4555(): - type = "passive" - def handler(fit, skill, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("XL Cruise Missiles"), - "emDamage", skill.getModifiedItemAttr("damageMultiplierBonus") * skill.level) - - return locals() - -def effect4556(): - type = "passive" - def handler(fit, skill, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("XL Cruise Missiles"), - "explosiveDamage", skill.getModifiedItemAttr("damageMultiplierBonus") * skill.level) - - return locals() - -def effect4557(): - type = "passive" - def handler(fit, skill, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("XL Cruise Missiles"), - "kineticDamage", skill.getModifiedItemAttr("damageMultiplierBonus") * skill.level) - - return locals() - -def effect4558(): - type = "passive" - def handler(fit, skill, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("XL Cruise Missiles"), - "thermalDamage", skill.getModifiedItemAttr("damageMultiplierBonus") * skill.level) - - return locals() - -def effect4559(): - type = "active" - def handler(fit, module, context): - for attr in ("maxRange", "falloff", "trackingSpeed"): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Gunnery"), - attr, module.getModifiedItemAttr("%sBonus" % attr), - stackingPenalties=True) - - return locals() - -def effect4575(): - type = "active" - runTime = "early" - def handler(fit, src, context): - fit.extraAttributes["siege"] = True - fit.ship.boostItemAttr("maxVelocity", src.getModifiedItemAttr("speedFactor"), stackingPenalties=True) - fit.ship.multiplyItemAttr("mass", src.getModifiedItemAttr("siegeMassMultiplier")) - fit.ship.multiplyItemAttr("scanResolution", - src.getModifiedItemAttr("scanResolutionMultiplier"), - stackingPenalties=True) - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capital Shield Emission Systems"), - "duration", - src.getModifiedItemAttr("industrialCoreRemoteLogisticsDurationBonus"), - ) - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capital Shield Emission Systems"), - "maxRange", - src.getModifiedItemAttr("industrialCoreRemoteLogisticsRangeBonus"), - stackingPenalties=True - ) - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capital Shield Emission Systems"), - "capacitorNeed", - src.getModifiedItemAttr("industrialCoreRemoteLogisticsDurationBonus") - ) - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capital Shield Emission Systems"), - "falloffEffectiveness", - src.getModifiedItemAttr("industrialCoreRemoteLogisticsRangeBonus"), - stackingPenalties=True - ) - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capital Shield Operation"), - "duration", - src.getModifiedItemAttr("industrialCoreLocalLogisticsDurationBonus"), - ) - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capital Shield Operation"), - "shieldBonus", - src.getModifiedItemAttr("industrialCoreLocalLogisticsAmountBonus"), - stackingPenalties=True - ) - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Mining Foreman"), - "warfareBuff1Value", - src.getModifiedItemAttr("industrialCoreBonusMiningBurstStrength"), - ) - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Mining Foreman"), - "warfareBuff2Value", - src.getModifiedItemAttr("industrialCoreBonusMiningBurstStrength"), - ) - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Mining Foreman"), - "warfareBuff3Value", - src.getModifiedItemAttr("industrialCoreBonusMiningBurstStrength"), - ) - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Mining Foreman"), - "warfareBuff4Value", - src.getModifiedItemAttr("industrialCoreBonusMiningBurstStrength"), - ) - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Leadership"), - "maxRange", - src.getModifiedItemAttr("industrialCoreBonusCommandBurstRange"), - stackingPenalties=True - ) - fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Ice Harvesting Drone Operation"), - "duration", - src.getModifiedItemAttr("industrialCoreBonusDroneIceHarvesting"), - ) - fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Mining Drone Operation"), - "miningAmount", - src.getModifiedItemAttr("industrialCoreBonusDroneMining"), - ) - fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Drones"), - "maxVelocity", - src.getModifiedItemAttr("industrialCoreBonusDroneVelocity"), - ) - fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Drones"), - "damageMultiplier", - src.getModifiedItemAttr("industrialCoreBonusDroneDamageHP"), - stackingPenalties=True - ) - fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Drones"), - "shieldCapacity", - src.getModifiedItemAttr("industrialCoreBonusDroneDamageHP"), - ) - fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Drones"), - "armorHP", - src.getModifiedItemAttr("industrialCoreBonusDroneDamageHP"), - ) - fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Drones"), - "hp", - src.getModifiedItemAttr("industrialCoreBonusDroneDamageHP"), - ) - fit.ship.increaseItemAttr("warpScrambleStatus", src.getModifiedItemAttr("siegeModeWarpStatus")) - fit.ship.boostItemAttr("remoteRepairImpedance", src.getModifiedItemAttr("remoteRepairImpedanceBonus")) - fit.ship.increaseItemAttr("disallowTethering", src.getModifiedItemAttr("disallowTethering")) - fit.ship.boostItemAttr("sensorDampenerResistance", src.getModifiedItemAttr("sensorDampenerResistanceBonus")) - fit.ship.boostItemAttr("remoteAssistanceImpedance", src.getModifiedItemAttr("remoteAssistanceImpedanceBonus")) - fit.ship.increaseItemAttr("disallowDocking", src.getModifiedItemAttr("disallowDocking")) - - return locals() - -def effect4576(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Remote Tracking Computer", - "falloffBonus", ship.getModifiedItemAttr("eliteBonusLogistics1"), - skill="Logistics Cruisers") - - return locals() - -def effect4577(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Remote Tracking Computer", - "falloffBonus", ship.getModifiedItemAttr("eliteBonusLogistics2"), - skill="Logistics Cruisers") - - return locals() - -def effect4579(): - type = "passive" - def handler(fit, module, context): - fit.drones.filteredItemBoost(lambda drone: drone.item.group.name == "Stasis Webifying Drone", - "speedFactor", module.getModifiedItemAttr("webSpeedFactorBonus")) - - return locals() - -def effect4619(): - type = "passive" - def handler(fit, ship, context): - fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Drones"), - "damageMultiplier", ship.getModifiedItemAttr("shipBonusGF2"), skill="Gallente Frigate") - - return locals() - -def effect4620(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Warp Scrambler", - "maxRange", ship.getModifiedItemAttr("shipBonusGF2"), skill="Gallente Frigate") - - return locals() - -def effect4621(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: True, "heatDamage", - ship.getModifiedItemAttr("shipBonusATF1")) - - return locals() - -def effect4622(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Hybrid Turret"), - "maxRange", ship.getModifiedItemAttr("shipBonusATF2")) - - return locals() - -def effect4623(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Hybrid Turret"), - "trackingSpeed", ship.getModifiedItemAttr("shipBonusATF2")) - - return locals() - -def effect4624(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Hybrid Turret"), - "trackingSpeed", ship.getModifiedItemAttr("shipBonusATC2")) - - return locals() - -def effect4625(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Hybrid Turret"), - "falloff", ship.getModifiedItemAttr("shipBonusATC2")) - - return locals() - -def effect4626(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Warp Scrambler", - "maxRange", ship.getModifiedItemAttr("shipBonusGC2"), skill="Gallente Cruiser") - - return locals() - -def effect4635(): - type = "passive" - def handler(fit, ship, context): - damageTypes = ("em", "explosive", "kinetic", "thermal") - for damageType in damageTypes: - fit.modules.filteredChargeBoost( - lambda mod: mod.charge.requiresSkill("Cruise Missiles") or mod.charge.requiresSkill("Torpedoes"), - "{0}Damage".format(damageType), ship.getModifiedItemAttr("eliteBonusViolatorsRole1")) - - return locals() - -def effect4636(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredChargeBoost( - lambda mod: mod.charge.requiresSkill("Cruise Missiles") or mod.charge.requiresSkill("Torpedoes"), - "aoeVelocity", ship.getModifiedItemAttr("shipBonus2CB"), skill="Caldari Battleship") - - return locals() - -def effect4637(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredChargeBoost( - lambda mod: mod.charge.requiresSkill("Cruise Missiles") or mod.charge.requiresSkill("Torpedoes"), - "maxVelocity", ship.getModifiedItemAttr("shipBonusCB3"), skill="Caldari Battleship") - - return locals() - -def effect4640(): - type = "passive" - def handler(fit, ship, context): - damageTypes = ("Em", "Explosive", "Kinetic", "Thermal") - for damageType in damageTypes: - fit.ship.boostItemAttr("armor{0}DamageResonance".format(damageType), ship.getModifiedItemAttr("shipBonusAC2"), - skill="Amarr Cruiser") - - return locals() - -def effect4643(): - type = "passive" - def handler(fit, ship, context): - damageTypes = ("em", "explosive", "kinetic", "thermal") - for damageType in damageTypes: - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Assault Missiles"), - "{0}Damage".format(damageType), ship.getModifiedItemAttr("shipBonusAC"), - skill="Amarr Cruiser") - - return locals() - -def effect4645(): - type = "passive" - def handler(fit, ship, context): - groups = ("Missile Launcher Rapid Light", "Missile Launcher Heavy Assault", "Missile Launcher Heavy") - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name in groups, - "speed", ship.getModifiedItemAttr("eliteBonusHeavyGunship2"), - skill="Heavy Assault Cruisers") - - return locals() - -def effect4648(): - type = "passive" - def handler(fit, ship, context): - sensorTypes = ("Gravimetric", "Ladar", "Magnetometric", "Radar") - for type in sensorTypes: - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "ECM", "scan{0}StrengthBonus".format(type), - ship.getModifiedItemAttr("eliteBonusBlackOps1"), skill="Black Ops") - - return locals() - -def effect4649(): - type = "passive" - def handler(fit, ship, context): - affectedGroups = ("Missile Launcher Cruise", "Missile Launcher Torpedo") - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name in affectedGroups, - "speed", ship.getModifiedItemAttr("shipBonus2CB"), skill="Caldari Battleship") - - return locals() - -def effect4667(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Salvaging"), - "duration", ship.getModifiedItemAttr("shipBonusOreIndustrial1"), - skill="ORE Industrial") - - return locals() - -def effect4668(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Tractor Beam", - "duration", ship.getModifiedItemAttr("shipBonusOreIndustrial1"), - skill="ORE Industrial") - - return locals() - -def effect4669(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Tractor Beam", - "maxTractorVelocity", ship.getModifiedItemAttr("shipBonusOreIndustrial2"), - skill="ORE Industrial") - - return locals() - -def effect4670(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Tractor Beam", - "maxRange", ship.getModifiedItemAttr("shipBonusOreIndustrial2"), - skill="ORE Industrial") - - return locals() - -def effect4728(): - runTime = "early" - type = ("projected", "passive") - def handler(fit, beacon, context): - damages = ("em", "thermal", "kinetic", "explosive") - for damage in damages: - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), - "{0}Damage".format(damage), - beacon.getModifiedItemAttr("systemEffectDamageReduction")) - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Smart Bomb", - "{0}Damage".format(damage), - beacon.getModifiedItemAttr("systemEffectDamageReduction")) - fit.ship.boostItemAttr("armor{0}DamageResonance".format(damage.capitalize()), - beacon.getModifiedItemAttr("armor{0}DamageResistanceBonus".format(damage.capitalize()))) - fit.ship.boostItemAttr("shield{0}DamageResonance".format(damage.capitalize()), - beacon.getModifiedItemAttr("shield{0}DamageResistanceBonus".format(damage.capitalize()))) - fit.drones.filteredItemBoost(lambda drone: True, - "damageMultiplier", beacon.getModifiedItemAttr("systemEffectDamageReduction")) - fit.modules.filteredItemBoost(lambda module: module.item.requiresSkill("Gunnery"), - "damageMultiplier", beacon.getModifiedItemAttr("systemEffectDamageReduction")) - - return locals() - -def effect4760(): - type = "passive" - def handler(fit, src, context): - fit.ship.boostItemAttr("warpCapacitorNeed", src.getModifiedItemAttr("subsystemBonusCaldariPropulsion"), - skill="Caldari Propulsion Systems") - - return locals() - -def effect4775(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Neutralizer", - "energyNeutralizerAmount", ship.getModifiedItemAttr("shipBonus2AF"), - skill="Amarr Frigate") - - return locals() - -def effect4782(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Energy Turret"), - "maxRange", ship.getModifiedItemAttr("shipBonusATF2")) - - return locals() - -def effect4789(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Energy Turret"), - "damageMultiplier", ship.getModifiedItemAttr("shipBonusATF1")) - - return locals() - -def effect4793(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Missile Launcher Heavy", - "speed", ship.getModifiedItemAttr("shipBonusATC1")) - - return locals() - -def effect4794(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Missile Launcher Rapid Light", - "speed", ship.getModifiedItemAttr("shipBonusATC1")) - - return locals() - -def effect4795(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Missile Launcher Heavy Assault", - "speed", ship.getModifiedItemAttr("shipBonusATC1")) - - return locals() - -def effect4799(): - type = "passive" - def handler(fit, ship, context): - sensorTypes = ("Gravimetric", "Ladar", "Magnetometric", "Radar") - for type in sensorTypes: - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Burst Jammer", - "scan{0}StrengthBonus".format(type), - ship.getModifiedItemAttr("eliteBonusBlackOps1"), skill="Black Ops") - - return locals() - -def effect48(): - type = "active" - def handler(fit, module, context): - module.reloadTime = 10000 - module.forceReload = True - if module.charge is None: - return - capAmount = module.getModifiedChargeAttr("capacitorBonus") or 0 - module.itemModifiedAttributes["capacitorNeed"] = -capAmount - - return locals() - -def effect4804(): - type = "passive" - def handler(fit, skill, context): - fit.modules.filteredItemMultiply(lambda mod: mod.item.requiresSkill(skill), "accessDifficultyBonus", - skill.getModifiedItemAttr("accessDifficultyBonusAbsolutePercent") * skill.level) - - return locals() - -def effect4809(): - type = "passive" - def handler(fit, module, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "ECM", - "scanGravimetricStrengthBonus", module.getModifiedItemAttr("ecmStrengthBonusPercent"), - stackingPenalties=True) - - return locals() - -def effect4810(): - type = "passive" - def handler(fit, module, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "ECM", - "scanLadarStrengthBonus", module.getModifiedItemAttr("ecmStrengthBonusPercent"), - stackingPenalties=True) - - return locals() - -def effect4811(): - type = "passive" - def handler(fit, module, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "ECM", - "scanMagnetometricStrengthBonus", - module.getModifiedItemAttr("ecmStrengthBonusPercent"), - stackingPenalties=True) - - return locals() - -def effect4812(): - type = "passive" - def handler(fit, module, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "ECM", - "scanRadarStrengthBonus", module.getModifiedItemAttr("ecmStrengthBonusPercent"), - stackingPenalties=True) - - return locals() - -def effect4814(): - type = "passive" - def handler(fit, skill, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill(skill), "consumptionQuantity", - skill.getModifiedItemAttr("consumptionQuantityBonusPercent") * skill.level) - - return locals() - -def effect4817(): - type = "passive" - def handler(fit, implant, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Salvager", - "duration", implant.getModifiedItemAttr("durationBonus")) - - return locals() - -def effect4820(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemMultiply(lambda mod: mod.item.requiresSkill("Large Energy Turret"), - "power", ship.getModifiedItemAttr("bcLargeTurretPower")) - - return locals() - -def effect4821(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemMultiply(lambda mod: mod.item.requiresSkill("Large Hybrid Turret"), - "power", ship.getModifiedItemAttr("bcLargeTurretPower")) - - return locals() - -def effect4822(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemMultiply(lambda mod: mod.item.requiresSkill("Large Projectile Turret"), - "power", ship.getModifiedItemAttr("bcLargeTurretPower")) - - return locals() - -def effect4823(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemMultiply(lambda mod: mod.item.requiresSkill("Large Energy Turret"), - "cpu", ship.getModifiedItemAttr("bcLargeTurretCPU")) - - return locals() - -def effect4824(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemMultiply(lambda mod: mod.item.requiresSkill("Large Hybrid Turret"), - "cpu", ship.getModifiedItemAttr("bcLargeTurretCPU")) - - return locals() - -def effect4825(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemMultiply(lambda mod: mod.item.requiresSkill("Large Projectile Turret"), - "cpu", ship.getModifiedItemAttr("bcLargeTurretCPU")) - - return locals() - -def effect4826(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemMultiply(lambda mod: mod.item.requiresSkill("Large Energy Turret"), - "capacitorNeed", ship.getModifiedItemAttr("bcLargeTurretCap")) - - return locals() - -def effect4827(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemMultiply(lambda mod: mod.item.requiresSkill("Large Hybrid Turret"), - "capacitorNeed", ship.getModifiedItemAttr("bcLargeTurretCap")) - - return locals() - -def effect485(): - type = "passive" - def handler(fit, container, context): - level = container.level if "skill" in context else 1 - fit.ship.boostItemAttr("rechargeRate", container.getModifiedItemAttr("capRechargeBonus") * level) - - return locals() - -def effect486(): - type = "passive" - def handler(fit, container, context): - level = container.level if "skill" in context else 1 - fit.ship.boostItemAttr("shieldRechargeRate", container.getModifiedItemAttr("rechargeratebonus") * level) - - return locals() - -def effect4867(): - runTime = "early" - type = "passive" - def handler(fit, implant, context): - fit.appliedImplants.filteredItemMultiply(lambda mod: mod.item.group.name == "Special Edition Implant", - "powerEngineeringOutputBonus", - implant.getModifiedItemAttr("implantSetChristmas")) - - return locals() - -def effect4868(): - runTime = "early" - type = "passive" - def handler(fit, implant, context): - fit.appliedImplants.filteredItemMultiply(lambda mod: mod.item.group.name == "Special Edition Implant", - "capacitorCapacityBonus", - implant.getModifiedItemAttr("implantSetChristmas")) - - return locals() - -def effect4869(): - runTime = "early" - type = "passive" - def handler(fit, implant, context): - fit.appliedImplants.filteredItemMultiply(lambda mod: mod.item.group.name == "Special Edition Implant", - "cpuOutputBonus2", implant.getModifiedItemAttr("implantSetChristmas")) - - return locals() - -def effect4871(): - runTime = "early" - type = "passive" - def handler(fit, implant, context): - fit.appliedImplants.filteredItemMultiply(lambda mod: mod.item.group.name == "Special Edition Implant", - "capRechargeBonus", implant.getModifiedItemAttr("implantSetChristmas")) - - return locals() - -def effect4896(): - type = "passive" - def handler(fit, ship, context): - fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Drones"), - "hp", ship.getModifiedItemAttr("shipBonusGF2"), skill="Gallente Frigate") - - return locals() - -def effect4897(): - type = "passive" - def handler(fit, ship, context): - fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Drones"), - "armorHP", ship.getModifiedItemAttr("shipBonusGF2"), skill="Gallente Frigate") - - return locals() - -def effect4898(): - type = "passive" - def handler(fit, ship, context): - fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Drones"), - "shieldCapacity", ship.getModifiedItemAttr("shipBonusGF2"), skill="Gallente Frigate") - - return locals() - -def effect490(): - type = "passive" - def handler(fit, container, context): - level = container.level if "skill" in context else 1 - fit.ship.boostItemAttr("powerOutput", container.getModifiedItemAttr("powerEngineeringOutputBonus") * level) - - return locals() - -def effect4901(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Missile Launcher Operation"), - "speed", ship.getModifiedItemAttr("shipBonus2AF"), skill="Amarr Frigate") - - return locals() - -def effect4902(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("High Speed Maneuvering"), - "signatureRadiusBonus", ship.getModifiedItemAttr("MWDSignatureRadiusBonus")) - - return locals() - -def effect4906(): - runTime = "early" - type = ("projected", "passive") - def handler(fit, beacon, context): - fit.drones.filteredItemMultiply(lambda drone: drone.item.requiresSkill("Fighters"), - "damageMultiplier", beacon.getModifiedItemAttr("damageMultiplierMultiplier"), - stackingPenalties=True, penaltyGroup="postMul") - - return locals() - -def effect4911(): - type = "passive" - def handler(fit, module, context): - fit.ship.multiplyItemAttr("shieldRechargeRate", module.getModifiedItemAttr("shieldRechargeRateMultiplier")) - - return locals() - -def effect4921(): - type = "active" - def handler(fit, module, context): - fit.ship.boostItemAttr("signatureRadius", module.getModifiedItemAttr("signatureRadiusBonusPercent")) - - return locals() - -def effect4923(): - type = "passive" - def handler(fit, skill, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Micro Jump Drive Operation"), - "duration", skill.getModifiedItemAttr("durationBonus") * skill.level) - - return locals() - -def effect4928(): - from logbook import Logger - import eos.config - pyfalog = Logger(__name__) - runTime = "late" - type = "active" - def handler(fit, module, context): - damagePattern = fit.damagePattern - static_adaptive_behavior = eos.config.settings['useStaticAdaptiveArmorHardener'] - if (damagePattern.emAmount == damagePattern.thermalAmount == damagePattern.kineticAmount == damagePattern.explosiveAmount) and static_adaptive_behavior: - for attr in ("armorEmDamageResonance", "armorThermalDamageResonance", "armorKineticDamageResonance", "armorExplosiveDamageResonance"): - fit.ship.multiplyItemAttr(attr, module.getModifiedItemAttr(attr), stackingPenalties=True, penaltyGroup="preMul") - return - if damagePattern: - baseDamageTaken = ( - damagePattern.emAmount * fit.ship.getModifiedItemAttr('armorEmDamageResonance'), - damagePattern.thermalAmount * fit.ship.getModifiedItemAttr('armorThermalDamageResonance'), - damagePattern.kineticAmount * fit.ship.getModifiedItemAttr('armorKineticDamageResonance'), - damagePattern.explosiveAmount * fit.ship.getModifiedItemAttr('armorExplosiveDamageResonance'), - ) - resistanceShiftAmount = module.getModifiedItemAttr( - 'resistanceShiftAmount') / 100 # The attribute is in percent and we want a fraction - RAHResistance = [ - module.getModifiedItemAttr('armorEmDamageResonance'), - module.getModifiedItemAttr('armorThermalDamageResonance'), - module.getModifiedItemAttr('armorKineticDamageResonance'), - module.getModifiedItemAttr('armorExplosiveDamageResonance'), - ] - cycleList = [] - loopStart = -20 - for num in range(50): - damagePattern_tuples = [ - (0, baseDamageTaken[0] * RAHResistance[0], RAHResistance[0]), - (3, baseDamageTaken[3] * RAHResistance[3], RAHResistance[3]), - (2, baseDamageTaken[2] * RAHResistance[2], RAHResistance[2]), - (1, baseDamageTaken[1] * RAHResistance[1], RAHResistance[1]), - ] - sortedDamagePattern_tuples = sorted(damagePattern_tuples, key=lambda damagePattern: damagePattern[1]) - if sortedDamagePattern_tuples[2][1] == 0: - change0 = 1 - sortedDamagePattern_tuples[0][2] - change1 = 1 - sortedDamagePattern_tuples[1][2] - change2 = 1 - sortedDamagePattern_tuples[2][2] - change3 = -(change0 + change1 + change2) - elif sortedDamagePattern_tuples[1][1] == 0: - change0 = 1 - sortedDamagePattern_tuples[0][2] - change1 = 1 - sortedDamagePattern_tuples[1][2] - change2 = -(change0 + change1) / 2 - change3 = -(change0 + change1) / 2 - else: - change0 = min(resistanceShiftAmount, 1 - sortedDamagePattern_tuples[0][2]) - change1 = min(resistanceShiftAmount, 1 - sortedDamagePattern_tuples[1][2]) - change2 = -(change0 + change1) / 2 - change3 = -(change0 + change1) / 2 - RAHResistance[sortedDamagePattern_tuples[0][0]] = sortedDamagePattern_tuples[0][2] + change0 - RAHResistance[sortedDamagePattern_tuples[1][0]] = sortedDamagePattern_tuples[1][2] + change1 - RAHResistance[sortedDamagePattern_tuples[2][0]] = sortedDamagePattern_tuples[2][2] + change2 - RAHResistance[sortedDamagePattern_tuples[3][0]] = sortedDamagePattern_tuples[3][2] + change3 - for i, val in enumerate(cycleList): - tolerance = 1e-06 - if abs(RAHResistance[0] - val[0]) <= tolerance and \ - abs(RAHResistance[1] - val[1]) <= tolerance and \ - abs(RAHResistance[2] - val[2]) <= tolerance and \ - abs(RAHResistance[3] - val[3]) <= tolerance: - loopStart = i - break - if loopStart >= 0: - break - cycleList.append(list(RAHResistance)) - loopCycles = cycleList[loopStart:] - numCycles = len(loopCycles) - average = [0, 0, 0, 0] - for cycle in loopCycles: - for i in range(4): - average[i] += cycle[i] - for i in range(4): - average[i] = round(average[i] / numCycles, 3) - for i, attr in enumerate(( - 'armorEmDamageResonance', 'armorThermalDamageResonance', 'armorKineticDamageResonance', - 'armorExplosiveDamageResonance')): - module.increaseItemAttr(attr, average[i] - module.getModifiedItemAttr(attr)) - fit.ship.multiplyItemAttr(attr, average[i], stackingPenalties=True, penaltyGroup="preMul") - - return locals() - -def effect4934(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Repair Systems"), - "armorDamageAmount", ship.getModifiedItemAttr("shipBonusGF2"), - skill="Gallente Frigate") - - return locals() - -def effect4936(): - runTime = "late" - type = "active" - def handler(fit, module, context): - amount = module.getModifiedItemAttr("shieldBonus") - speed = module.getModifiedItemAttr("duration") / 1000.0 - fit.extraAttributes.increase("shieldRepair", amount / speed) - - return locals() - -def effect494(): - type = "passive" - def handler(fit, container, context): - level = container.level if "skill" in context else 1 - fit.ship.boostItemAttr("warpCapacitorNeed", container.getModifiedItemAttr("warpCapacitorNeedBonus") * level, - stackingPenalties="skill" not in context) - - return locals() - -def effect4941(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Hybrid Turret"), - "damageMultiplier", ship.getModifiedItemAttr("shipBonusCF2"), skill="Caldari Frigate") - - return locals() - -def effect4942(): - type = "active" - def handler(fit, module, context): - pass - - return locals() - -def effect4945(): - type = "passive" - def handler(fit, skill, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Target Breaker", - "duration", skill.getModifiedItemAttr("durationBonus") * skill.level) - - return locals() - -def effect4946(): - type = "passive" - def handler(fit, skill, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Target Breaker", - "capacitorNeed", skill.getModifiedItemAttr("capNeedBonus") * skill.level) - - return locals() - -def effect4950(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Operation"), - "shieldBonus", ship.getModifiedItemAttr("shipBonusMB"), skill="Minmatar Battleship") - - return locals() - -def effect4951(): - type = "passive" - def handler(fit, container, context): - fit.modules.filteredItemBoost( - lambda mod: mod.item.requiresSkill("Shield Operation") or mod.item.requiresSkill("Capital Shield Operation"), - "shieldBonus", container.getModifiedItemAttr("shieldBoostMultiplier")) - - return locals() - -def effect4961(): - runTime = "early" - type = ("projected", "passive") - def handler(fit, module, context): - fit.modules.filteredItemMultiply(lambda mod: mod.item.requiresSkill("Shield Operation") or - mod.item.requiresSkill("Capital Shield Operation"), - "shieldBonus", module.getModifiedItemAttr("shieldBonusMultiplier"), - stackingPenalties=True, penaltyGroup="postMul") - - return locals() - -def effect4967(): - type = "passive" - def handler(fit, module, context): - fit.modules.filteredItemBoost( - lambda mod: mod.item.requiresSkill("Shield Operation") or mod.item.requiresSkill("Capital Shield Operation"), - "duration", module.getModifiedItemAttr("durationSkillBonus")) - - return locals() - -def effect4970(): - type = "boosterSideEffect" - displayName = "Shield Boost" - attr = "boosterShieldBoostAmountPenalty" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Operation"), "shieldBonus", - src.getModifiedItemAttr("boosterShieldBoostAmountPenalty")) - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capital Shield Operation"), "shieldBonus", - src.getModifiedItemAttr("boosterShieldBoostAmountPenalty")) - - return locals() - -def effect4972(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Missile Launcher Light", - "speed", ship.getModifiedItemAttr("eliteBonusGunship1"), skill="Assault Frigates") - - return locals() - -def effect4973(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Missile Launcher Rocket", - "speed", ship.getModifiedItemAttr("eliteBonusGunship1"), skill="Assault Frigates") - - return locals() - -def effect4974(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Operation"), - "shieldBonus", ship.getModifiedItemAttr("eliteBonusViolators2"), skill="Marauders") - - return locals() - -def effect4975(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), - "kineticDamage", ship.getModifiedItemAttr("shipBonusATF2")) - - return locals() - -def effect4976(): - type = "passive" - def handler(fit, src, context): - lvl = src.level - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Armor Resistance Shift Hardener", "duration", - src.getModifiedItemAttr("durationBonus") * lvl) - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Resistance Phasing"), "duration", - src.getModifiedItemAttr("durationBonus") * lvl) - - return locals() - -def effect4989(): - type = "passive" - def handler(fit, implant, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), - "aoeCloudSize", implant.getModifiedItemAttr("aoeCloudSizeBonus")) - - return locals() - -def effect4990(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Energy Turret"), - "capacitorNeed", ship.getModifiedItemAttr("rookieSETCapBonus")) - - return locals() - -def effect4991(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Energy Turret"), - "damageMultiplier", ship.getModifiedItemAttr("rookieSETDamageBonus")) - - return locals() - -def effect4994(): - type = "passive" - def handler(fit, ship, context): - fit.ship.boostItemAttr("armorEmDamageResonance", ship.getModifiedItemAttr("rookieArmorResistanceBonus")) - - return locals() - -def effect4995(): - type = "passive" - def handler(fit, ship, context): - fit.ship.boostItemAttr("armorExplosiveDamageResonance", ship.getModifiedItemAttr("rookieArmorResistanceBonus")) - - return locals() - -def effect4996(): - type = "passive" - def handler(fit, ship, context): - fit.ship.boostItemAttr("armorKineticDamageResonance", ship.getModifiedItemAttr("rookieArmorResistanceBonus")) - - return locals() - -def effect4997(): - type = "passive" - def handler(fit, ship, context): - fit.ship.boostItemAttr("armorThermalDamageResonance", ship.getModifiedItemAttr("rookieArmorResistanceBonus")) - - return locals() - -def effect4999(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Hybrid Turret"), - "maxRange", ship.getModifiedItemAttr("rookieSHTOptimalBonus")) - - return locals() - -def effect50(): - type = "passive" - def handler(fit, module, context): - fit.ship.multiplyItemAttr("shieldRechargeRate", module.getModifiedItemAttr("shieldRechargeRateMultiplier") or 1) - - return locals() - -def effect5000(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), - "kineticDamage", ship.getModifiedItemAttr("rookieMissileKinDamageBonus")) - - return locals() - -def effect5008(): - type = "passive" - def handler(fit, ship, context): - fit.ship.boostItemAttr("shieldEmDamageResonance", ship.getModifiedItemAttr("rookieShieldResistBonus")) - - return locals() - -def effect5009(): - type = "passive" - def handler(fit, ship, context): - fit.ship.boostItemAttr("shieldExplosiveDamageResonance", ship.getModifiedItemAttr("rookieShieldResistBonus")) - - return locals() - -def effect5011(): - type = "passive" - def handler(fit, ship, context): - fit.ship.boostItemAttr("shieldKineticDamageResonance", ship.getModifiedItemAttr("rookieShieldResistBonus")) - - return locals() - -def effect5012(): - type = "passive" - def handler(fit, ship, context): - fit.ship.boostItemAttr("shieldThermalDamageResonance", ship.getModifiedItemAttr("rookieShieldResistBonus")) - - return locals() - -def effect5013(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Hybrid Turret"), - "damageMultiplier", ship.getModifiedItemAttr("rookieSHTDamageBonus")) - - return locals() - -def effect5014(): - type = "passive" - def handler(fit, ship, context): - fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Drones"), - "damageMultiplier", ship.getModifiedItemAttr("rookieDroneBonus")) - - return locals() - -def effect5015(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Sensor Dampener", - "maxTargetRangeBonus", ship.getModifiedItemAttr("rookieDampStrengthBonus")) - - return locals() - -def effect5016(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Sensor Dampener", - "scanResolutionBonus", ship.getModifiedItemAttr("rookieDampStrengthBonus")) - - return locals() - -def effect5017(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Repair Systems"), - "armorDamageAmount", ship.getModifiedItemAttr("rookieArmorRepBonus")) - - return locals() - -def effect5018(): - type = "passive" - def handler(fit, ship, context): - fit.ship.boostItemAttr("maxVelocity", ship.getModifiedItemAttr("rookieShipVelocityBonus")) - - return locals() - -def effect5019(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Target Painter", - "signatureRadiusBonus", ship.getModifiedItemAttr("rookieTargetPainterStrengthBonus")) - - return locals() - -def effect5020(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Projectile Turret"), - "damageMultiplier", ship.getModifiedItemAttr("rookieSPTDamageBonus")) - - return locals() - -def effect5021(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Operation"), - "shieldBonus", ship.getModifiedItemAttr("rookieShieldBoostBonus")) - - return locals() - -def effect5028(): - type = "passive" - def handler(fit, ship, context): - for type in ("Gravimetric", "Ladar", "Radar", "Magnetometric"): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "ECM", - "scan{0}StrengthBonus".format(type), - ship.getModifiedItemAttr("rookieECMStrengthBonus")) - - return locals() - -def effect5029(): - type = "passive" - def handler(fit, src, context): - fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Mining Drone Operation"), - "miningAmount", - src.getModifiedItemAttr("roleBonusDroneMiningYield"), - ) - - return locals() - -def effect5030(): - type = "passive" - def handler(fit, container, context): - fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Mining Drone Operation"), - "miningAmount", container.getModifiedItemAttr("rookieDroneBonus")) - - return locals() - -def effect5035(): - type = "passive" - def handler(fit, ship, context): - for type in ("shieldCapacity", "armorHP", "hp"): - fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Drones"), - type, ship.getModifiedItemAttr("rookieDroneBonus")) - - return locals() - -def effect5036(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Salvaging"), - "duration", ship.getModifiedItemAttr("shipBonusAF"), skill="Amarr Frigate") - - return locals() - -def effect504(): - type = "passive" - def handler(fit, container, context): - level = container.level if "skill" in context else 1 - amount = container.getModifiedItemAttr("droneRangeBonus") * level - fit.extraAttributes.increase("droneControlRange", amount) - - return locals() - -def effect5045(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Salvaging"), - "duration", ship.getModifiedItemAttr("shipBonusCF"), skill="Caldari Frigate") - - return locals() - -def effect5048(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Salvaging"), - "duration", ship.getModifiedItemAttr("shipBonusGF"), skill="Amarr Frigate") - - return locals() - -def effect5051(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Salvaging"), - "duration", ship.getModifiedItemAttr("shipBonusMF"), skill="Minmatar Frigate") - - return locals() - -def effect5055(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemMultiply(lambda mod: mod.item.requiresSkill("Ice Harvesting"), - "duration", ship.getModifiedItemAttr("iceHarvestCycleBonus")) - - return locals() - -def effect5058(): - type = "passive" - def handler(fit, module, context): - fit.modules.filteredItemMultiply(lambda mod: mod.item.requiresSkill("Mining"), - "miningAmount", module.getModifiedItemAttr("miningAmountMultiplier")) - - return locals() - -def effect5059(): - type = "passive" - def handler(fit, container, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Ice Harvesting"), - "duration", container.getModifiedItemAttr("shipBonusORE3"), skill="Mining Barge") - - return locals() - -def effect506(): - type = "passive" - def handler(fit, skill, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Afterburner"), - "capacitorNeed", skill.getModifiedItemAttr("capNeedBonus") * skill.level) - - return locals() - -def effect5066(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Target Painting"), - "maxRange", ship.getModifiedItemAttr("shipBonusMF"), skill="Minmatar Frigate") - - return locals() - -def effect5067(): - type = "passive" - def handler(fit, ship, context): - fit.ship.boostItemAttr("specialOreHoldCapacity", ship.getModifiedItemAttr("shipBonusORE2"), skill="Mining Barge") - - return locals() - -def effect5068(): - type = "passive" - def handler(fit, ship, context): - fit.ship.boostItemAttr("shieldCapacity", ship.getModifiedItemAttr("shipBonusORE2"), skill="Mining Barge") - - return locals() - -def effect5069(): - type = "passive" - runTime = "early" - def handler(fit, module, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Mercoxit Processing"), - "specialisationAsteroidYieldMultiplier", - module.getModifiedItemAttr("miningAmountBonus")) - - return locals() - -def effect507(): - type = "passive" - def handler(fit, container, context): - level = container.level if "skill" in context else 1 - fit.ship.boostItemAttr("maxTargetRange", container.getModifiedItemAttr("maxTargetRangeBonus") * level) - - return locals() - -def effect5079(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), - "kineticDamage", ship.getModifiedItemAttr("shipBonusCF2"), skill="Caldari Frigate") - - return locals() - -def effect508(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Projectile Turret"), - "damageMultiplier", ship.getModifiedItemAttr("shipBonusMF"), skill="Minmatar Frigate") - - return locals() - -def effect5080(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), - "maxVelocity", ship.getModifiedItemAttr("shipBonusCF"), skill="Caldari Frigate") - - return locals() - -def effect5081(): - type = "passive" - def handler(fit, module, context): - fit.ship.boostItemAttr("maxTargetRange", module.getModifiedItemAttr("maxTargetRangeBonus"), - stackingPenalties=True) - - return locals() - -def effect5087(): - type = "passive" - def handler(fit, ship, context): - for layer in ("shieldCapacity", "armorHP", "hp"): - fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Drones"), - layer, ship.getModifiedItemAttr("shipBonusGF"), skill="Gallente Frigate") - - return locals() - -def effect5090(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Operation"), - "shieldBonus", ship.getModifiedItemAttr("shipBonusMF"), skill="Minmatar Frigate") - - return locals() - -def effect51(): - type = "passive" - def handler(fit, module, context): - fit.ship.multiplyItemAttr("rechargeRate", module.getModifiedItemAttr("capacitorRechargeRateMultiplier")) - - return locals() - -def effect5103(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Emission Systems"), - "capacitorNeed", ship.getModifiedItemAttr("shipBonusCF"), skill="Caldari Frigate") - - return locals() - -def effect5104(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Emission Systems"), - "shieldBonus", ship.getModifiedItemAttr("shipBonusCF2"), skill="Caldari Frigate") - - return locals() - -def effect5105(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Emission Systems"), - "capacitorNeed", ship.getModifiedItemAttr("shipBonusMF"), skill="Minmatar Frigate") - - return locals() - -def effect5106(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Emission Systems"), - "shieldBonus", ship.getModifiedItemAttr("shipBonusMF2"), skill="Minmatar Frigate") - - return locals() - -def effect5107(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Remote Armor Repair Systems"), "capacitorNeed", - src.getModifiedItemAttr("shipBonusGF"), skill="Gallente Frigate") - - return locals() - -def effect5108(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Remote Armor Repair Systems"), - "armorDamageAmount", src.getModifiedItemAttr("shipBonusGF2"), - skill="Gallente Frigate") - - return locals() - -def effect5109(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Remote Armor Repair Systems"), "capacitorNeed", - src.getModifiedItemAttr("shipBonusAF"), skill="Amarr Frigate") - - return locals() - -def effect511(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Energy Turret"), - "capacitorNeed", ship.getModifiedItemAttr("shipBonus2AF"), skill="Amarr Frigate") - - return locals() - -def effect5110(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Remote Armor Repair Systems"), - "armorDamageAmount", src.getModifiedItemAttr("shipBonus2AF"), skill="Amarr Frigate") - - return locals() - -def effect5111(): - type = "passive" - def handler(fit, ship, context): - fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Drones"), - "trackingSpeed", ship.getModifiedItemAttr("shipBonusGF"), skill="Gallente Frigate") - - return locals() - -def effect5119(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.group.name == "Scanner Probe", - "baseSensorStrength", ship.getModifiedItemAttr("shipBonus2AF"), - skill="Amarr Frigate") - - return locals() - -def effect512(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Hybrid Turret"), - "damageMultiplier", ship.getModifiedItemAttr("shipBonusGF"), skill="Gallente Frigate") - - return locals() - -def effect5121(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Remote Capacitor Transmitter", - "powerTransferAmount", ship.getModifiedItemAttr("energyTransferAmountBonus")) - - return locals() - -def effect5122(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Emission Systems"), - "capacitorNeed", ship.getModifiedItemAttr("shipBonusMC"), skill="Minmatar Cruiser") - - return locals() - -def effect5123(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Remote Armor Repair Systems"), "capacitorNeed", - src.getModifiedItemAttr("shipBonusAC"), skill="Amarr Cruiser") - - return locals() - -def effect5124(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Remote Armor Repair Systems"), - "armorDamageAmount", src.getModifiedItemAttr("shipBonusAC2"), skill="Amarr Cruiser") - - return locals() - -def effect5125(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Remote Armor Repair Systems"), - "armorDamageAmount", src.getModifiedItemAttr("shipBonusGC2"), - skill="Gallente Cruiser") - - return locals() - -def effect5126(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Emission Systems"), - "shieldBonus", ship.getModifiedItemAttr("shipBonusCC2"), skill="Caldari Cruiser") - - return locals() - -def effect5127(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Emission Systems"), - "shieldBonus", ship.getModifiedItemAttr("shipBonusMC2"), skill="Minmatar Cruiser") - - return locals() - -def effect5128(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Sensor Dampener", - "maxRange", ship.getModifiedItemAttr("shipBonusGC"), skill="Gallente Cruiser") - - return locals() - -def effect5129(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Target Painter", - "signatureRadiusBonus", ship.getModifiedItemAttr("shipBonusMC"), - skill="Minmatar Cruiser") - - return locals() - -def effect5131(): - type = "passive" - def handler(fit, ship, context): - groups = ("Missile Launcher Heavy", "Missile Launcher Rapid Light", "Missile Launcher Heavy Assault") - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name in groups, - "speed", ship.getModifiedItemAttr("shipBonusCC"), skill="Caldari Cruiser") - - return locals() - -def effect5132(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Projectile Turret"), - "falloff", ship.getModifiedItemAttr("shipBonusMC2"), skill="Minmatar Cruiser") - - return locals() - -def effect5133(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Hybrid Turret"), - "damageMultiplier", ship.getModifiedItemAttr("shipBonusCC"), skill="Caldari Cruiser") - - return locals() - -def effect5136(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Energy Turret"), - "damageMultiplier", ship.getModifiedItemAttr("shipBonusAC"), skill="Amarr Cruiser") - - return locals() - -def effect5139(): - type = "passive" - def handler(fit, module, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Mining"), - "miningAmount", module.getModifiedItemAttr("shipBonusOREfrig1"), - skill="Mining Frigate") - - return locals() - -def effect514(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Energy Turret"), - "damageMultiplier", ship.getModifiedItemAttr("shipBonusAF"), skill="Amarr Frigate") - - return locals() - -def effect5142(): - type = "passive" - def handler(fit, module, context): - fit.modules.filteredItemMultiply(lambda mod: mod.item.group.name == "Gas Cloud Harvester", - "miningAmount", module.getModifiedItemAttr("miningAmountMultiplier")) - - return locals() - -def effect5153(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Rockets"), - "maxVelocity", ship.getModifiedItemAttr("shipBonusRole7")) - - return locals() - -def effect5156(): - type = "passive" - def handler(fit, module, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Gas Cloud Harvester", - "duration", module.getModifiedItemAttr("shipBonusOREfrig2"), skill="Mining Frigate") - - return locals() - -def effect516(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Energy Turret"), - "capacitorNeed", ship.getModifiedItemAttr("shipBonusAC"), skill="Amarr Cruiser") - - return locals() - -def effect5162(): - type = "passive" - def handler(fit, src, context): - lvl = src.level - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Armor Resistance Shift Hardener", "capacitorNeed", - src.getModifiedItemAttr("capNeedBonus") * lvl) - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Resistance Phasing"), "capacitorNeed", - src.getModifiedItemAttr("capNeedBonus") * lvl) - - return locals() - -def effect5165(): - type = "passive" - def handler(fit, ship, context): - fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Drones"), - "maxVelocity", ship.getModifiedItemAttr("shipBonusRole7")) - - return locals() - -def effect5168(): - type = "passive" - def handler(fit, container, context): - fit.drones.filteredItemIncrease(lambda drone: drone.item.requiresSkill("Salvage Drone Operation"), - "accessDifficultyBonus", - container.getModifiedItemAttr("accessDifficultyBonus") * container.level) - - return locals() - -def effect5180(): - type = "passive" - def handler(fit, container, context): - fit.ship.boostItemAttr("scanGravimetricStrength", - container.getModifiedItemAttr("sensorStrengthBonus") * container.level) - - return locals() - -def effect5181(): - type = "passive" - def handler(fit, container, context): - fit.ship.boostItemAttr("scanLadarStrength", container.getModifiedItemAttr("sensorStrengthBonus") * container.level) - - return locals() - -def effect5182(): - type = "passive" - def handler(fit, container, context): - fit.ship.boostItemAttr("scanMagnetometricStrength", - container.getModifiedItemAttr("sensorStrengthBonus") * container.level) - - return locals() - -def effect5183(): - type = "passive" - def handler(fit, container, context): - fit.ship.boostItemAttr("scanRadarStrength", container.getModifiedItemAttr("sensorStrengthBonus") * container.level) - - return locals() - -def effect5185(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Nosferatu", - "powerTransferAmount", ship.getModifiedItemAttr("shipBonus2AF"), - skill="Amarr Frigate") - - return locals() - -def effect5187(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Sensor Dampener", - "falloffEffectiveness", ship.getModifiedItemAttr("shipBonusGC"), - skill="Gallente Cruiser") - - return locals() - -def effect5188(): - type = "passive" - def handler(fit, module, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Hybrid Weapon", - "trackingSpeed", module.getModifiedItemAttr("trackingSpeedBonus"), - stackingPenalties=True) - - return locals() - -def effect5189(): - type = "passive" - def handler(fit, module, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Weapon", - "trackingSpeed", module.getModifiedItemAttr("trackingSpeedBonus"), - stackingPenalties=True) - - return locals() - -def effect5190(): - type = "passive" - def handler(fit, module, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Projectile Weapon", - "trackingSpeed", module.getModifiedItemAttr("trackingSpeedBonus"), - stackingPenalties=True) - - return locals() - -def effect5201(): - type = "passive" - def handler(fit, container, context): - level = container.level - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Armor Reinforcer", - "massAddition", container.getModifiedItemAttr("massPenaltyReduction") * level) - - return locals() - -def effect5205(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Energy Turret"), - "trackingSpeed", ship.getModifiedItemAttr("rookieSETTracking")) - - return locals() - -def effect5206(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Energy Turret"), - "maxRange", ship.getModifiedItemAttr("rookieSETOptimal")) - - return locals() - -def effect5207(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Nosferatu", - "powerTransferAmount", ship.getModifiedItemAttr("rookieNosDrain")) - - return locals() - -def effect5208(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Neutralizer", - "energyNeutralizerAmount", ship.getModifiedItemAttr("rookieNeutDrain")) - - return locals() - -def effect5209(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Stasis Web", - "speedFactor", ship.getModifiedItemAttr("rookieWebAmount")) - - return locals() - -def effect521(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Hybrid Turret"), - "maxRange", ship.getModifiedItemAttr("shipBonusCC"), skill="Caldari Cruiser") - - return locals() - -def effect5212(): - type = "passive" - def handler(fit, ship, context): - fit.drones.filteredItemBoost(lambda mod: True, - "maxVelocity", ship.getModifiedItemAttr("rookieDroneMWDspeed")) - - return locals() - -def effect5213(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Rockets"), - "maxVelocity", ship.getModifiedItemAttr("rookieRocketVelocity")) - - return locals() - -def effect5214(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Light Missiles"), - "maxVelocity", ship.getModifiedItemAttr("rookieLightMissileVelocity")) - - return locals() - -def effect5215(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Hybrid Turret"), - "trackingSpeed", ship.getModifiedItemAttr("rookieSHTTracking")) - - return locals() - -def effect5216(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Hybrid Turret"), - "falloff", ship.getModifiedItemAttr("rookieSHTFalloff")) - - return locals() - -def effect5217(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Projectile Turret"), - "trackingSpeed", ship.getModifiedItemAttr("rookieSPTTracking")) - - return locals() - -def effect5218(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Projectile Turret"), - "falloff", ship.getModifiedItemAttr("rookieSPTFalloff")) - - return locals() - -def effect5219(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Projectile Turret"), - "maxRange", ship.getModifiedItemAttr("rookieSPTOptimal")) - - return locals() - -def effect5220(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Projectile Turret"), - "damageMultiplier", ship.getModifiedItemAttr("shipBonusRole7")) - - return locals() - -def effect5221(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Assault Missiles"), - "emDamage", ship.getModifiedItemAttr("shipBonusRole7")) - - return locals() - -def effect5222(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Assault Missiles"), - "kineticDamage", ship.getModifiedItemAttr("shipBonusRole7")) - - return locals() - -def effect5223(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Assault Missiles"), - "thermalDamage", ship.getModifiedItemAttr("shipBonusRole7")) - - return locals() - -def effect5224(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Assault Missiles"), - "explosiveDamage", ship.getModifiedItemAttr("shipBonusRole7")) - - return locals() - -def effect5225(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Missiles"), - "emDamage", ship.getModifiedItemAttr("shipBonusRole7")) - - return locals() - -def effect5226(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Missiles"), - "explosiveDamage", ship.getModifiedItemAttr("shipBonusRole7")) - - return locals() - -def effect5227(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Missiles"), - "kineticDamage", ship.getModifiedItemAttr("shipBonusRole7")) - - return locals() - -def effect5228(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Missiles"), - "thermalDamage", ship.getModifiedItemAttr("shipBonusRole7")) - - return locals() - -def effect5229(): - type = "passive" - def handler(fit, container, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Astrometrics"), - "baseSensorStrength", container.getModifiedItemAttr("shipBonusRole8")) - - return locals() - -def effect5230(): - type = "active" - def handler(fit, module, context): - for damageType in ("kinetic", "thermal", "explosive", "em"): - fit.ship.boostItemAttr("shield" + damageType.capitalize() + "DamageResonance", - module.getModifiedItemAttr(damageType + "DamageResistanceBonus"), - stackingPenalties=True) - - return locals() - -def effect5231(): - type = "active" - def handler(fit, module, context): - for damageType in ("kinetic", "thermal", "explosive", "em"): - fit.ship.boostItemAttr("armor%sDamageResonance" % damageType.capitalize(), - module.getModifiedItemAttr("%sDamageResistanceBonus" % damageType), - stackingPenalties=True) - - return locals() - -def effect5234(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredChargeBoost( - lambda mod: mod.charge.requiresSkill("Rockets") or mod.charge.requiresSkill("Light Missiles"), - "explosiveDamage", ship.getModifiedItemAttr("shipBonusCF2"), skill="Caldari Frigate") - - return locals() - -def effect5237(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredChargeBoost( - lambda mod: mod.charge.requiresSkill("Rockets") or mod.charge.requiresSkill("Light Missiles"), - "kineticDamage", ship.getModifiedItemAttr("shipBonusCF2"), skill="Caldari Frigate") - - return locals() - -def effect5240(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredChargeBoost( - lambda mod: mod.charge.requiresSkill("Rockets") or mod.charge.requiresSkill("Light Missiles"), - "thermalDamage", ship.getModifiedItemAttr("shipBonusCF2"), skill="Caldari Frigate") - - return locals() - -def effect5243(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredChargeBoost( - lambda mod: mod.charge.requiresSkill("Rockets") or mod.charge.requiresSkill("Light Missiles"), - "emDamage", ship.getModifiedItemAttr("shipBonusCF2"), skill="Caldari Frigate") - - return locals() - -def effect5259(): - type = "passive" - runTime = "early" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Cloaking Device", - "cpu", ship.getModifiedItemAttr("eliteBonusReconShip1"), skill="Recon Ships") - - return locals() - -def effect5260(): - type = "passive" - runTime = "early" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Cloaking"), - "cpu", ship.getModifiedItemAttr("eliteBonusCovertOps1"), skill="Covert Ops") - - return locals() - -def effect5261(): - type = "passive" - def handler(fit, module, context): - module.increaseItemAttr("cpu", module.getModifiedItemAttr("covertCloakCPUAdd") or 0) - - return locals() - -def effect5262(): - type = "passive" - def handler(fit, module, context): - fit.modules.filteredItemIncrease(lambda mod: mod.item.requiresSkill("Cloaking"), - "covertCloakCPUAdd", module.getModifiedItemAttr("covertCloakCPUPenalty")) - - return locals() - -def effect5263(): - type = "passive" - def handler(fit, module, context): - fit.modules.filteredItemIncrease(lambda mod: mod.item.requiresSkill("Cynosural Field Theory"), - "covertCloakCPUAdd", module.getModifiedItemAttr("covertCloakCPUPenalty")) - - return locals() - -def effect5264(): - type = "passive" - def handler(fit, module, context): - module.increaseItemAttr("cpu", module.getModifiedItemAttr("warfareLinkCPUAdd") or 0) - - return locals() - -def effect5265(): - type = "passive" - def handler(fit, module, context): - fit.modules.filteredItemIncrease(lambda mod: mod.item.requiresSkill("Leadership"), - "warfareLinkCPUAdd", module.getModifiedItemAttr("warfareLinkCPUPenalty")) - - return locals() - -def effect5266(): - type = "passive" - runTime = "early" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Cloaking Device", - "cpu", ship.getModifiedItemAttr("eliteIndustrialCovertCloakBonus"), - skill="Transport Ships") - - return locals() - -def effect5267(): - type = "passive" - def handler(fit, module, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Repair Systems"), - "power", module.getModifiedItemAttr("drawback")) - - return locals() - -def effect5268(): - type = "passive" - def handler(fit, module, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capital Repair Systems"), - "power", module.getModifiedItemAttr("drawback")) - - return locals() - -def effect527(): - type = "passive" - def handler(fit, ship, context): - fit.ship.boostItemAttr("maxVelocity", ship.getModifiedItemAttr("shipBonusMI"), skill="Minmatar Industrial") - - return locals() - -def effect5275(): - runTime = "late" - type = "active" - def handler(fit, module, context): - if module.charge and module.charge.name == "Nanite Repair Paste": - multiplier = 3 - else: - multiplier = 1 - amount = module.getModifiedItemAttr("armorDamageAmount") * multiplier - speed = module.getModifiedItemAttr("duration") / 1000.0 - rps = amount / speed - fit.extraAttributes.increase("armorRepair", rps) - fit.extraAttributes.increase("armorRepairPreSpool", rps) - fit.extraAttributes.increase("armorRepairFullSpool", rps) - - return locals() - -def effect529(): - type = "passive" - def handler(fit, ship, context): - fit.ship.boostItemAttr("capacity", ship.getModifiedItemAttr("shipBonusAI"), skill="Amarr Industrial") - - return locals() - -def effect5293(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Energy Turret"), - "capacitorNeed", ship.getModifiedItemAttr("shipBonusAD1"), skill="Amarr Destroyer") - - return locals() - -def effect5294(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Energy Turret"), - "trackingSpeed", ship.getModifiedItemAttr("shipBonusAD2"), skill="Amarr Destroyer") - - return locals() - -def effect5295(): - type = "passive" - def handler(fit, src, context): - fit.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Drones"), "damageMultiplier", - src.getModifiedItemAttr("shipBonusAD1"), skill="Amarr Destroyer") - - return locals() - -def effect5300(): - type = "passive" - def handler(fit, src, context): - fit.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Drones"), "shieldCapacity", - src.getModifiedItemAttr("shipBonusAD1"), skill="Amarr Destroyer") - fit.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Drones"), "hp", - src.getModifiedItemAttr("shipBonusAD1"), skill="Amarr Destroyer") - fit.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Drones"), "armorHP", - src.getModifiedItemAttr("shipBonusAD1"), skill="Amarr Destroyer") - - return locals() - -def effect5303(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Hybrid Turret"), - "maxRange", ship.getModifiedItemAttr("shipBonusCD1"), skill="Caldari Destroyer") - - return locals() - -def effect5304(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Hybrid Turret"), - "trackingSpeed", ship.getModifiedItemAttr("shipBonusCD2"), skill="Caldari Destroyer") - - return locals() - -def effect5305(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Light Missiles"), - "kineticDamage", ship.getModifiedItemAttr("shipBonusCD1"), - skill="Caldari Destroyer") - - return locals() - -def effect5306(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Rockets"), - "kineticDamage", ship.getModifiedItemAttr("shipBonusCD1"), - skill="Caldari Destroyer") - - return locals() - -def effect5307(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Rockets"), - "aoeVelocity", ship.getModifiedItemAttr("shipBonusCD2"), skill="Caldari Destroyer") - - return locals() - -def effect5308(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Light Missiles"), - "aoeVelocity", ship.getModifiedItemAttr("shipBonusCD2"), skill="Caldari Destroyer") - - return locals() - -def effect5309(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Hybrid Turret"), - "falloff", ship.getModifiedItemAttr("shipBonusGD1"), skill="Gallente Destroyer") - - return locals() - -def effect5310(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Hybrid Turret"), - "trackingSpeed", ship.getModifiedItemAttr("shipBonusGD2"), skill="Gallente Destroyer") - - return locals() - -def effect5311(): - type = "passive" - def handler(fit, src, context): - fit.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Drones"), "damageMultiplier", - src.getModifiedItemAttr("shipBonusGD1"), skill="Gallente Destroyer") - - return locals() - -def effect5316(): - type = "passive" - def handler(fit, src, context): - fit.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Drones"), "shieldCapacity", - src.getModifiedItemAttr("shipBonusGD1"), skill="Gallente Destroyer") - fit.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Drones"), "armorHP", - src.getModifiedItemAttr("shipBonusGD1"), skill="Gallente Destroyer") - fit.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Drones"), "hp", - src.getModifiedItemAttr("shipBonusGD1"), skill="Gallente Destroyer") - - return locals() - -def effect5317(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Projectile Turret"), - "damageMultiplier", ship.getModifiedItemAttr("shipBonusMD1"), - skill="Minmatar Destroyer") - - return locals() - -def effect5318(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Projectile Turret"), - "trackingSpeed", ship.getModifiedItemAttr("shipBonusMD2"), skill="Minmatar Destroyer") - - return locals() - -def effect5319(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Light Missiles"), - "explosiveDamage", ship.getModifiedItemAttr("shipBonusMD1"), - skill="Minmatar Destroyer") - - return locals() - -def effect5320(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Rockets"), - "explosiveDamage", ship.getModifiedItemAttr("shipBonusMD1"), - skill="Minmatar Destroyer") - - return locals() - -def effect5321(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("High Speed Maneuvering"), - "signatureRadiusBonus", ship.getModifiedItemAttr("shipBonusMD2"), - skill="Minmatar Destroyer") - - return locals() - -def effect5322(): - type = "passive" - def handler(fit, ship, context): - fit.ship.boostItemAttr("armorEmDamageResonance", ship.getModifiedItemAttr("shipBonusABC1"), - skill="Amarr Battlecruiser") - - return locals() - -def effect5323(): - type = "passive" - def handler(fit, ship, context): - fit.ship.boostItemAttr("armorExplosiveDamageResonance", ship.getModifiedItemAttr("shipBonusABC1"), - skill="Amarr Battlecruiser") - - return locals() - -def effect5324(): - type = "passive" - def handler(fit, ship, context): - fit.ship.boostItemAttr("armorKineticDamageResonance", ship.getModifiedItemAttr("shipBonusABC1"), - skill="Amarr Battlecruiser") - - return locals() - -def effect5325(): - type = "passive" - def handler(fit, ship, context): - fit.ship.boostItemAttr("armorThermalDamageResonance", ship.getModifiedItemAttr("shipBonusABC1"), - skill="Amarr Battlecruiser") - - return locals() - -def effect5326(): - type = "passive" - def handler(fit, ship, context): - fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Drones"), - "damageMultiplier", ship.getModifiedItemAttr("shipBonusABC2"), - skill="Amarr Battlecruiser") - - return locals() - -def effect5331(): - type = "passive" - def handler(fit, ship, context): - for layer in ("shieldCapacity", "armorHP", "hp"): - fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Drones"), - layer, ship.getModifiedItemAttr("shipBonusABC2"), skill="Amarr Battlecruiser") - - return locals() - -def effect5332(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Energy Turret"), - "capacitorNeed", ship.getModifiedItemAttr("shipBonusABC1"), - skill="Amarr Battlecruiser") - - return locals() - -def effect5333(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Energy Turret"), - "damageMultiplier", ship.getModifiedItemAttr("shipBonusABC2"), - skill="Amarr Battlecruiser") - - return locals() - -def effect5334(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Hybrid Turret"), - "maxRange", ship.getModifiedItemAttr("shipBonusCBC1"), skill="Caldari Battlecruiser") - - return locals() - -def effect5335(): - type = "passive" - def handler(fit, ship, context): - fit.ship.boostItemAttr("shieldEmDamageResonance", ship.getModifiedItemAttr("shipBonusCBC2"), - skill="Caldari Battlecruiser") - - return locals() - -def effect5336(): - type = "passive" - def handler(fit, ship, context): - fit.ship.boostItemAttr("shieldExplosiveDamageResonance", ship.getModifiedItemAttr("shipBonusCBC2"), - skill="Caldari Battlecruiser") - - return locals() - -def effect5337(): - type = "passive" - def handler(fit, ship, context): - fit.ship.boostItemAttr("shieldKineticDamageResonance", ship.getModifiedItemAttr("shipBonusCBC2"), - skill="Caldari Battlecruiser") - - return locals() - -def effect5338(): - type = "passive" - def handler(fit, ship, context): - fit.ship.boostItemAttr("shieldThermalDamageResonance", ship.getModifiedItemAttr("shipBonusCBC2"), - skill="Caldari Battlecruiser") - - return locals() - -def effect5339(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Assault Missiles"), - "kineticDamage", ship.getModifiedItemAttr("shipBonusCBC1"), - skill="Caldari Battlecruiser") - - return locals() - -def effect5340(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Missiles"), - "kineticDamage", ship.getModifiedItemAttr("shipBonusCBC1"), - skill="Caldari Battlecruiser") - - return locals() - -def effect5341(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Hybrid Turret"), - "damageMultiplier", ship.getModifiedItemAttr("shipBonusGBC1"), - skill="Gallente Battlecruiser") - - return locals() - -def effect5342(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Repair Systems"), - "armorDamageAmount", ship.getModifiedItemAttr("shipBonusGBC2"), - skill="Gallente Battlecruiser") - - return locals() - -def effect5343(): - type = "passive" - def handler(fit, ship, context): - fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Drones"), - "damageMultiplier", ship.getModifiedItemAttr("shipBonusGBC1"), - skill="Gallente Battlecruiser") - - return locals() - -def effect5348(): - type = "passive" - def handler(fit, ship, context): - for layer in ("shieldCapacity", "armorHP", "hp"): - fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Drones"), - layer, ship.getModifiedItemAttr("shipBonusGBC1"), skill="Gallente Battlecruiser") - - return locals() - -def effect5349(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Missile Launcher Heavy", - "speed", ship.getModifiedItemAttr("shipBonusMBC2"), skill="Minmatar Battlecruiser") - - return locals() - -def effect5350(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Missile Launcher Heavy Assault", - "speed", ship.getModifiedItemAttr("shipBonusMBC2"), skill="Minmatar Battlecruiser") - - return locals() - -def effect5351(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Operation"), - "shieldBonus", ship.getModifiedItemAttr("shipBonusMBC1"), - skill="Minmatar Battlecruiser") - - return locals() - -def effect5352(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Projectile Turret"), - "damageMultiplier", ship.getModifiedItemAttr("shipBonusMBC1"), - skill="Minmatar Battlecruiser") - - return locals() - -def effect5353(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Projectile Turret"), - "speed", ship.getModifiedItemAttr("shipBonusMBC2"), skill="Minmatar Battlecruiser") - - return locals() - -def effect5354(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Large Energy Turret"), - "capacitorNeed", ship.getModifiedItemAttr("shipBonusABC1"), - skill="Amarr Battlecruiser") - - return locals() - -def effect5355(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Large Energy Turret"), - "damageMultiplier", ship.getModifiedItemAttr("shipBonusABC2"), - skill="Amarr Battlecruiser") - - return locals() - -def effect5356(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Large Hybrid Turret"), - "maxRange", ship.getModifiedItemAttr("shipBonusCBC1"), skill="Caldari Battlecruiser") - - return locals() - -def effect5357(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Large Hybrid Turret"), - "damageMultiplier", ship.getModifiedItemAttr("shipBonusCBC2"), - skill="Caldari Battlecruiser") - - return locals() - -def effect5358(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Large Hybrid Turret"), - "trackingSpeed", ship.getModifiedItemAttr("shipBonusGBC1"), - skill="Gallente Battlecruiser") - - return locals() - -def effect5359(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Large Hybrid Turret"), - "damageMultiplier", ship.getModifiedItemAttr("shipBonusGBC2"), - skill="Gallente Battlecruiser") - - return locals() - -def effect536(): - type = "passive" - def handler(fit, module, context): - fit.ship.multiplyItemAttr("cpuOutput", module.getModifiedItemAttr("cpuMultiplier")) - - return locals() - -def effect5360(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Large Projectile Turret"), - "speed", ship.getModifiedItemAttr("shipBonusMBC1"), skill="Minmatar Battlecruiser") - - return locals() - -def effect5361(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Large Projectile Turret"), - "falloff", ship.getModifiedItemAttr("shipBonusMBC2"), skill="Minmatar Battlecruiser") - - return locals() - -def effect5364(): - type = "passive" - def handler(fit, booster, context): - fit.modules.filteredItemBoost( - lambda mod: mod.item.requiresSkill("Repair Systems") or mod.item.requiresSkill("Capital Repair Systems"), - "armorDamageAmount", booster.getModifiedItemAttr("armorDamageAmountBonus") or 0) - - return locals() - -def effect5365(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Repair Systems"), - "armorDamageAmount", ship.getModifiedItemAttr("eliteBonusViolators2"), - skill="Marauders") - - return locals() - -def effect5366(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Repair Systems"), - "armorDamageAmount", ship.getModifiedItemAttr("shipBonusATC2")) - - return locals() - -def effect5367(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Repair Systems"), - "armorDamageAmount", ship.getModifiedItemAttr("shipBonusGB2"), - skill="Gallente Battleship") - - return locals() - -def effect5378(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Missiles"), - "aoeCloudSize", ship.getModifiedItemAttr("shipBonusCBC1"), - skill="Caldari Battlecruiser") - - return locals() - -def effect5379(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Assault Missiles"), - "aoeCloudSize", ship.getModifiedItemAttr("shipBonusCBC1"), - skill="Caldari Battlecruiser") - - return locals() - -def effect5380(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Hybrid Turret"), - "trackingSpeed", ship.getModifiedItemAttr("shipBonusGBC2"), - skill="Gallente Battlecruiser") - - return locals() - -def effect5381(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Energy Turret"), - "trackingSpeed", ship.getModifiedItemAttr("shipBonusABC1"), - skill="Amarr Battlecruiser") - - return locals() - -def effect5382(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Energy Turret"), - "maxRange", ship.getModifiedItemAttr("shipBonusAC2"), skill="Amarr Cruiser") - - return locals() - -def effect5383(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), - "emDamage", ship.getModifiedItemAttr("shipBonusCC"), skill="Caldari Cruiser") - - return locals() - -def effect5384(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), - "thermalDamage", ship.getModifiedItemAttr("shipBonusCC"), skill="Caldari Cruiser") - - return locals() - -def effect5385(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), - "explosiveDamage", ship.getModifiedItemAttr("shipBonusCC"), skill="Caldari Cruiser") - - return locals() - -def effect5386(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), - "kineticDamage", ship.getModifiedItemAttr("shipBonusCC2"), skill="Caldari Cruiser") - - return locals() - -def effect5387(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Assault Missiles"), - "aoeCloudSize", ship.getModifiedItemAttr("shipBonusCC2"), skill="Caldari Cruiser") - - return locals() - -def effect5388(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Missiles"), - "aoeCloudSize", ship.getModifiedItemAttr("shipBonusCC2"), skill="Caldari Cruiser") - - return locals() - -def effect5389(): - type = "passive" - def handler(fit, ship, context): - fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Drones"), - "trackingSpeed", ship.getModifiedItemAttr("shipBonusGC"), skill="Gallente Cruiser") - - return locals() - -def effect5390(): - type = "passive" - def handler(fit, ship, context): - fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Drones"), - "maxVelocity", ship.getModifiedItemAttr("shipBonusGC"), skill="Gallente Cruiser") - - return locals() - -def effect5397(): - type = "passive" - def handler(fit, module, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Astrometrics"), - "baseMaxScanDeviation", - module.getModifiedItemAttr("maxScanDeviationModifierModule"), - stackingPenalties=True) - - return locals() - -def effect5398(): - type = "passive" - def handler(fit, module, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Astrometrics"), - "duration", module.getModifiedItemAttr("scanDurationBonus")) - - return locals() - -def effect5399(): - type = "passive" - def handler(fit, module, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Astrometrics"), - "baseSensorStrength", module.getModifiedItemAttr("scanStrengthBonusModule"), - stackingPenalties=True) - - return locals() - -def effect5402(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Assault Missiles"), - "maxVelocity", ship.getModifiedItemAttr("shipBonusABC2"), - skill="Amarr Battlecruiser") - - return locals() - -def effect5403(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Missiles"), - "maxVelocity", ship.getModifiedItemAttr("shipBonusABC2"), - skill="Amarr Battlecruiser") - - return locals() - -def effect5410(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Energy Turret"), - "capacitorNeed", ship.getModifiedItemAttr("shipBonusABC2"), - skill="Amarr Battlecruiser") - - return locals() - -def effect5411(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), - "maxVelocity", ship.getModifiedItemAttr("shipBonusCD1"), skill="Caldari Destroyer") - - return locals() - -def effect5417(): - type = "passive" - def handler(fit, ship, context): - fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Drones"), - "damageMultiplier", ship.getModifiedItemAttr("shipBonusAB"), skill="Amarr Battleship") - - return locals() - -def effect5418(): - type = "passive" - def handler(fit, ship, context): - fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Drones"), - "armorHP", ship.getModifiedItemAttr("shipBonusAB"), skill="Amarr Battleship") - - return locals() - -def effect5419(): - type = "passive" - def handler(fit, ship, context): - fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Drones"), - "shieldCapacity", ship.getModifiedItemAttr("shipBonusAB"), skill="Amarr Battleship") - - return locals() - -def effect542(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Large Energy Turret"), - "capacitorNeed", ship.getModifiedItemAttr("shipBonusAB"), skill="Amarr Battleship") - - return locals() - -def effect5420(): - type = "passive" - def handler(fit, ship, context): - fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Drones"), - "hp", ship.getModifiedItemAttr("shipBonusAB"), skill="Amarr Battleship") - - return locals() - -def effect5424(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Large Hybrid Turret"), - "speed", ship.getModifiedItemAttr("shipBonusGB"), skill="Gallente Battleship") - - return locals() - -def effect5427(): - type = "passive" - def handler(fit, ship, context): - fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Drones"), - "trackingSpeed", ship.getModifiedItemAttr("shipBonusGB"), skill="Gallente Battleship") - - return locals() - -def effect5428(): - type = "passive" - def handler(fit, ship, context): - fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Drones"), - "maxRange", ship.getModifiedItemAttr("shipBonusGB"), skill="Gallente Battleship") - - return locals() - -def effect5429(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Torpedoes"), - "aoeVelocity", ship.getModifiedItemAttr("shipBonusMB2"), - skill="Minmatar Battleship") - - return locals() - -def effect5430(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Cruise Missiles"), - "aoeVelocity", ship.getModifiedItemAttr("shipBonusMB2"), - skill="Minmatar Battleship") - - return locals() - -def effect5431(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Large Energy Turret"), - "trackingSpeed", ship.getModifiedItemAttr("shipBonusAB"), skill="Amarr Battleship") - - return locals() - -def effect5433(): - type = "passive" - def handler(fit, container, context): - level = container.level if "skill" in context else 1 - fit.modules.filteredItemIncrease(lambda mod: mod.item.requiresSkill("Hacking"), - "virusCoherence", container.getModifiedItemAttr("virusCoherenceBonus") * level) - - return locals() - -def effect5437(): - type = "passive" - def handler(fit, container, context): - level = container.level if "skill" in context else 1 - fit.modules.filteredItemIncrease(lambda mod: mod.item.requiresSkill("Archaeology"), - "virusCoherence", container.getModifiedItemAttr("virusCoherenceBonus") * level) - - return locals() - -def effect5440(): - runTime = "early" - type = ("projected", "passive") - def handler(fit, beacon, context): - fit.modules.filteredChargeMultiply(lambda mod: mod.charge.requiresSkill("Light Missiles"), - "kineticDamage", beacon.getModifiedItemAttr("smallWeaponDamageMultiplier"), - stackingPenalties=True, penaltyGroup="postMul") - - return locals() - -def effect5444(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Torpedoes"), - "aoeCloudSize", ship.getModifiedItemAttr("shipBonusCB"), skill="Caldari Battleship") - - return locals() - -def effect5445(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Cruise Missiles"), - "aoeCloudSize", ship.getModifiedItemAttr("shipBonusCB"), skill="Caldari Battleship") - - return locals() - -def effect5456(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Missile Launcher Cruise", - "speed", ship.getModifiedItemAttr("shipBonusCB"), skill="Caldari Battleship") - - return locals() - -def effect5457(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Missile Launcher Torpedo", - "speed", ship.getModifiedItemAttr("shipBonusCB"), skill="Caldari Battleship") - - return locals() - -def effect5459(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemIncrease(lambda mod: mod.item.requiresSkill("Hacking"), "virusStrength", src.getModifiedItemAttr("virusStrengthBonus")) - - return locals() - -def effect5460(): - type = "passive" - def handler(fit, container, context): - level = container.level if "skill" in context else 1 - fit.modules.filteredItemIncrease( - lambda mod: (mod.item.requiresSkill("Hacking") or mod.item.requiresSkill("Archaeology")), - "virusStrength", container.getModifiedItemAttr("virusStrengthBonus") * level) - - return locals() - -def effect5461(): - type = "passive" - def handler(fit, module, context): - fit.ship.boostItemAttr("shieldRechargeRate", module.getModifiedItemAttr("rechargeratebonus") or 0) - - return locals() - -def effect5468(): - type = "passive" - def handler(fit, ship, context): - fit.ship.boostItemAttr("agility", ship.getModifiedItemAttr("shipBonusCI2"), skill="Caldari Industrial") - - return locals() - -def effect5469(): - type = "passive" - def handler(fit, ship, context): - fit.ship.boostItemAttr("agility", ship.getModifiedItemAttr("shipBonusMI2"), skill="Minmatar Industrial") - - return locals() - -def effect5470(): - type = "passive" - def handler(fit, ship, context): - fit.ship.boostItemAttr("agility", ship.getModifiedItemAttr("shipBonusGI2"), skill="Gallente Industrial") - - return locals() - -def effect5471(): - type = "passive" - def handler(fit, ship, context): - fit.ship.boostItemAttr("agility", ship.getModifiedItemAttr("shipBonusAI2"), skill="Amarr Industrial") - - return locals() - -def effect5476(): - type = "passive" - def handler(fit, ship, context): - fit.ship.boostItemAttr("specialOreHoldCapacity", ship.getModifiedItemAttr("shipBonusGI2"), - skill="Gallente Industrial") - - return locals() - -def effect5477(): - type = "passive" - def handler(fit, ship, context): - fit.ship.boostItemAttr("specialAmmoHoldCapacity", ship.getModifiedItemAttr("shipBonusMI2"), - skill="Minmatar Industrial") - - return locals() - -def effect5478(): - type = "passive" - def handler(fit, ship, context): - fit.ship.boostItemAttr("specialPlanetaryCommoditiesHoldCapacity", ship.getModifiedItemAttr("shipBonusGI2"), - skill="Gallente Industrial") - - return locals() - -def effect5479(): - type = "passive" - def handler(fit, ship, context): - fit.ship.boostItemAttr("specialMineralHoldCapacity", ship.getModifiedItemAttr("shipBonusGI2"), - skill="Gallente Industrial") - - return locals() - -def effect5480(): - runTime = "early" - type = "passive" - def handler(fit, implant, context): - fit.appliedImplants.filteredItemMultiply(lambda mod: mod.item.group.name == "Special Edition Implant", - "implantBonusVelocity", implant.getModifiedItemAttr("implantSetChristmas")) - - return locals() - -def effect5482(): - runTime = "early" - type = "passive" - def handler(fit, implant, context): - fit.appliedImplants.filteredItemMultiply(lambda mod: mod.item.group.name == "Special Edition Implant", - "agilityBonus", implant.getModifiedItemAttr("implantSetChristmas")) - - return locals() - -def effect5483(): - runTime = "early" - type = "passive" - def handler(fit, implant, context): - fit.appliedImplants.filteredItemMultiply(lambda mod: mod.item.group.name == "Special Edition Implant", - "shieldCapacityBonus", implant.getModifiedItemAttr("implantSetChristmas")) - - return locals() - -def effect5484(): - runTime = "early" - type = "passive" - def handler(fit, implant, context): - fit.appliedImplants.filteredItemMultiply(lambda mod: mod.item.group.name == "Special Edition Implant", - "armorHpBonus2", implant.getModifiedItemAttr("implantSetChristmas")) - - return locals() - -def effect5485(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Projectile Turret"), - "maxRange", ship.getModifiedItemAttr("shipBonusMF"), skill="Minmatar Frigate") - - return locals() - -def effect5486(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Projectile Turret"), - "damageMultiplier", ship.getModifiedItemAttr("shipBonusMBC2"), - skill="Minmatar Battlecruiser") - - return locals() - -def effect549(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Large Projectile Turret"), - "damageMultiplier", ship.getModifiedItemAttr("shipBonusMB"), - skill="Minmatar Battleship") - - return locals() - -def effect5496(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Missile Launcher Heavy Assault", - "speed", ship.getModifiedItemAttr("eliteBonusCommandShips1"), skill="Command Ships") - - return locals() - -def effect5497(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Missile Launcher Heavy", - "speed", ship.getModifiedItemAttr("eliteBonusCommandShips1"), skill="Command Ships") - - return locals() - -def effect5498(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Assault Missiles"), - "aoeVelocity", ship.getModifiedItemAttr("eliteBonusCommandShips2"), - skill="Command Ships") - - return locals() - -def effect5499(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Assault Missiles"), - "aoeCloudSize", ship.getModifiedItemAttr("eliteBonusCommandShips2"), - skill="Command Ships") - - return locals() - -def effect55(): - type = "active" - def handler(fit, module, context): - pass - - return locals() - -def effect550(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Large Hybrid Turret"), - "damageMultiplier", ship.getModifiedItemAttr("shipBonusGB"), - skill="Gallente Battleship") - - return locals() - -def effect5500(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Missiles"), - "aoeCloudSize", ship.getModifiedItemAttr("eliteBonusCommandShips2"), - skill="Command Ships") - - return locals() - -def effect5501(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Hybrid Turret"), - "damageMultiplier", ship.getModifiedItemAttr("eliteBonusCommandShips2"), - skill="Command Ships") - - return locals() - -def effect5502(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Hybrid Turret"), - "trackingSpeed", ship.getModifiedItemAttr("eliteBonusCommandShips1"), - skill="Command Ships") - - return locals() - -def effect5503(): - type = "passive" - def handler(fit, ship, context): - fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Heavy Drone Operation"), - "trackingSpeed", ship.getModifiedItemAttr("eliteBonusCommandShips2"), - skill="Command Ships") - - return locals() - -def effect5504(): - type = "passive" - def handler(fit, ship, context): - fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Heavy Drone Operation"), - "maxVelocity", ship.getModifiedItemAttr("eliteBonusCommandShips2"), - skill="Command Ships") - - return locals() - -def effect5505(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Hybrid Turret"), - "speed", ship.getModifiedItemAttr("eliteBonusCommandShips1"), skill="Command Ships") - - return locals() - -def effect5514(): - type = "passive" - def handler(fit, ship, context): - damageTypes = ("em", "explosive", "kinetic", "thermal") - for damageType in damageTypes: - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Assault Missiles"), - "{0}Damage".format(damageType), - ship.getModifiedItemAttr("eliteBonusCommandShips2"), skill="Command Ships") - - return locals() - -def effect5521(): - type = "passive" - def handler(fit, ship, context): - damageTypes = ("em", "explosive", "kinetic", "thermal") - for damageType in damageTypes: - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Missiles"), - "{0}Damage".format(damageType), - ship.getModifiedItemAttr("eliteBonusCommandShips2"), skill="Command Ships") - - return locals() - -def effect553(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Large Hybrid Turret"), - "trackingSpeed", ship.getModifiedItemAttr("shipBonusGB"), skill="Gallente Battleship") - - return locals() - -def effect5539(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Missiles"), - "kineticDamage", ship.getModifiedItemAttr("shipBonusAC"), skill="Amarr Cruiser") - - return locals() - -def effect5540(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Missiles"), - "emDamage", ship.getModifiedItemAttr("shipBonusAC"), skill="Amarr Cruiser") - - return locals() - -def effect5541(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Missiles"), - "thermalDamage", ship.getModifiedItemAttr("shipBonusAC"), skill="Amarr Cruiser") - - return locals() - -def effect5542(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Missiles"), - "explosiveDamage", ship.getModifiedItemAttr("shipBonusAC"), skill="Amarr Cruiser") - - return locals() - -def effect5552(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Missiles"), - "maxVelocity", ship.getModifiedItemAttr("eliteBonusHeavyGunship1"), - skill="Heavy Assault Cruisers") - - return locals() - -def effect5553(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Assault Missiles"), - "maxVelocity", ship.getModifiedItemAttr("eliteBonusHeavyGunship1"), - skill="Heavy Assault Cruisers") - - return locals() - -def effect5554(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Repair Systems"), - "armorDamageAmount", ship.getModifiedItemAttr("shipBonusGC2"), - skill="Gallente Cruiser") - - return locals() - -def effect5555(): - type = "passive" - def handler(fit, ship, context): - fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Heavy Drone Operation"), - "maxVelocity", ship.getModifiedItemAttr("shipBonusGC"), skill="Gallente Cruiser") - - return locals() - -def effect5556(): - type = "passive" - def handler(fit, ship, context): - fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Heavy Drone Operation"), - "trackingSpeed", ship.getModifiedItemAttr("shipBonusGC"), skill="Gallente Cruiser") - - return locals() - -def effect5557(): - type = "passive" - def handler(fit, ship, context): - fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Sentry Drone Interfacing"), - "maxRange", ship.getModifiedItemAttr("eliteBonusHeavyGunship2"), - skill="Heavy Assault Cruisers") - - return locals() - -def effect5558(): - type = "passive" - def handler(fit, ship, context): - fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Sentry Drone Interfacing"), - "trackingSpeed", ship.getModifiedItemAttr("eliteBonusHeavyGunship2"), - skill="Heavy Assault Cruisers") - - return locals() - -def effect5559(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Operation"), - "shieldBonus", ship.getModifiedItemAttr("shipBonusMC2"), skill="Minmatar Cruiser") - - return locals() - -def effect5560(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Micro Jump Drive", - "moduleReactivationDelay", ship.getModifiedItemAttr("roleBonusMarauder")) - - return locals() - -def effect5564(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Skirmish Command"), - "warfareBuff2Value", src.getModifiedItemAttr("subsystemBonusCaldariOffensive"), skill="Caldari Offensive Systems") - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Skirmish Command"), - "warfareBuff4Value", src.getModifiedItemAttr("subsystemBonusCaldariOffensive"), skill="Caldari Offensive Systems") - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Skirmish Command"), - "warfareBuff3Value", src.getModifiedItemAttr("subsystemBonusCaldariOffensive"), skill="Caldari Offensive Systems") - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Skirmish Command"), - "warfareBuff1Value", src.getModifiedItemAttr("subsystemBonusCaldariOffensive"), skill="Caldari Offensive Systems") - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Skirmish Command"), - "buffDuration", src.getModifiedItemAttr("subsystemBonusCaldariOffensive"), skill="Caldari Offensive Systems") - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Command"), - "buffDuration", src.getModifiedItemAttr("subsystemBonusCaldariOffensive"), skill="Caldari Offensive Systems") - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Command"), - "warfareBuff1Value", src.getModifiedItemAttr("subsystemBonusCaldariOffensive"), skill="Caldari Offensive Systems") - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Command"), - "warfareBuff3Value", src.getModifiedItemAttr("subsystemBonusCaldariOffensive"), skill="Caldari Offensive Systems") - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Command"), - "warfareBuff2Value", src.getModifiedItemAttr("subsystemBonusCaldariOffensive"), skill="Caldari Offensive Systems") - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Command"), - "warfareBuff4Value", src.getModifiedItemAttr("subsystemBonusCaldariOffensive"), skill="Caldari Offensive Systems") - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Information Command"), - "buffDuration", src.getModifiedItemAttr("subsystemBonusCaldariOffensive"), skill="Caldari Offensive Systems") - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Information Command"), - "warfareBuff3Value", src.getModifiedItemAttr("subsystemBonusCaldariOffensive"), skill="Caldari Offensive Systems") - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Information Command"), - "warfareBuff1Value", src.getModifiedItemAttr("subsystemBonusCaldariOffensive"), skill="Caldari Offensive Systems") - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Information Command"), - "warfareBuff4Value", src.getModifiedItemAttr("subsystemBonusCaldariOffensive"), skill="Caldari Offensive Systems") - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Information Command"), - "warfareBuff2Value", src.getModifiedItemAttr("subsystemBonusCaldariOffensive"), skill="Caldari Offensive Systems") - - return locals() - -def effect5568(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Skirmish Command"), - "warfareBuff1Value", src.getModifiedItemAttr("subsystemBonusGallenteOffensive"), skill="Gallente Offensive Systems") - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Skirmish Command"), - "warfareBuff4Value", src.getModifiedItemAttr("subsystemBonusGallenteOffensive"), skill="Gallente Offensive Systems") - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Skirmish Command"), - "buffDuration", src.getModifiedItemAttr("subsystemBonusGallenteOffensive"), skill="Gallente Offensive Systems") - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Skirmish Command"), - "warfareBuff2Value", src.getModifiedItemAttr("subsystemBonusGallenteOffensive"), skill="Gallente Offensive Systems") - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Skirmish Command"), - "warfareBuff3Value", src.getModifiedItemAttr("subsystemBonusGallenteOffensive"), skill="Gallente Offensive Systems") - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Armored Command"), - "warfareBuff4Value", src.getModifiedItemAttr("subsystemBonusGallenteOffensive"), skill="Gallente Offensive Systems") - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Armored Command"), - "warfareBuff1Value", src.getModifiedItemAttr("subsystemBonusGallenteOffensive"), skill="Gallente Offensive Systems") - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Armored Command"), - "warfareBuff2Value", src.getModifiedItemAttr("subsystemBonusGallenteOffensive"), skill="Gallente Offensive Systems") - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Armored Command"), - "buffDuration", src.getModifiedItemAttr("subsystemBonusGallenteOffensive"), skill="Gallente Offensive Systems") - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Armored Command"), - "warfareBuff3Value", src.getModifiedItemAttr("subsystemBonusGallenteOffensive"), skill="Gallente Offensive Systems") - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Information Command"), - "warfareBuff3Value", src.getModifiedItemAttr("subsystemBonusGallenteOffensive"), skill="Gallente Offensive Systems") - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Information Command"), - "warfareBuff1Value", src.getModifiedItemAttr("subsystemBonusGallenteOffensive"), skill="Gallente Offensive Systems") - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Information Command"), - "warfareBuff2Value", src.getModifiedItemAttr("subsystemBonusGallenteOffensive"), skill="Gallente Offensive Systems") - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Information Command"), - "buffDuration", src.getModifiedItemAttr("subsystemBonusGallenteOffensive"), skill="Gallente Offensive Systems") - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Information Command"), - "warfareBuff4Value", src.getModifiedItemAttr("subsystemBonusGallenteOffensive"), skill="Gallente Offensive Systems") - - return locals() - -def effect5570(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Skirmish Command"), - "warfareBuff1Value", src.getModifiedItemAttr("subsystemBonusMinmatarOffensive"), skill="Minmatar Offensive Systems") - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Skirmish Command"), - "warfareBuff2Value", src.getModifiedItemAttr("subsystemBonusMinmatarOffensive"), skill="Minmatar Offensive Systems") - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Skirmish Command"), - "buffDuration", src.getModifiedItemAttr("subsystemBonusMinmatarOffensive"), skill="Minmatar Offensive Systems") - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Skirmish Command"), - "warfareBuff4Value", src.getModifiedItemAttr("subsystemBonusMinmatarOffensive"), skill="Minmatar Offensive Systems") - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Skirmish Command"), - "warfareBuff3Value", src.getModifiedItemAttr("subsystemBonusMinmatarOffensive"), skill="Minmatar Offensive Systems") - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Command"), - "warfareBuff3Value", src.getModifiedItemAttr("subsystemBonusMinmatarOffensive"), skill="Minmatar Offensive Systems") - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Command"), - "warfareBuff2Value", src.getModifiedItemAttr("subsystemBonusMinmatarOffensive"), skill="Minmatar Offensive Systems") - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Command"), - "buffDuration", src.getModifiedItemAttr("subsystemBonusMinmatarOffensive"), skill="Minmatar Offensive Systems") - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Command"), - "warfareBuff4Value", src.getModifiedItemAttr("subsystemBonusMinmatarOffensive"), skill="Minmatar Offensive Systems") - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Command"), - "war" - "fareBuff1Value", src.getModifiedItemAttr("subsystemBonusMinmatarOffensive"), skill="Minmatar Offensive Systems") - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Armored Command"), - "warfareBuff3Value", src.getModifiedItemAttr("subsystemBonusMinmatarOffensive"), skill="Minmatar Offensive Systems") - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Armored Command"), - "warfareBuff4Value", src.getModifiedItemAttr("subsystemBonusMinmatarOffensive"), skill="Minmatar Offensive Systems") - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Armored Command"), - "warfareBuff1Value", src.getModifiedItemAttr("subsystemBonusMinmatarOffensive"), skill="Minmatar Offensive Systems") - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Armored Command"), - "buffDuration", src.getModifiedItemAttr("subsystemBonusMinmatarOffensive"), skill="Minmatar Offensive Systems") - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Armored Command"), - "warfareBuff2Value", src.getModifiedItemAttr("subsystemBonusMinmatarOffensive"), skill="Minmatar Offensive Systems") - - return locals() - -def effect5572(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Armored Command"), "warfareBuff3Value", - src.getModifiedItemAttr("eliteBonusCommandShips3"), skill="Command Ships") - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Armored Command"), "warfareBuff1Value", - src.getModifiedItemAttr("eliteBonusCommandShips3"), skill="Command Ships") - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Armored Command"), "warfareBuff2Value", - src.getModifiedItemAttr("eliteBonusCommandShips3"), skill="Command Ships") - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Armored Command"), "buffDuration", - src.getModifiedItemAttr("eliteBonusCommandShips3"), skill="Command Ships") - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Armored Command"), "warfareBuff4Value", - src.getModifiedItemAttr("eliteBonusCommandShips3"), skill="Command Ships") - - return locals() - -def effect5573(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Command"), "warfareBuff1Value", - src.getModifiedItemAttr("eliteBonusCommandShips3"), skill="Command Ships") - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Command"), "warfareBuff4Value", - src.getModifiedItemAttr("eliteBonusCommandShips3"), skill="Command Ships") - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Command"), "warfareBuff2Value", - src.getModifiedItemAttr("eliteBonusCommandShips3"), skill="Command Ships") - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Command"), "buffDuration", - src.getModifiedItemAttr("eliteBonusCommandShips3"), skill="Command Ships") - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Command"), "warfareBuff3Value", - src.getModifiedItemAttr("eliteBonusCommandShips3"), skill="Command Ships") - - return locals() - -def effect5574(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Skirmish Command"), "warfareBuff2Value", - src.getModifiedItemAttr("eliteBonusCommandShips3"), skill="Command Ships") - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Skirmish Command"), "warfareBuff1Value", - src.getModifiedItemAttr("eliteBonusCommandShips3"), skill="Command Ships") - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Skirmish Command"), "warfareBuff3Value", - src.getModifiedItemAttr("eliteBonusCommandShips3"), skill="Command Ships") - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Skirmish Command"), "warfareBuff4Value", - src.getModifiedItemAttr("eliteBonusCommandShips3"), skill="Command Ships") - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Skirmish Command"), "buffDuration", - src.getModifiedItemAttr("eliteBonusCommandShips3"), skill="Command Ships") - - return locals() - -def effect5575(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Information Command"), "buffDuration", - src.getModifiedItemAttr("eliteBonusCommandShips3"), skill="Command Ships") - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Information Command"), "warfareBuff3Value", - src.getModifiedItemAttr("eliteBonusCommandShips3"), skill="Command Ships") - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Information Command"), "warfareBuff2Value", - src.getModifiedItemAttr("eliteBonusCommandShips3"), skill="Command Ships") - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Information Command"), "warfareBuff1Value", - src.getModifiedItemAttr("eliteBonusCommandShips3"), skill="Command Ships") - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Information Command"), "warfareBuff4Value", - src.getModifiedItemAttr("eliteBonusCommandShips3"), skill="Command Ships") - - return locals() - -def effect56(): - type = "passive" - def handler(fit, module, context): - fit.ship.multiplyItemAttr("powerOutput", module.getModifiedItemAttr("powerOutputMultiplier", None)) - - return locals() - -def effect5607(): - type = "passive" - def handler(fit, container, context): - level = container.level if "skill" in context else 1 - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capacitor Emission Systems"), - "capacitorNeed", container.getModifiedItemAttr("capNeedBonus") * level) - - return locals() - -def effect5610(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Large Energy Turret"), - "maxRange", ship.getModifiedItemAttr("shipBonusAB"), skill="Amarr Battleship") - - return locals() - -def effect5611(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Large Hybrid Turret"), - "falloff", ship.getModifiedItemAttr("shipBonusGB2"), skill="Gallente Battleship") - - return locals() - -def effect5618(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Missile Launcher Rapid Heavy", - "speed", ship.getModifiedItemAttr("shipBonus2CB"), skill="Caldari Battleship") - - return locals() - -def effect5619(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Missile Launcher Rapid Heavy", - "speed", ship.getModifiedItemAttr("shipBonusCB"), skill="Caldari Battleship") - - return locals() - -def effect562(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Hybrid Turret"), - "damageMultiplier", ship.getModifiedItemAttr("shipBonusGC"), skill="Gallente Cruiser") - - return locals() - -def effect5620(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Missile Launcher Rapid Heavy", - "speed", ship.getModifiedItemAttr("shipBonusMB"), skill="Minmatar Battleship") - - return locals() - -def effect5621(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Missile Launcher Cruise", - "speed", ship.getModifiedItemAttr("shipBonusMB"), skill="Minmatar Battleship") - - return locals() - -def effect5622(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Missile Launcher Torpedo", - "speed", ship.getModifiedItemAttr("shipBonusMB"), skill="Minmatar Battleship") - - return locals() - -def effect5628(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Cruise Missiles"), - "emDamage", ship.getModifiedItemAttr("shipBonusMB"), skill="Minmatar Battleship") - - return locals() - -def effect5629(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Cruise Missiles"), - "thermalDamage", ship.getModifiedItemAttr("shipBonusMB"), - skill="Minmatar Battleship") - - return locals() - -def effect5630(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Cruise Missiles"), - "kineticDamage", ship.getModifiedItemAttr("shipBonusMB"), - skill="Minmatar Battleship") - - return locals() - -def effect5631(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Cruise Missiles"), - "explosiveDamage", ship.getModifiedItemAttr("shipBonusMB"), - skill="Minmatar Battleship") - - return locals() - -def effect5632(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Torpedoes"), - "explosiveDamage", ship.getModifiedItemAttr("shipBonusMB"), - skill="Minmatar Battleship") - - return locals() - -def effect5633(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Torpedoes"), - "emDamage", ship.getModifiedItemAttr("shipBonusMB"), skill="Minmatar Battleship") - - return locals() - -def effect5634(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Torpedoes"), - "thermalDamage", ship.getModifiedItemAttr("shipBonusMB"), - skill="Minmatar Battleship") - - return locals() - -def effect5635(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Torpedoes"), - "kineticDamage", ship.getModifiedItemAttr("shipBonusMB"), - skill="Minmatar Battleship") - - return locals() - -def effect5636(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Missiles"), - "emDamage", ship.getModifiedItemAttr("shipBonusMB"), skill="Minmatar Battleship") - - return locals() - -def effect5637(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Missiles"), - "thermalDamage", ship.getModifiedItemAttr("shipBonusMB"), - skill="Minmatar Battleship") - - return locals() - -def effect5638(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Missiles"), - "kineticDamage", ship.getModifiedItemAttr("shipBonusMB"), - skill="Minmatar Battleship") - - return locals() - -def effect5639(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Missiles"), - "explosiveDamage", ship.getModifiedItemAttr("shipBonusMB"), - skill="Minmatar Battleship") - - return locals() - -def effect5644(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), - "maxVelocity", ship.getModifiedItemAttr("shipBonusCC2"), skill="Caldari Cruiser") - - return locals() - -def effect5647(): - type = "passive" - runTime = "early" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Cloaking"), - "cpu", ship.getModifiedItemAttr("shipBonusRole7")) - - return locals() - -def effect5650(): - type = "passive" - def handler(fit, ship, context): - damageTypes = ("Em", "Explosive", "Kinetic", "Thermal") - for damageType in damageTypes: - fit.ship.boostItemAttr("armor{0}DamageResonance".format(damageType), ship.getModifiedItemAttr("shipBonusAF"), - skill="Amarr Frigate") - - return locals() - -def effect5657(): - type = "passive" - def handler(fit, ship, context): - damageTypes = ("Em", "Explosive", "Kinetic", "Thermal") - for damageType in damageTypes: - fit.ship.boostItemAttr("shield{0}DamageResonance".format(damageType), - ship.getModifiedItemAttr("eliteBonusInterceptor2"), skill="Interceptors") - - return locals() - -def effect5673(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Projectile Turret"), - "damageMultiplier", ship.getModifiedItemAttr("eliteBonusInterceptor2"), - skill="Interceptors") - - return locals() - -def effect5676(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredChargeBoost( - lambda mod: mod.charge.requiresSkill("Rockets") or mod.charge.requiresSkill("Light Missiles"), - "aoeCloudSize", ship.getModifiedItemAttr("shipBonusCD2"), skill="Caldari Destroyer") - - return locals() - -def effect5688(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), - "maxVelocity", ship.getModifiedItemAttr("shipBonusAD2"), skill="Amarr Destroyer") - - return locals() - -def effect5695(): - type = "passive" - def handler(fit, ship, context): - for damageType in ("Em", "Thermal", "Explosive", "Kinetic"): - fit.ship.boostItemAttr("armor%sDamageResonance" % damageType, - ship.getModifiedItemAttr("eliteBonusInterdictors1"), skill="Interdictors") - - return locals() - -def effect57(): - type = "passive" - def handler(fit, module, context): - fit.ship.multiplyItemAttr("shieldCapacity", module.getModifiedItemAttr("shieldCapacityMultiplier", None)) - - return locals() - -def effect5717(): - runTime = "early" - type = "passive" - def handler(fit, implant, context): - fit.appliedImplants.filteredItemMultiply(lambda mod: mod.item.group.name == "Cyberimplant", - "WarpSBonus", implant.getModifiedItemAttr("implantSetWarpSpeed")) - - return locals() - -def effect5721(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Energy Turret"), - "maxRange", ship.getModifiedItemAttr("shipBonusRole7")) - - return locals() - -def effect5722(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Hybrid Turret"), - "maxRange", ship.getModifiedItemAttr("shipBonusGD1"), skill="Gallente Destroyer") - - return locals() - -def effect5723(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("High Speed Maneuvering"), - "signatureRadiusBonus", ship.getModifiedItemAttr("eliteBonusInterdictors2"), - skill="Interdictors") - - return locals() - -def effect5724(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Hybrid Turret"), - "maxRange", ship.getModifiedItemAttr("shipBonusGF"), skill="Gallente Frigate") - - return locals() - -def effect5725(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Remote Armor Repair Systems"), - "armorDamageAmount", ship.getModifiedItemAttr("shipBonusRole7")) - - return locals() - -def effect5726(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Large Energy Turret"), - "maxRange", ship.getModifiedItemAttr("shipBonusRole7")) - - return locals() - -def effect5733(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Missiles"), - "explosiveDamage", ship.getModifiedItemAttr("eliteBonusViolatorsRole1")) - - return locals() - -def effect5734(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Missiles"), - "kineticDamage", ship.getModifiedItemAttr("eliteBonusViolatorsRole1")) - - return locals() - -def effect5735(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Missiles"), - "emDamage", ship.getModifiedItemAttr("eliteBonusViolatorsRole1")) - - return locals() - -def effect5736(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Missiles"), - "thermalDamage", ship.getModifiedItemAttr("eliteBonusViolatorsRole1")) - - return locals() - -def effect5737(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Astrometrics"), - "baseSensorStrength", ship.getModifiedItemAttr("shipBonusRole7")) - - return locals() - -def effect5738(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Remote Armor Repair Systems"), - "maxRange", ship.getModifiedItemAttr("shipBonusRole8")) - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Remote Armor Repair Systems"), - "falloffEffectiveness", ship.getModifiedItemAttr("shipBonusRole8")) - - return locals() - -def effect5754(): - type = "overheat" - def handler(fit, module, context): - module.boostItemAttr("maxRangeBonus", module.getModifiedItemAttr("overloadTrackingModuleStrengthBonus")) - module.boostItemAttr("falloffBonus", module.getModifiedItemAttr("overloadTrackingModuleStrengthBonus")) - module.boostItemAttr("trackingSpeedBonus", module.getModifiedItemAttr("overloadTrackingModuleStrengthBonus")) - - return locals() - -def effect5757(): - type = "overheat" - def handler(fit, module, context): - module.boostItemAttr("maxTargetRangeBonus", module.getModifiedItemAttr("overloadSensorModuleStrengthBonus")) - module.boostItemAttr("scanResolutionBonus", module.getModifiedItemAttr("overloadSensorModuleStrengthBonus"), - stackingPenalties=True) - for scanType in ("Gravimetric", "Magnetometric", "Radar", "Ladar"): - module.boostItemAttr( - "scan{}StrengthPercent".format(scanType), - module.getModifiedItemAttr("overloadSensorModuleStrengthBonus"), - stackingPenalties=True - ) - - return locals() - -def effect5758(): - type = "overheat" - def handler(fit, module, context): - module.boostItemAttr("signatureRadiusBonus", module.getModifiedItemAttr("overloadPainterStrengthBonus") or 0) - - return locals() - -def effect5769(): - type = "passive" - def handler(fit, container, context): - level = container.level if "skill" in context else 1 - fit.drones.filteredItemBoost(lambda drone: drone.item.group.name == "Logistic Drone", - "structureDamageAmount", container.getModifiedItemAttr("damageHP") * level) - - return locals() - -def effect5778(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Missile Launcher Operation"), - "speed", ship.getModifiedItemAttr("shipBonusMF2"), skill="Minmatar Frigate") - - return locals() - -def effect5779(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Projectile Turret"), - "falloff", ship.getModifiedItemAttr("shipBonusMF2"), skill="Minmatar Frigate") - - return locals() - -def effect5793(): - type = "passive" - def handler(fit, container, context): - level = container.level if "skill" in context else 1 - for attr in ("maxRangeBonus", "falloffBonus"): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Weapon Disruption"), - attr, container.getModifiedItemAttr("scanSkillEwStrengthBonus") * level) - - return locals() - -def effect58(): - type = "passive" - def handler(fit, module, context): - fit.ship.multiplyItemAttr("capacitorCapacity", module.getModifiedItemAttr("capacitorCapacityMultiplier", None)) - - return locals() - -def effect5802(): - type = "passive" - def handler(fit, module, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Afterburner"), - "speedFactor", module.getModifiedItemAttr("shipBonus2CB"), skill="Caldari Battleship") - - return locals() - -def effect5803(): - type = "passive" - def handler(fit, ship, context): - fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Sentry Drone Interfacing"), - "damageMultiplier", ship.getModifiedItemAttr("shipBonusRole7")) - - return locals() - -def effect5804(): - type = "passive" - def handler(fit, ship, context): - fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Heavy Drone Operation"), - "damageMultiplier", ship.getModifiedItemAttr("shipBonusRole7")) - - return locals() - -def effect5805(): - type = "passive" - def handler(fit, ship, context): - fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Sentry Drone Interfacing"), - "hp", ship.getModifiedItemAttr("shipBonusRole7")) - - return locals() - -def effect5806(): - type = "passive" - def handler(fit, ship, context): - fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Sentry Drone Interfacing"), - "armorHP", ship.getModifiedItemAttr("shipBonusRole7")) - - return locals() - -def effect5807(): - type = "passive" - def handler(fit, ship, context): - fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Sentry Drone Interfacing"), - "shieldCapacity", ship.getModifiedItemAttr("shipBonusRole7")) - - return locals() - -def effect5808(): - type = "passive" - def handler(fit, ship, context): - fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Heavy Drone Operation"), - "shieldCapacity", ship.getModifiedItemAttr("shipBonusRole7")) - - return locals() - -def effect5809(): - type = "passive" - def handler(fit, ship, context): - fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Heavy Drone Operation"), - "armorHP", ship.getModifiedItemAttr("shipBonusRole7")) - - return locals() - -def effect581(): - type = "passive" - def handler(fit, container, context): - level = container.level if "skill" in context else 1 - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Gunnery"), - "cpu", container.getModifiedItemAttr("cpuNeedBonus") * level) - - return locals() - -def effect5810(): - type = "passive" - def handler(fit, ship, context): - fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Heavy Drone Operation"), - "hp", ship.getModifiedItemAttr("shipBonusRole7")) - - return locals() - -def effect5811(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), - "kineticDamage", ship.getModifiedItemAttr("shipBonusGB2"), - skill="Gallente Battleship") - - return locals() - -def effect5812(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), - "thermalDamage", ship.getModifiedItemAttr("shipBonusGB2"), - skill="Gallente Battleship") - - return locals() - -def effect5813(): - type = "passive" - def handler(fit, module, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Afterburner"), - "speedFactor", module.getModifiedItemAttr("shipBonusCF2"), skill="Caldari Frigate") - - return locals() - -def effect5814(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), - "kineticDamage", ship.getModifiedItemAttr("shipBonusGF"), skill="Gallente Frigate") - - return locals() - -def effect5815(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), - "thermalDamage", ship.getModifiedItemAttr("shipBonusGF"), skill="Gallente Frigate") - - return locals() - -def effect5816(): - type = "passive" - def handler(fit, ship, context): - fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Light Drone Operation"), - "damageMultiplier", ship.getModifiedItemAttr("shipBonusRole7")) - - return locals() - -def effect5817(): - type = "passive" - def handler(fit, ship, context): - fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Light Drone Operation"), - "hp", ship.getModifiedItemAttr("shipBonusRole7")) - - return locals() - -def effect5818(): - type = "passive" - def handler(fit, ship, context): - fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Light Drone Operation"), - "armorHP", ship.getModifiedItemAttr("shipBonusRole7")) - - return locals() - -def effect5819(): - type = "passive" - def handler(fit, ship, context): - fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Light Drone Operation"), - "shieldCapacity", ship.getModifiedItemAttr("shipBonusRole7")) - - return locals() - -def effect582(): - type = "passive" - def handler(fit, skill, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Gunnery"), - "speed", skill.getModifiedItemAttr("rofBonus") * skill.level) - - return locals() - -def effect5820(): - type = "passive" - def handler(fit, module, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Afterburner"), - "speedFactor", module.getModifiedItemAttr("shipBonusCC2"), skill="Caldari Cruiser") - - return locals() - -def effect5821(): - type = "passive" - def handler(fit, ship, context): - fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Medium Drone Operation"), - "damageMultiplier", ship.getModifiedItemAttr("shipBonusRole7")) - - return locals() - -def effect5822(): - type = "passive" - def handler(fit, ship, context): - fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Medium Drone Operation"), - "hp", ship.getModifiedItemAttr("shipBonusRole7")) - - return locals() - -def effect5823(): - type = "passive" - def handler(fit, ship, context): - fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Medium Drone Operation"), - "armorHP", ship.getModifiedItemAttr("shipBonusRole7")) - - return locals() - -def effect5824(): - type = "passive" - def handler(fit, ship, context): - fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Medium Drone Operation"), - "shieldCapacity", ship.getModifiedItemAttr("shipBonusRole7")) - - return locals() - -def effect5825(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), - "kineticDamage", ship.getModifiedItemAttr("shipBonusGC2"), skill="Gallente Cruiser") - - return locals() - -def effect5826(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), - "thermalDamage", ship.getModifiedItemAttr("shipBonusGC2"), skill="Gallente Cruiser") - - return locals() - -def effect5827(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Weapon Disruption"), - "maxRange", ship.getModifiedItemAttr("shipBonusAF"), skill="Amarr Frigate") - - return locals() - -def effect5829(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Mining"), - "duration", ship.getModifiedItemAttr("shipBonusORE3"), skill="Mining Barge") - - return locals() - -def effect5832(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost( - lambda mod: mod.item.requiresSkill("Mining") or mod.item.requiresSkill("Ice Harvesting"), - "maxRange", ship.getModifiedItemAttr("shipBonusORE2"), skill="Mining Barge") - - return locals() - -def effect5839(): - type = "passive" - def handler(fit, ship, context): - for damageType in ("em", "thermal", "explosive", "kinetic"): - fit.ship.boostItemAttr("shield{}DamageResonance".format(damageType.capitalize()), - ship.getModifiedItemAttr("eliteBonusBarge1"), skill="Exhumers") - - return locals() - -def effect584(): - type = "passive" - def handler(fit, implant, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Gunnery"), - "damageMultiplier", implant.getModifiedItemAttr("damageMultiplierBonus")) - - return locals() - -def effect5840(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Mining"), - "duration", ship.getModifiedItemAttr("eliteBonusBarge2"), skill="Exhumers") - - return locals() - -def effect5852(): - type = "passive" - def handler(fit, module, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Mining"), - "miningAmount", module.getModifiedItemAttr("eliteBonusExpedition1"), - skill="Expedition Frigates") - - return locals() - -def effect5853(): - type = "passive" - def handler(fit, ship, context): - fit.ship.boostItemAttr("signatureRadius", ship.getModifiedItemAttr("eliteBonusExpedition2"), - skill="Expedition Frigates") - - return locals() - -def effect5862(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), - "emDamage", ship.getModifiedItemAttr("shipBonusCB"), skill="Caldari Battleship") - - return locals() - -def effect5863(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), - "kineticDamage", ship.getModifiedItemAttr("shipBonusCB"), - skill="Caldari Battleship") - - return locals() - -def effect5864(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), - "thermalDamage", ship.getModifiedItemAttr("shipBonusCB"), - skill="Caldari Battleship") - - return locals() - -def effect5865(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), - "explosiveDamage", ship.getModifiedItemAttr("shipBonusCB"), - skill="Caldari Battleship") - - return locals() - -def effect5866(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Warp Scrambler", - "maxRange", ship.getModifiedItemAttr("shipBonusGB"), skill="Gallente Battleship") - - return locals() - -def effect5867(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), - "explosionDelay", ship.getModifiedItemAttr("shipBonusRole8")) - - return locals() - -def effect5868(): - type = "passive" - def handler(fit, module, context): - fit.ship.boostItemAttr("capacity", module.getModifiedItemAttr("drawback")) - - return locals() - -def effect5869(): - type = "passive" - def handler(fit, ship, context): - fit.ship.boostItemAttr("warpSpeedMultiplier", ship.getModifiedItemAttr("eliteBonusIndustrial1"), - skill="Transport Ships") - - return locals() - -def effect587(): - type = "passive" - def handler(fit, skill, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Weapon", - "damageMultiplier", skill.getModifiedItemAttr("damageMultiplierBonus") * skill.level) - - return locals() - -def effect5870(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Operation"), - "shieldBonus", ship.getModifiedItemAttr("shipBonusCI2"), skill="Caldari Industrial") - - return locals() - -def effect5871(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Operation"), - "shieldBonus", ship.getModifiedItemAttr("shipBonusMI2"), skill="Minmatar Industrial") - - return locals() - -def effect5872(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Repair Systems"), - "armorDamageAmount", ship.getModifiedItemAttr("shipBonusAI2"), - skill="Amarr Industrial") - - return locals() - -def effect5873(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Repair Systems"), - "armorDamageAmount", ship.getModifiedItemAttr("shipBonusGI2"), - skill="Gallente Industrial") - - return locals() - -def effect5874(): - type = "passive" - def handler(fit, ship, context): - fit.ship.boostItemAttr("fleetHangarCapacity", ship.getModifiedItemAttr("eliteBonusIndustrial1"), - skill="Transport Ships") - - return locals() - -def effect588(): - type = "passive" - def handler(fit, skill, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Projectile Weapon", - "damageMultiplier", skill.getModifiedItemAttr("damageMultiplierBonus") * skill.level) - - return locals() - -def effect5881(): - type = "passive" - def handler(fit, ship, context): - for damageType in ("em", "thermal", "explosive", "kinetic"): - fit.ship.boostItemAttr("shield{}DamageResonance".format(damageType.capitalize()), - ship.getModifiedItemAttr("eliteBonusIndustrial2"), skill="Transport Ships") - - return locals() - -def effect5888(): - type = "passive" - def handler(fit, ship, context): - for damageType in ("em", "thermal", "explosive", "kinetic"): - fit.ship.boostItemAttr("armor{}DamageResonance".format(damageType.capitalize()), - ship.getModifiedItemAttr("eliteBonusIndustrial2"), skill="Transport Ships") - - return locals() - -def effect5889(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Afterburner"), - "overloadSpeedFactorBonus", ship.getModifiedItemAttr("roleBonusOverheatDST")) - - return locals() - -def effect589(): - type = "passive" - def handler(fit, skill, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Hybrid Weapon", - "damageMultiplier", skill.getModifiedItemAttr("damageMultiplierBonus") * skill.level) - - return locals() - -def effect5890(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("High Speed Maneuvering"), - "overloadSpeedFactorBonus", ship.getModifiedItemAttr("roleBonusOverheatDST")) - - return locals() - -def effect5891(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Hull Upgrades"), - "overloadHardeningBonus", ship.getModifiedItemAttr("roleBonusOverheatDST")) - - return locals() - -def effect5892(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Hull Upgrades"), - "overloadSelfDurationBonus", ship.getModifiedItemAttr("roleBonusOverheatDST")) - - return locals() - -def effect5893(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Tactical Shield Manipulation"), - "overloadHardeningBonus", ship.getModifiedItemAttr("roleBonusOverheatDST")) - - return locals() - -def effect5896(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Operation"), - "overloadShieldBonus", ship.getModifiedItemAttr("roleBonusOverheatDST")) - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Operation"), - "overloadSelfDurationBonus", ship.getModifiedItemAttr("roleBonusOverheatDST")) - - return locals() - -def effect5899(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Repair Systems"), - "overloadArmorDamageAmount", ship.getModifiedItemAttr("roleBonusOverheatDST")) - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Repair Systems"), - "overloadSelfDurationBonus", ship.getModifiedItemAttr("roleBonusOverheatDST")) - - return locals() - -def effect59(): - type = "passive" - def handler(fit, module, context): - fit.ship.multiplyItemAttr("capacity", module.getModifiedItemAttr("cargoCapacityMultiplier")) - - return locals() - -def effect590(): - type = "passive" - def handler(fit, container, context): - level = container.level if "skill" in context else 1 - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Energy Pulse Weapons"), - "duration", container.getModifiedItemAttr("durationBonus") * level) - - return locals() - -def effect5900(): - type = "passive" - def handler(fit, module, context): - fit.ship.increaseItemAttr("warpSpeedMultiplier", module.getModifiedItemAttr("warpSpeedAdd")) - - return locals() - -def effect5901(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Reinforced Bulkhead", - "cpu", ship.getModifiedItemAttr("cpuNeedBonus")) - - return locals() - -def effect5911(): - runTime = "early" - type = ("projected", "passive") - def handler(fit, module, context): - fit.ship.boostItemAttr("jumpDriveConsumptionAmount", - module.getModifiedItemAttr("consumptionQuantityBonusPercentage"), stackingPenalties=True) - - return locals() - -def effect5912(): - runTime = "early" - type = ("projected", "passive") - def handler(fit, beacon, context): - fit.modules.filteredItemMultiply(lambda mod: mod.item.group.name == "Remote Capacitor Transmitter", - "powerTransferAmount", beacon.getModifiedItemAttr("energyTransferAmountBonus"), - stackingPenalties=True, penaltyGroup="postMul") - - return locals() - -def effect5913(): - runTime = "early" - type = ("projected", "passive") - def handler(fit, beacon, context): - fit.ship.multiplyItemAttr("armorHP", beacon.getModifiedItemAttr("armorHPMultiplier")) - - return locals() - -def effect5914(): - runTime = "early" - type = ("projected", "passive") - def handler(fit, beacon, context): - fit.modules.filteredItemMultiply(lambda mod: mod.item.group.name == "Energy Neutralizer", - "energyNeutralizerAmount", - beacon.getModifiedItemAttr("energyWarfareStrengthMultiplier"), - stackingPenalties=True, penaltyGroup="postMul") - - return locals() - -def effect5915(): - runTime = "early" - type = ("projected", "passive") - def handler(fit, beacon, context): - fit.modules.filteredItemMultiply(lambda mod: mod.item.group.name == "Energy Nosferatu", - "powerTransferAmount", - beacon.getModifiedItemAttr("energyWarfareStrengthMultiplier"), - stackingPenalties=True, penaltyGroup="postMul") - - return locals() - -def effect5916(): - runTime = "early" - type = ("projected", "passive") - def handler(fit, beacon, context): - fit.modules.filteredChargeMultiply(lambda mod: mod.charge.requiresSkill("Bomb Deployment"), - "explosiveDamage", beacon.getModifiedItemAttr("smartbombDamageMultiplier"), - stackingPenalties=True, penaltyGroup="postMul") - - return locals() - -def effect5917(): - runTime = "early" - type = ("projected", "passive") - def handler(fit, beacon, context): - fit.modules.filteredChargeMultiply(lambda mod: mod.charge.requiresSkill("Bomb Deployment"), - "kineticDamage", beacon.getModifiedItemAttr("smartbombDamageMultiplier"), - stackingPenalties=True, penaltyGroup="postMul") - - return locals() - -def effect5918(): - runTime = "early" - type = ("projected", "passive") - def handler(fit, beacon, context): - fit.modules.filteredChargeMultiply(lambda mod: mod.charge.requiresSkill("Bomb Deployment"), - "thermalDamage", beacon.getModifiedItemAttr("smartbombDamageMultiplier"), - stackingPenalties=True, penaltyGroup="postMul") - - return locals() - -def effect5919(): - runTime = "early" - type = ("projected", "passive") - def handler(fit, beacon, context): - fit.modules.filteredChargeMultiply(lambda mod: mod.charge.requiresSkill("Bomb Deployment"), - "emDamage", beacon.getModifiedItemAttr("smartbombDamageMultiplier"), - stackingPenalties=True, penaltyGroup="postMul") - - return locals() - -def effect5920(): - runTime = "early" - type = ("projected", "passive") - def handler(fit, beacon, context): - fit.modules.filteredChargeMultiply(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), - "aoeCloudSize", beacon.getModifiedItemAttr("aoeCloudSizeMultiplier")) - - return locals() - -def effect5921(): - runTime = "early" - type = ("projected", "passive") - def handler(fit, beacon, context): - fit.modules.filteredItemMultiply(lambda mod: mod.item.requiresSkill("Target Painting"), - "signatureRadiusBonus", - beacon.getModifiedItemAttr("targetPainterStrengthMultiplier"), - stackingPenalties=True, penaltyGroup="postMul") - - return locals() - -def effect5922(): - runTime = "early" - type = ("projected", "passive") - def handler(fit, beacon, context): - fit.modules.filteredItemMultiply(lambda mod: mod.item.group.name == "Stasis Web", - "speedFactor", beacon.getModifiedItemAttr("stasisWebStrengthMultiplier"), - stackingPenalties=True, penaltyGroup="postMul") - - return locals() - -def effect5923(): - runTime = "early" - type = ("projected", "passive") - def handler(fit, beacon, context): - fit.modules.filteredChargeMultiply(lambda mod: mod.charge.requiresSkill("Bomb Deployment"), - "energyNeutralizerAmount", - beacon.getModifiedItemAttr("smartbombDamageMultiplier"), - stackingPenalties=True, penaltyGroup="postMul") - - return locals() - -def effect5924(): - runTime = "early" - type = ("projected", "passive") - def handler(fit, beacon, context): - fit.modules.filteredChargeMultiply(lambda mod: mod.charge.requiresSkill("Bomb Deployment"), - "scanGravimetricStrengthBonus", - beacon.getModifiedItemAttr("smartbombDamageMultiplier"), - stackingPenalties=True, penaltyGroup="postMul") - - return locals() - -def effect5925(): - runTime = "early" - type = ("projected", "passive") - def handler(fit, beacon, context): - fit.modules.filteredChargeMultiply(lambda mod: mod.charge.requiresSkill("Bomb Deployment"), - "scanLadarStrengthBonus", - beacon.getModifiedItemAttr("smartbombDamageMultiplier"), - stackingPenalties=True, penaltyGroup="postMul") - - return locals() - -def effect5926(): - runTime = "early" - type = ("projected", "passive") - def handler(fit, beacon, context): - fit.modules.filteredChargeMultiply(lambda mod: mod.charge.requiresSkill("Bomb Deployment"), - "scanMagnetometricStrengthBonus", - beacon.getModifiedItemAttr("smartbombDamageMultiplier"), - stackingPenalties=True, penaltyGroup="postMul") - - return locals() - -def effect5927(): - runTime = "early" - type = ("projected", "passive") - def handler(fit, beacon, context): - fit.modules.filteredChargeMultiply(lambda mod: mod.charge.requiresSkill("Bomb Deployment"), - "scanRadarStrengthBonus", - beacon.getModifiedItemAttr("smartbombDamageMultiplier"), - stackingPenalties=True, penaltyGroup="postMul") - - return locals() - -def effect5929(): - runTime = "early" - type = ("projected", "passive") - def handler(fit, beacon, context): - fit.drones.filteredItemMultiply(lambda drone: True, - "trackingSpeed", beacon.getModifiedItemAttr("trackingSpeedMultiplier"), - stackingPenalties=True, penaltyGroup="postMul") - - return locals() - -def effect5934(): - from eos.saveddata.module import State - runTime = "early" - type = "projected", "active" - def handler(fit, module, context): - if "projected" not in context: - return - fit.ship.increaseItemAttr("warpScrambleStatus", module.getModifiedItemAttr("warpScrambleStrength")) - for mod in fit.modules: - if not mod.isEmpty and mod.state > State.ONLINE and ( - mod.item.requiresSkill("Micro Jump Drive Operation") or - mod.item.requiresSkill("High Speed Maneuvering") - ): - mod.state = State.ONLINE - if not mod.isEmpty and mod.item.requiresSkill("Micro Jump Drive Operation") and mod.state > State.ONLINE: - mod.state = State.ONLINE - - return locals() - -def effect5938(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredChargeBoost( - lambda mod: mod.charge.requiresSkill("Rockets") or mod.charge.requiresSkill("Light Missiles"), - "aoeCloudSize", ship.getModifiedItemAttr("shipBonusCF2"), skill="Caldari Frigate") - - return locals() - -def effect5939(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Missile Launcher Rocket", - "speed", ship.getModifiedItemAttr("shipBonus2AF"), skill="Amarr Frigate") - - return locals() - -def effect5940(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Hybrid Turret"), - "speed", ship.getModifiedItemAttr("eliteBonusInterdictors1"), skill="Interdictors") - - return locals() - -def effect5944(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Missile Launcher Operation"), - "speed", ship.getModifiedItemAttr("shipBonusAD1"), skill="Amarr Destroyer") - - return locals() - -def effect5945(): - type = "active" - runTime = "early" - def handler(fit, module, context): - fit.extraAttributes["cloaked"] = True - fit.ship.multiplyItemAttr("maxVelocity", module.getModifiedItemAttr("maxVelocityModifier")) - - return locals() - -def effect5951(): - type = "passive" - def handler(fit, module, context): - fit.ship.boostItemAttr("warpSpeedMultiplier", module.getModifiedItemAttr("drawback"), stackingPenalties=True) - - return locals() - -def effect5956(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Energy Turret"), - "damageMultiplier", ship.getModifiedItemAttr("shipBonusAC2"), skill="Amarr Cruiser") - - return locals() - -def effect5957(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Energy Turret"), - "maxRange", ship.getModifiedItemAttr("eliteBonusHeavyInterdictors1"), - skill="Heavy Interdiction Cruisers") - - return locals() - -def effect5958(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Hybrid Turret"), - "trackingSpeed", ship.getModifiedItemAttr("shipBonusGC"), skill="Gallente Cruiser") - - return locals() - -def effect5959(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Hybrid Turret"), - "maxRange", ship.getModifiedItemAttr("eliteBonusHeavyInterdictors1"), - skill="Heavy Interdiction Cruisers") - - return locals() - -def effect596(): - type = "passive" - def handler(fit, module, context): - module.multiplyItemAttr("maxRange", module.getModifiedChargeAttr("weaponRangeMultiplier")) - - return locals() - -def effect598(): - type = "passive" - def handler(fit, module, context): - module.multiplyItemAttr("speed", module.getModifiedChargeAttr("speedMultiplier") or 1) - - return locals() - -def effect599(): - type = "passive" - def handler(fit, module, context): - module.multiplyItemAttr("falloff", module.getModifiedChargeAttr("fallofMultiplier") or 1) - - return locals() - -def effect5994(): - type = "passive" - def handler(fit, module, context): - for dmgType in ('em', 'thermal', 'kinetic', 'explosive'): - tgtAttr = '{}DamageResonance'.format(dmgType) - fit.ship.forceItemAttr(tgtAttr, module.getModifiedItemAttr("resistanceKillerHull")) - - return locals() - -def effect5995(): - type = "passive" - def handler(fit, module, context): - for layer in ('armor', 'shield'): - for dmgType in ('em', 'thermal', 'kinetic', 'explosive'): - tgtAttr = '{}{}DamageResonance'.format(layer, dmgType.capitalize()) - fit.ship.forceItemAttr(tgtAttr, module.getModifiedItemAttr("resistanceKiller")) - - return locals() - -def effect5998(): - type = "passive" - def handler(fit, ship, context): - fit.ship.boostItemAttr("agility", ship.getModifiedItemAttr("freighterBonusO2"), skill="ORE Freighter", - stackingPenalties=True) - - return locals() - -def effect60(): - type = "passive" - def handler(fit, module, context): - fit.ship.multiplyItemAttr("hp", module.getModifiedItemAttr("structureHPMultiplier")) - - return locals() - -def effect600(): - type = "passive" - def handler(fit, module, context): - module.multiplyItemAttr("trackingSpeed", module.getModifiedChargeAttr("trackingSpeedMultiplier")) - - return locals() - -def effect6001(): - type = "passive" - def handler(fit, ship, context): - fit.ship.boostItemAttr("shipMaintenanceBayCapacity", ship.getModifiedItemAttr("freighterBonusO1"), - skill="ORE Freighter") - - return locals() - -def effect6006(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Energy Turret"), - "damageMultiplier", ship.getModifiedItemAttr("shipBonusTacticalDestroyerAmarr1"), - skill="Amarr Tactical Destroyer") - - return locals() - -def effect6007(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Energy Turret"), - "capacitorNeed", ship.getModifiedItemAttr("shipBonusTacticalDestroyerAmarr2"), - skill="Amarr Tactical Destroyer") - - return locals() - -def effect6008(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: True, "heatDamage", - ship.getModifiedItemAttr("shipBonusTacticalDestroyerAmarr3"), - skill="Amarr Tactical Destroyer") - - return locals() - -def effect6009(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Astrometrics"), "cpu", src.getModifiedItemAttr("roleBonusT3ProbeCPU")) - - return locals() - -def effect6010(): - type = "passive" - def handler(fit, module, context): - fit.ship.multiplyItemAttr( - "maxTargetRange", - 1 / module.getModifiedItemAttr("modeMaxTargetRangePostDiv"), - stackingPenalties=True, - penaltyGroup="postDiv" - ) - - return locals() - -def effect6011(): - type = "passive" - def handler(fit, module, context): - fit.modules.filteredItemMultiply( - lambda mod: mod.item.requiresSkill("Small Energy Turret"), - "maxRange", - 1 / module.getModifiedItemAttr("modeMaxRangePostDiv"), - stackingPenalties=True, - penaltyGroup="postDiv" - ) - - return locals() - -def effect6012(): - type = "passive" - def handler(fit, module, context): - for scanType in ("Gravimetric", "Magnetometric", "Radar", "Ladar"): - fit.ship.multiplyItemAttr( - "scan{}Strength".format(scanType), - 1 / (module.getModifiedItemAttr("mode{}StrengthPostDiv".format(scanType)) or 1), - stackingPenalties=True, - penaltyGroup="postDiv" - ) - - return locals() - -def effect6014(): - type = "passive" - def handler(fit, module, context): - fit.ship.multiplyItemAttr("signatureRadius", 1 / module.getModifiedItemAttr("modeSignatureRadiusPostDiv"), - stackingPenalties=True, penaltyGroup="postDiv") - - return locals() - -def effect6015(): - type = "passive" - def handler(fit, module, context): - for srcResType, tgtResType in ( - ("Em", "Em"), - ("Explosive", "Explosive"), - ("Kinetic", "Kinetic"), - ("Thermic", "Thermal") - ): - fit.ship.multiplyItemAttr( - "armor{0}DamageResonance".format(tgtResType), - 1 / module.getModifiedItemAttr("mode{0}ResistancePostDiv".format(srcResType)), - stackingPenalties=True, - penaltyGroup="postDiv" - ) - - return locals() - -def effect6016(): - type = "passive" - def handler(fit, module, context): - fit.ship.multiplyItemAttr( - "agility", - 1 / module.getModifiedItemAttr("modeAgilityPostDiv"), - stackingPenalties=True, - penaltyGroup="postDiv" - ) - - return locals() - -def effect6017(): - type = "passive" - def handler(fit, module, context): - fit.ship.multiplyItemAttr( - "maxVelocity", - 1 / module.getModifiedItemAttr("modeVelocityPostDiv"), - stackingPenalties=True, - penaltyGroup="postDiv" - ) - - return locals() - -def effect602(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Projectile Turret"), - "speed", ship.getModifiedItemAttr("shipBonusMC"), skill="Minmatar Cruiser") - - return locals() - -def effect6020(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Neutralizer", "maxRange", - src.getModifiedItemAttr("eliteBonusReconShip3"), skill="Recon Ships") - - return locals() - -def effect6021(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Nosferatu", "maxRange", - src.getModifiedItemAttr("eliteBonusReconShip3"), skill="Recon Ships") - - return locals() - -def effect6025(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Hybrid Turret"), - "maxRange", ship.getModifiedItemAttr("eliteBonusReconShip1"), skill="Recon Ships") - - return locals() - -def effect6027(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Projectile Turret"), - "damageMultiplier", ship.getModifiedItemAttr("eliteBonusReconShip1"), - skill="Recon Ships") - - return locals() - -def effect6032(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Remote Capacitor Transmitter", - "power", ship.getModifiedItemAttr("powerTransferPowerNeedBonus")) - - return locals() - -def effect6036(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: True, "heatDamage", - ship.getModifiedItemAttr("shipBonusTacticalDestroyerMinmatar3"), - skill="Minmatar Tactical Destroyer") - - return locals() - -def effect6037(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Projectile Turret"), - "damageMultiplier", ship.getModifiedItemAttr("shipBonusTacticalDestroyerMinmatar1"), - skill="Minmatar Tactical Destroyer") - - return locals() - -def effect6038(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Projectile Turret"), - "maxRange", ship.getModifiedItemAttr("shipBonusTacticalDestroyerMinmatar2"), - skill="Minmatar Tactical Destroyer") - - return locals() - -def effect6039(): - type = "passive" - def handler(fit, module, context): - fit.modules.filteredItemMultiply( - lambda mod: mod.item.requiresSkill("Small Projectile Turret"), - "trackingSpeed", - 1 / module.getModifiedItemAttr("modeTrackingPostDiv"), - stackingPenalties=True, - penaltyGroup="postDiv" - ) - - return locals() - -def effect604(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Large Projectile Turret"), - "speed", ship.getModifiedItemAttr("shipBonusMB2"), skill="Minmatar Battleship") - - return locals() - -def effect6040(): - type = "passive" - def handler(fit, module, context): - fit.modules.filteredItemMultiply( - lambda mod: mod.item.requiresSkill("High Speed Maneuvering"), - "signatureRadiusBonus", - 1 / module.getModifiedItemAttr("modeMWDSigPenaltyPostDiv"), - stackingPenalties=True, - penaltyGroup="postDiv" - ) - - return locals() - -def effect6041(): - type = "passive" - def handler(fit, module, context): - for srcResType, tgtResType in ( - ("Em", "Em"), - ("Explosive", "Explosive"), - ("Kinetic", "Kinetic"), - ("Thermic", "Thermal") - ): - fit.ship.multiplyItemAttr( - "shield{0}DamageResonance".format(tgtResType), - 1 / module.getModifiedItemAttr("mode{0}ResistancePostDiv".format(srcResType)), - stackingPenalties=True, - penaltyGroup="postDiv" - ) - - return locals() - -def effect6045(): - type = "passive" - def handler(fit, ship, context): - fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Sentry Drone Interfacing"), - "damageMultiplier", ship.getModifiedItemAttr("shipBonusGC3"), skill="Gallente Cruiser") - - return locals() - -def effect6046(): - type = "passive" - def handler(fit, ship, context): - fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Sentry Drone Interfacing"), - "hp", ship.getModifiedItemAttr("shipBonusGC3"), skill="Gallente Cruiser") - - return locals() - -def effect6047(): - type = "passive" - def handler(fit, ship, context): - fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Sentry Drone Interfacing"), - "armorHP", ship.getModifiedItemAttr("shipBonusGC3"), skill="Gallente Cruiser") - - return locals() - -def effect6048(): - type = "passive" - def handler(fit, ship, context): - fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Sentry Drone Interfacing"), - "shieldCapacity", ship.getModifiedItemAttr("shipBonusGC3"), skill="Gallente Cruiser") - - return locals() - -def effect6051(): - type = "passive" - def handler(fit, ship, context): - fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Light Drone Operation"), - "damageMultiplier", ship.getModifiedItemAttr("shipBonusGC2"), skill="Gallente Cruiser") - - return locals() - -def effect6052(): - type = "passive" - def handler(fit, ship, context): - fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Medium Drone Operation"), - "damageMultiplier", ship.getModifiedItemAttr("shipBonusGC2"), skill="Gallente Cruiser") - - return locals() - -def effect6053(): - type = "passive" - def handler(fit, ship, context): - fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Heavy Drone Operation"), - "damageMultiplier", ship.getModifiedItemAttr("shipBonusGC2"), skill="Gallente Cruiser") - - return locals() - -def effect6054(): - type = "passive" - def handler(fit, ship, context): - fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Heavy Drone Operation"), - "hp", ship.getModifiedItemAttr("shipBonusGC2"), skill="Gallente Cruiser") - - return locals() - -def effect6055(): - type = "passive" - def handler(fit, ship, context): - fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Heavy Drone Operation"), - "armorHP", ship.getModifiedItemAttr("shipBonusGC2"), skill="Gallente Cruiser") - - return locals() - -def effect6056(): - type = "passive" - def handler(fit, ship, context): - fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Heavy Drone Operation"), - "shieldCapacity", ship.getModifiedItemAttr("shipBonusGC2"), skill="Gallente Cruiser") - - return locals() - -def effect6057(): - type = "passive" - def handler(fit, ship, context): - fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Medium Drone Operation"), - "shieldCapacity", ship.getModifiedItemAttr("shipBonusGC2"), skill="Gallente Cruiser") - - return locals() - -def effect6058(): - type = "passive" - def handler(fit, ship, context): - fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Medium Drone Operation"), - "armorHP", ship.getModifiedItemAttr("shipBonusGC2"), skill="Gallente Cruiser") - - return locals() - -def effect6059(): - type = "passive" - def handler(fit, ship, context): - fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Medium Drone Operation"), - "hp", ship.getModifiedItemAttr("shipBonusGC2"), skill="Gallente Cruiser") - - return locals() - -def effect6060(): - type = "passive" - def handler(fit, ship, context): - fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Light Drone Operation"), - "hp", ship.getModifiedItemAttr("shipBonusGC2"), skill="Gallente Cruiser") - - return locals() - -def effect6061(): - type = "passive" - def handler(fit, ship, context): - fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Light Drone Operation"), - "armorHP", ship.getModifiedItemAttr("shipBonusGC2"), skill="Gallente Cruiser") - - return locals() - -def effect6062(): - type = "passive" - def handler(fit, ship, context): - fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Light Drone Operation"), - "shieldCapacity", ship.getModifiedItemAttr("shipBonusGC2"), skill="Gallente Cruiser") - - return locals() - -def effect6063(): - type = "active" - def handler(fit, module, context): - fit.ship.forceItemAttr("disallowAssistance", module.getModifiedItemAttr("disallowAssistance")) - for scanType in ("Gravimetric", "Magnetometric", "Radar", "Ladar"): - fit.ship.boostItemAttr( - "scan{}Strength".format(scanType), - module.getModifiedItemAttr("scan{}StrengthPercent".format(scanType)), - stackingPenalties=True - ) - - return locals() - -def effect607(): - type = "active" - runTime = "early" - def handler(fit, module, context): - fit.extraAttributes["cloaked"] = True - fit.ship.multiplyItemAttr("maxVelocity", module.getModifiedItemAttr("maxVelocityModifier")) - - return locals() - -def effect6076(): - type = "passive" - def handler(fit, module, context): - fit.modules.filteredChargeMultiply( - lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), - "maxVelocity", - 1 / module.getModifiedItemAttr("modeMaxRangePostDiv"), - stackingPenalties=True, - penaltyGroup="postDiv" - ) - - return locals() - -def effect6077(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: True, "heatDamage", - ship.getModifiedItemAttr("shipBonusTacticalDestroyerCaldari3"), - skill="Caldari Tactical Destroyer") - - return locals() - -def effect6083(): - type = "passive" - def handler(fit, ship, context): - for damageType in ("em", "explosive", "kinetic", "thermal"): - fit.modules.filteredChargeBoost( - lambda mod: mod.charge.requiresSkill("Rockets") or mod.charge.requiresSkill("Light Missiles"), - "{0}Damage".format(damageType), ship.getModifiedItemAttr("shipBonusRole7")) - - return locals() - -def effect6085(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Missile Launcher Operation"), - "speed", ship.getModifiedItemAttr("shipBonusTacticalDestroyerCaldari1"), - skill="Caldari Tactical Destroyer") - - return locals() - -def effect6088(): - type = "passive" - def handler(fit, ship, context): - for damageType in ("em", "explosive", "kinetic", "thermal"): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Assault Missiles"), - "{0}Damage".format(damageType), ship.getModifiedItemAttr("shipBonusMC2"), - skill="Minmatar Cruiser") - - return locals() - -def effect6093(): - type = "passive" - def handler(fit, ship, context): - for damageType in ("em", "explosive", "kinetic", "thermal"): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Missiles"), - "{0}Damage".format(damageType), ship.getModifiedItemAttr("shipBonusMC2"), - skill="Minmatar Cruiser") - - return locals() - -def effect6096(): - type = "passive" - def handler(fit, ship, context): - for damageType in ("em", "explosive", "kinetic", "thermal"): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Light Missiles"), - "{0}Damage".format(damageType), ship.getModifiedItemAttr("shipBonusMC2"), - skill="Minmatar Cruiser") - - return locals() - -def effect6098(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Missile Launcher Operation"), - "reloadTime", ship.getModifiedItemAttr("shipBonusTacticalDestroyerCaldari2"), - skill="Caldari Tactical Destroyer") - - return locals() - -def effect61(): - type = "passive" - def handler(fit, src, context): - fit.ship.increaseItemAttr("agility", src.getModifiedItemAttr("agilityBonusAdd")) - - return locals() - -def effect6104(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemMultiply(lambda mod: mod.item.requiresSkill("Infomorph Psychology"), - "duration", ship.getModifiedItemAttr("entosisDurationMultiplier") or 1) - - return locals() - -def effect6110(): - type = "passive" - def handler(fit, module, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), - "maxVelocity", module.getModifiedItemAttr("missileVelocityBonus"), - stackingPenalties=True) - - return locals() - -def effect6111(): - type = "passive" - def handler(fit, module, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), - "explosionDelay", module.getModifiedItemAttr("explosionDelayBonus"), - stackingPenalties=True) - - return locals() - -def effect6112(): - type = "passive" - def handler(fit, module, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), - "aoeCloudSize", module.getModifiedItemAttr("aoeCloudSizeBonus"), - stackingPenalties=True) - - return locals() - -def effect6113(): - type = "passive" - def handler(fit, module, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), - "aoeVelocity", module.getModifiedItemAttr("aoeVelocityBonus"), - stackingPenalties=True) - - return locals() - -def effect6128(): - type = "passive" - def handler(fit, module, context): - module.boostItemAttr("aoeCloudSizeBonus", module.getModifiedChargeAttr("aoeCloudSizeBonusBonus")) - - return locals() - -def effect6129(): - type = "passive" - def handler(fit, module, context): - module.boostItemAttr("aoeVelocityBonus", module.getModifiedChargeAttr("aoeVelocityBonusBonus")) - - return locals() - -def effect6130(): - type = "passive" - def handler(fit, module, context): - module.boostItemAttr("missileVelocityBonus", module.getModifiedChargeAttr("missileVelocityBonusBonus")) - - return locals() - -def effect6131(): - type = "passive" - def handler(fit, module, context): - module.boostItemAttr("explosionDelayBonus", module.getModifiedChargeAttr("explosionDelayBonusBonus")) - - return locals() - -def effect6135(): - type = "active" - def handler(fit, container, context): - for srcAttr, tgtAttr in ( - ("aoeCloudSizeBonus", "aoeCloudSize"), - ("aoeVelocityBonus", "aoeVelocity"), - ("missileVelocityBonus", "maxVelocity"), - ("explosionDelayBonus", "explosionDelay"), - ): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), - tgtAttr, container.getModifiedItemAttr(srcAttr), - stackingPenalties=True) - - return locals() - -def effect6144(): - type = "overheat" - def handler(fit, module, context): - for tgtAttr in ( - "aoeCloudSizeBonus", - "explosionDelayBonus", - "missileVelocityBonus", - "maxVelocityModifier", - "aoeVelocityBonus" - ): - module.boostItemAttr(tgtAttr, module.getModifiedItemAttr("overloadTrackingModuleStrengthBonus")) - - return locals() - -def effect6148(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: True, "heatDamage", - ship.getModifiedItemAttr("shipBonusTacticalDestroyerGallente3"), - skill="Gallente Tactical Destroyer") - - return locals() - -def effect6149(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Hybrid Turret"), - "speed", ship.getModifiedItemAttr("shipBonusTacticalDestroyerGallente1"), - skill="Gallente Tactical Destroyer") - - return locals() - -def effect6150(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Hybrid Turret"), - "trackingSpeed", ship.getModifiedItemAttr("shipBonusTacticalDestroyerGallente2"), - skill="Gallente Tactical Destroyer") - - return locals() - -def effect6151(): - type = "passive" - def handler(fit, module, context): - for srcResType, tgtResType in ( - ("Em", "em"), - ("Explosive", "explosive"), - ("Kinetic", "kinetic"), - ("Thermic", "thermal") - ): - fit.ship.multiplyItemAttr( - "{0}DamageResonance".format(tgtResType), - 1 / module.getModifiedItemAttr("mode{0}ResistancePostDiv".format(srcResType)) - ) - - return locals() - -def effect6152(): - type = "passive" - def handler(fit, module, context): - fit.modules.filteredItemMultiply( - lambda mod: mod.item.requiresSkill("Small Hybrid Turret"), - "maxRange", - 1 / module.getModifiedItemAttr("modeMaxRangePostDiv"), - stackingPenalties=True, - penaltyGroup="postDiv" - ) - - return locals() - -def effect6153(): - type = "passive" - def handler(fit, module, context): - fit.modules.filteredItemMultiply( - lambda mod: mod.item.requiresSkill("High Speed Maneuvering"), - "capacitorNeed", - 1 / module.getModifiedItemAttr("modeMWDCapPostDiv") - ) - - return locals() - -def effect6154(): - type = "passive" - def handler(fit, module, context): - fit.modules.filteredItemMultiply( - lambda mod: mod.item.requiresSkill("High Speed Maneuvering"), - "speedFactor", - 1 / module.getModifiedItemAttr("modeMWDVelocityPostDiv"), - stackingPenalties=True, - penaltyGroup="postDiv" - ) - - return locals() - -def effect6155(): - type = "passive" - def handler(fit, module, context): - fit.modules.filteredItemMultiply( - lambda mod: mod.item.requiresSkill("Repair Systems"), - "duration", - 1 / module.getModifiedItemAttr("modeArmorRepDurationPostDiv") - ) - - return locals() - -def effect6163(): - runtime = "late" - type = "passive" - def handler(fit, src, context): - fit.extraAttributes['speedLimit'] = src.getModifiedItemAttr("speedLimit") - - return locals() - -def effect6164(): - runTime = "early" - type = ("projected", "passive") - def handler(fit, beacon, context): - fit.ship.boostItemAttr("maxVelocity", beacon.getModifiedItemAttr("maxVelocityMultiplier"), stackingPenalties=True) - - return locals() - -def effect6166(): - runTime = "early" - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Propulsion Jamming"), - "speedFactorBonus", ship.getModifiedItemAttr("shipBonusAT")) - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Propulsion Jamming"), - "speedBoostFactorBonus", ship.getModifiedItemAttr("shipBonusAT")) - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Propulsion Jamming"), - "massBonusPercentage", ship.getModifiedItemAttr("shipBonusAT")) - - return locals() - -def effect6170(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemIncrease(lambda mod: mod.item.requiresSkill("Infomorph Psychology"), - "entosisCPUAdd", ship.getModifiedItemAttr("entosisCPUPenalty")) - - return locals() - -def effect6171(): - type = "passive" - def handler(fit, module, context): - module.increaseItemAttr("cpu", module.getModifiedItemAttr("entosisCPUAdd")) - - return locals() - -def effect6172(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Energy Turret"), - "maxRange", ship.getModifiedItemAttr("roleBonusCBC")) - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Energy Turret"), - "falloff", ship.getModifiedItemAttr("roleBonusCBC")) - - return locals() - -def effect6173(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Hybrid Turret"), - "maxRange", ship.getModifiedItemAttr("roleBonusCBC")) - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Hybrid Turret"), - "falloff", ship.getModifiedItemAttr("roleBonusCBC")) - - return locals() - -def effect6174(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Projectile Turret"), - "maxRange", ship.getModifiedItemAttr("roleBonusCBC")) - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Projectile Turret"), - "falloff", ship.getModifiedItemAttr("roleBonusCBC")) - - return locals() - -def effect6175(): - type = "passive" - def handler(fit, skill, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), - "maxVelocity", skill.getModifiedItemAttr("roleBonusCBC")) - - return locals() - -def effect6176(): - type = "passive" - def handler(fit, ship, context): - fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Drones"), - "maxVelocity", ship.getModifiedItemAttr("roleBonusCBC")) - - return locals() - -def effect6177(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Hybrid Turret"), - "damageMultiplier", ship.getModifiedItemAttr("shipBonusCBC2"), - skill="Caldari Battlecruiser") - - return locals() - -def effect6178(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Projectile Turret"), - "trackingSpeed", ship.getModifiedItemAttr("shipBonusMBC2"), - skill="Minmatar Battlecruiser") - - return locals() - -def effect6184(): - from eos.modifiedAttributeDict import ModifiedAttributeDict - type = "projected", "active" - runTime = "late" - def handler(fit, src, context, **kwargs): - if "projected" in context: - amount = src.getModifiedItemAttr("powerTransferAmount") - duration = src.getModifiedItemAttr("duration") - if 'effect' in kwargs: - amount *= ModifiedAttributeDict.getResistance(fit, kwargs['effect']) - fit.addDrain(src, duration, -amount, 0) - - return locals() - -def effect6185(): - type = "projected", "active" - runTime = "late" - def handler(fit, module, context): - if "projected" not in context: - return - bonus = module.getModifiedItemAttr("structureDamageAmount") - duration = module.getModifiedItemAttr("duration") / 1000.0 - fit.extraAttributes.increase("hullRepair", bonus / duration) - - return locals() - -def effect6186(): - type = "projected", "active" - def handler(fit, container, context, **kwargs): - if "projected" in context: - bonus = container.getModifiedItemAttr("shieldBonus") - duration = container.getModifiedItemAttr("duration") / 1000.0 - fit.extraAttributes.increase("shieldRepair", bonus / duration, **kwargs) - - return locals() - -def effect6187(): - from eos.saveddata.module import State - from eos.modifiedAttributeDict import ModifiedAttributeDict - type = "active", "projected" - def handler(fit, src, context, **kwargs): - if "projected" in context and ((hasattr(src, "state") and src.state >= State.ACTIVE) or - hasattr(src, "amountActive")): - amount = src.getModifiedItemAttr("energyNeutralizerAmount") - if 'effect' in kwargs: - amount *= ModifiedAttributeDict.getResistance(fit, kwargs['effect']) - time = src.getModifiedItemAttr("duration") - fit.addDrain(src, time, amount, 0) - - return locals() - -def effect6188(): - type = "projected", "active" - runTime = "late" - def handler(fit, container, context, **kwargs): - if "projected" in context: - bonus = container.getModifiedItemAttr("armorDamageAmount") - duration = container.getModifiedItemAttr("duration") / 1000.0 - rps = bonus / duration - fit.extraAttributes.increase("armorRepair", rps) - fit.extraAttributes.increase("armorRepairPreSpool", rps) - fit.extraAttributes.increase("armorRepairFullSpool", rps) - - return locals() - -def effect6195(): - type = "passive" - def handler(fit, src, context): - fit.ship.boostItemAttr("shieldThermalDamageResonance", src.getModifiedItemAttr("eliteBonusExpedition1"), - skill="Expedition Frigates") - fit.ship.boostItemAttr("shieldKineticDamageResonance", src.getModifiedItemAttr("eliteBonusExpedition1"), - skill="Expedition Frigates") - fit.ship.boostItemAttr("shieldExplosiveDamageResonance", src.getModifiedItemAttr("eliteBonusExpedition1"), - skill="Expedition Frigates") - fit.ship.boostItemAttr("shieldEmDamageResonance", src.getModifiedItemAttr("eliteBonusExpedition1"), - skill="Expedition Frigates") - - return locals() - -def effect6196(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Ice Harvesting"), "duration", - src.getModifiedItemAttr("eliteBonusExpedition2"), skill="Expedition Frigates") - - return locals() - -def effect6197(): - from eos.modifiedAttributeDict import ModifiedAttributeDict - type = "active", "projected" - runTime = "late" - def handler(fit, src, context, **kwargs): - amount = src.getModifiedItemAttr("powerTransferAmount") - time = src.getModifiedItemAttr("duration") - if 'effect' in kwargs and "projected" in context: - amount *= ModifiedAttributeDict.getResistance(fit, kwargs['effect']) - if "projected" in context: - fit.addDrain(src, time, amount, 0) - elif "module" in context: - src.itemModifiedAttributes.force("capacitorNeed", -amount) - - return locals() - -def effect6201(): - type = "active" - def handler(fit, src, context): - pass - - return locals() - -def effect6208(): - type = "active" - def handler(fit, module, context): - fit.ship.boostItemAttr("signatureRadius", module.getModifiedItemAttr("signatureRadiusBonusPercent"), - stackingPenalties=True) - - return locals() - -def effect6214(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Leadership"), "power", - src.getModifiedItemAttr("roleBonusCD")) - - return locals() - -def effect6216(): - from eos.saveddata.module import State - from eos.modifiedAttributeDict import ModifiedAttributeDict - type = "active", "projected" - def handler(fit, src, context, **kwargs): - amount = 0 - if "projected" in context: - if (hasattr(src, "state") and src.state >= State.ACTIVE) or hasattr(src, "amountActive"): - amount = src.getModifiedItemAttr("energyNeutralizerAmount") - if 'effect' in kwargs: - amount *= ModifiedAttributeDict.getResistance(fit, kwargs['effect']) - time = src.getModifiedItemAttr("duration") - fit.addDrain(src, time, amount, 0) - return locals() - -def effect6222(): - from eos.saveddata.module import State - runTime = "early" - type = "projected", "active" - def handler(fit, module, context): - if "projected" in context: - fit.ship.increaseItemAttr("warpScrambleStatus", module.getModifiedItemAttr("warpScrambleStrength")) - if module.charge is not None and module.charge.ID == 47336: - for mod in fit.modules: - if not mod.isEmpty and mod.item.requiresSkill("High Speed Maneuvering") and mod.state > State.ONLINE: - mod.state = State.ONLINE - if not mod.isEmpty and mod.item.requiresSkill("Micro Jump Drive Operation") and mod.state > State.ONLINE: - mod.state = State.ONLINE - - return locals() - -def effect623(): - type = "passive" - def handler(fit, container, context): - level = container.level if "skill" in context else 1 - fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Mining Drone Operation"), - "miningAmount", - container.getModifiedItemAttr("miningAmountBonus") * level) - - return locals() - -def effect6230(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Neutralizer", "maxRange", - src.getModifiedItemAttr("eliteBonusReconShip1"), skill="Recon Ships") - - return locals() - -def effect6232(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Neutralizer", "falloffEffectiveness", - src.getModifiedItemAttr("eliteBonusReconShip2"), skill="Recon Ships") - - return locals() - -def effect6233(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Neutralizer", "falloffEffectiveness", - src.getModifiedItemAttr("eliteBonusReconShip3"), skill="Recon Ships") - - return locals() - -def effect6234(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Nosferatu", "maxRange", - src.getModifiedItemAttr("eliteBonusReconShip1"), skill="Recon Ships") - - return locals() - -def effect6237(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Nosferatu", "falloffEffectiveness", - src.getModifiedItemAttr("eliteBonusReconShip2"), skill="Recon Ships") - - return locals() - -def effect6238(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Nosferatu", "falloffEffectiveness", - src.getModifiedItemAttr("eliteBonusReconShip3"), skill="Recon Ships") - - return locals() - -def effect6239(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Ice Harvesting"), "duration", - src.getModifiedItemAttr("shipBonusOREfrig2"), skill="Mining Frigate") - - return locals() - -def effect6241(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Neutralizer", "falloffEffectiveness", - src.getModifiedItemAttr("shipBonusAD1"), skill="Amarr Destroyer") - - return locals() - -def effect6242(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Neutralizer", "maxRange", - src.getModifiedItemAttr("shipBonusAD2"), skill="Amarr Destroyer") - - return locals() - -def effect6245(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Nosferatu", "maxRange", - src.getModifiedItemAttr("shipBonusAD2"), skill="Amarr Destroyer") - - return locals() - -def effect6246(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Nosferatu", "falloffEffectiveness", - src.getModifiedItemAttr("shipBonusAD1"), skill="Amarr Destroyer") - - return locals() - -def effect6253(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Neutralizer", "maxRange", - src.getModifiedItemAttr("shipBonusAB"), skill="Amarr Battleship") - - return locals() - -def effect6256(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Neutralizer", "falloffEffectiveness", - src.getModifiedItemAttr("shipBonusAB2"), skill="Amarr Battleship") - - return locals() - -def effect6257(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Nosferatu", "maxRange", - src.getModifiedItemAttr("shipBonusAB"), skill="Amarr Battleship") - - return locals() - -def effect6260(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Nosferatu", "falloffEffectiveness", - src.getModifiedItemAttr("shipBonusAB2"), skill="Amarr Battleship") - - return locals() - -def effect6267(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Neutralizer", "maxRange", - src.getModifiedItemAttr("eliteBonusElectronicAttackShip1"), - skill="Electronic Attack Ships") - - return locals() - -def effect627(): - type = "passive" - def handler(fit, module, context): - fit.ship.increaseItemAttr("powerOutput", module.getModifiedItemAttr("powerIncrease")) - - return locals() - -def effect6272(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Neutralizer", "falloffEffectiveness", - src.getModifiedItemAttr("eliteBonusElectronicAttackShip3"), - skill="Electronic Attack Ships") - - return locals() - -def effect6273(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Nosferatu", "maxRange", - src.getModifiedItemAttr("eliteBonusElectronicAttackShip1"), - skill="Electronic Attack Ships") - - return locals() - -def effect6278(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Nosferatu", "falloffEffectiveness", - src.getModifiedItemAttr("eliteBonusElectronicAttackShip3"), - skill="Electronic Attack Ships") - - return locals() - -def effect6281(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Neutralizer", "maxRange", - src.getModifiedItemAttr("shipBonus2AF"), skill="Amarr Frigate") - - return locals() - -def effect6285(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Neutralizer", "falloffEffectiveness", - src.getModifiedItemAttr("shipBonus3AF"), skill="Amarr Frigate") - - return locals() - -def effect6287(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Nosferatu", "maxRange", - src.getModifiedItemAttr("shipBonus2AF"), skill="Amarr Frigate") - - return locals() - -def effect6291(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Nosferatu", "falloffEffectiveness", - src.getModifiedItemAttr("shipBonus3AF"), skill="Amarr Frigate") - - return locals() - -def effect6294(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Neutralizer", "maxRange", - src.getModifiedItemAttr("shipBonusAC"), skill="Amarr Cruiser") - - return locals() - -def effect6299(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Neutralizer", "falloffEffectiveness", - src.getModifiedItemAttr("shipBonusAC3"), skill="Amarr Cruiser") - - return locals() - -def effect63(): - type = "passive" - def handler(fit, module, context): - fit.ship.multiplyItemAttr("armorHP", module.getModifiedItemAttr("armorHPMultiplier")) - - return locals() - -def effect6300(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Nosferatu", "maxRange", - src.getModifiedItemAttr("shipBonusAC"), skill="Amarr Cruiser") - - return locals() - -def effect6301(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Nosferatu", "falloffEffectiveness", - src.getModifiedItemAttr("shipBonusAC2"), skill="Amarr Cruiser") - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Nosferatu", "maxRange", - src.getModifiedItemAttr("shipBonusAC2"), skill="Amarr Cruiser") - - return locals() - -def effect6305(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Nosferatu", "falloffEffectiveness", - src.getModifiedItemAttr("shipBonusAC3"), skill="Amarr Cruiser") - - return locals() - -def effect6307(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), "thermalDamage", - src.getModifiedItemAttr("shipBonusMD1"), skill="Minmatar Destroyer") - - return locals() - -def effect6308(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), "emDamage", - src.getModifiedItemAttr("shipBonusMD1"), skill="Minmatar Destroyer") - - return locals() - -def effect6309(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), "kineticDamage", - src.getModifiedItemAttr("shipBonusMD1"), skill="Minmatar Destroyer") - - return locals() - -def effect6310(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), - "explosiveDamage", src.getModifiedItemAttr("shipBonusMD1"), - skill="Minmatar Destroyer") - - return locals() - -def effect6315(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Skirmish Command"), "warfareBuff3Value", - src.getModifiedItemAttr("eliteBonusCommandDestroyer1"), skill="Command Destroyers") - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Skirmish Command"), "buffDuration", - src.getModifiedItemAttr("eliteBonusCommandDestroyer1"), skill="Command Destroyers") - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Skirmish Command"), "warfareBuff1Value", - src.getModifiedItemAttr("eliteBonusCommandDestroyer1"), skill="Command Destroyers") - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Skirmish Command"), "warfareBuff4Value", - src.getModifiedItemAttr("eliteBonusCommandDestroyer1"), skill="Command Destroyers") - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Skirmish Command"), "warfareBuff2Value", - src.getModifiedItemAttr("eliteBonusCommandDestroyer1"), skill="Command Destroyers") - - return locals() - -def effect6316(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Command"), "warfareBuff3Value", - src.getModifiedItemAttr("eliteBonusCommandDestroyer1"), skill="Command Destroyers") - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Command"), "buffDuration", - src.getModifiedItemAttr("eliteBonusCommandDestroyer1"), skill="Command Destroyers") - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Command"), "warfareBuff1Value", - src.getModifiedItemAttr("eliteBonusCommandDestroyer1"), skill="Command Destroyers") - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Command"), "warfareBuff4Value", - src.getModifiedItemAttr("eliteBonusCommandDestroyer1"), skill="Command Destroyers") - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Command"), "warfareBuff2Value", - src.getModifiedItemAttr("eliteBonusCommandDestroyer1"), skill="Command Destroyers") - - return locals() - -def effect6317(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Micro Jump Drive Operation"), "duration", - src.getModifiedItemAttr("eliteBonusCommandDestroyer2"), skill="Command Destroyers") - - return locals() - -def effect6318(): - type = "passive" - def handler(fit, src, context): - fit.ship.boostItemAttr("shieldEmDamageResonance", src.getModifiedItemAttr("shipBonusMD2"), - skill="Minmatar Destroyer") - - return locals() - -def effect6319(): - type = "passive" - def handler(fit, src, context): - fit.ship.boostItemAttr("shieldKineticDamageResonance", src.getModifiedItemAttr("shipBonusMD2"), - skill="Minmatar Destroyer") - - return locals() - -def effect6320(): - type = "passive" - def handler(fit, src, context): - fit.ship.boostItemAttr("shieldThermalDamageResonance", src.getModifiedItemAttr("shipBonusMD2"), - skill="Minmatar Destroyer") - - return locals() - -def effect6321(): - type = "passive" - def handler(fit, src, context): - fit.ship.boostItemAttr("shieldExplosiveDamageResonance", src.getModifiedItemAttr("shipBonusMD2"), - skill="Minmatar Destroyer") - - return locals() - -def effect6322(): - type = "passive" - runTime = "early" - def handler(fit, src, context, *args, **kwargs): - src.boostItemAttr("scanGravimetricStrengthBonus", src.getModifiedChargeAttr("scanGravimetricStrengthBonusBonus")) - - return locals() - -def effect6323(): - type = "passive" - runTime = "early" - def handler(fit, src, context, *args, **kwargs): - src.boostItemAttr("scanLadarStrengthBonus", src.getModifiedChargeAttr("scanLadarStrengthBonusBonus")) - - return locals() - -def effect6324(): - type = "passive" - runTime = "early" - def handler(fit, src, context, *args, **kwargs): - src.boostItemAttr("scanMagnetometricStrengthBonus", src.getModifiedChargeAttr("scanMagnetometricStrengthBonusBonus")) - - return locals() - -def effect6325(): - type = "passive" - runTime = "early" - def handler(fit, src, context, *args, **kwargs): - src.boostItemAttr("scanRadarStrengthBonus", src.getModifiedChargeAttr("scanRadarStrengthBonusBonus")) - - return locals() - -def effect6326(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), "thermalDamage", - src.getModifiedItemAttr("shipBonusCD1"), skill="Caldari Destroyer") - - return locals() - -def effect6327(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), "emDamage", - src.getModifiedItemAttr("shipBonusCD1"), skill="Caldari Destroyer") - - return locals() - -def effect6328(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), "kineticDamage", - src.getModifiedItemAttr("shipBonusCD1"), skill="Caldari Destroyer") - - return locals() - -def effect6329(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), - "explosiveDamage", src.getModifiedItemAttr("shipBonusCD1"), - skill="Caldari Destroyer") - - return locals() - -def effect6330(): - type = "passive" - def handler(fit, src, context): - fit.ship.boostItemAttr("shieldEmDamageResonance", src.getModifiedItemAttr("shipBonusCD2"), - skill="Caldari Destroyer") - - return locals() - -def effect6331(): - type = "passive" - def handler(fit, src, context): - fit.ship.boostItemAttr("shieldThermalDamageResonance", src.getModifiedItemAttr("shipBonusCD2"), - skill="Caldari Destroyer") - - return locals() - -def effect6332(): - type = "passive" - def handler(fit, src, context): - fit.ship.boostItemAttr("shieldKineticDamageResonance", src.getModifiedItemAttr("shipBonusCD2"), - skill="Caldari Destroyer") - - return locals() - -def effect6333(): - type = "passive" - def handler(fit, src, context): - fit.ship.boostItemAttr("shieldExplosiveDamageResonance", src.getModifiedItemAttr("shipBonusCD2"), - skill="Caldari Destroyer") - - return locals() - -def effect6334(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Information Command"), "warfareBuff1Value", - src.getModifiedItemAttr("eliteBonusCommandDestroyer1"), skill="Command Destroyers") - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Information Command"), "warfareBuff3Value", - src.getModifiedItemAttr("eliteBonusCommandDestroyer1"), skill="Command Destroyers") - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Information Command"), "warfareBuff2Value", - src.getModifiedItemAttr("eliteBonusCommandDestroyer1"), skill="Command Destroyers") - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Information Command"), "buffDuration", - src.getModifiedItemAttr("eliteBonusCommandDestroyer1"), skill="Command Destroyers") - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Information Command"), "warfareBuff4Value", - src.getModifiedItemAttr("eliteBonusCommandDestroyer1"), skill="Command Destroyers") - - return locals() - -def effect6335(): - type = "passive" - def handler(fit, src, context): - fit.ship.boostItemAttr("armorKineticDamageResonance", src.getModifiedItemAttr("shipBonusAD2"), - skill="Amarr Destroyer") - - return locals() - -def effect6336(): - type = "passive" - def handler(fit, src, context): - fit.ship.boostItemAttr("armorThermalDamageResonance", src.getModifiedItemAttr("shipBonusAD2"), - skill="Amarr Destroyer") - - return locals() - -def effect6337(): - type = "passive" - def handler(fit, src, context): - fit.ship.boostItemAttr("armorEmDamageResonance", src.getModifiedItemAttr("shipBonusAD2"), skill="Amarr Destroyer") - - return locals() - -def effect6338(): - type = "passive" - def handler(fit, src, context): - fit.ship.boostItemAttr("armorExplosiveDamageResonance", src.getModifiedItemAttr("shipBonusAD2"), - skill="Amarr Destroyer") - - return locals() - -def effect6339(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Armored Command"), "warfareBuff2Value", - src.getModifiedItemAttr("eliteBonusCommandDestroyer1"), skill="Command Destroyers") - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Armored Command"), "warfareBuff3Value", - src.getModifiedItemAttr("eliteBonusCommandDestroyer1"), skill="Command Destroyers") - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Armored Command"), "buffDuration", - src.getModifiedItemAttr("eliteBonusCommandDestroyer1"), skill="Command Destroyers") - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Armored Command"), "warfareBuff4Value", - src.getModifiedItemAttr("eliteBonusCommandDestroyer1"), skill="Command Destroyers") - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Armored Command"), "warfareBuff1Value", - src.getModifiedItemAttr("eliteBonusCommandDestroyer1"), skill="Command Destroyers") - - return locals() - -def effect6340(): - type = "passive" - def handler(fit, src, context): - fit.ship.boostItemAttr("armorKineticDamageResonance", src.getModifiedItemAttr("shipBonusGD2"), - skill="Gallente Destroyer") - - return locals() - -def effect6341(): - type = "passive" - def handler(fit, src, context): - fit.ship.boostItemAttr("armorEmDamageResonance", src.getModifiedItemAttr("shipBonusGD2"), - skill="Gallente Destroyer") - - return locals() - -def effect6342(): - type = "passive" - def handler(fit, src, context): - fit.ship.boostItemAttr("armorThermalDamageResonance", src.getModifiedItemAttr("shipBonusGD2"), - skill="Gallente Destroyer") - - return locals() - -def effect6343(): - type = "passive" - def handler(fit, src, context): - fit.ship.boostItemAttr("armorExplosiveDamageResonance", src.getModifiedItemAttr("shipBonusGD2"), - skill="Gallente Destroyer") - - return locals() - -def effect6350(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredChargeBoost( - lambda mod: mod.charge.requiresSkill("Light Missiles") or mod.charge.requiresSkill("Rockets"), "kineticDamage", - src.getModifiedItemAttr("shipBonus3CF"), skill="Caldari Frigate") - - return locals() - -def effect6351(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), "kineticDamage", - src.getModifiedItemAttr("shipBonusCC3"), skill="Caldari Cruiser") - - return locals() - -def effect6352(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Weapon Disruption"), "falloffEffectiveness", - src.getModifiedItemAttr("roleBonus")) - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Weapon Disruption"), "maxRange", - src.getModifiedItemAttr("roleBonus")) - - return locals() - -def effect6353(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Weapon Disruption"), "cpu", - src.getModifiedItemAttr("roleBonus")) - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Weapon Disruption"), "capacitorNeed", - src.getModifiedItemAttr("roleBonus")) - - return locals() - -def effect6354(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Weapon Disruption"), "trackingSpeedBonus", - src.getModifiedItemAttr("shipBonus2AF"), skill="Amarr Frigate") - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Weapon Disruption"), "explosionDelayBonus", - src.getModifiedItemAttr("shipBonus2AF"), skill="Amarr Frigate") - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Weapon Disruption"), "maxRangeBonus", - src.getModifiedItemAttr("shipBonus2AF"), skill="Amarr Frigate") - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Weapon Disruption"), "falloffBonus", - src.getModifiedItemAttr("shipBonus2AF"), skill="Amarr Frigate") - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Weapon Disruption"), "missileVelocityBonus", - src.getModifiedItemAttr("shipBonus2AF"), skill="Amarr Frigate") - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Weapon Disruption"), "aoeVelocityBonus", - src.getModifiedItemAttr("shipBonus2AF"), skill="Amarr Frigate") - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Weapon Disruption"), "aoeCloudSizeBonus", - src.getModifiedItemAttr("shipBonus2AF"), skill="Amarr Frigate") - - return locals() - -def effect6355(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "ECM", "capacitorNeed", - src.getModifiedItemAttr("roleBonus")) - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "ECM", "cpu", src.getModifiedItemAttr("roleBonus")) - - return locals() - -def effect6356(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "ECM", "falloffEffectiveness", - src.getModifiedItemAttr("roleBonus")) - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "ECM", "maxRange", - src.getModifiedItemAttr("roleBonus")) - - return locals() - -def effect6357(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Navigation"), "maxRange", - src.getModifiedItemAttr("shipBonusGF2"), skill="Gallente Frigate") - - return locals() - -def effect6358(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemIncrease(lambda mod: mod.item.requiresSkill("Navigation"), - "warpScrambleStrength", ship.getModifiedItemAttr("roleBonus")) - - return locals() - -def effect6359(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Rockets"), "aoeVelocity", - src.getModifiedItemAttr("shipBonusMF"), skill="Minmatar Frigate") - - return locals() - -def effect6360(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Rockets"), "emDamage", - src.getModifiedItemAttr("shipBonusMF2"), skill="Minmatar Frigate") - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Rockets"), "thermalDamage", - src.getModifiedItemAttr("shipBonusMF2"), skill="Minmatar Frigate") - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Rockets"), "kineticDamage", - src.getModifiedItemAttr("shipBonusMF2"), skill="Minmatar Frigate") - - return locals() - -def effect6361(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Rockets"), "explosiveDamage", - src.getModifiedItemAttr("shipBonus3MF"), skill="Minmatar Frigate") - - return locals() - -def effect6362(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Stasis Web", "maxRange", - src.getModifiedItemAttr("roleBonus")) - - return locals() - -def effect6368(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Remote Shield Booster", "falloffEffectiveness", - src.getModifiedItemAttr("falloffBonus")) - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Ancillary Remote Shield Booster", - "falloffEffectiveness", src.getModifiedItemAttr("falloffBonus")) - - return locals() - -def effect6369(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Emission Systems"), "falloffEffectiveness", - src.getModifiedItemAttr("shipBonusMC2"), skill="Minmatar Cruiser") - - return locals() - -def effect6370(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Emission Systems"), "falloffEffectiveness", - src.getModifiedItemAttr("shipBonusCC"), skill="Caldari Cruiser") - - return locals() - -def effect6371(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Remote Armor Repair Systems"), - "falloffEffectiveness", src.getModifiedItemAttr("shipBonusGC"), - skill="Gallente Cruiser") - - return locals() - -def effect6372(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Remote Armor Repair Systems"), - "falloffEffectiveness", src.getModifiedItemAttr("shipBonusAC2"), - skill="Amarr Cruiser") - - return locals() - -def effect6373(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Remote Armor Repairer", "falloffEffectiveness", - src.getModifiedItemAttr("falloffBonus")) - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Ancillary Remote Armor Repairer", - "falloffEffectiveness", src.getModifiedItemAttr("falloffBonus")) - - return locals() - -def effect6374(): - type = "passive" - def handler(fit, src, context): - fit.drones.filteredItemBoost(lambda drone: drone.item.group.name == "Logistic Drone", "structureDamageAmount", - src.getModifiedItemAttr("droneArmorDamageAmountBonus")) - - return locals() - -def effect6377(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Remote Armor Repair Systems"), "capacitorNeed", - src.getModifiedItemAttr("eliteBonusLogiFrig1"), skill="Logistics Frigates") - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Remote Armor Repair Systems"), "duration", - src.getModifiedItemAttr("eliteBonusLogiFrig1"), skill="Logistics Frigates") - - return locals() - -def effect6378(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Emission Systems"), "duration", - src.getModifiedItemAttr("eliteBonusLogiFrig1"), skill="Logistics Frigates") - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Emission Systems"), "capacitorNeed", - src.getModifiedItemAttr("eliteBonusLogiFrig1"), skill="Logistics Frigates") - - return locals() - -def effect6379(): - type = "passive" - def handler(fit, src, context): - fit.ship.boostItemAttr("armorHP", src.getModifiedItemAttr("eliteBonusLogiFrig2"), skill="Logistics Frigates") - - return locals() - -def effect6380(): - type = "passive" - def handler(fit, src, context): - fit.ship.boostItemAttr("shieldCapacity", src.getModifiedItemAttr("eliteBonusLogiFrig2"), skill="Logistics Frigates") - - return locals() - -def effect6381(): - type = "passive" - def handler(fit, src, context): - fit.ship.boostItemAttr("signatureRadius", src.getModifiedItemAttr("eliteBonusLogiFrig2"), - skill="Logistics Frigates") - - return locals() - -def effect6384(): - type = "overheat" - def handler(fit, module, context): - for tgtAttr in ( - "aoeCloudSizeBonus", - "explosionDelayBonus", - "missileVelocityBonus", - "aoeVelocityBonus" - ): - module.boostItemAttr(tgtAttr, module.getModifiedItemAttr("overloadTrackingModuleStrengthBonus")) - - return locals() - -def effect6385(): - type = "passive" - runTime = "early" - def handler(fit, src, context): - fit.modules.filteredItemForce(lambda mod: mod.item.group.name == "Cloaking Device", - "maxVelocityModifier", src.getModifiedItemAttr("velocityPenaltyReduction")) - - return locals() - -def effect6386(): - type = "passive" - def handler(fit, src, context): - level = src.level if "skill" in context else 1 - for attr in ( - "explosionDelayBonus", - "aoeVelocityBonus", - "aoeCloudSizeBonus", - "missileVelocityBonus" - ): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Weapon Disruption"), - attr, src.getModifiedItemAttr("scanSkillEwStrengthBonus") * level) - - return locals() - -def effect6395(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Weapon Disruption"), "missileVelocityBonus", - src.getModifiedItemAttr("shipBonusAC"), skill="Amarr Cruiser") - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Weapon Disruption"), "aoeVelocityBonus", - src.getModifiedItemAttr("shipBonusAC"), skill="Amarr Cruiser") - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Weapon Disruption"), "maxRangeBonus", - src.getModifiedItemAttr("shipBonusAC"), skill="Amarr Cruiser") - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Weapon Disruption"), "explosionDelayBonus", - src.getModifiedItemAttr("shipBonusAC"), skill="Amarr Cruiser") - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Weapon Disruption"), "aoeCloudSizeBonus", - src.getModifiedItemAttr("shipBonusAC"), skill="Amarr Cruiser") - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Weapon Disruption"), "trackingSpeedBonus", - src.getModifiedItemAttr("shipBonusAC"), skill="Amarr Cruiser") - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Weapon Disruption"), "falloffBonus", - src.getModifiedItemAttr("shipBonusAC"), skill="Amarr Cruiser") - - return locals() - -def effect6396(): - type = "passive", "structure" - def handler(fit, src, context): - groups = ("Structure Anti-Capital Missile", "Structure Anti-Subcapital Missile", "Structure Guided Bomb") - for damageType in ("em", "thermal", "explosive", "kinetic"): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.group.name in groups, - "%sDamage" % damageType, src.getModifiedItemAttr("damageMultiplierBonus"), - skill="Structure Missile Systems") - - return locals() - -def effect6400(): - type = "passive", "structure" - def handler(fit, src, context): - groups = ("Structure Warp Scrambler", "Structure Disruption Battery", "Structure Stasis Webifier") - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name in groups, - "capacitorNeed", src.getModifiedItemAttr("capNeedBonus"), - skill="Structure Electronic Systems") - - return locals() - -def effect6401(): - type = "passive", "structure" - def handler(fit, src, context): - groups = ("Structure Energy Neutralizer", "Structure Area Denial Module") - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name in groups, - "capacitorNeed", src.getModifiedItemAttr("capNeedBonus"), - skill="Structure Engineering Systems") - - return locals() - -def effect6402(): - type = "passive" - def handler(fit, src, context): - groups = ("Structure Anti-Subcapital Missile", "Structure Anti-Capital Missile") - fit.modules.filteredChargeBoost(lambda mod: mod.charge.group.name in groups, - "aoeVelocity", src.getModifiedItemAttr("structureRigMissileExploVeloBonus"), - stackingPenalties=True) - - return locals() - -def effect6403(): - type = "passive" - def handler(fit, src, context): - groups = ("Structure Anti-Subcapital Missile", "Structure Anti-Capital Missile") - fit.modules.filteredChargeBoost(lambda mod: mod.charge.group.name in groups, - "maxVelocity", src.getModifiedItemAttr("structureRigMissileVelocityBonus"), - stackingPenalties=True) - - return locals() - -def effect6404(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Structure Energy Neutralizer", - "maxRange", src.getModifiedItemAttr("structureRigEwarOptimalBonus"), - stackingPenalties=True) - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Structure Energy Neutralizer", - "falloffEffectiveness", src.getModifiedItemAttr("structureRigEwarFalloffBonus"), - stackingPenalties=True) - - return locals() - -def effect6405(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Structure Energy Neutralizer", - "capacitorNeed", src.getModifiedItemAttr("structureRigEwarCapUseBonus"), - stackingPenalties=True) - - return locals() - -def effect6406(): - type = "passive" - def handler(fit, src, context): - groups = ("Structure ECM Battery", "Structure Disruption Battery") - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name in groups, - "falloff", src.getModifiedItemAttr("structureRigEwarFalloffBonus"), - stackingPenalties=True) - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name in groups, - "maxRange", src.getModifiedItemAttr("structureRigEwarOptimalBonus"), - stackingPenalties=True) - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name in groups, - "falloffEffectiveness", src.getModifiedItemAttr("structureRigEwarFalloffBonus"), - stackingPenalties=True) - - return locals() - -def effect6407(): - type = "passive" - def handler(fit, src, context): - groups = ("Structure ECM Battery", "Structure Disruption Battery") - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name in groups, - "capacitorNeed", src.getModifiedItemAttr("structureRigEwarCapUseBonus"), - stackingPenalties=True) - - return locals() - -def effect6408(): - type = "passive" - def handler(fit, src, context): - fit.extraAttributes.increase("maxTargetsLockedFromSkills", src.getModifiedItemAttr("structureRigMaxTargetBonus")) - - return locals() - -def effect6409(): - type = "passive" - def handler(fit, src, context): - fit.ship.boostItemAttr("scanResolution", src.getModifiedItemAttr("structureRigScanResBonus"), - stackingPenalties=True) - - return locals() - -def effect6410(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.group.name == "Structure Guided Bomb", - "aoeCloudSize", src.getModifiedItemAttr("structureRigMissileExplosionRadiusBonus"), - stackingPenalties=True) - - return locals() - -def effect6411(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.group.name == "Structure Guided Bomb", - "maxVelocity", src.getModifiedItemAttr("structureRigMissileVelocityBonus"), - stackingPenalties=True) - - return locals() - -def effect6412(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Structure Area Denial Module", - "empFieldRange", src.getModifiedItemAttr("structureRigPDRangeBonus"), - stackingPenalties=True) - - return locals() - -def effect6413(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Structure Area Denial Module", - "capacitorNeed", src.getModifiedItemAttr("structureRigPDCapUseBonus"), - stackingPenalties=True) - - return locals() - -def effect6417(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemIncrease(lambda mod: mod.item.group.name == "Structure Doomsday Weapon", - "lightningWeaponDamageLossTarget", - src.getModifiedItemAttr("structureRigDoomsdayDamageLossTargetBonus")) - - return locals() - -def effect6422(): - type = "projected", "active" - def handler(fit, module, context, *args, **kwargs): - if "projected" not in context: - return - fit.ship.boostItemAttr("maxTargetRange", module.getModifiedItemAttr("maxTargetRangeBonus"), - stackingPenalties=True, *args, **kwargs) - fit.ship.boostItemAttr("scanResolution", module.getModifiedItemAttr("scanResolutionBonus"), - stackingPenalties=True, *args, **kwargs) - - return locals() - -def effect6423(): - type = "active", "projected" - def handler(fit, module, context, *args, **kwargs): - if "projected" in context: - for srcAttr, tgtAttr in ( - ("aoeCloudSizeBonus", "aoeCloudSize"), - ("aoeVelocityBonus", "aoeVelocity"), - ("missileVelocityBonus", "maxVelocity"), - ("explosionDelayBonus", "explosionDelay"), - ): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), - tgtAttr, module.getModifiedItemAttr(srcAttr), - stackingPenalties=True, *args, **kwargs) - - return locals() - -def effect6424(): - type = "projected", "active" - def handler(fit, module, context, *args, **kwargs): - if "projected" in context: - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Gunnery"), - "trackingSpeed", module.getModifiedItemAttr("trackingSpeedBonus"), - stackingPenalties=True, *args, **kwargs) - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Gunnery"), - "maxRange", module.getModifiedItemAttr("maxRangeBonus"), - stackingPenalties=True, *args, **kwargs) - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Gunnery"), - "falloff", module.getModifiedItemAttr("falloffBonus"), - stackingPenalties=True, *args, **kwargs) - - return locals() - -def effect6425(): - type = "projected", "active" - def handler(fit, container, context, *args, **kwargs): - if "projected" in context: - fit.ship.boostItemAttr("signatureRadius", container.getModifiedItemAttr("signatureRadiusBonus"), - stackingPenalties=True, *args, **kwargs) - - return locals() - -def effect6426(): - type = "active", "projected" - def handler(fit, module, context, *args, **kwargs): - if "projected" not in context: - return - fit.ship.boostItemAttr("maxVelocity", module.getModifiedItemAttr("speedFactor"), - stackingPenalties=True, *args, **kwargs) - - return locals() - -def effect6427(): - type = "projected", "active" - def handler(fit, module, context): - if "projected" not in context: - return - fit.ship.boostItemAttr("maxTargetRange", module.getModifiedItemAttr("maxTargetRangeBonus"), - stackingPenalties=True) - fit.ship.boostItemAttr("scanResolution", module.getModifiedItemAttr("scanResolutionBonus"), - stackingPenalties=True) - for scanType in ("Gravimetric", "Magnetometric", "Radar", "Ladar"): - fit.ship.boostItemAttr( - "scan{}Strength".format(scanType), - module.getModifiedItemAttr("scan{}StrengthPercent".format(scanType)), - stackingPenalties=True - ) - - return locals() - -def effect6428(): - type = "projected", "active" - def handler(fit, module, context, **kwargs): - if "projected" in context: - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Gunnery"), - "trackingSpeed", module.getModifiedItemAttr("trackingSpeedBonus"), - stackingPenalties=True, **kwargs) - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Gunnery"), - "maxRange", module.getModifiedItemAttr("maxRangeBonus"), - stackingPenalties=True, **kwargs) - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Gunnery"), - "falloff", module.getModifiedItemAttr("falloffBonus"), - stackingPenalties=True, **kwargs) - - return locals() - -def effect6431(): - """ - Since fighter abilities do not have any sort of item entity in the EVE database, we must derive the abilities from the - effects, and thus this effect file contains some custom information useful only to fighters. - """ - displayName = "Missile Attack" - prefix = "fighterAbilityMissiles" - type = "active" - hasCharges = True - def handler(fit, src, context): - pass - - return locals() - -def effect6434(): - """ - Since fighter abilities do not have any sort of item entity in the EVE database, we must derive the abilities from the - effects, and thus this effect file contains some custom information useful only to fighters. - """ - from eos.modifiedAttributeDict import ModifiedAttributeDict - displayName = "Energy Neutralizer" - prefix = "fighterAbilityEnergyNeutralizer" - type = "active", "projected" - grouped = True - def handler(fit, src, context, **kwargs): - if "projected" in context: - amount = src.getModifiedItemAttr("{}Amount".format(prefix)) * src.amountActive - time = src.getModifiedItemAttr("{}Duration".format(prefix)) - if 'effect' in kwargs: - amount *= ModifiedAttributeDict.getResistance(fit, kwargs['effect']) - fit.addDrain(src, time, amount, 0) - - return locals() - -def effect6435(): - """ - Since fighter abilities do not have any sort of item entity in the EVE database, we must derive the abilities from the - effects, and thus this effect file contains some custom information useful only to fighters. - """ - displayName = "Stasis Webifier" - prefix = "fighterAbilityStasisWebifier" - type = "active", "projected" - grouped = True - def handler(fit, src, context): - if "projected" not in context: - return - fit.ship.boostItemAttr("maxVelocity", src.getModifiedItemAttr("{}SpeedPenalty".format(prefix)) * src.amountActive, - stackingPenalties=True) - - return locals() - -def effect6436(): - """ - Since fighter abilities do not have any sort of item entity in the EVE database, we must derive the abilities from the - effects, and thus this effect file contains some custom information useful only to fighters. - """ - displayName = "Warp Disruption" - prefix = "fighterAbilityWarpDisruption" - type = "active", "projected" - grouped = True - def handler(fit, src, context): - if "projected" not in context: - return - fit.ship.increaseItemAttr("warpScrambleStatus", src.getModifiedItemAttr("{}PointStrength".format(prefix)) * src.amountActive) - - return locals() - -def effect6437(): - """ - Since fighter abilities do not have any sort of item entity in the EVE database, we must derive the abilities from the - effects, and thus this effect file contains some custom information useful only to fighters. - """ - from eos.modifiedAttributeDict import ModifiedAttributeDict - displayName = "ECM" - prefix = "fighterAbilityECM" - type = "projected", "active" - grouped = True - def handler(fit, module, context, **kwargs): - if "projected" not in context: - return - strModifier = 1 - (module.getModifiedItemAttr("{}Strength{}".format(prefix, fit.scanType)) * module.amountActive) / fit.scanStrength - if 'effect' in kwargs: - strModifier *= ModifiedAttributeDict.getResistance(fit, kwargs['effect']) - fit.ecmProjectedStr *= strModifier - - return locals() - -def effect6439(): - """ - Since fighter abilities do not have any sort of item entity in the EVE database, we must derive the abilities from the - effects, and thus this effect file contains some custom information useful only to fighters. - """ - displayName = "Evasive Maneuvers" - prefix = "fighterAbilityEvasiveManeuvers" - grouped = True - type = "active" - runTime = "late" - def handler(fit, container, context): - container.boostItemAttr("maxVelocity", - container.getModifiedItemAttr("fighterAbilityEvasiveManeuversSpeedBonus")) - container.boostItemAttr("signatureRadius", - container.getModifiedItemAttr("fighterAbilityEvasiveManeuversSignatureRadiusBonus"), - stackingPenalties=True) - container.multiplyItemAttr("shieldEmDamageResonance", - container.getModifiedItemAttr("fighterAbilityEvasiveManeuversEmResonance"), - stackingPenalties=True) - container.multiplyItemAttr("shieldThermalDamageResonance", - container.getModifiedItemAttr("fighterAbilityEvasiveManeuversThermResonance"), - stackingPenalties=True) - container.multiplyItemAttr("shieldKineticDamageResonance", - container.getModifiedItemAttr("fighterAbilityEvasiveManeuversKinResonance"), - stackingPenalties=True) - container.multiplyItemAttr("shieldExplosiveDamageResonance", - container.getModifiedItemAttr("fighterAbilityEvasiveManeuversExpResonance"), - stackingPenalties=True) - - return locals() - -def effect6441(): - """ - Since fighter abilities do not have any sort of item entity in the EVE database, we must derive the abilities from the - effects, and thus this effect file contains some custom information useful only to fighters. - """ - displayName = "Microwarpdrive" - grouped = True - type = "active" - runTime = "late" - def handler(fit, module, context): - module.boostItemAttr("maxVelocity", module.getModifiedItemAttr("fighterAbilityMicroWarpDriveSpeedBonus"), - stackingPenalties=True) - module.boostItemAttr("signatureRadius", - module.getModifiedItemAttr("fighterAbilityMicroWarpDriveSignatureRadiusBonus"), - stackingPenalties=True) - - return locals() - -def effect6443(): - type = 'active' - def handler(fit, module, context): - pass - - return locals() - -def effect6447(): - type = 'active' - def handler(fit, module, context): - pass - - return locals() - -def effect6448(): - type = "passive" - def handler(fit, container, context): - missileGroups = ("Structure Anti-Capital Missile", "Structure Anti-Subcapital Missile") - for srcAttr, tgtAttr in ( - ("aoeCloudSizeBonus", "aoeCloudSize"), - ("aoeVelocityBonus", "aoeVelocity"), - ("missileVelocityBonus", "maxVelocity"), - ("explosionDelayBonus", "explosionDelay"), - ): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.group.name in missileGroups, - tgtAttr, container.getModifiedItemAttr(srcAttr), - stackingPenalties=True) - - return locals() - -def effect6449(): - type = "passive" - def handler(fit, module, context): - missileGroups = ("Structure Anti-Capital Missile", "Structure Anti-Subcapital Missile") - for dmgType in ("em", "kinetic", "explosive", "thermal"): - fit.modules.filteredChargeMultiply(lambda mod: mod.charge.group.name in missileGroups, - "%sDamage" % dmgType, - module.getModifiedItemAttr("missileDamageMultiplierBonus"), - stackingPenalties=True) - launcherGroups = ("Structure XL Missile Launcher", "Structure Multirole Missile Launcher") - fit.modules.filteredItemMultiply(lambda mod: mod.item.group.name in launcherGroups, - "speed", module.getModifiedItemAttr("speedMultiplier"), - stackingPenalties=True) - - return locals() - -def effect6465(): - """ - Since fighter abilities do not have any sort of item entity in the EVE database, we must derive the abilities from the - effects, and thus this effect file contains some custom information useful only to fighters. - """ - displayName = "Turret Attack" - prefix = "fighterAbilityAttackMissile" - type = "active" - def handler(fit, src, context): - pass - - return locals() - -def effect6470(): - from eos.modifiedAttributeDict import ModifiedAttributeDict - type = "projected", "active" - def handler(fit, module, context, **kwargs): - if "projected" in context: - strModifier = 1 - module.getModifiedItemAttr("scan{0}StrengthBonus".format(fit.scanType)) / fit.scanStrength - if 'effect' in kwargs: - strModifier *= ModifiedAttributeDict.getResistance(fit, kwargs['effect']) - fit.ecmProjectedStr *= strModifier - - return locals() - -def effect6472(): - type = "active" - def handler(fit, src, context): - pass - - return locals() - -def effect6473(): - type = "active" - def handler(fit, src, context): - pass - - return locals() - -def effect6474(): - type = "active" - def handler(fit, src, context): - pass - - return locals() - -def effect6475(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemIncrease(lambda mod: mod.item.group.name == "Structure Doomsday Weapon", - "lightningWeaponTargetAmount", - src.getModifiedItemAttr("structureRigDoomsdayTargetAmountBonus")) - - return locals() - -def effect6476(): - type = "active", "projected" - def handler(fit, module, context, *args, **kwargs): - if "projected" not in context: - return - fit.ship.boostItemAttr("maxVelocity", module.getModifiedItemAttr("speedFactor"), - stackingPenalties=True, *args, **kwargs) - - return locals() - -def effect6477(): - from eos.saveddata.module import State - from eos.modifiedAttributeDict import ModifiedAttributeDict - type = "active", "projected" - def handler(fit, src, context, **kwargs): - if "projected" in context and ((hasattr(src, "state") and src.state >= State.ACTIVE) or - hasattr(src, "amountActive")): - amount = src.getModifiedItemAttr("energyNeutralizerAmount") - if 'effect' in kwargs: - amount *= ModifiedAttributeDict.getResistance(fit, kwargs['effect']) - time = src.getModifiedItemAttr("duration") - fit.addDrain(src, time, amount, 0) - - return locals() - -def effect6478(): - type = "projected", "active" - def handler(fit, container, context, *args, **kwargs): - if "projected" in context: - fit.ship.boostItemAttr("signatureRadius", container.getModifiedItemAttr("signatureRadiusBonus"), - stackingPenalties=True, *args, **kwargs) - - return locals() - -def effect6479(): - type = "active", "projected" - def handler(fit, module, context, *args, **kwargs): - if "projected" in context: - for srcAttr, tgtAttr in ( - ("aoeCloudSizeBonus", "aoeCloudSize"), - ("aoeVelocityBonus", "aoeVelocity"), - ("missileVelocityBonus", "maxVelocity"), - ("explosionDelayBonus", "explosionDelay"), - ): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), - tgtAttr, module.getModifiedItemAttr(srcAttr), - stackingPenalties=True, *args, **kwargs) - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Gunnery"), - "trackingSpeed", module.getModifiedItemAttr("trackingSpeedBonus"), - stackingPenalties=True, *args, **kwargs) - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Gunnery"), - "maxRange", module.getModifiedItemAttr("maxRangeBonus"), - stackingPenalties=True, *args, **kwargs) - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Gunnery"), - "falloff", module.getModifiedItemAttr("falloffBonus"), - stackingPenalties=True, *args, **kwargs) - - return locals() - -def effect6481(): - type = "projected", "active" - def handler(fit, module, context, *args, **kwargs): - if "projected" not in context: - return - fit.ship.boostItemAttr("maxTargetRange", module.getModifiedItemAttr("maxTargetRangeBonus"), - stackingPenalties=True, *args, **kwargs) - fit.ship.boostItemAttr("scanResolution", module.getModifiedItemAttr("scanResolutionBonus"), - stackingPenalties=True, *args, **kwargs) - - return locals() - -def effect6482(): - type = "projected", "active" - def handler(fit, module, context): - return - - return locals() - -def effect6484(): - type = "active" - runtime = "late" - def handler(fit, src, context): - for dmgType in ('em', 'thermal', 'kinetic', 'explosive'): - fit.ship.multiplyItemAttr('{}DamageResonance'.format(dmgType), - src.getModifiedItemAttr("hull{}DamageResonance".format(dmgType.title())), - stackingPenalties=True, penaltyGroup="postMul") - - return locals() - -def effect6485(): - """ - Since fighter abilities do not have any sort of item entity in the EVE database, we must derive the abilities from the - effects, and thus this effect file contains some custom information useful only to fighters. - """ - displayName = "Bomb" - prefix = "fighterAbilityLaunchBomb" - type = "active" - hasCharges = True - def handler(fit, src, context): - pass - - return locals() - -def effect6487(): - type = "passive" - def handler(fit, module, context): - fit.ship.boostItemAttr("energyWarfareResistance", - module.getModifiedItemAttr("energyWarfareResistanceBonus"), - stackingPenalties=True) - - return locals() - -def effect6488(): - type = "active" - def handler(fit, module, context): - for scanType in ("Gravimetric", "Magnetometric", "Radar", "Ladar"): - module.boostItemAttr("scan{}StrengthPercent".format(scanType), - module.getModifiedChargeAttr("sensorStrengthBonusBonus")) - - return locals() - -def effect6501(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capital Energy Turret"), "damageMultiplier", - src.getModifiedItemAttr("shipBonusDreadnoughtA1"), skill="Amarr Dreadnought") - - return locals() - -def effect6502(): - type = "passive" - def handler(fit, src, context): - fit.ship.boostItemAttr("armorExplosiveDamageResonance", src.getModifiedItemAttr("shipBonusDreadnoughtA2"), - skill="Amarr Dreadnought") - fit.ship.boostItemAttr("armorEmDamageResonance", src.getModifiedItemAttr("shipBonusDreadnoughtA2"), - skill="Amarr Dreadnought") - fit.ship.boostItemAttr("armorThermalDamageResonance", src.getModifiedItemAttr("shipBonusDreadnoughtA2"), - skill="Amarr Dreadnought") - fit.ship.boostItemAttr("armorKineticDamageResonance", src.getModifiedItemAttr("shipBonusDreadnoughtA2"), - skill="Amarr Dreadnought") - - return locals() - -def effect6503(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capital Energy Turret"), "capacitorNeed", - src.getModifiedItemAttr("shipBonusDreadnoughtA3"), skill="Amarr Dreadnought") - - return locals() - -def effect6504(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("XL Torpedoes"), "thermalDamage", - src.getModifiedItemAttr("shipBonusDreadnoughtC1"), skill="Caldari Dreadnought") - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("XL Cruise Missiles"), "kineticDamage", - src.getModifiedItemAttr("shipBonusDreadnoughtC1"), skill="Caldari Dreadnought") - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Torpedoes"), "emDamage", - src.getModifiedItemAttr("shipBonusDreadnoughtC1"), skill="Caldari Dreadnought") - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Torpedoes"), "explosiveDamage", - src.getModifiedItemAttr("shipBonusDreadnoughtC1"), skill="Caldari Dreadnought") - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("XL Cruise Missiles"), "explosiveDamage", - src.getModifiedItemAttr("shipBonusDreadnoughtC1"), skill="Caldari Dreadnought") - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("XL Cruise Missiles"), "thermalDamage", - src.getModifiedItemAttr("shipBonusDreadnoughtC1"), skill="Caldari Dreadnought") - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Torpedoes"), "thermalDamage", - src.getModifiedItemAttr("shipBonusDreadnoughtC1"), skill="Caldari Dreadnought") - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("XL Torpedoes"), "emDamage", - src.getModifiedItemAttr("shipBonusDreadnoughtC1"), skill="Caldari Dreadnought") - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Torpedoes"), "kineticDamage", - src.getModifiedItemAttr("shipBonusDreadnoughtC1"), skill="Caldari Dreadnought") - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("XL Torpedoes"), "kineticDamage", - src.getModifiedItemAttr("shipBonusDreadnoughtC1"), skill="Caldari Dreadnought") - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("XL Torpedoes"), "explosiveDamage", - src.getModifiedItemAttr("shipBonusDreadnoughtC1"), skill="Caldari Dreadnought") - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("XL Cruise Missiles"), "emDamage", - src.getModifiedItemAttr("shipBonusDreadnoughtC1"), skill="Caldari Dreadnought") - - return locals() - -def effect6505(): - type = "passive" - def handler(fit, src, context): - fit.ship.boostItemAttr("shieldThermalDamageResonance", src.getModifiedItemAttr("shipBonusDreadnoughtC2"), - skill="Caldari Dreadnought") - fit.ship.boostItemAttr("shieldKineticDamageResonance", src.getModifiedItemAttr("shipBonusDreadnoughtC2"), - skill="Caldari Dreadnought") - fit.ship.boostItemAttr("shieldEmDamageResonance", src.getModifiedItemAttr("shipBonusDreadnoughtC2"), - skill="Caldari Dreadnought") - fit.ship.boostItemAttr("shieldExplosiveDamageResonance", src.getModifiedItemAttr("shipBonusDreadnoughtC2"), - skill="Caldari Dreadnought") - - return locals() - -def effect6506(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capital Hybrid Turret"), "damageMultiplier", - src.getModifiedItemAttr("shipBonusDreadnoughtG1"), skill="Gallente Dreadnought") - - return locals() - -def effect6507(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capital Hybrid Turret"), "speed", - src.getModifiedItemAttr("shipBonusDreadnoughtG2"), skill="Gallente Dreadnought") - - return locals() - -def effect6508(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capital Repair Systems"), "duration", - src.getModifiedItemAttr("shipBonusDreadnoughtG3"), skill="Gallente Dreadnought") - - return locals() - -def effect6509(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capital Projectile Turret"), "damageMultiplier", - src.getModifiedItemAttr("shipBonusDreadnoughtM1"), skill="Minmatar Dreadnought") - - return locals() - -def effect6510(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capital Projectile Turret"), "speed", - src.getModifiedItemAttr("shipBonusDreadnoughtM2"), skill="Minmatar Dreadnought") - - return locals() - -def effect6511(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capital Shield Operation"), "duration", - src.getModifiedItemAttr("shipBonusDreadnoughtM2"), skill="Minmatar Dreadnought") - - return locals() - -def effect6513(): - from eos.modifiedAttributeDict import ModifiedAttributeDict - type = "projected", "active" - def handler(fit, module, context, **kwargs): - if "projected" in context: - strModifier = 1 - module.getModifiedItemAttr("scan{0}StrengthBonus".format(fit.scanType)) / fit.scanStrength - if 'effect' in kwargs: - strModifier *= ModifiedAttributeDict.getResistance(fit, kwargs['effect']) - fit.ecmProjectedStr *= strModifier - - return locals() - -def effect6526(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capacitor Emission Systems") or - mod.item.requiresSkill("Capital Capacitor Emission Systems"), - "powerTransferAmount", src.getModifiedItemAttr("shipBonusForceAuxiliaryA1"), - skill="Amarr Carrier") - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Remote Armor Repair Systems") or - mod.item.requiresSkill("Capital Remote Armor Repair Systems"), - "armorDamageAmount", src.getModifiedItemAttr("shipBonusForceAuxiliaryA1"), - skill="Amarr Carrier") - - return locals() - -def effect6527(): - type = "passive" - def handler(fit, src, context): - fit.ship.boostItemAttr("armorKineticDamageResonance", src.getModifiedItemAttr("shipBonusForceAuxiliaryA2"), - skill="Amarr Carrier") - fit.ship.boostItemAttr("armorExplosiveDamageResonance", src.getModifiedItemAttr("shipBonusForceAuxiliaryA2"), - skill="Amarr Carrier") - fit.ship.boostItemAttr("armorEmDamageResonance", src.getModifiedItemAttr("shipBonusForceAuxiliaryA2"), - skill="Amarr Carrier") - fit.ship.boostItemAttr("armorThermalDamageResonance", src.getModifiedItemAttr("shipBonusForceAuxiliaryA2"), - skill="Amarr Carrier") - - return locals() - -def effect6533(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Armored Command") or - mod.item.requiresSkill("Information Command"), - "warfareBuff4Value", src.getModifiedItemAttr("shipBonusForceAuxiliaryA4"), skill="Amarr Carrier") - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Armored Command") or - mod.item.requiresSkill("Information Command"), - "warfareBuff3Value", src.getModifiedItemAttr("shipBonusForceAuxiliaryA4"), skill="Amarr Carrier") - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Armored Command") or - mod.item.requiresSkill("Information Command"), - "warfareBuff1Value", src.getModifiedItemAttr("shipBonusForceAuxiliaryA4"), skill="Amarr Carrier") - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Armored Command") or - mod.item.requiresSkill("Information Command"), - "buffDuration", src.getModifiedItemAttr("shipBonusForceAuxiliaryA4"), skill="Amarr Carrier") - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Armored Command") or - mod.item.requiresSkill("Information Command"), - "warfareBuff2Value", src.getModifiedItemAttr("shipBonusForceAuxiliaryA4"), skill="Amarr Carrier") - - return locals() - -def effect6534(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost( - lambda mod: mod.item.requiresSkill("Skirmish Command") or mod.item.requiresSkill("Shield Command"), - "warfareBuff3Value", src.getModifiedItemAttr("shipBonusForceAuxiliaryM4"), skill="Minmatar Carrier") - fit.modules.filteredItemBoost( - lambda mod: mod.item.requiresSkill("Skirmish Command") or mod.item.requiresSkill("Shield Command"), - "warfareBuff2Value", src.getModifiedItemAttr("shipBonusForceAuxiliaryM4"), skill="Minmatar Carrier") - fit.modules.filteredItemBoost( - lambda mod: mod.item.requiresSkill("Skirmish Command") or mod.item.requiresSkill("Shield Command"), - "warfareBuff1Value", src.getModifiedItemAttr("shipBonusForceAuxiliaryM4"), skill="Minmatar Carrier") - fit.modules.filteredItemBoost( - lambda mod: mod.item.requiresSkill("Skirmish Command") or mod.item.requiresSkill("Shield Command"), - "buffDuration", src.getModifiedItemAttr("shipBonusForceAuxiliaryM4"), skill="Minmatar Carrier") - fit.modules.filteredItemBoost( - lambda mod: mod.item.requiresSkill("Skirmish Command") or mod.item.requiresSkill("Shield Command"), - "warfareBuff4Value", src.getModifiedItemAttr("shipBonusForceAuxiliaryM4"), skill="Minmatar Carrier") - - return locals() - -def effect6535(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost( - lambda mod: mod.item.requiresSkill("Skirmish Command") or mod.item.requiresSkill("Armored Command"), - "warfareBuff3Value", src.getModifiedItemAttr("shipBonusForceAuxiliaryG4"), skill="Gallente Carrier") - fit.modules.filteredItemBoost( - lambda mod: mod.item.requiresSkill("Skirmish Command") or mod.item.requiresSkill("Armored Command"), - "warfareBuff4Value", src.getModifiedItemAttr("shipBonusForceAuxiliaryG4"), skill="Gallente Carrier") - fit.modules.filteredItemBoost( - lambda mod: mod.item.requiresSkill("Skirmish Command") or mod.item.requiresSkill("Armored Command"), - "buffDuration", src.getModifiedItemAttr("shipBonusForceAuxiliaryG4"), skill="Gallente Carrier") - fit.modules.filteredItemBoost( - lambda mod: mod.item.requiresSkill("Skirmish Command") or mod.item.requiresSkill("Armored Command"), - "warfareBuff2Value", src.getModifiedItemAttr("shipBonusForceAuxiliaryG4"), skill="Gallente Carrier") - fit.modules.filteredItemBoost( - lambda mod: mod.item.requiresSkill("Skirmish Command") or mod.item.requiresSkill("Armored Command"), - "warfareBuff1Value", src.getModifiedItemAttr("shipBonusForceAuxiliaryG4"), skill="Gallente Carrier") - - return locals() - -def effect6536(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost( - lambda mod: mod.item.requiresSkill("Shield Command") or mod.item.requiresSkill("Information Command"), - "warfareBuff3Value", src.getModifiedItemAttr("shipBonusForceAuxiliaryC4"), skill="Caldari Carrier") - fit.modules.filteredItemBoost( - lambda mod: mod.item.requiresSkill("Shield Command") or mod.item.requiresSkill("Information Command"), - "warfareBuff4Value", src.getModifiedItemAttr("shipBonusForceAuxiliaryC4"), skill="Caldari Carrier") - fit.modules.filteredItemBoost( - lambda mod: mod.item.requiresSkill("Shield Command") or mod.item.requiresSkill("Information Command"), - "warfareBuff2Value", src.getModifiedItemAttr("shipBonusForceAuxiliaryC4"), skill="Caldari Carrier") - fit.modules.filteredItemBoost( - lambda mod: mod.item.requiresSkill("Shield Command") or mod.item.requiresSkill("Information Command"), - "buffDuration", src.getModifiedItemAttr("shipBonusForceAuxiliaryC4"), skill="Caldari Carrier") - fit.modules.filteredItemBoost( - lambda mod: mod.item.requiresSkill("Shield Command") or mod.item.requiresSkill("Information Command"), - "warfareBuff1Value", src.getModifiedItemAttr("shipBonusForceAuxiliaryC4"), skill="Caldari Carrier") - - return locals() - -def effect6537(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Leadership"), "cpu", - src.getModifiedItemAttr("shipBonusRole1")) - - return locals() - -def effect6545(): - type = "passive" - def handler(fit, src, context): - if src.getModifiedItemAttr("shipBonusForceAuxiliaryC1") is None: - return # See GH Issue 1321 - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capacitor Emission Systems") or - mod.item.requiresSkill("Capital Capacitor Emission Systems"), - "powerTransferAmount", src.getModifiedItemAttr("shipBonusForceAuxiliaryC1"), - skill="Caldari Carrier") - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Emission Systems") or - mod.item.requiresSkill("Capital Shield Emission Systems"), - "shieldBonus", src.getModifiedItemAttr("shipBonusForceAuxiliaryC1"), - skill="Caldari Carrier") - - return locals() - -def effect6546(): - type = "passive" - def handler(fit, src, context): - fit.ship.boostItemAttr("shieldEmDamageResonance", src.getModifiedItemAttr("shipBonusForceAuxiliaryC2"), - skill="Caldari Carrier") - fit.ship.boostItemAttr("shieldExplosiveDamageResonance", src.getModifiedItemAttr("shipBonusForceAuxiliaryC2"), - skill="Caldari Carrier") - fit.ship.boostItemAttr("shieldKineticDamageResonance", src.getModifiedItemAttr("shipBonusForceAuxiliaryC2"), - skill="Caldari Carrier") - fit.ship.boostItemAttr("shieldThermalDamageResonance", src.getModifiedItemAttr("shipBonusForceAuxiliaryC2"), - skill="Caldari Carrier") - - return locals() - -def effect6548(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Emission Systems") or - mod.item.requiresSkill("Capital Shield Emission Systems"), - "duration", src.getModifiedItemAttr("shipBonusForceAuxiliaryG1"), - skill="Gallente Carrier") - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Remote Armor Repair Systems") or - mod.item.requiresSkill("Capital Remote Armor Repair Systems"), - "duration", src.getModifiedItemAttr("shipBonusForceAuxiliaryG1"), - skill="Gallente Carrier") - - return locals() - -def effect6549(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Repair Systems"), "armorDamageAmount", - src.getModifiedItemAttr("shipBonusForceAuxiliaryG2"), skill="Gallente Carrier") - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capital Repair Systems"), "armorDamageAmount", - src.getModifiedItemAttr("shipBonusForceAuxiliaryG2"), skill="Gallente Carrier") - - return locals() - -def effect6551(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Emission Systems") or - mod.item.requiresSkill("Capital Shield Emission Systems"), - "duration", src.getModifiedItemAttr("shipBonusForceAuxiliaryM1"), - skill="Minmatar Carrier") - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Remote Armor Repair Systems") or - mod.item.requiresSkill("Capital Remote Armor Repair Systems"), - "duration", src.getModifiedItemAttr("shipBonusForceAuxiliaryM1"), - skill="Minmatar Carrier") - - return locals() - -def effect6552(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capital Shield Operation"), "shieldBonus", - src.getModifiedItemAttr("shipBonusForceAuxiliaryM2"), skill="Minmatar Carrier") - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Operation"), "shieldBonus", - src.getModifiedItemAttr("shipBonusForceAuxiliaryM2"), skill="Minmatar Carrier") - - return locals() - -def effect6555(): - type = "passive" - def handler(fit, src, context): - fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Fighters"), "maxVelocity", - src.getModifiedItemAttr("speedFactor"), stackingPenalties=True) - fit.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Drones"), "maxVelocity", - src.getModifiedItemAttr("speedFactor"), stackingPenalties=True) - - return locals() - -def effect6556(): - type = "passive" - def handler(fit, src, context): - fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Fighters"), - "fighterAbilityMissilesDamageMultiplier", - src.getModifiedItemAttr("droneDamageBonus"), stackingPenalties=True) - fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Fighters"), - "fighterAbilityAttackTurretDamageMultiplier", - src.getModifiedItemAttr("droneDamageBonus"), stackingPenalties=True) - fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Fighters"), - "fighterAbilityAttackMissileDamageMultiplier", - src.getModifiedItemAttr("droneDamageBonus"), stackingPenalties=True) - fit.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Drones"), "damageMultiplier", - src.getModifiedItemAttr("droneDamageBonus"), stackingPenalties=True) - - return locals() - -def effect6557(): - type = "active" - def handler(fit, src, context): - fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Fighters"), - "fighterAbilityAttackTurretRangeFalloff", src.getModifiedItemAttr("falloffBonus"), - stackingPenalties=True) - fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Fighters"), - "fighterAbilityMissilesExplosionVelocity", - src.getModifiedItemAttr("aoeVelocityBonus"), stackingPenalties=True) - fit.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Drones"), "trackingSpeed", - src.getModifiedItemAttr("trackingSpeedBonus"), stackingPenalties=True) - fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Fighters"), - "fighterAbilityAttackMissileExplosionRadius", - src.getModifiedItemAttr("aoeCloudSizeBonus"), stackingPenalties=True) - fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Fighters"), - "fighterAbilityAttackTurretTrackingSpeed", - src.getModifiedItemAttr("trackingSpeedBonus"), stackingPenalties=True) - fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Fighters"), - "fighterAbilityMissilesExplosionRadius", - src.getModifiedItemAttr("aoeCloudSizeBonus"), stackingPenalties=True) - fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Fighters"), "fighterAbilityMissilesRange", - src.getModifiedItemAttr("maxRangeBonus"), stackingPenalties=True) - fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Fighters"), - "fighterAbilityAttackMissileRangeOptimal", src.getModifiedItemAttr("maxRangeBonus"), - stackingPenalties=True) - fit.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Drones"), "falloff", - src.getModifiedItemAttr("falloffBonus"), stackingPenalties=True) - fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Fighters"), - "fighterAbilityAttackMissileExplosionVelocity", - src.getModifiedItemAttr("aoeVelocityBonus"), stackingPenalties=True) - fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Fighters"), - "fighterAbilityAttackMissileRangeFalloff", src.getModifiedItemAttr("falloffBonus"), - stackingPenalties=True) - fit.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Drones"), "maxRange", - src.getModifiedItemAttr("maxRangeBonus"), stackingPenalties=True) - fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Fighters"), - "fighterAbilityAttackTurretRangeOptimal", src.getModifiedItemAttr("maxRangeBonus"), - stackingPenalties=True) - - return locals() - -def effect6558(): - type = "overheat" - def handler(fit, module, context): - overloadBonus = module.getModifiedItemAttr("overloadTrackingModuleStrengthBonus") - module.boostItemAttr("maxRangeBonus", overloadBonus) - module.boostItemAttr("falloffBonus", overloadBonus) - module.boostItemAttr("trackingSpeedBonus", overloadBonus) - module.boostItemAttr("aoeCloudSizeBonus", overloadBonus) - module.boostItemAttr("aoeVelocityBonus", overloadBonus) - - return locals() - -def effect6559(): - type = "passive" - def handler(fit, src, context): - fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Fighters"), - "fighterAbilityAttackMissileExplosionRadius", - src.getModifiedItemAttr("aoeCloudSizeBonus"), stackingPenalties=True) - fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Fighters"), - "fighterAbilityAttackMissileRangeOptimal", src.getModifiedItemAttr("maxRangeBonus"), - stackingPenalties=True) - fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Fighters"), - "fighterAbilityAttackTurretRangeFalloff", src.getModifiedItemAttr("falloffBonus"), - stackingPenalties=True) - fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Fighters"), - "fighterAbilityMissilesExplosionRadius", - src.getModifiedItemAttr("aoeCloudSizeBonus"), stackingPenalties=True) - fit.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Drones"), "falloff", - src.getModifiedItemAttr("falloffBonus"), stackingPenalties=True) - fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Fighters"), - "fighterAbilityAttackMissileRangeFalloff", src.getModifiedItemAttr("falloffBonus"), - stackingPenalties=True) - fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Fighters"), - "fighterAbilityAttackTurretTrackingSpeed", - src.getModifiedItemAttr("trackingSpeedBonus"), stackingPenalties=True) - fit.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Drones"), "maxRange", - src.getModifiedItemAttr("maxRangeBonus"), stackingPenalties=True) - fit.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Drones"), "trackingSpeed", - src.getModifiedItemAttr("trackingSpeedBonus"), stackingPenalties=True) - fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Fighters"), - "fighterAbilityAttackTurretRangeOptimal", src.getModifiedItemAttr("maxRangeBonus"), - stackingPenalties=True) - fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Fighters"), - "fighterAbilityMissilesExplosionVelocity", - src.getModifiedItemAttr("aoeVelocityBonus"), stackingPenalties=True) - fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Fighters"), - "fighterAbilityAttackMissileExplosionVelocity", - src.getModifiedItemAttr("aoeVelocityBonus"), stackingPenalties=True) - fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Fighters"), "fighterAbilityMissilesRange", - src.getModifiedItemAttr("maxRangeBonus"), stackingPenalties=True) - - return locals() - -def effect6560(): - type = "passive" - def handler(fit, src, context): - lvl = src.level - fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Fighters"), - "fighterAbilityAttackMissileDamageMultiplier", - src.getModifiedItemAttr("damageMultiplierBonus") * lvl) - fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Fighters"), - "fighterAbilityAttackTurretDamageMultiplier", - src.getModifiedItemAttr("damageMultiplierBonus") * lvl) - fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Fighters"), - "fighterAbilityMissilesDamageMultiplier", - src.getModifiedItemAttr("damageMultiplierBonus") * lvl) - - return locals() - -def effect6561(): - type = "passive" - def handler(fit, src, context): - lvl = src.level - fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Light Fighters"), "maxVelocity", - src.getModifiedItemAttr("maxVelocityBonus") * lvl) - - return locals() - -def effect6562(): - type = "passive" - def handler(fit, src, context): - lvl = src.level - fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Support Fighters"), "shieldCapacity", - src.getModifiedItemAttr("shieldBonus") * lvl) - - return locals() - -def effect6563(): - type = "passive" - def handler(fit, src, context): - lvl = src.level - fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Heavy Fighters"), - "fighterAbilityMissilesDamageMultiplier", - src.getModifiedItemAttr("damageMultiplierBonus") * lvl) - fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Heavy Fighters"), - "fighterAbilityAttackMissileDamageMultiplier", - src.getModifiedItemAttr("damageMultiplierBonus") * lvl) - fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Heavy Fighters"), - "fighterAbilityAttackTurretDamageMultiplier", - src.getModifiedItemAttr("damageMultiplierBonus") * lvl) - - return locals() - -def effect6565(): - type = "passive" - runTime = "early" - def handler(fit, src, context): - for attr in [ - "structureRigDoomsdayDamageLossTargetBonus", - "structureRigScanResBonus", - "structureRigPDRangeBonus", - "structureRigPDCapUseBonus", - "structureRigMissileExploVeloBonus", - "structureRigMissileVelocityBonus", - "structureRigEwarOptimalBonus", - "structureRigEwarFalloffBonus", - "structureRigEwarCapUseBonus", - "structureRigMissileExplosionRadiusBonus" - ]: - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Jury Rigging"), - attr, src.getModifiedItemAttr("structureRoleBonus")) - - return locals() - -def effect6566(): - type = "passive" - def handler(fit, src, context): - fit.fighters.filteredItemMultiply(lambda mod: mod.item.requiresSkill("Fighters"), "shieldCapacity", - src.getModifiedItemAttr("fighterBonusShieldCapacityPercent")) - fit.fighters.filteredItemMultiply(lambda mod: mod.item.requiresSkill("Fighters"), "maxVelocity", - src.getModifiedItemAttr("fighterBonusVelocityPercent"), stackingPenalties=True, penaltyGroup="postMul") - fit.fighters.filteredItemMultiply(lambda mod: mod.item.requiresSkill("Fighters"), - "fighterAbilityAttackMissileDuration", - src.getModifiedItemAttr("fighterBonusROFPercent"), stackingPenalties=True, penaltyGroup="postMul") - fit.fighters.filteredItemMultiply(lambda mod: mod.item.requiresSkill("Fighters"), "fighterAbilityAttackTurretDuration", - src.getModifiedItemAttr("fighterBonusROFPercent"), stackingPenalties=True, penaltyGroup="postMul") - fit.fighters.filteredItemMultiply(lambda mod: mod.item.requiresSkill("Fighters"), "fighterAbilityMissilesDuration", - src.getModifiedItemAttr("fighterBonusROFPercent"), stackingPenalties=True, penaltyGroup="postMul") - fit.fighters.filteredItemMultiply(lambda mod: mod.item.requiresSkill("Fighters"), "shieldRechargeRate", - src.getModifiedItemAttr("fighterBonusShieldRechargePercent")) - - return locals() - -def effect6567(): - type = "active" - def handler(fit, src, context): - fit.ship.boostItemAttr("scanResolution", src.getModifiedItemAttr("scanResolutionBonus"), stackingPenalties=True) - for scanType in ('Magnetometric', 'Ladar', 'Gravimetric', 'Radar'): - attr = "scan{}Strength".format(scanType) - bonus = src.getModifiedItemAttr("scan{}StrengthPercent".format(scanType)) - fit.ship.boostItemAttr(attr, bonus, stackingPenalties=True) - fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Fighters"), attr, bonus, - stackingPenalties=True) - groups = [ - 'Burst Jammer', - 'Weapon Disruptor', - 'ECM', - 'Stasis Grappler', - 'Sensor Dampener', - 'Target Painter'] - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name in groups or - mod.item.requiresSkill("Propulsion Jamming"), - "capacitorNeed", src.getModifiedItemAttr("ewCapacitorNeedBonus")) - - return locals() - -def effect657(): - type = "passive" - def handler(fit, module, context): - fit.ship.boostItemAttr("agility", - module.getModifiedItemAttr("agilityMultiplier"), - stackingPenalties=True) - - return locals() - -def effect6570(): - type = "passive" - def handler(fit, src, context): - lvl = src.level - fit.ship.boostItemAttr("fighterCapacity", src.getModifiedItemAttr("skillBonusFighterHangarSize") * lvl) - - return locals() - -def effect6571(): - type = "passive" - def handler(fit, src, context): - lvl = src.level - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capital Autocannon Specialization"), - "damageMultiplier", src.getModifiedItemAttr("damageMultiplierBonus") * lvl) - - return locals() - -def effect6572(): - type = "passive" - def handler(fit, src, context): - lvl = src.level - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capital Artillery Specialization"), - "damageMultiplier", src.getModifiedItemAttr("damageMultiplierBonus") * lvl) - - return locals() - -def effect6573(): - type = "passive" - def handler(fit, src, context): - lvl = src.level - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capital Blaster Specialization"), - "damageMultiplier", src.getModifiedItemAttr("damageMultiplierBonus") * lvl) - - return locals() - -def effect6574(): - type = "passive" - def handler(fit, src, context): - lvl = src.level - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capital Railgun Specialization"), - "damageMultiplier", src.getModifiedItemAttr("damageMultiplierBonus") * lvl) - - return locals() - -def effect6575(): - type = "passive" - def handler(fit, src, context): - lvl = src.level - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capital Pulse Laser Specialization"), - "damageMultiplier", src.getModifiedItemAttr("damageMultiplierBonus") * lvl) - - return locals() - -def effect6576(): - type = "passive" - def handler(fit, src, context): - lvl = src.level - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capital Beam Laser Specialization"), - "damageMultiplier", src.getModifiedItemAttr("damageMultiplierBonus") * lvl) - - return locals() - -def effect6577(): - type = "passive" - def handler(fit, src, context): - lvl = src.level - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("XL Cruise Missile Specialization"), "speed", - src.getModifiedItemAttr("rofBonus") * lvl) - - return locals() - -def effect6578(): - type = "passive" - def handler(fit, src, context): - lvl = src.level - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("XL Torpedo Specialization"), "speed", - src.getModifiedItemAttr("rofBonus") * lvl) - - return locals() - -def effect6580(): - type = "passive" - def handler(fit, src, context): - fit.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Repair Drone Operation"), "structureDamageAmount", - src.getModifiedItemAttr("shipBonusRole2")) - fit.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Repair Drone Operation"), "armorDamageAmount", - src.getModifiedItemAttr("shipBonusRole2")) - fit.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Repair Drone Operation"), "shieldBonus", - src.getModifiedItemAttr("shipBonusRole2")) - - return locals() - -def effect6581(): - type = "active" - runTime = "early" - def handler(fit, src, context): - for skill, amtAttr, stack in ( - ("Capital Remote Armor Repair Systems", "armorDamageAmount", True), - ("Capital Shield Emission Systems", "shieldBonus", True), - ("Capital Capacitor Emission Systems", "powerTransferAmount", False), - ("Capital Remote Hull Repair Systems", "structureDamageAmount", False)): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill(skill), "duration", - src.getModifiedItemAttr("siegeRemoteLogisticsDurationBonus")) - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill(skill), amtAttr, - src.getModifiedItemAttr("siegeRemoteLogisticsAmountBonus"), - stackingPenalties=stack) - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill(skill), "maxRange", - src.getModifiedItemAttr("siegeRemoteLogisticsRangeBonus"), stackingPenalties=True) - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill(skill), "falloffEffectiveness", - src.getModifiedItemAttr("siegeRemoteLogisticsRangeBonus"), stackingPenalties=True) - for skill, amtAttr in ( - ("Capital Shield Operation", "shieldBonus"), - ("Capital Repair Systems", "armorDamageAmount")): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill(skill), "duration", - src.getModifiedItemAttr("siegeLocalLogisticsDurationBonus")) - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill(skill), amtAttr, - src.getModifiedItemAttr("siegeLocalLogisticsAmountBonus")) - fit.ship.boostItemAttr("maxVelocity", src.getModifiedItemAttr("speedFactor"), stackingPenalties=True) - fit.ship.multiplyItemAttr("scanResolution", src.getModifiedItemAttr("scanResolutionMultiplier"), - stackingPenalties=True) - fit.ship.multiplyItemAttr("mass", src.getModifiedItemAttr("siegeMassMultiplier"), stackingPenalties=True) - fit.ship.increaseItemAttr("maxLockedTargets", src.getModifiedItemAttr("maxLockedTargetsBonus")) - groups = [ - 'Burst Jammer', - 'Weapon Disruptor', - 'ECM', - 'Stasis Grappler', - 'Sensor Dampener', - 'Target Painter'] - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name in groups or - mod.item.requiresSkill("Propulsion Jamming"), - "capacitorNeed", src.getModifiedItemAttr("ewCapacitorNeedBonus")) - fit.ship.forceItemAttr("disallowOffensiveModifiers", src.getModifiedItemAttr("disallowOffensiveModifiers")) - fit.ship.forceItemAttr("disallowAssistance", src.getModifiedItemAttr("disallowAssistance")) - fit.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Drones"), "damageMultiplier", - src.getModifiedItemAttr("droneDamageBonus"), stackingPenalties=True) - fit.ship.increaseItemAttr("warpScrambleStatus", src.getModifiedItemAttr("siegeModeWarpStatus")) - fit.ship.boostItemAttr("sensorDampenerResistance", src.getModifiedItemAttr("sensorDampenerResistanceBonus")) - fit.ship.boostItemAttr("remoteAssistanceImpedance", src.getModifiedItemAttr("remoteAssistanceImpedanceBonus")) - fit.ship.boostItemAttr("remoteRepairImpedance", src.getModifiedItemAttr("remoteRepairImpedanceBonus")) - fit.ship.forceItemAttr("disallowTethering", src.getModifiedItemAttr("disallowTethering")) - fit.ship.forceItemAttr("disallowDocking", src.getModifiedItemAttr("disallowDocking")) - - return locals() - -def effect6582(): - type = "active" - runTime = "early" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capital Energy Turret") or - mod.item.requiresSkill("Capital Hybrid Turret") or - mod.item.requiresSkill("Capital Projectile Turret"), - "damageMultiplier", src.getModifiedItemAttr("siegeTurretDamageBonus")) - for type in ("kinetic", "thermal", "explosive", "em"): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("XL Torpedoes") or - mod.charge.requiresSkill("XL Cruise Missiles") or - mod.charge.requiresSkill("Torpedoes"), - "%sDamage" % type, src.getModifiedItemAttr("siegeMissileDamageBonus")) - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capital Shield Operation") or - mod.item.requiresSkill("Capital Repair Systems"), - "duration", src.getModifiedItemAttr("siegeLocalLogisticsDurationBonus")) - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capital Shield Operation"), - "shieldBonus", src.getModifiedItemAttr("siegeLocalLogisticsAmountBonus"), - stackingPenalties=True) - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capital Repair Systems"), - "armorDamageAmount", src.getModifiedItemAttr("siegeLocalLogisticsAmountBonus"), - stackingPenalties=True) - fit.ship.boostItemAttr("maxVelocity", src.getModifiedItemAttr("speedFactor")) - fit.ship.multiplyItemAttr("mass", src.getModifiedItemAttr("siegeMassMultiplier"), - stackingPenalties=True, penaltyGroup="postMul") - fit.ship.forceItemAttr("disallowOffensiveModifiers", src.getModifiedItemAttr("disallowOffensiveModifiers")) - fit.ship.forceItemAttr("disallowAssistance", src.getModifiedItemAttr("disallowAssistance")) - for group in ("Missile Launcher XL Torpedo", "Missile Launcher Rapid Torpedo", "Missile Launcher XL Cruise"): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == group, "speed", - src.getModifiedItemAttr("siegeLauncherROFBonus")) - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Torpedoes"), "maxVelocity", - src.getModifiedItemAttr("siegeTorpedoVelocityBonus"), stackingPenalties=True) - fit.ship.increaseItemAttr("warpScrambleStatus", src.getModifiedItemAttr("siegeModeWarpStatus")) - fit.ship.boostItemAttr("remoteRepairImpedance", src.getModifiedItemAttr("remoteRepairImpedanceBonus")) - fit.ship.boostItemAttr("sensorDampenerResistance", src.getModifiedItemAttr("sensorDampenerResistanceBonus")) - fit.ship.boostItemAttr("remoteAssistanceImpedance", src.getModifiedItemAttr("remoteAssistanceImpedanceBonus")) - fit.ship.boostItemAttr("weaponDisruptionResistance", src.getModifiedItemAttr("weaponDisruptionResistanceBonus")) - fit.ship.forceItemAttr("disallowDocking", src.getModifiedItemAttr("disallowDocking")) - fit.ship.forceItemAttr("disallowTethering", src.getModifiedItemAttr("disallowTethering")) - - return locals() - -def effect6591(): - type = "passive" - def handler(fit, src, context): - fit.ship.increaseItemAttr("warpScrambleStatus", src.getModifiedItemAttr("shipBonusSupercarrierA3"), - skill="Amarr Carrier") - - return locals() - -def effect6592(): - type = "passive" - def handler(fit, src, context): - fit.ship.increaseItemAttr("warpScrambleStatus", src.getModifiedItemAttr("shipBonusSupercarrierC3"), - skill="Caldari Carrier") - - return locals() - -def effect6593(): - type = "passive" - def handler(fit, src, context): - fit.ship.increaseItemAttr("warpScrambleStatus", src.getModifiedItemAttr("shipBonusSupercarrierG3"), - skill="Gallente Carrier") - - return locals() - -def effect6594(): - type = "passive" - def handler(fit, src, context): - fit.ship.increaseItemAttr("warpScrambleStatus", src.getModifiedItemAttr("shipBonusSupercarrierM3"), - skill="Minmatar Carrier") - - return locals() - -def effect6595(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost( - lambda mod: mod.item.requiresSkill("Armored Command") or mod.item.requiresSkill("Information Command"), - "buffDuration", src.getModifiedItemAttr("shipBonusCarrierA4"), skill="Amarr Carrier") - fit.modules.filteredItemBoost( - lambda mod: mod.item.requiresSkill("Armored Command") or mod.item.requiresSkill("Information Command"), - "warfareBuff3Value", src.getModifiedItemAttr("shipBonusCarrierA4"), skill="Amarr Carrier") - fit.modules.filteredItemBoost( - lambda mod: mod.item.requiresSkill("Armored Command") or mod.item.requiresSkill("Information Command"), - "warfareBuff1Value", src.getModifiedItemAttr("shipBonusCarrierA4"), skill="Amarr Carrier") - fit.modules.filteredItemBoost( - lambda mod: mod.item.requiresSkill("Armored Command") or mod.item.requiresSkill("Information Command"), - "warfareBuff4Value", src.getModifiedItemAttr("shipBonusCarrierA4"), skill="Amarr Carrier") - fit.modules.filteredItemBoost( - lambda mod: mod.item.requiresSkill("Armored Command") or mod.item.requiresSkill("Information Command"), - "warfareBuff2Value", src.getModifiedItemAttr("shipBonusCarrierA4"), skill="Amarr Carrier") - - return locals() - -def effect6596(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost( - lambda mod: mod.item.requiresSkill("Shield Command") or mod.item.requiresSkill("Information Command"), - "warfareBuff2Value", src.getModifiedItemAttr("shipBonusCarrierC4"), skill="Caldari Carrier") - fit.modules.filteredItemBoost( - lambda mod: mod.item.requiresSkill("Shield Command") or mod.item.requiresSkill("Information Command"), - "buffDuration", src.getModifiedItemAttr("shipBonusCarrierC4"), skill="Caldari Carrier") - fit.modules.filteredItemBoost( - lambda mod: mod.item.requiresSkill("Shield Command") or mod.item.requiresSkill("Information Command"), - "warfareBuff3Value", src.getModifiedItemAttr("shipBonusCarrierC4"), skill="Caldari Carrier") - fit.modules.filteredItemBoost( - lambda mod: mod.item.requiresSkill("Shield Command") or mod.item.requiresSkill("Information Command"), - "warfareBuff4Value", src.getModifiedItemAttr("shipBonusCarrierC4"), skill="Caldari Carrier") - fit.modules.filteredItemBoost( - lambda mod: mod.item.requiresSkill("Shield Command") or mod.item.requiresSkill("Information Command"), - "warfareBuff1Value", src.getModifiedItemAttr("shipBonusCarrierC4"), skill="Caldari Carrier") - - return locals() - -def effect6597(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost( - lambda mod: mod.item.requiresSkill("Skirmish Command") or mod.item.requiresSkill("Armored Command"), - "warfareBuff2Value", src.getModifiedItemAttr("shipBonusCarrierG4"), skill="Gallente Carrier") - fit.modules.filteredItemBoost( - lambda mod: mod.item.requiresSkill("Skirmish Command") or mod.item.requiresSkill("Armored Command"), - "warfareBuff3Value", src.getModifiedItemAttr("shipBonusCarrierG4"), skill="Gallente Carrier") - fit.modules.filteredItemBoost( - lambda mod: mod.item.requiresSkill("Skirmish Command") or mod.item.requiresSkill("Armored Command"), - "warfareBuff4Value", src.getModifiedItemAttr("shipBonusCarrierG4"), skill="Gallente Carrier") - fit.modules.filteredItemBoost( - lambda mod: mod.item.requiresSkill("Skirmish Command") or mod.item.requiresSkill("Armored Command"), - "buffDuration", src.getModifiedItemAttr("shipBonusCarrierG4"), skill="Gallente Carrier") - fit.modules.filteredItemBoost( - lambda mod: mod.item.requiresSkill("Skirmish Command") or mod.item.requiresSkill("Armored Command"), - "warfareBuff1Value", src.getModifiedItemAttr("shipBonusCarrierG4"), skill="Gallente Carrier") - - return locals() - -def effect6598(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost( - lambda mod: mod.item.requiresSkill("Skirmish Command") or mod.item.requiresSkill("Shield Command"), - "warfareBuff4Value", src.getModifiedItemAttr("shipBonusCarrierM4"), skill="Minmatar Carrier") - fit.modules.filteredItemBoost( - lambda mod: mod.item.requiresSkill("Skirmish Command") or mod.item.requiresSkill("Shield Command"), - "warfareBuff2Value", src.getModifiedItemAttr("shipBonusCarrierM4"), skill="Minmatar Carrier") - fit.modules.filteredItemBoost( - lambda mod: mod.item.requiresSkill("Skirmish Command") or mod.item.requiresSkill("Shield Command"), - "warfareBuff3Value", src.getModifiedItemAttr("shipBonusCarrierM4"), skill="Minmatar Carrier") - fit.modules.filteredItemBoost( - lambda mod: mod.item.requiresSkill("Skirmish Command") or mod.item.requiresSkill("Shield Command"), - "warfareBuff1Value", src.getModifiedItemAttr("shipBonusCarrierM4"), skill="Minmatar Carrier") - fit.modules.filteredItemBoost( - lambda mod: mod.item.requiresSkill("Skirmish Command") or mod.item.requiresSkill("Shield Command"), - "buffDuration", src.getModifiedItemAttr("shipBonusCarrierM4"), skill="Minmatar Carrier") - - return locals() - -def effect6599(): - type = "passive" - def handler(fit, src, context): - fit.ship.boostItemAttr("armorKineticDamageResonance", src.getModifiedItemAttr("shipBonusCarrierA1"), - skill="Amarr Carrier") - fit.ship.boostItemAttr("armorEmDamageResonance", src.getModifiedItemAttr("shipBonusCarrierA1"), - skill="Amarr Carrier") - fit.ship.boostItemAttr("armorExplosiveDamageResonance", src.getModifiedItemAttr("shipBonusCarrierA1"), - skill="Amarr Carrier") - fit.ship.boostItemAttr("armorThermalDamageResonance", src.getModifiedItemAttr("shipBonusCarrierA1"), - skill="Amarr Carrier") - - return locals() - -def effect660(): - type = "passive" - def handler(fit, skill, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill(skill), - "emDamage", skill.getModifiedItemAttr("damageMultiplierBonus") * skill.level) - - return locals() - -def effect6600(): - type = "passive" - def handler(fit, src, context): - fit.ship.boostItemAttr("shieldThermalDamageResonance", src.getModifiedItemAttr("shipBonusCarrierC1"), - skill="Caldari Carrier") - fit.ship.boostItemAttr("shieldEmDamageResonance", src.getModifiedItemAttr("shipBonusCarrierC1"), - skill="Caldari Carrier") - fit.ship.boostItemAttr("shieldKineticDamageResonance", src.getModifiedItemAttr("shipBonusCarrierC1"), - skill="Caldari Carrier") - fit.ship.boostItemAttr("shieldExplosiveDamageResonance", src.getModifiedItemAttr("shipBonusCarrierC1"), - skill="Caldari Carrier") - - return locals() - -def effect6601(): - type = "passive" - def handler(fit, src, context): - fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Fighters"), - "fighterAbilityMissilesDamageMultiplier", - src.getModifiedItemAttr("shipBonusCarrierG1"), skill="Gallente Carrier") - fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Fighters"), - "fighterAbilityAttackTurretDamageMultiplier", - src.getModifiedItemAttr("shipBonusCarrierG1"), skill="Gallente Carrier") - fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Fighters"), - "fighterAbilityAttackMissileDamageMultiplier", - src.getModifiedItemAttr("shipBonusCarrierG1"), skill="Gallente Carrier") - - return locals() - -def effect6602(): - type = "passive" - def handler(fit, src, context): - fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Fighters"), - "fighterAbilityAttackMissileDamageMultiplier", - src.getModifiedItemAttr("shipBonusCarrierM1"), skill="Minmatar Carrier") - fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Fighters"), - "fighterAbilityMissilesDamageMultiplier", - src.getModifiedItemAttr("shipBonusCarrierM1"), skill="Minmatar Carrier") - fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Fighters"), - "fighterAbilityAttackTurretDamageMultiplier", - src.getModifiedItemAttr("shipBonusCarrierM1"), skill="Minmatar Carrier") - - return locals() - -def effect6603(): - type = "passive" - def handler(fit, src, context): - fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Fighters"), - "fighterAbilityMissilesDamageMultiplier", - src.getModifiedItemAttr("shipBonusSupercarrierA1"), skill="Amarr Carrier") - fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Fighters"), - "fighterAbilityAttackMissileDamageMultiplier", - src.getModifiedItemAttr("shipBonusSupercarrierA1"), skill="Amarr Carrier") - fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Fighters"), - "fighterAbilityAttackTurretDamageMultiplier", - src.getModifiedItemAttr("shipBonusSupercarrierA1"), skill="Amarr Carrier") - - return locals() - -def effect6604(): - type = "passive" - def handler(fit, src, context): - fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Fighters"), - "fighterAbilityMissilesDamageMultiplier", - src.getModifiedItemAttr("shipBonusSupercarrierC1"), skill="Caldari Carrier") - fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Fighters"), - "fighterAbilityAttackTurretDamageMultiplier", - src.getModifiedItemAttr("shipBonusSupercarrierC1"), skill="Caldari Carrier") - fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Fighters"), - "fighterAbilityAttackMissileDamageMultiplier", - src.getModifiedItemAttr("shipBonusSupercarrierC1"), skill="Caldari Carrier") - - return locals() - -def effect6605(): - type = "passive" - def handler(fit, src, context): - fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Fighters"), - "fighterAbilityAttackTurretDamageMultiplier", - src.getModifiedItemAttr("shipBonusSupercarrierG1"), skill="Gallente Carrier") - fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Fighters"), - "fighterAbilityMissilesDamageMultiplier", - src.getModifiedItemAttr("shipBonusSupercarrierG1"), skill="Gallente Carrier") - fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Fighters"), - "fighterAbilityAttackMissileDamageMultiplier", - src.getModifiedItemAttr("shipBonusSupercarrierG1"), skill="Gallente Carrier") - - return locals() - -def effect6606(): - type = "passive" - def handler(fit, src, context): - fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Fighters"), - "fighterAbilityAttackMissileDamageMultiplier", - src.getModifiedItemAttr("shipBonusSupercarrierM1"), skill="Minmatar Carrier") - fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Fighters"), - "fighterAbilityMissilesDamageMultiplier", - src.getModifiedItemAttr("shipBonusSupercarrierM1"), skill="Minmatar Carrier") - fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Fighters"), - "fighterAbilityAttackTurretDamageMultiplier", - src.getModifiedItemAttr("shipBonusSupercarrierM1"), skill="Minmatar Carrier") - - return locals() - -def effect6607(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost( - lambda mod: mod.item.requiresSkill("Armored Command") or mod.item.requiresSkill("Information Command"), - "warfareBuff4Value", src.getModifiedItemAttr("shipBonusSupercarrierA5"), skill="Amarr Carrier") - fit.modules.filteredItemBoost( - lambda mod: mod.item.requiresSkill("Armored Command") or mod.item.requiresSkill("Information Command"), - "warfareBuff3Value", src.getModifiedItemAttr("shipBonusSupercarrierA5"), skill="Amarr Carrier") - fit.modules.filteredItemBoost( - lambda mod: mod.item.requiresSkill("Armored Command") or mod.item.requiresSkill("Information Command"), - "buffDuration", src.getModifiedItemAttr("shipBonusSupercarrierA5"), skill="Amarr Carrier") - fit.modules.filteredItemBoost( - lambda mod: mod.item.requiresSkill("Armored Command") or mod.item.requiresSkill("Information Command"), - "warfareBuff2Value", src.getModifiedItemAttr("shipBonusSupercarrierA5"), skill="Amarr Carrier") - fit.modules.filteredItemBoost( - lambda mod: mod.item.requiresSkill("Armored Command") or mod.item.requiresSkill("Information Command"), - "warfareBuff1Value", src.getModifiedItemAttr("shipBonusSupercarrierA5"), skill="Amarr Carrier") - - return locals() - -def effect6608(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost( - lambda mod: mod.item.requiresSkill("Shield Command") or mod.item.requiresSkill("Information Command"), - "buffDuration", src.getModifiedItemAttr("shipBonusSupercarrierC5"), skill="Caldari Carrier") - fit.modules.filteredItemBoost( - lambda mod: mod.item.requiresSkill("Shield Command") or mod.item.requiresSkill("Information Command"), - "warfareBuff2Value", src.getModifiedItemAttr("shipBonusSupercarrierC5"), skill="Caldari Carrier") - fit.modules.filteredItemBoost( - lambda mod: mod.item.requiresSkill("Shield Command") or mod.item.requiresSkill("Information Command"), - "warfareBuff1Value", src.getModifiedItemAttr("shipBonusSupercarrierC5"), skill="Caldari Carrier") - fit.modules.filteredItemBoost( - lambda mod: mod.item.requiresSkill("Shield Command") or mod.item.requiresSkill("Information Command"), - "warfareBuff4Value", src.getModifiedItemAttr("shipBonusSupercarrierC5"), skill="Caldari Carrier") - fit.modules.filteredItemBoost( - lambda mod: mod.item.requiresSkill("Shield Command") or mod.item.requiresSkill("Information Command"), - "warfareBuff3Value", src.getModifiedItemAttr("shipBonusSupercarrierC5"), skill="Caldari Carrier") - - return locals() - -def effect6609(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost( - lambda mod: mod.item.requiresSkill("Skirmish Command") or mod.item.requiresSkill("Armored Command"), - "warfareBuff2Value", src.getModifiedItemAttr("shipBonusSupercarrierG5"), skill="Gallente Carrier") - fit.modules.filteredItemBoost( - lambda mod: mod.item.requiresSkill("Skirmish Command") or mod.item.requiresSkill("Armored Command"), - "buffDuration", src.getModifiedItemAttr("shipBonusSupercarrierG5"), skill="Gallente Carrier") - fit.modules.filteredItemBoost( - lambda mod: mod.item.requiresSkill("Skirmish Command") or mod.item.requiresSkill("Armored Command"), - "warfareBuff1Value", src.getModifiedItemAttr("shipBonusSupercarrierG5"), skill="Gallente Carrier") - fit.modules.filteredItemBoost( - lambda mod: mod.item.requiresSkill("Skirmish Command") or mod.item.requiresSkill("Armored Command"), - "warfareBuff3Value", src.getModifiedItemAttr("shipBonusSupercarrierG5"), skill="Gallente Carrier") - fit.modules.filteredItemBoost( - lambda mod: mod.item.requiresSkill("Skirmish Command") or mod.item.requiresSkill("Armored Command"), - "warfareBuff4Value", src.getModifiedItemAttr("shipBonusSupercarrierG5"), skill="Gallente Carrier") - - return locals() - -def effect661(): - type = "passive" - def handler(fit, skill, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill(skill), - "explosiveDamage", skill.getModifiedItemAttr("damageMultiplierBonus") * skill.level) - - return locals() - -def effect6610(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost( - lambda mod: mod.item.requiresSkill("Skirmish Command") or mod.item.requiresSkill("Shield Command"), - "warfareBuff4Value", src.getModifiedItemAttr("shipBonusSupercarrierM5"), skill="Minmatar Carrier") - fit.modules.filteredItemBoost( - lambda mod: mod.item.requiresSkill("Skirmish Command") or mod.item.requiresSkill("Shield Command"), - "warfareBuff1Value", src.getModifiedItemAttr("shipBonusSupercarrierM5"), skill="Minmatar Carrier") - fit.modules.filteredItemBoost( - lambda mod: mod.item.requiresSkill("Skirmish Command") or mod.item.requiresSkill("Shield Command"), - "warfareBuff3Value", src.getModifiedItemAttr("shipBonusSupercarrierM5"), skill="Minmatar Carrier") - fit.modules.filteredItemBoost( - lambda mod: mod.item.requiresSkill("Skirmish Command") or mod.item.requiresSkill("Shield Command"), - "buffDuration", src.getModifiedItemAttr("shipBonusSupercarrierM5"), skill="Minmatar Carrier") - fit.modules.filteredItemBoost( - lambda mod: mod.item.requiresSkill("Skirmish Command") or mod.item.requiresSkill("Shield Command"), - "warfareBuff2Value", src.getModifiedItemAttr("shipBonusSupercarrierM5"), skill="Minmatar Carrier") - - return locals() - -def effect6611(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Afterburner"), "speedFactor", - src.getModifiedItemAttr("shipBonusSupercarrierC2"), skill="Caldari Carrier") - - return locals() - -def effect6612(): - type = "passive" - def handler(fit, src, context): - fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Fighters"), - "fighterAbilityMissilesExplosionVelocity", - src.getModifiedItemAttr("shipBonusSupercarrierA2"), skill="Amarr Carrier") - fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Fighters"), - "fighterAbilityAttackMissileExplosionVelocity", - src.getModifiedItemAttr("shipBonusSupercarrierA2"), skill="Amarr Carrier") - - return locals() - -def effect6613(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemIncrease(lambda mod: mod.item.requiresSkill("Leadership"), "maxGroupActive", - src.getModifiedItemAttr("shipBonusRole1")) - - return locals() - -def effect6614(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Hull Upgrades"), "armorHPBonusAdd", - src.getModifiedItemAttr("shipBonusRole2")) - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Upgrades"), "capacityBonus", - src.getModifiedItemAttr("shipBonusRole2")) - - return locals() - -def effect6615(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Burst Projector Operation"), - "durationWeaponDisruptionBurstProjector", - src.getModifiedItemAttr("shipBonusSupercarrierA4"), skill="Amarr Carrier") - - return locals() - -def effect6616(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Burst Projector Operation"), - "durationECMJammerBurstProjector", src.getModifiedItemAttr("shipBonusSupercarrierC4"), - skill="Caldari Carrier") - - return locals() - -def effect6617(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Burst Projector Operation"), - "durationSensorDampeningBurstProjector", - src.getModifiedItemAttr("shipBonusSupercarrierG4"), skill="Gallente Carrier") - - return locals() - -def effect6618(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Burst Projector Operation"), - "durationTargetIlluminationBurstProjector", - src.getModifiedItemAttr("shipBonusSupercarrierM4"), skill="Minmatar Carrier") - - return locals() - -def effect6619(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemIncrease(lambda mod: mod.item.requiresSkill("Leadership"), "maxGroupActive", - src.getModifiedItemAttr("shipBonusRole1")) - - return locals() - -def effect662(): - type = "passive" - def handler(fit, skill, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill(skill), - "thermalDamage", skill.getModifiedItemAttr("damageMultiplierBonus") * skill.level) - - return locals() - -def effect6620(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Missile Launcher Operation"), "reloadTime", - src.getModifiedItemAttr("shipBonusDreadnoughtC3"), skill="Caldari Dreadnought") - - return locals() - -def effect6621(): - type = "passive" - def handler(fit, src, context): - fit.ship.boostItemAttr("armorExplosiveDamageResonance", src.getModifiedItemAttr("shipBonusSupercarrierA2"), - skill="Amarr Carrier") - fit.ship.boostItemAttr("armorEmDamageResonance", src.getModifiedItemAttr("shipBonusSupercarrierA2"), - skill="Amarr Carrier") - fit.ship.boostItemAttr("armorThermalDamageResonance", src.getModifiedItemAttr("shipBonusSupercarrierA2"), - skill="Amarr Carrier") - fit.ship.boostItemAttr("armorKineticDamageResonance", src.getModifiedItemAttr("shipBonusSupercarrierA2"), - skill="Amarr Carrier") - - return locals() - -def effect6622(): - type = "passive" - def handler(fit, src, context): - fit.ship.boostItemAttr("shieldThermalDamageResonance", src.getModifiedItemAttr("shipBonusSupercarrierC2"), - skill="Caldari Carrier") - fit.ship.boostItemAttr("shieldEmDamageResonance", src.getModifiedItemAttr("shipBonusSupercarrierC2"), - skill="Caldari Carrier") - fit.ship.boostItemAttr("shieldKineticDamageResonance", src.getModifiedItemAttr("shipBonusSupercarrierC2"), - skill="Caldari Carrier") - fit.ship.boostItemAttr("shieldExplosiveDamageResonance", src.getModifiedItemAttr("shipBonusSupercarrierC2"), - skill="Caldari Carrier") - - return locals() - -def effect6623(): - type = "passive" - def handler(fit, src, context): - fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Fighters"), "shieldCapacity", - src.getModifiedItemAttr("shipBonusSupercarrierG2"), skill="Gallente Carrier") - - return locals() - -def effect6624(): - type = "passive" - def handler(fit, src, context): - fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Fighters"), "maxVelocity", - src.getModifiedItemAttr("shipBonusSupercarrierM2"), skill="Minmatar Carrier") - - return locals() - -def effect6625(): - type = "passive" - def handler(fit, src, context): - fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Support Fighters"), "fighterSquadronOrbitRange", - src.getModifiedItemAttr("shipBonusCarrierA2"), skill="Amarr Carrier") - fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Support Fighters"), - "fighterAbilityEnergyNeutralizerOptimalRange", - src.getModifiedItemAttr("shipBonusCarrierA2"), skill="Amarr Carrier") - - return locals() - -def effect6626(): - type = "passive" - def handler(fit, src, context): - fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Support Fighters"), "fighterSquadronOrbitRange", - src.getModifiedItemAttr("shipBonusCarrierC2"), skill="Caldari Carrier") - fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Support Fighters"), - "fighterAbilityECMRangeOptimal", src.getModifiedItemAttr("shipBonusCarrierC2"), - skill="Caldari Carrier") - - return locals() - -def effect6627(): - type = "passive" - def handler(fit, src, context): - fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Support Fighters"), "fighterSquadronOrbitRange", - src.getModifiedItemAttr("shipBonusCarrierG2"), skill="Gallente Carrier") - fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Support Fighters"), - "fighterAbilityWarpDisruptionRange", src.getModifiedItemAttr("shipBonusCarrierG2"), - skill="Gallente Carrier") - - return locals() - -def effect6628(): - type = "passive" - def handler(fit, src, context): - fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Support Fighters"), "fighterSquadronOrbitRange", - src.getModifiedItemAttr("shipBonusCarrierM2"), skill="Minmatar Carrier") - fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Support Fighters"), - "fighterAbilityStasisWebifierOptimalRange", - src.getModifiedItemAttr("shipBonusCarrierM2"), skill="Minmatar Carrier") - - return locals() - -def effect6629(): - type = "passive" - def handler(fit, src, context): - src.boostItemAttr("emDamageResistanceBonus", src.getModifiedChargeAttr("emDamageResistanceBonusBonus")) - src.boostItemAttr("explosiveDamageResistanceBonus", - src.getModifiedChargeAttr("explosiveDamageResistanceBonusBonus")) - src.boostItemAttr("kineticDamageResistanceBonus", src.getModifiedChargeAttr("kineticDamageResistanceBonusBonus")) - src.boostItemAttr("thermalDamageResistanceBonus", src.getModifiedChargeAttr("thermalDamageResistanceBonusBonus")) - - return locals() - -def effect6634(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capital Energy Turret"), "damageMultiplier", - src.getModifiedItemAttr("shipBonusTitanA1"), skill="Amarr Titan") - - return locals() - -def effect6635(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("XL Torpedoes"), "kineticDamage", - src.getModifiedItemAttr("shipBonusTitanC1"), skill="Caldari Titan") - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("XL Cruise Missiles"), "kineticDamage", - src.getModifiedItemAttr("shipBonusTitanC1"), skill="Caldari Titan") - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Torpedoes"), "kineticDamage", - src.getModifiedItemAttr("shipBonusTitanC1"), skill="Caldari Titan") - - return locals() - -def effect6636(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capital Hybrid Turret"), "damageMultiplier", - src.getModifiedItemAttr("shipBonusTitanG1"), skill="Gallente Titan") - - return locals() - -def effect6637(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capital Projectile Turret"), "damageMultiplier", - src.getModifiedItemAttr("shipBonusTitanM1"), skill="Minmatar Titan") - - return locals() - -def effect6638(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Missile Launcher XL Cruise", "speed", - src.getModifiedItemAttr("shipBonusTitanC2"), skill="Caldari Titan") - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Missile Launcher Rapid Torpedo", "speed", - src.getModifiedItemAttr("shipBonusTitanC2"), skill="Caldari Titan") - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Missile Launcher XL Torpedo", "speed", - src.getModifiedItemAttr("shipBonusTitanC2"), skill="Caldari Titan") - - return locals() - -def effect6639(): - type = "passive" - def handler(fit, src, context): - fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Fighters"), - "fighterAbilityMissilesExplosionRadius", - src.getModifiedItemAttr("shipBonusSupercarrierA4"), skill="Amarr Carrier") - fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Fighters"), - "fighterAbilityAttackMissileExplosionRadius", - src.getModifiedItemAttr("shipBonusSupercarrierA4"), skill="Amarr Carrier") - - return locals() - -def effect6640(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemIncrease(lambda mod: mod.item.requiresSkill("Leadership"), "maxGroupActive", - src.getModifiedItemAttr("shipBonusRole1")) - - return locals() - -def effect6641(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Hull Upgrades"), "armorHPBonusAdd", - src.getModifiedItemAttr("shipBonusRole2")) - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Upgrades"), "capacityBonus", - src.getModifiedItemAttr("shipBonusRole2")) - - return locals() - -def effect6642(): - type = "passive" - def handler(fit, src, context): - lvl = src.level - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Doomsday Operation"), "duration", - src.getModifiedItemAttr("rofBonus") * lvl) - - return locals() - -def effect6647(): - type = "passive" - def handler(fit, src, context): - fit.ship.increaseItemAttr("warpScrambleStatus", src.getModifiedItemAttr("shipBonusTitanA3"), skill="Amarr Titan") - - return locals() - -def effect6648(): - type = "passive" - def handler(fit, src, context): - fit.ship.increaseItemAttr("warpScrambleStatus", src.getModifiedItemAttr("shipBonusTitanC3"), skill="Caldari Titan") - - return locals() - -def effect6649(): - type = "passive" - def handler(fit, src, context): - fit.ship.increaseItemAttr("warpScrambleStatus", src.getModifiedItemAttr("shipBonusTitanG3"), skill="Gallente Titan") - - return locals() - -def effect6650(): - type = "passive" - def handler(fit, src, context): - fit.ship.increaseItemAttr("warpScrambleStatus", src.getModifiedItemAttr("shipBonusTitanM3"), skill="Minmatar Titan") - - return locals() - -def effect6651(): - type = "projected", "active" - runTime = "late" - def handler(fit, module, context, **kwargs): - if "projected" not in context: - return - if module.charge and module.charge.name == "Nanite Repair Paste": - multiplier = 3 - else: - multiplier = 1 - amount = module.getModifiedItemAttr("armorDamageAmount") * multiplier - speed = module.getModifiedItemAttr("duration") / 1000.0 - rps = amount / speed - fit.extraAttributes.increase("armorRepair", rps) - fit.extraAttributes.increase("armorRepairPreSpool", rps) - fit.extraAttributes.increase("armorRepairFullSpool", rps) - - return locals() - -def effect6652(): - type = "projected", "active" - runTime = "late" - def handler(fit, module, context, **kwargs): - if "projected" not in context: - return - amount = module.getModifiedItemAttr("shieldBonus") - speed = module.getModifiedItemAttr("duration") / 1000.0 - fit.extraAttributes.increase("shieldRepair", amount / speed, **kwargs) - - return locals() - -def effect6653(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capital Energy Turret"), "capacitorNeed", - src.getModifiedItemAttr("shipBonusTitanA2"), skill="Amarr Titan") - - return locals() - -def effect6654(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capital Hybrid Turret"), "speed", - src.getModifiedItemAttr("shipBonusTitanG2"), skill="Gallente Titan") - - return locals() - -def effect6655(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capital Projectile Turret"), "speed", - src.getModifiedItemAttr("shipBonusTitanM2"), skill="Minmatar Titan") - - return locals() - -def effect6656(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Torpedoes"), "maxVelocity", - src.getModifiedItemAttr("shipBonusRole3")) - - return locals() - -def effect6657(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Torpedoes"), "emDamage", - src.getModifiedItemAttr("shipBonusTitanC5"), skill="Caldari Titan") - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Torpedoes"), "explosiveDamage", - src.getModifiedItemAttr("shipBonusTitanC5"), skill="Caldari Titan") - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Torpedoes"), "thermalDamage", - src.getModifiedItemAttr("shipBonusTitanC5"), skill="Caldari Titan") - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("XL Cruise Missiles"), "explosiveDamage", - src.getModifiedItemAttr("shipBonusTitanC5"), skill="Caldari Titan") - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("XL Cruise Missiles"), "thermalDamage", - src.getModifiedItemAttr("shipBonusTitanC5"), skill="Caldari Titan") - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("XL Cruise Missiles"), "emDamage", - src.getModifiedItemAttr("shipBonusTitanC5"), skill="Caldari Titan") - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("XL Torpedoes"), "thermalDamage", - src.getModifiedItemAttr("shipBonusTitanC5"), skill="Caldari Titan") - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("XL Torpedoes"), "emDamage", - src.getModifiedItemAttr("shipBonusTitanC5"), skill="Caldari Titan") - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("XL Torpedoes"), "explosiveDamage", - src.getModifiedItemAttr("shipBonusTitanC5"), skill="Caldari Titan") - - return locals() - -def effect6658(): - type = "active" - runTime = "early" - def handler(fit, src, context): - for layer, attrPrefix in (('shield', 'shield'), ('armor', 'armor'), ('hull', '')): - for damageType in ('Kinetic', 'Thermal', 'Explosive', 'Em'): - bonus = "%s%sDamageResonance" % (attrPrefix, damageType) - bonus = "%s%s" % (bonus[0].lower(), bonus[1:]) - booster = "%s%sDamageResonance" % (layer, damageType) - penalize = False if layer == 'hull' else True - fit.ship.multiplyItemAttr(bonus, src.getModifiedItemAttr(booster), - stackingPenalties=penalize, penaltyGroup="preMul") - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Large Energy Turret") or - mod.item.requiresSkill("Large Hybrid Turret") or - mod.item.requiresSkill("Large Projectile Turret"), - "maxRange", src.getModifiedItemAttr("maxRangeBonus"), - stackingPenalties=True) - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Large Energy Turret") or - mod.item.requiresSkill("Large Hybrid Turret") or - mod.item.requiresSkill("Large Projectile Turret"), - "falloff", src.getModifiedItemAttr("falloffBonus"), - stackingPenalties=True) - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Torpedoes") or - mod.charge.requiresSkill("Cruise Missiles") or - mod.charge.requiresSkill("Heavy Missiles"), - "maxVelocity", src.getModifiedItemAttr("missileVelocityBonus")) - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Repair Systems"), - "armorDamageAmount", src.getModifiedItemAttr("armorDamageAmountBonus"), - stackingPenalties=True) - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Operation"), - "shieldBonus", src.getModifiedItemAttr("shieldBoostMultiplier"), - stackingPenalties=True) - fit.ship.boostItemAttr("maxVelocity", src.getModifiedItemAttr("speedFactor")) - fit.ship.forceItemAttr("maxLockedTargets", src.getModifiedItemAttr("maxLockedTargets")) - fit.ship.forceItemAttr("disallowOffensiveModifiers", src.getModifiedItemAttr("disallowOffensiveModifiers")) - for scanType in ('Magnetometric', 'Ladar', 'Gravimetric', 'Radar'): - fit.ship.boostItemAttr("scan{}Strength".format(scanType), - src.getModifiedItemAttr("scan{}StrengthPercent".format(scanType)), - stackingPenalties=True) - fit.ship.boostItemAttr("remoteRepairImpedance", src.getModifiedItemAttr("remoteRepairImpedanceBonus")) - fit.ship.boostItemAttr("remoteAssistanceImpedance", src.getModifiedItemAttr("remoteAssistanceImpedanceBonus")) - fit.ship.boostItemAttr("sensorDampenerResistance", src.getModifiedItemAttr("sensorDampenerResistanceBonus")) - fit.modules.filteredItemIncrease(lambda mod: mod.item.requiresSkill("Micro Jump Drive Operation"), - "activationBlocked", src.getModifiedItemAttr("activationBlockedStrenght")) - fit.ship.boostItemAttr("targetPainterResistance", src.getModifiedItemAttr("targetPainterResistanceBonus")) - fit.ship.boostItemAttr("weaponDisruptionResistance", src.getModifiedItemAttr("weaponDisruptionResistanceBonus")) - fit.ship.increaseItemAttr("warpScrambleStatus", src.getModifiedItemAttr("siegeModeWarpStatus")) - fit.ship.forceItemAttr("disallowDocking", src.getModifiedItemAttr("disallowDocking")) - fit.ship.forceItemAttr("disallowTethering", src.getModifiedItemAttr("disallowTethering")) - - return locals() - -def effect6661(): - type = "passive" - def handler(fit, src, context): - fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Fighters"), "maxVelocity", - src.getModifiedItemAttr("shipBonusCarrierM3"), skill="Minmatar Carrier") - - return locals() - -def effect6662(): - type = "passive" - def handler(fit, src, context): - fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Fighters"), "shieldCapacity", - src.getModifiedItemAttr("shipBonusCarrierG3"), skill="Gallente Carrier") - - return locals() - -def effect6663(): - type = "passive" - def handler(fit, src, context): - lvl = src.level if "skill" in context else 1 - fit.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Drones"), "damageMultiplier", - src.getModifiedItemAttr("damageMultiplierBonus") * lvl) - fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Fighters"), - "fighterAbilityAttackMissileDamageMultiplier", - src.getModifiedItemAttr("damageMultiplierBonus") * lvl) - fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Fighters"), - "fighterAbilityAttackTurretDamageMultiplier", - src.getModifiedItemAttr("damageMultiplierBonus") * lvl) - fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Fighters"), - "fighterAbilityMissilesDamageMultiplier", - src.getModifiedItemAttr("damageMultiplierBonus") * lvl) - fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Mining Drone Operation"), "miningDroneAmountPercent", - src.getModifiedItemAttr("miningAmountBonus") * lvl) - - return locals() - -def effect6664(): - type = "passive" - def handler(fit, src, context): - lvl = src.level if "skill" in context else 1 - fit.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Drones"), "maxRange", - src.getModifiedItemAttr("rangeSkillBonus") * lvl) - fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Fighters"), "fighterAbilityMissilesRange", - src.getModifiedItemAttr("rangeSkillBonus") * lvl) - fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Fighters"), - "fighterAbilityAttackTurretRangeOptimal", - src.getModifiedItemAttr("rangeSkillBonus") * lvl) - fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Fighters"), - "fighterAbilityAttackMissileRangeOptimal", - src.getModifiedItemAttr("rangeSkillBonus") * lvl) - - return locals() - -def effect6665(): - type = "passive" - def handler(fit, src, context): - lvl = src.level if "skill" in context else 1 - fit.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Drones"), "hp", - src.getModifiedItemAttr("hullHpBonus") * lvl) - fit.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Drones"), "armorHP", - src.getModifiedItemAttr("armorHpBonus") * lvl) - fit.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Drones"), "shieldCapacity", - src.getModifiedItemAttr("shieldCapacityBonus") * lvl) - fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Fighters"), "shieldCapacity", - src.getModifiedItemAttr("shieldCapacityBonus") * lvl) - - return locals() - -def effect6667(): - type = "passive" - def handler(fit, src, context): - lvl = src.level if "skill" in context else 1 - fit.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Drones"), "maxVelocity", - src.getModifiedItemAttr("maxVelocityBonus") * lvl) - fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Fighters"), "maxVelocity", - src.getModifiedItemAttr("maxVelocityBonus") * lvl) - - return locals() - -def effect6669(): - type = "passive" - def handler(fit, src, context): - fit.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Drones"), "armorHP", - src.getModifiedItemAttr("hullHpBonus")) - fit.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Drones"), "hp", - src.getModifiedItemAttr("hullHpBonus")) - fit.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Drones"), "shieldCapacity", - src.getModifiedItemAttr("hullHpBonus")) - fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Fighters"), "shieldCapacity", - src.getModifiedItemAttr("hullHpBonus")) - fit.ship.boostItemAttr("cpuOutput", src.getModifiedItemAttr("drawback")) - - return locals() - -def effect6670(): - type = "passive" - def handler(fit, src, context): - fit.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Drones"), "maxRange", - src.getModifiedItemAttr("rangeSkillBonus"), stackingPenalties=True) - fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Fighters"), "fighterAbilityMissilesRange", - src.getModifiedItemAttr("rangeSkillBonus"), stackingPenalties=True) - fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Fighters"), - "fighterAbilityAttackTurretRangeOptimal", src.getModifiedItemAttr("rangeSkillBonus"), - stackingPenalties=True) - fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Fighters"), - "fighterAbilityAttackMissileRangeOptimal", - src.getModifiedItemAttr("rangeSkillBonus"), stackingPenalties=True) - fit.ship.boostItemAttr("cpuOutput", src.getModifiedItemAttr("drawback")) - - return locals() - -def effect6671(): - type = "passive" - def handler(fit, src, context): - fit.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Drones"), "maxVelocity", - src.getModifiedItemAttr("droneMaxVelocityBonus"), stackingPenalties=True) - fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Fighters"), "maxVelocity", - src.getModifiedItemAttr("droneMaxVelocityBonus"), stackingPenalties=True) - fit.ship.boostItemAttr("cpuOutput", src.getModifiedItemAttr("drawback")) - - return locals() - -def effect6679(): - type = "passive", "structure" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Structure Doomsday Weapon", - "duration", src.getModifiedItemAttr("durationBonus"), - skill="Structure Doomsday Operation") - - return locals() - -def effect668(): - type = "passive" - def handler(fit, skill, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill(skill), - "kineticDamage", skill.getModifiedItemAttr("damageMultiplierBonus") * skill.level) - - return locals() - -def effect6681(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemIncrease(lambda mod: mod.item.requiresSkill("Leadership"), "maxGroupActive", - src.getModifiedItemAttr("shipBonusRole3")) - - return locals() - -def effect6682(): - type = "active", "projected" - def handler(fit, module, context, *args, **kwargs): - if "projected" not in context: - return - fit.ship.boostItemAttr("maxVelocity", module.getModifiedItemAttr("speedFactor"), - stackingPenalties=True, *args, **kwargs) - - return locals() - -def effect6683(): - type = "projected", "active" - def handler(fit, container, context, *args, **kwargs): - if "projected" in context: - fit.ship.boostItemAttr("signatureRadius", container.getModifiedItemAttr("signatureRadiusBonus"), - stackingPenalties=True, *args, **kwargs) - - return locals() - -def effect6684(): - type = "projected", "active" - def handler(fit, module, context, *args, **kwargs): - if "projected" not in context: - return - fit.ship.boostItemAttr("maxTargetRange", module.getModifiedItemAttr("maxTargetRangeBonus"), - stackingPenalties=True, *args, **kwargs) - fit.ship.boostItemAttr("scanResolution", module.getModifiedItemAttr("scanResolutionBonus"), - stackingPenalties=True, *args, **kwargs) - - return locals() - -def effect6685(): - type = "projected", "active" - def handler(fit, module, context): - if "projected" in context: - strModifier = 1 - module.getModifiedItemAttr("scan{0}StrengthBonus".format(fit.scanType)) / fit.scanStrength - fit.ecmProjectedStr *= strModifier - - return locals() - -def effect6686(): - type = "active", "projected" - def handler(fit, module, context, *args, **kwargs): - if "projected" in context: - for srcAttr, tgtAttr in ( - ("aoeCloudSizeBonus", "aoeCloudSize"), - ("aoeVelocityBonus", "aoeVelocity"), - ("missileVelocityBonus", "maxVelocity"), - ("explosionDelayBonus", "explosionDelay"), - ): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), - tgtAttr, module.getModifiedItemAttr(srcAttr), - stackingPenalties=True, *args, **kwargs) - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Gunnery"), - "trackingSpeed", module.getModifiedItemAttr("trackingSpeedBonus"), - stackingPenalties=True, *args, **kwargs) - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Gunnery"), - "maxRange", module.getModifiedItemAttr("maxRangeBonus"), - stackingPenalties=True, *args, **kwargs) - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Gunnery"), - "falloff", module.getModifiedItemAttr("falloffBonus"), - stackingPenalties=True, *args, **kwargs) - - return locals() - -def effect6687(): - type = "projected", "active" - def handler(fit, container, context): - if "projected" in context: - bonus = container.getModifiedItemAttr("armorDamageAmount") - duration = container.getModifiedItemAttr("duration") / 1000.0 - rps = bonus / duration - fit.extraAttributes.increase("armorRepair", rps) - fit.extraAttributes.increase("armorRepairPreSpool", rps) - fit.extraAttributes.increase("armorRepairFullSpool", rps) - - return locals() - -def effect6688(): - type = "projected", "active" - def handler(fit, container, context): - if "projected" in context: - bonus = container.getModifiedItemAttr("shieldBonus") - duration = container.getModifiedItemAttr("duration") / 1000.0 - fit.extraAttributes.increase("shieldRepair", bonus / duration) - - return locals() - -def effect6689(): - type = "projected", "active" - runTime = "late" - def handler(fit, module, context): - if "projected" not in context: - return - bonus = module.getModifiedItemAttr("structureDamageAmount") - duration = module.getModifiedItemAttr("duration") / 1000.0 - fit.extraAttributes.increase("hullRepair", bonus / duration) - - return locals() - -def effect6690(): - type = "active", "projected" - def handler(fit, module, context, *args, **kwargs): - if "projected" not in context: - return - fit.ship.boostItemAttr("maxVelocity", module.getModifiedItemAttr("speedFactor"), - stackingPenalties=True, *args, **kwargs) - - return locals() - -def effect6691(): - from eos.saveddata.module import State - from eos.modifiedAttributeDict import ModifiedAttributeDict - type = "active", "projected" - def handler(fit, src, context, **kwargs): - if "projected" in context and ((hasattr(src, "state") and src.state >= State.ACTIVE) or - hasattr(src, "amountActive")): - amount = src.getModifiedItemAttr("energyNeutralizerAmount") - time = src.getModifiedItemAttr("energyNeutralizerDuration") - if 'effect' in kwargs: - amount *= ModifiedAttributeDict.getResistance(fit, kwargs['effect']) - fit.addDrain(src, time, amount, 0) - - return locals() - -def effect6692(): - type = "projected", "active" - def handler(fit, container, context, *args, **kwargs): - if "projected" in context: - fit.ship.boostItemAttr("signatureRadius", container.getModifiedItemAttr("signatureRadiusBonus"), - stackingPenalties=True, *args, **kwargs) - - return locals() - -def effect6693(): - type = "projected", "active" - def handler(fit, module, context, *args, **kwargs): - if "projected" not in context: - return - fit.ship.boostItemAttr("maxTargetRange", module.getModifiedItemAttr("maxTargetRangeBonus"), - stackingPenalties=True, *args, **kwargs) - fit.ship.boostItemAttr("scanResolution", module.getModifiedItemAttr("scanResolutionBonus"), - stackingPenalties=True, *args, **kwargs) - - return locals() - -def effect6694(): - type = "projected", "active" - def handler(fit, module, context, *args, **kwargs): - if "projected" in context: - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Gunnery"), - "trackingSpeed", module.getModifiedItemAttr("trackingSpeedBonus"), - stackingPenalties=True, *args, **kwargs) - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Gunnery"), - "maxRange", module.getModifiedItemAttr("maxRangeBonus"), - stackingPenalties=True, *args, **kwargs) - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Gunnery"), - "falloff", module.getModifiedItemAttr("falloffBonus"), - stackingPenalties=True, *args, **kwargs) - - return locals() - -def effect6695(): - from eos.modifiedAttributeDict import ModifiedAttributeDict - type = "projected", "active" - def handler(fit, module, context, **kwargs): - if "projected" in context: - strModifier = 1 - module.getModifiedItemAttr("scan{0}StrengthBonus".format(fit.scanType)) / fit.scanStrength - if 'effect' in kwargs: - strModifier *= ModifiedAttributeDict.getResistance(fit, kwargs['effect']) - fit.ecmProjectedStr *= strModifier - - return locals() - -def effect6697(): - type = "passive" - def handler(fit, src, context): - lvl = src.level - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Rig Armor", "drawback", - src.getModifiedItemAttr("rigDrawbackBonus") * lvl) - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Rig Resource Processing", "drawback", - src.getModifiedItemAttr("rigDrawbackBonus") * lvl) - - return locals() - -def effect6698(): - type = "passive" - def handler(fit, src, context): - lvl = src.level - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Rig Navigation", "drawback", - src.getModifiedItemAttr("rigDrawbackBonus") * lvl) - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Rig Anchor", "drawback", - src.getModifiedItemAttr("rigDrawbackBonus") * lvl) - - return locals() - -def effect6699(): - type = "passive" - def handler(fit, src, context): - lvl = src.level - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Rig Drones", "drawback", - src.getModifiedItemAttr("rigDrawbackBonus") * lvl) - - return locals() - -def effect67(): - type = 'active' - def handler(fit, module, context): - module.reloadTime = 1000 - - return locals() - -def effect670(): - type = "passive" - def handler(fit, module, context): - fit.ship.increaseItemAttr("warpScrambleStatus", module.getModifiedItemAttr("warpScrambleStrength")) - - return locals() - -def effect6700(): - type = "passive" - def handler(fit, src, context): - lvl = src.level - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Rig Electronic Systems", "drawback", - src.getModifiedItemAttr("rigDrawbackBonus") * lvl) - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Rig Scanning", "drawback", - src.getModifiedItemAttr("rigDrawbackBonus") * lvl) - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Rig Targeting", "drawback", - src.getModifiedItemAttr("rigDrawbackBonus") * lvl) - - return locals() - -def effect6701(): - type = "passive" - def handler(fit, src, context): - lvl = src.level - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Rig Projectile Weapon", "drawback", - src.getModifiedItemAttr("rigDrawbackBonus") * lvl) - - return locals() - -def effect6702(): - type = "passive" - def handler(fit, src, context): - lvl = src.level - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Rig Energy Weapon", "drawback", - src.getModifiedItemAttr("rigDrawbackBonus") * lvl) - - return locals() - -def effect6703(): - type = "passive" - def handler(fit, src, context): - lvl = src.level - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Rig Hybrid Weapon", "drawback", - src.getModifiedItemAttr("rigDrawbackBonus") * lvl) - - return locals() - -def effect6704(): - type = "passive" - def handler(fit, src, context): - lvl = src.level - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Rig Launcher", "drawback", - src.getModifiedItemAttr("rigDrawbackBonus") * lvl) - - return locals() - -def effect6705(): - type = "passive" - def handler(fit, src, context): - lvl = src.level - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Rig Shield", "drawback", - src.getModifiedItemAttr("rigDrawbackBonus") * lvl) - - return locals() - -def effect6706(): - runTime = "early" - type = "passive" - def handler(fit, src, context): - fit.appliedImplants.filteredItemMultiply(lambda mod: mod.item.requiresSkill("Cybernetics"), - "armorRepairBonus", src.getModifiedItemAttr("implantSetSerpentis2")) - - return locals() - -def effect6708(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Repair Systems"), - "armorDamageAmount", src.getModifiedItemAttr("armorRepairBonus")) - - return locals() - -def effect6709(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capital Hybrid Turret"), - "damageMultiplier", ship.getModifiedItemAttr("shipBonusRole1")) - - return locals() - -def effect6710(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Stasis Web", "speedFactor", - src.getModifiedItemAttr("shipBonusDreadnoughtM1"), skill="Minmatar Dreadnought") - - return locals() - -def effect6711(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capital Hybrid Turret"), "damageMultiplier", - src.getModifiedItemAttr("shipBonusRole3")) - - return locals() - -def effect6712(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Stasis Web", "speedFactor", - src.getModifiedItemAttr("shipBonusTitanM1"), skill="Minmatar Titan") - - return locals() - -def effect6713(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Burst Projector Operation"), "speedFactor", - src.getModifiedItemAttr("shipBonusSupercarrierM1"), skill="Minmatar Carrier") - - return locals() - -def effect6714(): - from eos.modifiedAttributeDict import ModifiedAttributeDict - type = "projected", "active" - def handler(fit, module, context, **kwargs): - if "projected" in context: - strModifier = 1 - module.getModifiedItemAttr("scan{0}StrengthBonus".format(fit.scanType)) / fit.scanStrength - if 'effect' in kwargs: - strModifier *= ModifiedAttributeDict.getResistance(fit, kwargs['effect']) - fit.ecmProjectedStr *= strModifier - - return locals() - -def effect6717(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Mining"), "capacitorNeed", - src.getModifiedItemAttr("miningDurationRoleBonus")) - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Mining"), "duration", - src.getModifiedItemAttr("miningDurationRoleBonus")) - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Ice Harvesting"), "duration", - src.getModifiedItemAttr("miningDurationRoleBonus")) - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Ice Harvesting"), "capacitorNeed", - src.getModifiedItemAttr("miningDurationRoleBonus")) - - return locals() - -def effect6720(): - type = "passive" - def handler(fit, src, context): - fit.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Drones"), "shieldBonus", - src.getModifiedItemAttr("shipBonusMC"), skill="Minmatar Cruiser") - fit.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Drones"), "structureDamageAmount", - src.getModifiedItemAttr("shipBonusMC"), skill="Minmatar Cruiser") - fit.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Drones"), "armorDamageAmount", - src.getModifiedItemAttr("shipBonusMC"), skill="Minmatar Cruiser") - - return locals() - -def effect6721(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Remote Armor Repair Systems"), - "falloffEffectiveness", - src.getModifiedItemAttr("eliteBonusLogistics1"), - skill="Logistics Cruisers") - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Remote Armor Repair Systems"), - "maxRange", - src.getModifiedItemAttr("eliteBonusLogistics1"), - skill="Logistics Cruisers") - - return locals() - -def effect6722(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Remote Armor Repair Systems"), - "falloffEffectiveness", - src.getModifiedItemAttr("roleBonusRepairRange")) - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Remote Armor Repair Systems"), - "maxRange", - src.getModifiedItemAttr("roleBonusRepairRange")) - - return locals() - -def effect6723(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Cloaking"), "cpu", - src.getModifiedItemAttr("shipBonusMC2"), skill="Minmatar Cruiser") - - return locals() - -def effect6724(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Remote Armor Repair Systems"), "duration", - src.getModifiedItemAttr("eliteBonusLogistics3"), skill="Logistics Cruisers") - - return locals() - -def effect6725(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Energy Turret"), "falloff", - src.getModifiedItemAttr("shipBonus2AF"), skill="Amarr Frigate") - - return locals() - -def effect6726(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Cloaking"), "cpu", - src.getModifiedItemAttr("shipBonusMF"), skill="Minmatar Frigate") - - return locals() - -def effect6727(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name in ("Energy Nosferatu", "Energy Neutralizer"), - "falloffEffectiveness", src.getModifiedItemAttr("eliteBonusCovertOps1"), - stackingPenalties=True, skill="Covert Ops") - - return locals() - -def effect6730(): - type = "active" - runTime = "late" - def handler(fit, module, context): - fit.ship.increaseItemAttr("mass", module.getModifiedItemAttr("massAddition")) - speedBoost = module.getModifiedItemAttr("speedFactor") - mass = fit.ship.getModifiedItemAttr("mass") - thrust = module.getModifiedItemAttr("speedBoostFactor") - fit.ship.boostItemAttr("maxVelocity", speedBoost * thrust / mass) - fit.ship.boostItemAttr("signatureRadius", module.getModifiedItemAttr("signatureRadiusBonus"), - stackingPenalties=True) - - return locals() - -def effect6731(): - type = "active" - runTime = "late" - def handler(fit, module, context): - fit.ship.increaseItemAttr("mass", module.getModifiedItemAttr("massAddition")) - speedBoost = module.getModifiedItemAttr("speedFactor") - mass = fit.ship.getModifiedItemAttr("mass") - thrust = module.getModifiedItemAttr("speedBoostFactor") - fit.ship.boostItemAttr("maxVelocity", speedBoost * thrust / mass) - - return locals() - -def effect6732(): - """ - Some documentation: - When the fit is calculated, we gather up all the gang effects and stick them onto the fit. We don't run the actual - effect yet, only give the fit details so that it can run the effect at a later time. We need to do this so that we can - only run the strongest effect. When we are done, one of the last things that we do with the fit is to loop through those - bonuses and actually run the effect. To do this, we have a special argument passed into the effect handler that tells it - which warfareBuffID to run (shouldn't need this right now, but better safe than sorry) - """ - type = "active", "gang" - def handler(fit, module, context, **kwargs): - for x in range(1, 5): - if module.getModifiedChargeAttr("warfareBuff{}ID".format(x)): - value = module.getModifiedItemAttr("warfareBuff{}Value".format(x)) - id = module.getModifiedChargeAttr("warfareBuff{}ID".format(x)) - if id: - fit.addCommandBonus(id, value, module, kwargs['effect']) - - return locals() - -def effect6733(): - type = "active", "gang" - def handler(fit, module, context, **kwargs): - for x in range(1, 5): - if module.getModifiedChargeAttr("warfareBuff{}ID".format(x)): - value = module.getModifiedItemAttr("warfareBuff{}Value".format(x)) - id = module.getModifiedChargeAttr("warfareBuff{}ID".format(x)) - if id: - fit.addCommandBonus(id, value, module, kwargs['effect']) - - return locals() - -def effect6734(): - type = "active", "gang" - def handler(fit, module, context, **kwargs): - for x in range(1, 5): - if module.getModifiedChargeAttr("warfareBuff{}ID".format(x)): - value = module.getModifiedItemAttr("warfareBuff{}Value".format(x)) - id = module.getModifiedChargeAttr("warfareBuff{}ID".format(x)) - if id: - fit.addCommandBonus(id, value, module, kwargs['effect']) - - return locals() - -def effect6735(): - type = "active", "gang" - def handler(fit, module, context, **kwargs): - for x in range(1, 5): - if module.getModifiedChargeAttr("warfareBuff{}ID".format(x)): - value = module.getModifiedItemAttr("warfareBuff{}Value".format(x)) - id = module.getModifiedChargeAttr("warfareBuff{}ID".format(x)) - if id: - fit.addCommandBonus(id, value, module, kwargs['effect']) - - return locals() - -def effect6736(): - type = "active", "gang" - def handler(fit, module, context, **kwargs): - for x in range(1, 5): - if module.getModifiedChargeAttr("warfareBuff{}ID".format(x)): - value = module.getModifiedItemAttr("warfareBuff{}Value".format(x)) - id = module.getModifiedChargeAttr("warfareBuff{}ID".format(x)) - if id: - fit.addCommandBonus(id, value, module, kwargs['effect']) - - return locals() - -def effect6737(): - type = "active" - def handler(fit, module, context): - for x in range(1, 4): - value = module.getModifiedChargeAttr("warfareBuff{}Multiplier".format(x)) - module.multiplyItemAttr("warfareBuff{}Value".format(x), value) - - return locals() - -def effect675(): - type = "passive" - def handler(fit, skill, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Energy Pulse Weapons"), - "cpu", skill.getModifiedItemAttr("cpuNeedBonus") * skill.level) - - return locals() - -def effect6753(): - type = "active", "gang" - def handler(fit, module, context, **kwargs): - for x in range(1, 5): - if module.getModifiedItemAttr("warfareBuff{}ID".format(x)): - value = module.getModifiedItemAttr("warfareBuff{}Value".format(x)) - id = module.getModifiedItemAttr("warfareBuff{}ID".format(x)) - if id: - fit.addCommandBonus(id, value, module, kwargs['effect']) - - return locals() - -def effect6762(): - type = "passive" - def handler(fit, src, context): - lvl = src.level - fit.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Mining Drone Specialization"), "miningAmount", - src.getModifiedItemAttr("miningAmountBonus") * lvl) - fit.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Mining Drone Specialization"), "maxVelocity", - src.getModifiedItemAttr("maxVelocityBonus") * lvl) - - return locals() - -def effect6763(): - type = "passive" - def handler(fit, src, context): - lvl = src.level if "skill" in context else 1 - fit.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Ice Harvesting Drone Operation"), "duration", src.getModifiedItemAttr("rofBonus") * lvl) - - return locals() - -def effect6764(): - type = "passive" - def handler(fit, src, context): - lvl = src.level - fit.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Ice Harvesting Drone Specialization"), "duration", - src.getModifiedItemAttr("rofBonus") * lvl) - fit.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Ice Harvesting Drone Specialization"), - "maxVelocity", src.getModifiedItemAttr("maxVelocityBonus") * lvl) - - return locals() - -def effect6765(): - type = "passive" - def handler(fit, src, context): - lvl = src.level - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Spatial Phenomena Generation"), "buffDuration", - src.getModifiedItemAttr("durationBonus") * lvl) - - return locals() - -def effect6766(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemIncrease(lambda mod: mod.item.requiresSkill("Leadership"), "maxGroupActive", - src.getModifiedItemAttr("maxGangModules")) - fit.modules.filteredItemIncrease(lambda mod: mod.item.requiresSkill("Leadership"), "maxGroupOnline", - src.getModifiedItemAttr("maxGangModules")) - - return locals() - -def effect6769(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Leadership"), "maxRange", - src.getModifiedItemAttr("areaOfEffectBonus") * src.level) - - return locals() - -def effect677(): - type = "passive" - def handler(fit, container, context): - level = container.level if "skill" in context else 1 - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Missile Launcher Operation"), - "cpu", container.getModifiedItemAttr("cpuNeedBonus") * level) - - return locals() - -def effect6770(): - type = "passive" - def handler(fit, src, context): - lvl = src.level - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Armored Command"), "buffDuration", - src.getModifiedItemAttr("durationBonus") * lvl) - - return locals() - -def effect6771(): - type = "passive" - def handler(fit, src, context): - lvl = src.level - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Command"), "buffDuration", - src.getModifiedItemAttr("durationBonus") * lvl) - - return locals() - -def effect6772(): - type = "passive" - def handler(fit, src, context): - lvl = src.level - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Information Command"), "buffDuration", - src.getModifiedItemAttr("durationBonus") * lvl) - - return locals() - -def effect6773(): - type = "passive" - def handler(fit, src, context): - lvl = src.level - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Skirmish Command"), "buffDuration", - src.getModifiedItemAttr("durationBonus") * lvl) - - return locals() - -def effect6774(): - type = "passive" - def handler(fit, src, context): - lvl = src.level - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Mining Foreman"), "buffDuration", - src.getModifiedItemAttr("durationBonus") * lvl) - - return locals() - -def effect6776(): - type = "passive" - def handler(fit, src, context): - lvl = src.level - fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill("Armored Command"), "warfareBuff1Multiplier", - src.getModifiedItemAttr("commandStrengthBonus") * lvl) - fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill("Armored Command"), "warfareBuff2Multiplier", - src.getModifiedItemAttr("commandStrengthBonus") * lvl) - fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill("Armored Command"), "warfareBuff4Multiplier", - src.getModifiedItemAttr("commandStrengthBonus") * lvl) - fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill("Armored Command"), "warfareBuff3Multiplier", - src.getModifiedItemAttr("commandStrengthBonus") * lvl) - - return locals() - -def effect6777(): - type = "passive" - def handler(fit, src, context): - lvl = src.level - fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill("Shield Command"), "warfareBuff3Multiplier", - src.getModifiedItemAttr("commandStrengthBonus") * lvl) - fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill("Shield Command"), "warfareBuff1Multiplier", - src.getModifiedItemAttr("commandStrengthBonus") * lvl) - fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill("Shield Command"), "warfareBuff2Multiplier", - src.getModifiedItemAttr("commandStrengthBonus") * lvl) - fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill("Shield Command"), "warfareBuff4Multiplier", - src.getModifiedItemAttr("commandStrengthBonus") * lvl) - - return locals() - -def effect6778(): - type = "passive" - def handler(fit, src, context): - lvl = src.level - fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill("Information Command"), "warfareBuff2Multiplier", - src.getModifiedItemAttr("commandStrengthBonus") * lvl) - fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill("Information Command"), "warfareBuff1Multiplier", - src.getModifiedItemAttr("commandStrengthBonus") * lvl) - fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill("Information Command"), "warfareBuff3Multiplier", - src.getModifiedItemAttr("commandStrengthBonus") * lvl) - fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill("Information Command"), "warfareBuff4Multiplier", - src.getModifiedItemAttr("commandStrengthBonus") * lvl) - - return locals() - -def effect6779(): - type = "passive" - def handler(fit, src, context): - lvl = src.level - fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill("Skirmish Command"), "warfareBuff3Multiplier", - src.getModifiedItemAttr("commandStrengthBonus") * lvl) - fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill("Skirmish Command"), "warfareBuff4Multiplier", - src.getModifiedItemAttr("commandStrengthBonus") * lvl) - fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill("Skirmish Command"), "warfareBuff1Multiplier", - src.getModifiedItemAttr("commandStrengthBonus") * lvl) - fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill("Skirmish Command"), "warfareBuff2Multiplier", - src.getModifiedItemAttr("commandStrengthBonus") * lvl) - - return locals() - -def effect6780(): - type = "passive" - def handler(fit, src, context): - lvl = src.level - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Mining Foreman"), "warfareBuff4Value", src.getModifiedItemAttr("commandStrengthBonus") * lvl) - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Mining Foreman"), "warfareBuff3Value", src.getModifiedItemAttr("commandStrengthBonus") * lvl) - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Mining Foreman"), "warfareBuff2Value", src.getModifiedItemAttr("commandStrengthBonus") * lvl) - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Mining Foreman"), "warfareBuff1Value", src.getModifiedItemAttr("commandStrengthBonus") * lvl) - - return locals() - -def effect6782(): - type = "passive" - def handler(fit, src, context): - lvl = src.level - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Leadership"), - "reloadTime", - src.getModifiedItemAttr("reloadTimeBonus") * lvl) - - return locals() - -def effect6783(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Leadership"), "maxRange", - src.getModifiedItemAttr("roleBonusCommandBurstAoERange")) - - return locals() - -def effect6786(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Command"), "warfareBuff4Multiplier", - src.getModifiedItemAttr("shipBonusICS3"), skill="Industrial Command Ships") - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Command"), "warfareBuff1Multiplier", - src.getModifiedItemAttr("shipBonusICS3"), skill="Industrial Command Ships") - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Command"), "warfareBuff2Multiplier", - src.getModifiedItemAttr("shipBonusICS3"), skill="Industrial Command Ships") - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Command"), "warfareBuff3Multiplier", - src.getModifiedItemAttr("shipBonusICS3"), skill="Industrial Command Ships") - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Command"), "buffDuration", - src.getModifiedItemAttr("shipBonusICS3"), skill="Industrial Command Ships") - - return locals() - -def effect6787(): - type = "passive" - def handler(fit, src, context): - fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Drones"), - "damageMultiplier", - src.getModifiedItemAttr("shipBonusICS4"), - skill="Industrial Command Ships" - ) - fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Drones"), - "shieldCapacity", - src.getModifiedItemAttr("shipBonusICS4"), - skill="Industrial Command Ships" - ) - fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Drones"), - "armorHP", - src.getModifiedItemAttr("shipBonusICS4"), - skill="Industrial Command Ships" - ) - fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Drones"), - "hp", - src.getModifiedItemAttr("shipBonusICS4"), - skill="Industrial Command Ships" - ) - fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Mining Drone Operation"), - "miningAmount", - src.getModifiedItemAttr("shipBonusICS4"), - skill="Industrial Command Ships" - ) - - return locals() - -def effect6788(): - type = "passive" - def handler(fit, src, context): - fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Ice Harvesting Drone Operation"), - "duration", - src.getModifiedItemAttr("shipBonusICS5"), - skill="Industrial Command Ships" - ) - - return locals() - -def effect6789(): - type = "passive" - def handler(fit, src, context): - fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Drones"), - "damageMultiplier", - src.getModifiedItemAttr("industrialBonusDroneDamage")) - - return locals() - -def effect6790(): - type = "passive" - def handler(fit, src, context): - fit.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Ice Harvesting Drone Operation"), "duration", - src.getModifiedItemAttr("roleBonusDroneIceHarvestingSpeed")) - - return locals() - -def effect6792(): - type = "passive" - def handler(fit, src, context): - fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Drones"), - "damageMultiplier", - src.getModifiedItemAttr("shipBonusORECapital4"), - skill="Capital Industrial Ships" - ) - fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Drones"), - "shieldCapacity", - src.getModifiedItemAttr("shipBonusORECapital4"), - skill="Capital Industrial Ships" - ) - fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Drones"), - "armorHP", - src.getModifiedItemAttr("shipBonusORECapital4"), - skill="Capital Industrial Ships" - ) - fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Drones"), - "hp", - src.getModifiedItemAttr("shipBonusORECapital4"), - skill="Capital Industrial Ships" - ) - fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Mining Drone Operation"), - "miningAmount", - src.getModifiedItemAttr("shipBonusORECapital4"), - skill="Capital Industrial Ships" - ) - - return locals() - -def effect6793(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Mining Foreman"), "warfareBuff1Value", - src.getModifiedItemAttr("shipBonusORECapital2"), skill="Capital Industrial Ships") - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Mining Foreman"), "warfareBuff2Value", - src.getModifiedItemAttr("shipBonusORECapital2"), skill="Capital Industrial Ships") - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Mining Foreman"), "warfareBuff4Value", - src.getModifiedItemAttr("shipBonusORECapital2"), skill="Capital Industrial Ships") - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Mining Foreman"), "warfareBuff3Value", - src.getModifiedItemAttr("shipBonusORECapital2"), skill="Capital Industrial Ships") - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Mining Foreman"), "buffDuration", - src.getModifiedItemAttr("shipBonusORECapital2"), skill="Capital Industrial Ships") - - return locals() - -def effect6794(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Command"), "warfareBuff4Value", - src.getModifiedItemAttr("shipBonusORECapital3"), skill="Capital Industrial Ships") - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Command"), "buffDuration", - src.getModifiedItemAttr("shipBonusORECapital3"), skill="Capital Industrial Ships") - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Command"), "warfareBuff1Value", - src.getModifiedItemAttr("shipBonusORECapital3"), skill="Capital Industrial Ships") - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Command"), "warfareBuff3Value", - src.getModifiedItemAttr("shipBonusORECapital3"), skill="Capital Industrial Ships") - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Command"), "warfareBuff2Value", - src.getModifiedItemAttr("shipBonusORECapital3"), skill="Capital Industrial Ships") - - return locals() - -def effect6795(): - type = "passive" - def handler(fit, src, context): - fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Ice Harvesting Drone Operation"), - "duration", - src.getModifiedItemAttr("shipBonusORECapital5"), - skill="Capital Industrial Ships" - ) - - return locals() - -def effect6796(): - type = "passive" - def handler(fit, module, context): - fit.modules.filteredItemMultiply( - lambda mod: mod.item.requiresSkill("Small Hybrid Turret"), - "damageMultiplier", - 1 / module.getModifiedItemAttr("modeDamageBonusPostDiv"), - stackingPenalties=True, - penaltyGroup="postDiv" - ) - - return locals() - -def effect6797(): - type = "passive" - def handler(fit, module, context): - fit.modules.filteredItemMultiply( - lambda mod: mod.item.requiresSkill("Small Projectile Turret"), - "damageMultiplier", - 1 / module.getModifiedItemAttr("modeDamageBonusPostDiv"), - stackingPenalties=True, - penaltyGroup="postDiv" - ) - - return locals() - -def effect6798(): - type = "passive" - def handler(fit, module, context): - fit.modules.filteredItemMultiply( - lambda mod: mod.item.requiresSkill("Small Energy Turret"), - "damageMultiplier", - 1 / module.getModifiedItemAttr("modeDamageBonusPostDiv"), - stackingPenalties=True, - penaltyGroup="postDiv" - ) - - return locals() - -def effect6799(): - type = "passive" - def handler(fit, module, context): - types = ("thermal", "em", "explosive", "kinetic") - for type in types: - fit.modules.filteredChargeMultiply(lambda mod: mod.charge.requiresSkill("Rockets") or mod.charge.requiresSkill("Light Missiles"), - "{}Damage".format(type), - 1 / module.getModifiedItemAttr("modeDamageBonusPostDiv"), - stackingPenalties=True, - penaltyGroup="postDiv") - - return locals() - -def effect6800(): - type = "passive" - def handler(fit, module, context): - fit.ship.multiplyItemAttr("weaponDisruptionResistance", 1 / module.getModifiedItemAttr("modeEwarResistancePostDiv")) - fit.ship.multiplyItemAttr("sensorDampenerResistance", 1 / module.getModifiedItemAttr("modeEwarResistancePostDiv")) - - return locals() - -def effect6801(): - type = "passive" - def handler(fit, module, context): - fit.modules.filteredItemMultiply( - lambda mod: mod.item.requiresSkill("High Speed Maneuvering") or mod.item.requiresSkill("Afterburner"), - "speedFactor", - 1 / module.getModifiedItemAttr("modeVelocityPostDiv"), - stackingPenalties=True, - penaltyGroup="postDiv" - ) - - return locals() - -def effect6807(): - type = "passive" - def handler(fit, src, context): - lvl = src.level - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Invulnerability Core Operation"), "buffDuration", - src.getModifiedItemAttr("durationBonus") * lvl) - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Invulnerability Core Operation"), "duration", - src.getModifiedItemAttr("durationBonus") * lvl) - - return locals() - -def effect6844(): - type = "passive" - def handler(fit, skill, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Defender Missiles"), - "maxVelocity", skill.getModifiedItemAttr("missileVelocityBonus") * skill.level) - - return locals() - -def effect6845(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Defender Missiles"), - "moduleReactivationDelay", ship.getModifiedItemAttr("shipBonusRole1")) - - return locals() - -def effect6851(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capital Energy Turret"), "damageMultiplier", src.getModifiedItemAttr("shipBonusRole3")) - - return locals() - -def effect6852(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Stasis Web", - "maxRange", src.getModifiedItemAttr("shipBonusTitanM1"), skill="Minmatar Titan") - - return locals() - -def effect6853(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Nosferatu", - "powerTransferAmount", src.getModifiedItemAttr("shipBonusTitanA1"), skill="Amarr Titan") - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Neutralizer", - "energyNeutralizerAmount", src.getModifiedItemAttr("shipBonusTitanA1"), skill="Amarr Titan") - - return locals() - -def effect6855(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Nosferatu", - "powerTransferAmount", src.getModifiedItemAttr("shipBonusDreadnoughtA1"), skill="Amarr Dreadnought") - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Neutralizer", - "energyNeutralizerAmount", src.getModifiedItemAttr("shipBonusDreadnoughtA1"), skill="Amarr Dreadnought") - - return locals() - -def effect6856(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Stasis Web", - "maxRange", src.getModifiedItemAttr("shipBonusDreadnoughtM1"), skill="Minmatar Dreadnought") - - return locals() - -def effect6857(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Nosferatu", - "maxRange", src.getModifiedItemAttr("shipBonusForceAuxiliaryA1"), skill="Amarr Carrier") - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Nosferatu", - "falloffEffectiveness", src.getModifiedItemAttr("shipBonusForceAuxiliaryA1"), skill="Amarr Carrier") - - return locals() - -def effect6858(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Nosferatu", - "powerTransferAmount", src.getModifiedItemAttr("shipBonusForceAuxiliaryA1"), skill="Amarr Carrier") - - return locals() - -def effect6859(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Nosferatu", "cpu", src.getModifiedItemAttr("shipBonusRole4")) - - return locals() - -def effect6860(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Remote Armor Repair Systems"), "power", - src.getModifiedItemAttr("shipBonusRole5")) - - return locals() - -def effect6861(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capital Remote Armor Repair Systems"), "power", src.getModifiedItemAttr("shipBonusRole5")) - - return locals() - -def effect6862(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Remote Armor Repair Systems"), - "duration", src.getModifiedItemAttr("shipBonusForceAuxiliaryM1"), skill="Minmatar Carrier") - - return locals() - -def effect6865(): - type = "passive" - def handler(fit, src, context): - fit.ship.boostItemAttr("warpSpeedMultiplier", src.getModifiedItemAttr("eliteBonusCovertOps1"), skill="Covert Ops") - - return locals() - -def effect6866(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Rockets"), - "explosionDelay", src.getModifiedItemAttr("shipBonusCF"), skill="Caldari Frigate") - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Light Missiles"), - "explosionDelay", src.getModifiedItemAttr("shipBonusCF"), skill="Caldari Frigate") - - return locals() - -def effect6867(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Projectile Turret"), - "speed", src.getModifiedItemAttr("shipBonusMF"), skill="Minmatar Frigate") - - return locals() - -def effect6871(): - type = "passive" - def handler(fit, src, context): - try: - bonus = max(0, min(50.0, (src.parent.character.secStatus * 10))) - except: - bonus = None - if bonus is not None: - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Repair Systems"), - "armorDamageAmount", bonus, stackingPenalties=True) - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Operation"), - "shieldBonus", bonus, stackingPenalties=True) - - return locals() - -def effect6872(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Stasis Web", "maxRange", src.getModifiedItemAttr("eliteBonusReconShip1"), skill="Recon Ships") - - return locals() - -def effect6873(): - type = "passive" - def handler(fit, src, context): - fit.ship.boostItemAttr("warpSpeedMultiplier", src.getModifiedItemAttr("eliteBonusReconShip3"), skill="Recon Ships") - - return locals() - -def effect6874(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Missiles"), - "explosionDelay", src.getModifiedItemAttr("shipBonusCC2"), skill="Caldari Cruiser") - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Assault Missiles"), - "explosionDelay", src.getModifiedItemAttr("shipBonusCC2"), skill="Caldari Cruiser") - - return locals() - -def effect6877(): - type = "passive" - def handler(fit, src, context): - fit.ship.boostItemAttr("warpSpeedMultiplier", src.getModifiedItemAttr("eliteBonusBlackOps1"), stackingPenalties=True, skill="Black Ops") - - return locals() - -def effect6878(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Warp Scrambler", "maxRange", - src.getModifiedItemAttr("eliteBonusBlackOps4"), stackingPenalties=True, skill="Black Ops") - - return locals() - -def effect6879(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Stasis Web", "maxRange", - src.getModifiedItemAttr("eliteBonusBlackOps3"), stackingPenalties=True, skill="Black Ops") - - return locals() - -def effect6880(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Missile Launcher Cruise", "speed", - src.getModifiedItemAttr("shipBonus2CB"), skill="Caldari Battleship") - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Missile Launcher Torpedo", "speed", - src.getModifiedItemAttr("shipBonus2CB"), skill="Caldari Battleship") - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Missile Launcher Rapid Heavy", "speed", - src.getModifiedItemAttr("shipBonus2CB"), skill="Caldari Battleship") - - return locals() - -def effect6881(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Torpedoes"), "explosionDelay", - src.getModifiedItemAttr("shipBonusCB"), skill="Caldari Battleship") - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Cruise Missiles"), "explosionDelay", - src.getModifiedItemAttr("shipBonusCB"), skill="Caldari Battleship") - - return locals() - -def effect6883(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Repair Systems"), - "armorDamageAmount", src.getModifiedItemAttr("shipBonusForceAuxiliaryM2"), skill="Minmatar Carrier") - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capital Repair Systems"), - "armorDamageAmount", src.getModifiedItemAttr("shipBonusForceAuxiliaryM2"), skill="Minmatar Carrier") - - return locals() - -def effect6894(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name in ("Energy Nosferatu", "Energy Neutralizer"), - "cpu", src.getModifiedItemAttr("subsystemEnergyNeutFittingReduction")) - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name in ("Energy Nosferatu", "Energy Neutralizer"), - "power", src.getModifiedItemAttr("subsystemEnergyNeutFittingReduction")) - - return locals() - -def effect6895(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Energy Turret"), - "cpu", src.getModifiedItemAttr("subsystemMETFittingReduction")) - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Energy Turret"), - "power", src.getModifiedItemAttr("subsystemMETFittingReduction")) - - return locals() - -def effect6896(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Hybrid Turret"), - "cpu", src.getModifiedItemAttr("subsystemMHTFittingReduction")) - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Hybrid Turret"), - "power", src.getModifiedItemAttr("subsystemMHTFittingReduction")) - - return locals() - -def effect6897(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Projectile Turret"), - "power", src.getModifiedItemAttr("subsystemMPTFittingReduction")) - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Projectile Turret"), - "cpu", src.getModifiedItemAttr("subsystemMPTFittingReduction")) - - return locals() - -def effect6898(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Remote Armor Repair Systems") and - mod.getModifiedItemAttr('mediumRemoteRepFittingMultiplier', 0) == 1, - "cpu", src.getModifiedItemAttr("subsystemMRARFittingReduction")) - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Remote Armor Repair Systems") and - mod.getModifiedItemAttr('mediumRemoteRepFittingMultiplier', 0) == 1, - "power", src.getModifiedItemAttr("subsystemMRARFittingReduction")) - - return locals() - -def effect6899(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Emission Systems") and - mod.getModifiedItemAttr('mediumRemoteRepFittingMultiplier', 0) == 1, - "cpu", src.getModifiedItemAttr("subsystemMRSBFittingReduction")) - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Emission Systems") and - mod.getModifiedItemAttr('mediumRemoteRepFittingMultiplier', 0) == 1, - "power", src.getModifiedItemAttr("subsystemMRSBFittingReduction")) - - return locals() - -def effect6900(): - type = "passive" - def handler(fit, src, context): - groups = ("Missile Launcher Heavy", "Missile Launcher Rapid Light", "Missile Launcher Heavy Assault") - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name in groups, - "cpu", src.getModifiedItemAttr("subsystemMMissileFittingReduction")) - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name in groups, - "power", src.getModifiedItemAttr("subsystemMMissileFittingReduction")) - - return locals() - -def effect6908(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: True, "moduleRepairRate", - ship.getModifiedItemAttr("shipBonusStrategicCruiserCaldari2"), - skill="Caldari Strategic Cruiser") - - return locals() - -def effect6909(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: True, "moduleRepairRate", - ship.getModifiedItemAttr("shipBonusStrategicCruiserAmarr2"), - skill="Amarr Strategic Cruiser") - - return locals() - -def effect6910(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: True, "moduleRepairRate", - ship.getModifiedItemAttr("shipBonusStrategicCruiserGallente2"), - skill="Gallente Strategic Cruiser") - - return locals() - -def effect6911(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: True, "moduleRepairRate", - ship.getModifiedItemAttr("shipBonusStrategicCruiserMinmatar2"), - skill="Minmatar Strategic Cruiser") - - return locals() - -def effect6920(): - type = "passive" - def handler(fit, module, context): - fit.ship.increaseItemAttr("hp", module.getModifiedItemAttr("structureHPBonusAdd") or 0) - - return locals() - -def effect6921(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Astrometrics"), - "baseSensorStrength", src.getModifiedItemAttr("subsystemBonusAmarrDefensive2"), - skill="Amarr Defensive Systems") - - return locals() - -def effect6923(): - type = "passive" - def handler(fit, container, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Missiles") or mod.charge.requiresSkill("Heavy Assault Missiles"), - "maxVelocity", container.getModifiedItemAttr("subsystemBonusMinmatarOffensive"), - skill="Minmatar Offensive Systems") - - return locals() - -def effect6924(): - type = "passive" - def handler(fit, container, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), - "aoeVelocity", container.getModifiedItemAttr("subsystemBonusMinmatarOffensive3"), - skill="Minmatar Offensive Systems") - - return locals() - -def effect6925(): - type = "passive" - def handler(fit, src, context): - fit.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Drones"), - "maxVelocity", src.getModifiedItemAttr("subsystemBonusGallenteOffensive2"), - skill="Gallente Offensive Systems") - fit.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Drones"), - "trackingSpeed", src.getModifiedItemAttr("subsystemBonusGallenteOffensive2"), - skill="Gallente Offensive Systems") - - return locals() - -def effect6926(): - type = "passive" - def handler(fit, src, context): - fit.ship.boostItemAttr("warpCapacitorNeed", src.getModifiedItemAttr("subsystemBonusAmarrPropulsion"), skill="Amarr Propulsion Systems") - - return locals() - -def effect6927(): - type = "passive" - def handler(fit, src, context): - fit.ship.boostItemAttr("warpCapacitorNeed", src.getModifiedItemAttr("subsystemBonusMinmatarPropulsion"), - skill="Minmatar Propulsion Systems") - - return locals() - -def effect6928(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Afterburner") or mod.item.requiresSkill("High Speed Maneuvering"), - "overloadSpeedFactorBonus", src.getModifiedItemAttr("subsystemBonusCaldariPropulsion2"), - skill="Caldari Propulsion Systems") - - return locals() - -def effect6929(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Afterburner") or mod.item.requiresSkill("High Speed Maneuvering"), - "overloadSpeedFactorBonus", src.getModifiedItemAttr("subsystemBonusGallentePropulsion2"), - skill="Gallente Propulsion Systems") - - return locals() - -def effect6930(): - type = "passive" - def handler(fit, src, context): - fit.ship.boostItemAttr("energyWarfareResistance", src.getModifiedItemAttr("subsystemBonusAmarrCore2"), skill="Amarr Core Systems") - - return locals() - -def effect6931(): - type = "passive" - def handler(fit, src, context): - fit.ship.boostItemAttr("energyWarfareResistance", src.getModifiedItemAttr("subsystemBonusMinmatarCore2"), - skill="Minmatar Core Systems") - - return locals() - -def effect6932(): - type = "passive" - def handler(fit, src, context): - fit.ship.boostItemAttr("energyWarfareResistance", src.getModifiedItemAttr("subsystemBonusGallenteCore2"), - skill="Gallente Core Systems") - - return locals() - -def effect6933(): - type = "passive" - def handler(fit, src, context): - fit.ship.boostItemAttr("energyWarfareResistance", src.getModifiedItemAttr("subsystemBonusCaldariCore2"), - skill="Caldari Core Systems") - - return locals() - -def effect6934(): - type = "passive" - def handler(fit, src, context): - fit.ship.increaseItemAttr("maxLockedTargets", src.getModifiedItemAttr("maxLockedTargetsBonus")) - - return locals() - -def effect6935(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name in ("Energy Nosferatu", "Energy Neutralizer"), "overloadSelfDurationBonus", - src.getModifiedItemAttr("subsystemBonusAmarrCore3"), skill="Amarr Core Systems") - - return locals() - -def effect6936(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Stasis Web", - "overloadRangeBonus", src.getModifiedItemAttr("subsystemBonusMinmatarCore3"), - skill="Minmatar Core Systems") - - return locals() - -def effect6937(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Warp Scrambler", "overloadRangeBonus", - src.getModifiedItemAttr("subsystemBonusGallenteCore3"), skill="Gallente Core Systems") - - return locals() - -def effect6938(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "ECM", "overloadECMStrengthBonus", - src.getModifiedItemAttr("subsystemBonusCaldariCore3"), skill="Caldari Core Systems") - - return locals() - -def effect6939(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Hull Upgrades"), "overloadSelfDurationBonus", - src.getModifiedItemAttr("subsystemBonusAmarrDefensive2"), skill="Amarr Defensive Systems") - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Hull Upgrades"), "overloadHardeningBonus", - src.getModifiedItemAttr("subsystemBonusAmarrDefensive2"), skill="Amarr Defensive Systems") - - return locals() - -def effect6940(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Hull Upgrades"), "overloadHardeningBonus", - src.getModifiedItemAttr("subsystemBonusGallenteDefensive2"), skill="Gallente Defensive Systems") - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Hull Upgrades"), "overloadSelfDurationBonus", - src.getModifiedItemAttr("subsystemBonusGallenteDefensive2"), skill="Gallente Defensive Systems") - - return locals() - -def effect6941(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Tactical Shield Manipulation"), - "overloadHardeningBonus", src.getModifiedItemAttr("subsystemBonusCaldariDefensive2"), - skill="Caldari Defensive Systems") - - return locals() - -def effect6942(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Hull Upgrades"), "overloadSelfDurationBonus", - src.getModifiedItemAttr("subsystemBonusMinmatarDefensive2"), skill="Minmatar Defensive Systems") - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Hull Upgrades"), "overloadHardeningBonus", - src.getModifiedItemAttr("subsystemBonusMinmatarDefensive2"), skill="Minmatar Defensive Systems") - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Tactical Shield Manipulation"), "overloadHardeningBonus", - src.getModifiedItemAttr("subsystemBonusMinmatarDefensive2"), skill="Minmatar Defensive Systems") - - return locals() - -def effect6943(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Repair Systems"), - "overloadSelfDurationBonus", src.getModifiedItemAttr("subsystemBonusAmarrDefensive3"), - skill="Amarr Defensive Systems") - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Repair Systems"), - "overloadArmorDamageAmount", src.getModifiedItemAttr("subsystemBonusAmarrDefensive3"), - skill="Amarr Defensive Systems") - - return locals() - -def effect6944(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Repair Systems"), - "overloadSelfDurationBonus", src.getModifiedItemAttr("subsystemBonusGallenteDefensive3"), - skill="Gallente Defensive Systems") - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Repair Systems"), - "overloadArmorDamageAmount", src.getModifiedItemAttr("subsystemBonusGallenteDefensive3"), - skill="Gallente Defensive Systems") - - return locals() - -def effect6945(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Operation"), - "overloadShieldBonus", src.getModifiedItemAttr("subsystemBonusCaldariDefensive3"), - skill="Caldari Defensive Systems") - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Operation"), - "overloadSelfDurationBonus", src.getModifiedItemAttr("subsystemBonusCaldariDefensive3"), - skill="Caldari Defensive Systems") - - return locals() - -def effect6946(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Repair Systems") or mod.item.requiresSkill("Shield Operation"), - "overloadArmorDamageAmount", src.getModifiedItemAttr("subsystemBonusMinmatarDefensive3"), - skill="Minmatar Defensive Systems") - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Repair Systems") or mod.item.requiresSkill("Shield Operation"), - "overloadSelfDurationBonus", src.getModifiedItemAttr("subsystemBonusMinmatarDefensive3"), - skill="Minmatar Defensive Systems") - - return locals() - -def effect6947(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Astrometrics"), - "baseSensorStrength", src.getModifiedItemAttr("subsystemBonusCaldariDefensive2"), - skill="Caldari Defensive Systems") - - return locals() - -def effect6949(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Astrometrics"), "baseSensorStrength", - src.getModifiedItemAttr("subsystemBonusGallenteDefensive2"), skill="Gallente Defensive Systems") - - return locals() - -def effect6951(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Astrometrics"), "baseSensorStrength", - src.getModifiedItemAttr("subsystemBonusMinmatarDefensive2"), skill="Minmatar Defensive Systems") - - return locals() - -def effect6953(): - type = "passive" - def handler(fit, module, context): - module.multiplyItemAttr("power", module.getModifiedItemAttr("mediumRemoteRepFittingMultiplier")) - module.multiplyItemAttr("cpu", module.getModifiedItemAttr("mediumRemoteRepFittingMultiplier")) - - return locals() - -def effect6954(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Leadership"), "power", - src.getModifiedItemAttr("subsystemCommandBurstFittingReduction")) - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Leadership"), "cpu", - src.getModifiedItemAttr("subsystemCommandBurstFittingReduction")) - - return locals() - -def effect6955(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name in ("Remote Shield Booster", "Ancillary Remote Shield Booster"), - "falloffEffectiveness", src.getModifiedItemAttr("remoteShieldBoosterFalloffBonus")) - - return locals() - -def effect6956(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name in ("Remote Armor Repairer", "Ancillary Remote Armor Repairer"), - "maxRange", src.getModifiedItemAttr("remoteArmorRepairerOptimalBonus")) - - return locals() - -def effect6957(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name in ("Remote Armor Repairer", "Ancillary Remote Armor Repairer"), - "falloffEffectiveness", src.getModifiedItemAttr("remoteArmorRepairerFalloffBonus")) - - return locals() - -def effect6958(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Remote Armor Repair Systems"), "overloadSelfDurationBonus", - src.getModifiedItemAttr("subsystemBonusAmarrOffensive3"), skill="Amarr Offensive Systems") - - return locals() - -def effect6959(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Remote Armor Repair Systems"), "overloadSelfDurationBonus", - src.getModifiedItemAttr("subsystemBonusGallenteOffensive3"), skill="Gallente Offensive Systems") - - return locals() - -def effect6960(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Emission Systems"), - "overloadSelfDurationBonus", src.getModifiedItemAttr("subsystemBonusCaldariOffensive3"), - skill="Caldari Offensive Systems") - - return locals() - -def effect6961(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Emission Systems") or mod.item.requiresSkill("Remote Armor Repair Systems"), - "overloadSelfDurationBonus", src.getModifiedItemAttr("subsystemBonusMinmatarOffensive3"), - skill="Minmatar Offensive Systems") - - return locals() - -def effect6962(): - type = "passive" - def handler(fit, src, context): - fit.ship.boostItemAttr("warpSpeedMultiplier", src.getModifiedItemAttr("subsystemBonusAmarrPropulsion2"), - skill="Amarr Propulsion Systems") - - return locals() - -def effect6963(): - type = "passive" - def handler(fit, src, context): - fit.ship.boostItemAttr("warpSpeedMultiplier", src.getModifiedItemAttr("subsystemBonusMinmatarPropulsion2"), - skill="Minmatar Propulsion Systems") - - return locals() - -def effect6964(): - type = "passive" - def handler(fit, module, context): - fit.ship.boostItemAttr("baseWarpSpeed", module.getModifiedItemAttr("subsystemBonusGallentePropulsion"), - skill="Gallente Propulsion Systems") - - return locals() - -def effect6981(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill("Torpedoes"), "thermalDamage", - src.getModifiedItemAttr("shipBonusTitanG1"), skill="Gallente Titan") - fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill("Torpedoes"), "kineticDamage", - src.getModifiedItemAttr("shipBonusTitanG1"), skill="Gallente Titan") - fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill("XL Torpedoes"), "thermalDamage", - src.getModifiedItemAttr("shipBonusTitanG1"), skill="Gallente Titan") - fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill("XL Torpedoes"), "kineticDamage", - src.getModifiedItemAttr("shipBonusTitanG1"), skill="Gallente Titan") - fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill("XL Cruise Missiles"), "thermalDamage", - src.getModifiedItemAttr("shipBonusTitanG1"), skill="Gallente Titan") - fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill("XL Cruise Missiles"), "kineticDamage", - src.getModifiedItemAttr("shipBonusTitanG1"), skill="Gallente Titan") - - return locals() - -def effect6982(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill("Torpedoes"), "explosiveDamage", - src.getModifiedItemAttr("shipBonusTitanG2"), skill="Gallente Titan") - fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill("Torpedoes"), "emDamage", - src.getModifiedItemAttr("shipBonusTitanG2"), skill="Gallente Titan") - fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill("XL Torpedoes"), "emDamage", - src.getModifiedItemAttr("shipBonusTitanG2"), skill="Gallente Titan") - fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill("XL Torpedoes"), "explosiveDamage", - src.getModifiedItemAttr("shipBonusTitanG2"), skill="Gallente Titan") - fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill("XL Cruise Missiles"), "emDamage", - src.getModifiedItemAttr("shipBonusTitanG2"), skill="Gallente Titan") - fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill("XL Cruise Missiles"), "explosiveDamage", - src.getModifiedItemAttr("shipBonusTitanG2"), skill="Gallente Titan") - - return locals() - -def effect6983(): - type = "passive" - def handler(fit, src, context): - fit.ship.boostItemAttr("shieldKineticDamageResonance", src.getModifiedItemAttr("shipBonusTitanC1"), skill="Caldari Titan") - fit.ship.boostItemAttr("shieldEmDamageResonance", src.getModifiedItemAttr("shipBonusTitanC1"), skill="Caldari Titan") - fit.ship.boostItemAttr("shieldExplosiveDamageResonance", src.getModifiedItemAttr("shipBonusTitanC1"), skill="Caldari Titan") - fit.ship.boostItemAttr("shieldThermalDamageResonance", src.getModifiedItemAttr("shipBonusTitanC1"), skill="Caldari Titan") - - return locals() - -def effect6984(): - type = "passive" - def handler(fit, src, context): - fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Fighters"), "shieldCapacity", - src.getModifiedItemAttr("shipBonusRole4")) - fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Fighters"), "fighterAbilityAttackTurretDamageMultiplier", - src.getModifiedItemAttr("shipBonusRole4")) - fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Fighters"), "fighterAbilityAttackMissileDamageMultiplier", - src.getModifiedItemAttr("shipBonusRole4")) - fit.fighters.filteredItemBoost(lambda mod: mod.item.requiresSkill("Fighters"), "fighterAbilityMissilesDamageMultiplier", - src.getModifiedItemAttr("shipBonusRole4")) - - return locals() - -def effect6985(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill("Torpedoes"), "kineticDamage", - src.getModifiedItemAttr("shipBonusDreadnoughtG1"), skill="Gallente Dreadnought") - fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill("Torpedoes"), "thermalDamage", - src.getModifiedItemAttr("shipBonusDreadnoughtG1"), skill="Gallente Dreadnought") - fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill("XL Torpedoes"), "kineticDamage", - src.getModifiedItemAttr("shipBonusDreadnoughtG1"), skill="Gallente Dreadnought") - fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill("XL Torpedoes"), "thermalDamage", - src.getModifiedItemAttr("shipBonusDreadnoughtG1"), skill="Gallente Dreadnought") - fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill("XL Cruise Missiles"), "thermalDamage", - src.getModifiedItemAttr("shipBonusDreadnoughtG1"), skill="Gallente Dreadnought") - fit.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill("XL Cruise Missiles"), "kineticDamage", - src.getModifiedItemAttr("shipBonusDreadnoughtG1"), skill="Gallente Dreadnought") - - return locals() - -def effect6986(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capital Shield Emission Systems"), "shieldBonus", - src.getModifiedItemAttr("shipBonusForceAuxiliaryG1"), skill="Gallente Carrier") - - return locals() - -def effect6987(): - type = "passive" - def handler(fit, src, context): - fit.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Repair Drone Operation"), - "structureDamageAmount", src.getModifiedItemAttr("shipBonusRole2")) - fit.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Repair Drone Operation"), - "shieldBonus", src.getModifiedItemAttr("shipBonusRole2")) - fit.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Repair Drone Operation"), - "armorDamageAmount", src.getModifiedItemAttr("shipBonusRole2")) - fit.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Repair Drone Operation"), - "armorHP", src.getModifiedItemAttr("shipBonusRole2")) - fit.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Repair Drone Operation"), - "shieldCapacity", src.getModifiedItemAttr("shipBonusRole2")) - fit.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Repair Drone Operation"), - "hp", src.getModifiedItemAttr("shipBonusRole2")) - - return locals() - -def effect699(): - type = "passive" - def handler(fit, container, context): - level = container.level if "skill" in context else 1 - penalized = False if "skill" in context or "implant" in context or "booster" in context else True - fit.ship.boostItemAttr("scanResolution", container.getModifiedItemAttr("scanResolutionBonus") * level, - stackingPenalties=penalized) - - return locals() - -def effect6992(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Hybrid Turret"), "damageMultiplier", src.getModifiedItemAttr("shipBonusRole1")) - - return locals() - -def effect6993(): - type = "passive" - def handler(fit, src, context): - fit.boosters.filteredItemBoost(lambda mod: mod.item.group.name == "Booster", "boosterMissileAOECloudPenalty", src.getModifiedItemAttr("shipBonusRole2")) - fit.boosters.filteredItemBoost(lambda mod: mod.item.group.name == "Booster", "boosterCapacitorCapacityPenalty", src.getModifiedItemAttr("shipBonusRole2")) - fit.boosters.filteredItemBoost(lambda mod: mod.item.group.name == "Booster", "boosterAOEVelocityPenalty", src.getModifiedItemAttr("shipBonusRole2")) - fit.boosters.filteredItemBoost(lambda mod: mod.item.group.name == "Booster", "boosterArmorRepairAmountPenalty", src.getModifiedItemAttr("shipBonusRole2")) - fit.boosters.filteredItemBoost(lambda mod: mod.item.group.name == "Booster", "boosterMissileVelocityPenalty", src.getModifiedItemAttr("shipBonusRole2")) - fit.boosters.filteredItemBoost(lambda mod: mod.item.group.name == "Booster", "boosterTurretTrackingPenalty", src.getModifiedItemAttr("shipBonusRole2")) - fit.boosters.filteredItemBoost(lambda mod: mod.item.group.name == "Booster", "boosterShieldCapacityPenalty", src.getModifiedItemAttr("shipBonusRole2")) - fit.boosters.filteredItemBoost(lambda mod: mod.item.group.name == "Booster", "boosterTurretOptimalRangePenalty", src.getModifiedItemAttr("shipBonusRole2")) - fit.boosters.filteredItemBoost(lambda mod: mod.item.group.name == "Booster", "boosterShieldBoostAmountPenalty", src.getModifiedItemAttr("shipBonusRole2")) - fit.boosters.filteredItemBoost(lambda mod: mod.item.group.name == "Booster", "boosterTurretFalloffPenalty", src.getModifiedItemAttr("shipBonusRole2")) - fit.boosters.filteredItemBoost(lambda mod: mod.item.group.name == "Booster", "boosterArmorHPPenalty", src.getModifiedItemAttr("shipBonusRole2")) - fit.boosters.filteredItemBoost(lambda mod: mod.item.group.name == "Booster", "boosterMaxVelocityPenalty", src.getModifiedItemAttr("shipBonusRole2")) - - return locals() - -def effect6994(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Hybrid Turret"), "damageMultiplier", - src.getModifiedItemAttr("eliteBonusReconShip1"), skill="Recon Ships") - - return locals() - -def effect6995(): - type = 'active' - def handler(fit, module, context): - module.reloadTime = 1000 - - return locals() - -def effect6996(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Repair Systems"), "armorDamageAmount", - src.getModifiedItemAttr("eliteBonusReconShip3"), skill="Recon Ships") - - return locals() - -def effect6997(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Repair Systems"), "armorDamageAmount", - src.getModifiedItemAttr("eliteBonusCovertOps4"), skill="Covert Ops") - - return locals() - -def effect6999(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemMultiply(lambda mod: mod.item.group.name == "Missile Launcher Torpedo", - "cpu", ship.getModifiedItemAttr("stealthBomberLauncherCPU")) - - return locals() - -def effect7000(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Hybrid Turret"), "falloff", - src.getModifiedItemAttr("shipBonusGF"), skill="Gallente Frigate") - - return locals() - -def effect7001(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Missile Launcher Torpedo", "speed", src.getModifiedItemAttr("shipBonusRole1")) - - return locals() - -def effect7002(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Bomb Deployment"), "power", src.getModifiedItemAttr("shipBonusRole3")) - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Bomb Deployment"), "cpu", src.getModifiedItemAttr("shipBonusRole3")) - - return locals() - -def effect7003(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Hybrid Turret"), "damageMultiplier", - src.getModifiedItemAttr("eliteBonusCovertOps3"), skill="Covert Ops") - - return locals() - -def effect7008(): - type = "passive" - def handler(fit, src, context): - fit.ship.multiplyItemAttr("shieldCapacity", src.getModifiedItemAttr("structureFullPowerStateHitpointMultiplier") or 0) - fit.ship.multiplyItemAttr("armorHP", src.getModifiedItemAttr("structureFullPowerStateHitpointMultiplier") or 0) - - return locals() - -def effect7009(): - type = "passive" - runTime = "early" - def handler(fit, src, context): - fit.ship.forceItemAttr("structureFullPowerStateHitpointMultiplier", src.getModifiedItemAttr("serviceModuleFullPowerStateHitpointMultiplier")) - - return locals() - -def effect7012(): - type = "active" - runTime = "early" - def handler(fit, src, context): - for layer, attrPrefix in (('shield', 'shield'), ('armor', 'armor'), ('hull', '')): - for damageType in ('Kinetic', 'Thermal', 'Explosive', 'Em'): - bonus = "%s%sDamageResonance" % (attrPrefix, damageType) - bonus = "%s%s" % (bonus[0].lower(), bonus[1:]) - booster = "%s%sDamageResonance" % (layer, damageType) - src.forceItemAttr(booster, src.getModifiedItemAttr("resistanceMultiplier")) - - return locals() - -def effect7013(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), "kineticDamage", - src.getModifiedItemAttr("eliteBonusGunship1"), skill="Assault Frigates") - - return locals() - -def effect7014(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), "thermalDamage", - src.getModifiedItemAttr("eliteBonusGunship1"), skill="Assault Frigates") - - return locals() - -def effect7015(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), "emDamage", - src.getModifiedItemAttr("eliteBonusGunship1"), skill="Assault Frigates") - - return locals() - -def effect7016(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), "explosiveDamage", - src.getModifiedItemAttr("eliteBonusGunship1"), skill="Assault Frigates") - - return locals() - -def effect7017(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), "aoeVelocity", - src.getModifiedItemAttr("eliteBonusGunship2"), stackingPenalties=True, skill="Assault Frigates") - - return locals() - -def effect7018(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Energy Turret"), "speed", - src.getModifiedItemAttr("shipBonusAF"), stackingPenalties=False, skill="Amarr Frigate") - - return locals() - -def effect7020(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Stasis Web", "maxRange", - src.getModifiedItemAttr("stasisWebRangeBonus"), stackingPenalties=False) - - return locals() - -def effect7021(): - type = "passive" - def handler(fit, module, context): - fit.ship.boostItemAttr("maxTargetRange", module.getModifiedItemAttr("structureRigMaxTargetRangeBonus")) - - return locals() - -def effect7024(): - type = "passive" - def handler(fit, src, context): - fit.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Drones"), "trackingSpeed", - src.getModifiedItemAttr("eliteBonusGunship2"), skill="Assault Frigates") - - return locals() - -def effect7026(): - type = "passive" - runTime = "early" - def handler(fit, src, context, *args, **kwargs): - src.boostItemAttr("maxRange", src.getModifiedChargeAttr("warpScrambleRangeBonus")) - - return locals() - -def effect7027(): - type = "passive" - def handler(fit, ship, context): - fit.ship.increaseItemAttr("capacitorCapacity", ship.getModifiedItemAttr("capacitorBonus")) - - return locals() - -def effect7028(): - type = "passive" - def handler(fit, module, context): - fit.ship.multiplyItemAttr("rechargeRate", module.getModifiedItemAttr("capacitorRechargeRateMultiplier")) - - return locals() - -def effect7029(): - type = "passive" - runTime = "early" - def handler(fit, src, context): - fit.ship.boostItemAttr("hiddenArmorHPMultiplier", src.getModifiedItemAttr("armorHpBonus"), stackingPenalties=True) - - return locals() - -def effect7030(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Structure Guided Bomb Launcher", - "speed", ship.getModifiedItemAttr("structureAoERoFRoleBonus")) - for attr in ["duration", "durationTargetIlluminationBurstProjector", "durationWeaponDisruptionBurstProjector", - "durationECMJammerBurstProjector", "durationSensorDampeningBurstProjector", "capacitorNeed"]: - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Structure Burst Projector", - attr, ship.getModifiedItemAttr("structureAoERoFRoleBonus")) - - return locals() - -def effect7031(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Missiles"), "kineticDamage", - src.getModifiedItemAttr("shipBonusCBC2"), skill="Caldari Battlecruiser") - - return locals() - -def effect7032(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Missiles"), "thermalDamage", - src.getModifiedItemAttr("shipBonusCBC2"), skill="Caldari Battlecruiser") - - return locals() - -def effect7033(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Missiles"), - "emDamage", src.getModifiedItemAttr("shipBonusCBC2"), skill="Caldari Battlecruiser") - - return locals() - -def effect7034(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Missiles"), "explosiveDamage", - src.getModifiedItemAttr("shipBonusCBC2"), skill="Caldari Battlecruiser") - - return locals() - -def effect7035(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Assault Missiles"), "explosiveDamage", - src.getModifiedItemAttr("shipBonusCBC2"), skill="Caldari Battlecruiser") - - return locals() - -def effect7036(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Assault Missiles"), "emDamage", - src.getModifiedItemAttr("shipBonusCBC2"), skill="Caldari Battlecruiser") - - return locals() - -def effect7037(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Assault Missiles"), - "thermalDamage", src.getModifiedItemAttr("shipBonusCBC2"), skill="Caldari Battlecruiser") - - return locals() - -def effect7038(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Assault Missiles"), - "kineticDamage", src.getModifiedItemAttr("shipBonusCBC2"), skill="Caldari Battlecruiser") - - return locals() - -def effect7039(): - type = "passive" - def handler(fit, src, context): - groups = ("Structure Anti-Subcapital Missile", "Structure Anti-Capital Missile") - for dmgType in ("em", "kinetic", "explosive", "thermal"): - fit.modules.filteredChargeMultiply(lambda mod: mod.item.group.name in groups, - "%sDamage" % dmgType, - src.getModifiedItemAttr("hiddenMissileDamageMultiplier")) - - return locals() - -def effect7040(): - type = "passive" - def handler(fit, src, context): - fit.ship.multiplyItemAttr("armorHP", src.getModifiedItemAttr("hiddenArmorHPMultiplier") or 0) - - return locals() - -def effect7042(): - type = "passive" - def handler(fit, src, context): - fit.ship.boostItemAttr("armorHP", src.getModifiedItemAttr("shipBonusAC"), skill="Amarr Cruiser") - - return locals() - -def effect7043(): - type = "passive" - def handler(fit, src, context): - fit.ship.boostItemAttr("shieldCapacity", src.getModifiedItemAttr("shipBonusCC"), skill="Caldari Cruiser") - - return locals() - -def effect7044(): - type = "passive" - def handler(fit, src, context): - fit.ship.boostItemAttr("agility", src.getModifiedItemAttr("shipBonusGC"), skill="Gallente Cruiser") - - return locals() - -def effect7045(): - type = "passive" - def handler(fit, src, context): - fit.ship.boostItemAttr("signatureRadius", src.getModifiedItemAttr("shipBonusMC"), skill="Minmatar Cruiser") - - return locals() - -def effect7046(): - type = "passive" - def handler(fit, src, context): - fit.ship.boostItemAttr("explosiveDamageResonance", src.getModifiedItemAttr("eliteBonusFlagCruisers1"), skill="Flag Cruisers") - fit.ship.boostItemAttr("shieldKineticDamageResonance", src.getModifiedItemAttr("eliteBonusFlagCruisers1"), skill="Flag Cruisers") - fit.ship.boostItemAttr("shieldExplosiveDamageResonance", src.getModifiedItemAttr("eliteBonusFlagCruisers1"), skill="Flag Cruisers") - fit.ship.boostItemAttr("armorThermalDamageResonance", src.getModifiedItemAttr("eliteBonusFlagCruisers1"), skill="Flag Cruisers") - fit.ship.boostItemAttr("thermalDamageResonance", src.getModifiedItemAttr("eliteBonusFlagCruisers1"), skill="Flag Cruisers") - fit.ship.boostItemAttr("shieldEmDamageResonance", src.getModifiedItemAttr("eliteBonusFlagCruisers1"), skill="Flag Cruisers") - fit.ship.boostItemAttr("armorExplosiveDamageResonance", src.getModifiedItemAttr("eliteBonusFlagCruisers1"), skill="Flag Cruisers") - fit.ship.boostItemAttr("armorEmDamageResonance", src.getModifiedItemAttr("eliteBonusFlagCruisers1"), skill="Flag Cruisers") - fit.ship.boostItemAttr("shieldThermalDamageResonance", src.getModifiedItemAttr("eliteBonusFlagCruisers1"), skill="Flag Cruisers") - fit.ship.boostItemAttr("kineticDamageResonance", src.getModifiedItemAttr("eliteBonusFlagCruisers1"), skill="Flag Cruisers") - fit.ship.boostItemAttr("armorKineticDamageResonance", src.getModifiedItemAttr("eliteBonusFlagCruisers1"), skill="Flag Cruisers") - fit.ship.boostItemAttr("emDamageResonance", src.getModifiedItemAttr("eliteBonusFlagCruisers1"), skill="Flag Cruisers") - - return locals() - -def effect7047(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name in ("Propulsion Module", "Micro Jump Drive"), - "power", src.getModifiedItemAttr("flagCruiserFittingBonusPropMods")) - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name in ("Propulsion Module", "Micro Jump Drive"), - "cpu", src.getModifiedItemAttr("flagCruiserFittingBonusPropMods")) - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name in ("Target Painter", "Scan Probe Launcher"), - "cpu", src.getModifiedItemAttr("flagCruiserFittingBonusPainterProbes")) - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name in ("Target Painter", "Scan Probe Launcher"), - "power", src.getModifiedItemAttr("flagCruiserFittingBonusPainterProbes")) - - return locals() - -def effect7050(): - runTime = "early" - type = ("projected", "passive", "gang") - def handler(fit, beacon, context, **kwargs): - for x in range(1, 3): - if beacon.getModifiedItemAttr("warfareBuff{}ID".format(x)): - value = beacon.getModifiedItemAttr("warfareBuff{}Value".format(x)) - id = beacon.getModifiedItemAttr("warfareBuff{}ID".format(x)) - if id: - fit.addCommandBonus(id, value, beacon, kwargs['effect'], 'early') - - return locals() - -def effect7051(): - runTime = "early" - type = ("projected", "passive", "gang") - def handler(fit, beacon, context, **kwargs): - for x in range(1, 3): - if beacon.getModifiedItemAttr("warfareBuff{}ID".format(x)): - value = beacon.getModifiedItemAttr("warfareBuff{}Value".format(x)) - id = beacon.getModifiedItemAttr("warfareBuff{}ID".format(x)) - if id: - fit.addCommandBonus(id, value, beacon, kwargs['effect'], 'early') - - return locals() - -def effect7052(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Target Painter", "signatureRadiusBonus", - src.getModifiedItemAttr("targetPainterStrengthModifierFlagCruisers")) - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Target Painter", "maxRange", - src.getModifiedItemAttr("targetPainterRangeModifierFlagCruisers")) - - return locals() - -def effect7055(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Large Hybrid Turret"), "damageMultiplier", - src.getModifiedItemAttr("shipBonusRole7")) - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Large Projectile Turret"), "damageMultiplier", - src.getModifiedItemAttr("shipBonusRole7")) - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Large Energy Turret"), "damageMultiplier", - src.getModifiedItemAttr("shipBonusRole7")) - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Missiles"), "thermalDamage", - src.getModifiedItemAttr("shipBonusRole7")) - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Missiles"), "emDamage", - src.getModifiedItemAttr("shipBonusRole7")) - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Missiles"), "kineticDamage", - src.getModifiedItemAttr("shipBonusRole7")) - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Missiles"), "explosiveDamage", - src.getModifiedItemAttr("shipBonusRole7")) - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Torpedoes"), "emDamage", - src.getModifiedItemAttr("shipBonusRole7")) - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Torpedoes"), "kineticDamage", - src.getModifiedItemAttr("shipBonusRole7")) - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Torpedoes"), "explosiveDamage", - src.getModifiedItemAttr("shipBonusRole7")) - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Torpedoes"), "thermalDamage", - src.getModifiedItemAttr("shipBonusRole7")) - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Cruise Missiles"), "thermalDamage", - src.getModifiedItemAttr("shipBonusRole7")) - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Cruise Missiles"), "explosiveDamage", - src.getModifiedItemAttr("shipBonusRole7")) - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Cruise Missiles"), "kineticDamage", - src.getModifiedItemAttr("shipBonusRole7")) - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Cruise Missiles"), "emDamage", - src.getModifiedItemAttr("shipBonusRole7")) - - return locals() - -def effect7058(): - runTime = "early" - type = ("projected", "passive", "gang") - def handler(fit, beacon, context, **kwargs): - for x in range(1, 3): - if beacon.getModifiedItemAttr("warfareBuff{}ID".format(x)): - value = beacon.getModifiedItemAttr("warfareBuff{}Value".format(x)) - id = beacon.getModifiedItemAttr("warfareBuff{}ID".format(x)) - if id: - fit.addCommandBonus(id, value, beacon, kwargs['effect'], 'early') - - return locals() - -def effect7059(): - runTime = "early" - type = ("projected", "passive", "gang") - def handler(fit, beacon, context, **kwargs): - for x in range(1, 3): - if beacon.getModifiedItemAttr("warfareBuff{}ID".format(x)): - value = beacon.getModifiedItemAttr("warfareBuff{}Value".format(x)) - id = beacon.getModifiedItemAttr("warfareBuff{}ID".format(x)) - if id: - fit.addCommandBonus(id, value, beacon, kwargs['effect'], 'early') - - return locals() - -def effect706(): - type = "passive" - def handler(fit, src, context): - fit.ship.increaseItemAttr("warpFactor", src.getModifiedItemAttr("eliteBonusCovertOps1"), skill="Covert Ops") - - return locals() - -def effect7060(): - runTime = "early" - type = ("projected", "passive", "gang") - def handler(fit, beacon, context, **kwargs): - for x in range(1, 5): - if beacon.getModifiedItemAttr("warfareBuff{}ID".format(x)): - value = beacon.getModifiedItemAttr("warfareBuff{}Value".format(x)) - id = beacon.getModifiedItemAttr("warfareBuff{}ID".format(x)) - if id: - fit.addCommandBonus(id, value, beacon, kwargs['effect'], 'early') - - return locals() - -def effect7061(): - runTime = "early" - type = ("projected", "passive", "gang") - def handler(fit, beacon, context, **kwargs): - for x in range(1, 3): - if beacon.getModifiedItemAttr("warfareBuff{}ID".format(x)): - value = beacon.getModifiedItemAttr("warfareBuff{}Value".format(x)) - id = beacon.getModifiedItemAttr("warfareBuff{}ID".format(x)) - if id: - fit.addCommandBonus(id, value, beacon, kwargs['effect'], 'early') - - return locals() - -def effect7062(): - runTime = "early" - type = ("projected", "passive", "gang") - def handler(fit, beacon, context, **kwargs): - for x in range(1, 3): - if beacon.getModifiedItemAttr("warfareBuff{}ID".format(x)): - value = beacon.getModifiedItemAttr("warfareBuff{}Value".format(x)) - id = beacon.getModifiedItemAttr("warfareBuff{}ID".format(x)) - if id: - fit.addCommandBonus(id, value, beacon, kwargs['effect'], 'early') - - return locals() - -def effect7063(): - runTime = "early" - type = ("projected", "passive", "gang") - def handler(fit, beacon, context, **kwargs): - for x in range(1, 3): - if beacon.getModifiedItemAttr("warfareBuff{}ID".format(x)): - value = beacon.getModifiedItemAttr("warfareBuff{}Value".format(x)) - id = beacon.getModifiedItemAttr("warfareBuff{}ID".format(x)) - if id: - fit.addCommandBonus(id, value, beacon, kwargs['effect'], 'early') - - return locals() - -def effect7064(): - runTime = "early" - type = ("projected", "passive") - def handler(fit, beacon, context): - pass - - return locals() - -def effect7071(): - type = "passive" - def handler(fit, container, context): - level = container.level if "skill" in context else 1 - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Precursor Weapon"), - "damageMultiplier", container.getModifiedItemAttr("damageMultiplierBonus") * level) - - return locals() - -def effect7072(): - type = "passive" - def handler(fit, container, context): - level = container.level if "skill" in context else 1 - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Precursor Weapon"), - "damageMultiplier", container.getModifiedItemAttr("damageMultiplierBonus") * level) - - return locals() - -def effect7073(): - type = "passive" - def handler(fit, container, context): - level = container.level if "skill" in context else 1 - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Large Precursor Weapon"), - "damageMultiplier", container.getModifiedItemAttr("damageMultiplierBonus") * level) - - return locals() - -def effect7074(): - type = "passive" - def handler(fit, container, context): - level = container.level if "skill" in context else 1 - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Disintegrator Specialization"), - "damageMultiplier", container.getModifiedItemAttr("damageMultiplierBonus") * level) - - return locals() - -def effect7075(): - type = "passive" - def handler(fit, container, context): - level = container.level if "skill" in context else 1 - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Disintegrator Specialization"), - "damageMultiplier", container.getModifiedItemAttr("damageMultiplierBonus") * level) - - return locals() - -def effect7076(): - type = "passive" - def handler(fit, container, context): - level = container.level if "skill" in context else 1 - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Large Disintegrator Specialization"), - "damageMultiplier", container.getModifiedItemAttr("damageMultiplierBonus") * level) - - return locals() - -def effect7077(): - type = "passive" - def handler(fit, module, context): - fit.modules.filteredItemMultiply(lambda mod: mod.item.group.name == "Precursor Weapon", - "damageMultiplier", module.getModifiedItemAttr("damageMultiplier"), - stackingPenalties=True) - - return locals() - -def effect7078(): - type = "passive" - def handler(fit, module, context): - fit.modules.filteredItemMultiply(lambda mod: mod.item.group.name == "Precursor Weapon", - "speed", module.getModifiedItemAttr("speedMultiplier"), - stackingPenalties=True) - - return locals() - -def effect7079(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Large Precursor Weapon"), - "speed", ship.getModifiedItemAttr("shipBonusPBS1"), skill="Precursor Battleship") - - return locals() - -def effect7080(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Large Precursor Weapon"), - "damageMultiplier", ship.getModifiedItemAttr("shipBonusPBS2"), skill="Precursor Battleship") - - return locals() - -def effect7085(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Precursor Weapon"), - "damageMultiplier", ship.getModifiedItemAttr("shipBonusPC1"), skill="Precursor Cruiser") - - return locals() - -def effect7086(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Precursor Weapon"), - "trackingSpeed", ship.getModifiedItemAttr("shipBonusPC2"), skill="Precursor Cruiser") - - return locals() - -def effect7087(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Precursor Weapon"), - "maxRange", ship.getModifiedItemAttr("shipBonusPF2"), skill="Precursor Frigate") - - return locals() - -def effect7088(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Precursor Weapon"), - "damageMultiplier", ship.getModifiedItemAttr("shipBonusPF1"), skill="Precursor Frigate") - - return locals() - -def effect7091(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capacitor Emission Systems"), "capacitorNeed", src.getModifiedItemAttr("shipBonusRole2")) - - return locals() - -def effect7092(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Remote Armor Repair Systems"), - "capacitorNeed", ship.getModifiedItemAttr("shipBonusRole2")) - - return locals() - -def effect7093(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Energy Pulse Weapons"), - "capacitorNeed", ship.getModifiedItemAttr("shipBonusRole2")) - - return locals() - -def effect7094(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Remote Armor Repair Systems"), - "maxRange", ship.getModifiedItemAttr("shipBonusRole1")) - - return locals() - -def effect7097(): - type = "passive" - def handler(fit, skill, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Precursor Weapon", - "damageMultiplier", skill.getModifiedItemAttr("damageMultiplierBonus") * skill.level) - - return locals() - -def effect7111(): - runTime = "early" - type = ("projected", "passive") - def handler(fit, module, context): - fit.modules.filteredItemMultiply(lambda mod: mod.item.requiresSkill("Small Precursor Weapon"), - "damageMultiplier", module.getModifiedItemAttr("smallWeaponDamageMultiplier"), - stackingPenalties=True) - - return locals() - -def effect7112(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Neutralizer", "capacitorNeed", - src.getModifiedItemAttr("shipBonusRole2")) - - return locals() - -def effect7116(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Astrometrics"), "baseSensorStrength", - src.getModifiedItemAttr("eliteBonusReconShip2"), skill="Recon Ships") - - return locals() - -def effect7117(): - type = "passive" - def handler(fit, src, context): - fit.ship.boostItemAttr("warpSpeedMultiplier", src.getModifiedItemAttr("shipRoleBonusWarpSpeed")) - - return locals() - -def effect7118(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemIncrease(lambda mod: mod.item.requiresSkill("Small Precursor Weapon"), "damageMultiplierBonusPerCycle", - src.getModifiedItemAttr("eliteBonusCovertOps3"), skill="Covert Ops") - - return locals() - -def effect7119(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemIncrease(lambda mod: mod.item.requiresSkill("Medium Precursor Weapon"), "damageMultiplierBonusPerCycle", - src.getModifiedItemAttr("eliteBonusReconShip3"), skill="Recon Ships") - - return locals() - -def effect7142(): - type = "active" - def handler(fit, src, context): - fit.ship.increaseItemAttr("warpScrambleStatus", src.getModifiedItemAttr("warpScrambleStrength")) - fit.ship.boostItemAttr("mass", src.getModifiedItemAttr("massBonusPercentage"), stackingPenalties=True) - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Afterburner"), "speedFactor", - src.getModifiedItemAttr("speedFactorBonus"), stackingPenalties=True) - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Afterburner"), "speedBoostFactor", - src.getModifiedItemAttr("speedBoostFactorBonus")) - fit.modules.filteredItemIncrease(lambda mod: mod.item.requiresSkill("High Speed Maneuvering"), "activationBlocked", - src.getModifiedItemAttr("activationBlockedStrenght")) - fit.ship.boostItemAttr("maxVelocity", src.getModifiedItemAttr("maxVelocityBonus"), stackingPenalties=True) - - return locals() - -def effect7154(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Precursor Weapon"), - "damageMultiplier", ship.getModifiedItemAttr("shipBonusPD1"), - skill="Precursor Destroyer") - - return locals() - -def effect7155(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Precursor Weapon"), - "damageMultiplier", ship.getModifiedItemAttr("shipBonusPBC1"), - skill="Precursor Battlecruiser") - - return locals() - -def effect7156(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Precursor Weapon"), - "maxRange", ship.getModifiedItemAttr("maxRangeBonus")) - - return locals() - -def effect7157(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Precursor Weapon"), - "maxRange", ship.getModifiedItemAttr("shipBonusPD2"), - skill="Precursor Destroyer") - - return locals() - -def effect7158(): - type = "passive" - def handler(fit, ship, context): - fit.ship.boostItemAttr("armorKineticDamageResonance", ship.getModifiedItemAttr("shipBonusPBC2"), - skill="Precursor Battlecruiser") - - return locals() - -def effect7159(): - type = "passive" - def handler(fit, ship, context): - fit.ship.boostItemAttr("armorThermalDamageResonance", ship.getModifiedItemAttr("shipBonusPBC2"), - skill="Precursor Battlecruiser") - - return locals() - -def effect7160(): - type = "passive" - def handler(fit, ship, context): - fit.ship.boostItemAttr("armorEmDamageResonance", ship.getModifiedItemAttr("shipBonusPBC2"), - skill="Precursor Battlecruiser") - - return locals() - -def effect7161(): - type = "passive" - def handler(fit, ship, context): - fit.ship.boostItemAttr("armorExplosiveDamageResonance", ship.getModifiedItemAttr("shipBonusPBC2"), - skill="Precursor Battlecruiser") - - return locals() - -def effect7162(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Precursor Weapon"), - "maxRange", ship.getModifiedItemAttr("roleBonusCBC")) - - return locals() - -def effect7166(): - from eos.utils.spoolSupport import SpoolType, SpoolOptions, calculateSpoolup, resolveSpoolOptions - type = "projected", "active" - runTime = "late" - def handler(fit, container, context, **kwargs): - if "projected" in context: - repAmountBase = container.getModifiedItemAttr("armorDamageAmount") - cycleTime = container.getModifiedItemAttr("duration") / 1000.0 - repSpoolMax = container.getModifiedItemAttr("repairMultiplierBonusMax") - repSpoolPerCycle = container.getModifiedItemAttr("repairMultiplierBonusPerCycle") - defaultSpoolValue = 1 - spoolType, spoolAmount = resolveSpoolOptions(SpoolOptions(SpoolType.SCALE, defaultSpoolValue, False), container) - rps = repAmountBase * (1 + calculateSpoolup(repSpoolMax, repSpoolPerCycle, cycleTime, spoolType, spoolAmount)[0]) / cycleTime - rpsPreSpool = repAmountBase * (1 + calculateSpoolup(repSpoolMax, repSpoolPerCycle, cycleTime, SpoolType.SCALE, 0)[0]) / cycleTime - rpsFullSpool = repAmountBase * (1 + calculateSpoolup(repSpoolMax, repSpoolPerCycle, cycleTime, SpoolType.SCALE, 1)[0]) / cycleTime - fit.extraAttributes.increase("armorRepair", rps, **kwargs) - fit.extraAttributes.increase("armorRepairPreSpool", rpsPreSpool, **kwargs) - fit.extraAttributes.increase("armorRepairFullSpool", rpsFullSpool, **kwargs) - - return locals() - -def effect7167(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Remote Capacitor Transmitter", "maxRange", src.getModifiedItemAttr("shipBonusRole1")) - - return locals() - -def effect7168(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Mutadaptive Remote Armor Repairer", "maxRange", src.getModifiedItemAttr("shipBonusRole3")) - - return locals() - -def effect7169(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Mutadaptive Remote Armor Repairer", "armorDamageAmount", src.getModifiedItemAttr("shipBonusPC1"), skill="Precursor Cruiser") - - return locals() - -def effect7170(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Mutadaptive Remote Armor Repairer", "capacitorNeed", src.getModifiedItemAttr("shipBonusPC2"), skill="Precursor Cruiser") - - return locals() - -def effect7171(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Mutadaptive Remote Armor Repairer", "maxRange", src.getModifiedItemAttr("shipBonusPC1"), skill="Precursor Cruiser") - - return locals() - -def effect7172(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Mutadaptive Remote Armor Repairer", "capacitorNeed", src.getModifiedItemAttr("eliteBonusLogistics1"), skill="Logistics Cruisers") - - return locals() - -def effect7173(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Mutadaptive Remote Armor Repairer", "armorDamageAmount", src.getModifiedItemAttr("eliteBonusLogistics2"), skill="Logistics Cruisers") - - return locals() - -def effect7176(): - type = "passive" - def handler(fit, src, context): - fit.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Drones"), "damageMultiplier", - src.getModifiedItemAttr("damageMultiplierBonus")) - - return locals() - -def effect7177(): - type = "passive" - def handler(fit, src, context): - fit.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Drones"), "hp", - src.getModifiedItemAttr("hullHpBonus")) - fit.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Drones"), "armorHP", - src.getModifiedItemAttr("armorHpBonus")) - fit.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Drones"), "shieldCapacity", - src.getModifiedItemAttr("shieldCapacityBonus")) - - return locals() - -def effect7179(): - type = "passive" - def handler(fit, module, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Strip Miner", - "duration", module.getModifiedItemAttr("miningDurationMultiplier")) - - return locals() - -def effect7180(): - type = "passive" - def handler(fit, module, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Mining Laser", - "duration", module.getModifiedItemAttr("miningDurationMultiplier")) - - return locals() - -def effect7183(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Warp Scrambler", "maxRange", - src.getModifiedItemAttr("warpScrambleRangeBonus"), stackingPenalties=False) - - return locals() - -def effect726(): - type = "passive" - def handler(fit, ship, context): - if "shipBonusGI" in fit.ship.item.attributes: - bonusAttr = "shipBonusGI" - else: - bonusAttr = "shipBonusGI2" - fit.ship.boostItemAttr("capacity", ship.getModifiedItemAttr(bonusAttr), skill="Gallente Industrial") - - return locals() - -def effect727(): - type = "passive" - def handler(fit, ship, context): - fit.ship.boostItemAttr("capacity", ship.getModifiedItemAttr("shipBonusCI"), skill="Caldari Industrial") - - return locals() - -def effect728(): - type = "passive" - def handler(fit, ship, context): - fit.ship.boostItemAttr("capacity", ship.getModifiedItemAttr("shipBonusMI"), skill="Minmatar Industrial") - - return locals() - -def effect729(): - type = "passive" - def handler(fit, ship, context): - if "shipBonusGI" in fit.ship.item.attributes: - bonusAttr = "shipBonusGI" - else: - bonusAttr = "shipBonusGI2" - fit.ship.boostItemAttr("maxVelocity", ship.getModifiedItemAttr(bonusAttr), skill="Gallente Industrial") - - return locals() - -def effect730(): - type = "passive" - def handler(fit, ship, context): - fit.ship.boostItemAttr("maxVelocity", ship.getModifiedItemAttr("shipBonusCI"), skill="Caldari Industrial") - - return locals() - -def effect732(): - type = "passive" - def handler(fit, ship, context): - fit.ship.boostItemAttr("maxVelocity", ship.getModifiedItemAttr("shipBonusAI"), skill="Amarr Industrial") - - return locals() - -def effect736(): - type = "passive" - def handler(fit, ship, context): - fit.ship.boostItemAttr("capacitorCapacity", ship.getModifiedItemAttr("shipBonusAB2"), skill="Amarr Battleship") - - return locals() - -def effect744(): - type = "passive" - def handler(fit, container, context): - level = container.level if "skill" in context else 1 - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("CPU Management"), - "duration", container.getModifiedItemAttr("scanspeedBonus") * level) - - return locals() - -def effect754(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Hybrid Turret"), - "damageMultiplier", ship.getModifiedItemAttr("shipBonusCF"), skill="Caldari Frigate") - - return locals() - -def effect757(): - type = "passive" - def handler(fit, src, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Energy Turret"), "damageMultiplier", - src.getModifiedItemAttr("shipBonusAF"), skill="Amarr Frigate") - - return locals() - -def effect760(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Missile Launcher Operation"), - "speed", ship.getModifiedItemAttr("shipBonusCF2"), skill="Caldari Frigate") - - return locals() - -def effect763(): - type = "passive" - def handler(fit, container, context): - for dmgType in ("em", "kinetic", "explosive", "thermal"): - fit.modules.filteredChargeMultiply(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), - "%sDamage" % dmgType, - container.getModifiedItemAttr("missileDamageMultiplierBonus"), - stackingPenalties=True) - - return locals() - -def effect784(): - type = "passive" - def handler(fit, container, context): - level = container.level if "skill" in context else 1 - penalized = False if "skill" in context or "implant" in context or "booster" in context else True - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), - "explosionDelay", container.getModifiedItemAttr("maxFlightTimeBonus") * level, - stackingPenalties=penalized) - - return locals() - -def effect804(): - type = "passive" - def handler(fit, module, context): - rawAttr = module.item.getAttribute("capacitorNeed") - if rawAttr is not None and rawAttr >= 0: - module.boostItemAttr("capacitorNeed", module.getModifiedChargeAttr("capNeedBonus") or 0) - - return locals() - -def effect836(): - type = "passive" - def handler(fit, module, context): - fit.ship.boostItemAttr("capacity", module.getModifiedItemAttr("cargoCapacityBonus")) - - return locals() - -def effect848(): - type = "passive" - def handler(fit, skill, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Cloaking"), - "cloakingTargetingDelay", - skill.getModifiedItemAttr("cloakingTargetingDelayBonus") * skill.level) - - return locals() - -def effect854(): - type = "offline" - def handler(fit, module, context): - fit.ship.multiplyItemAttr("scanResolution", - module.getModifiedItemAttr("scanResolutionMultiplier"), - stackingPenalties=True, penaltyGroup="cloakingScanResolutionMultiplier") - - return locals() - -def effect856(): - type = "passive" - def handler(fit, container, context): - penalized = False if "skill" in context or "implant" in context else True - fit.ship.boostItemAttr("baseWarpSpeed", container.getModifiedItemAttr("WarpSBonus"), - stackingPenalties=penalized) - - return locals() - -def effect874(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Projectile Turret"), - "maxRange", ship.getModifiedItemAttr("shipBonusMF2"), skill="Minmatar Frigate") - - return locals() - -def effect882(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Hybrid Turret"), - "maxRange", ship.getModifiedItemAttr("shipBonusCF2"), skill="Caldari Frigate") - - return locals() - -def effect887(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Large Energy Turret"), - "speed", ship.getModifiedItemAttr("shipBonusAB2"), skill="Amarr Battleship") - - return locals() - -def effect889(): - type = "passive" - def handler(fit, module, context): - fit.modules.filteredItemMultiply(lambda mod: mod.item.requiresSkill("Missile Launcher Operation"), - "speed", module.getModifiedItemAttr("speedMultiplier"), - stackingPenalties=True) - - return locals() - -def effect89(): - type = "passive" - def handler(fit, module, context): - fit.modules.filteredItemMultiply(lambda mod: mod.item.group.name == "Projectile Weapon", - "speed", module.getModifiedItemAttr("speedMultiplier"), - stackingPenalties=True) - - return locals() - -def effect891(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Cruise Missiles"), - "maxVelocity", ship.getModifiedItemAttr("shipBonusCB3"), skill="Caldari Battleship") - - return locals() - -def effect892(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Torpedoes"), - "maxVelocity", ship.getModifiedItemAttr("shipBonusCB3"), skill="Caldari Battleship") - - return locals() - -def effect896(): - type = "passive" - def handler(fit, container, context): - fit.modules.filteredItemMultiply(lambda mod: mod.item.group.name == "Cloaking Device", - "cpu", container.getModifiedItemAttr("cloakingCpuNeedBonus")) - - return locals() - -def effect898(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), - "kineticDamage", ship.getModifiedItemAttr("shipBonusCF"), skill="Caldari Frigate") - - return locals() - -def effect899(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), - "kineticDamage", ship.getModifiedItemAttr("shipBonusCC"), skill="Caldari Cruiser") - - return locals() - -def effect900(): - type = "passive" - def handler(fit, ship, context): - fit.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Light Drone Operation"), - "thermalDamage", ship.getModifiedItemAttr("shipBonusGF2"), skill="Gallente Frigate") - - return locals() - -def effect907(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Energy Turret"), - "speed", ship.getModifiedItemAttr("shipBonusAC2"), skill="Amarr Cruiser") - - return locals() - -def effect909(): - type = "passive" - def handler(fit, ship, context): - fit.ship.boostItemAttr("armorHP", ship.getModifiedItemAttr("shipBonusAC2"), skill="Amarr Cruiser") - - return locals() - -def effect91(): - type = "passive" - def handler(fit, module, context): - fit.modules.filteredItemMultiply(lambda mod: mod.item.group.name == "Energy Weapon", - "damageMultiplier", module.getModifiedItemAttr("damageMultiplier"), - stackingPenalties=True) - - return locals() - -def effect912(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Missile Launcher Operation"), - "speed", ship.getModifiedItemAttr("shipBonusCC2"), skill="Caldari Cruiser") - - return locals() - -def effect918(): - type = "passive" - def handler(fit, ship, context): - fit.extraAttributes.increase("maxActiveDrones", ship.getModifiedItemAttr("shipBonusGC2"), skill="Gallente Cruiser") - - return locals() - -def effect919(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Hybrid Turret"), - "trackingSpeed", ship.getModifiedItemAttr("shipBonusGC2"), skill="Gallente Cruiser") - - return locals() - -def effect92(): - type = "passive" - def handler(fit, module, context): - fit.modules.filteredItemMultiply(lambda mod: mod.item.group.name == "Projectile Weapon", - "damageMultiplier", module.getModifiedItemAttr("damageMultiplier"), - stackingPenalties=True) - - return locals() - -def effect93(): - type = "passive" - def handler(fit, module, context): - fit.modules.filteredItemMultiply(lambda mod: mod.item.group.name == "Hybrid Weapon", - "damageMultiplier", module.getModifiedItemAttr("damageMultiplier"), - stackingPenalties=True) - - return locals() - -def effect95(): - type = "passive" - def handler(fit, module, context): - fit.modules.filteredItemMultiply(lambda mod: mod.item.group.name == "Energy Weapon", - "speed", module.getModifiedItemAttr("speedMultiplier"), - stackingPenalties=True) - - return locals() - -def effect958(): - type = "passive" - def handler(fit, ship, context): - fit.ship.boostItemAttr("armorEmDamageResonance", ship.getModifiedItemAttr("shipBonusAC2"), skill="Amarr Cruiser") - - return locals() - -def effect959(): - type = "passive" - def handler(fit, ship, context): - fit.ship.boostItemAttr("armorExplosiveDamageResonance", ship.getModifiedItemAttr("shipBonusAC2"), - skill="Amarr Cruiser") - - return locals() - -def effect96(): - type = "passive" - def handler(fit, module, context): - fit.modules.filteredItemMultiply(lambda mod: mod.item.group.name == "Hybrid Weapon", - "speed", module.getModifiedItemAttr("speedMultiplier"), - stackingPenalties=True) - - return locals() - -def effect960(): - type = "passive" - def handler(fit, ship, context): - fit.ship.boostItemAttr("armorKineticDamageResonance", ship.getModifiedItemAttr("shipBonusAC2"), - skill="Amarr Cruiser") - - return locals() - -def effect961(): - type = "passive" - def handler(fit, ship, context): - fit.ship.boostItemAttr("armorThermalDamageResonance", ship.getModifiedItemAttr("shipBonusAC2"), - skill="Amarr Cruiser") - - return locals() - -def effect968(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Projectile Turret"), - "damageMultiplier", ship.getModifiedItemAttr("shipBonusMC2"), - skill="Minmatar Cruiser") - - return locals() - -def effect980(): - type = "active" - runTime = "early" - def handler(fit, ship, context): - fit.extraAttributes["cloaked"] = True - - return locals() - -def effect989(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Hybrid Turret"), - "maxRange", ship.getModifiedItemAttr("eliteBonusGunship1"), skill="Assault Frigates") - - return locals() - -def effect991(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Energy Turret"), - "maxRange", ship.getModifiedItemAttr("eliteBonusGunship1"), skill="Assault Frigates") - - return locals() - -def effect996(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Hybrid Turret"), - "trackingSpeed", ship.getModifiedItemAttr("eliteBonusGunship2"), - skill="Assault Frigates") - - return locals() - -def effect998(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Projectile Turret"), - "falloff", ship.getModifiedItemAttr("eliteBonusGunship2"), skill="Assault Frigates") - - return locals() - -def effect999(): - type = "passive" - def handler(fit, ship, context): - fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Operation"), - "shieldBonus", ship.getModifiedItemAttr("eliteBonusGunship2"), - skill="Assault Frigates") - - return locals() - diff --git a/scripts/effect_rename.py b/scripts/effect_rename.py deleted file mode 100644 index 98dbd175f..000000000 --- a/scripts/effect_rename.py +++ /dev/null @@ -1,100 +0,0 @@ -#!/usr/bin/env python3 -#====================================================================== -# Copyright (C) 2010 Anton Vorobyov -# -# This file is part of eos. -# -# eos is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser General Public License as -# published by the Free Software Foundation, either version 3 of -# the License, or (at your option) any later version. -# -# eos is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with eos. If not, see . -#====================================================================== -""" -Go through all effects and fill them with 'used by' comments. - -There're several big stages: -Stage 1. Gather all required data into 'global' dictionaries. We have -2 dictionaries per grouping type, one which lists groups per typeid, -and another which lists typeIDs per group. -Stage 2. Cycle through each effect. -Stage 2.1. Compose similar set of dictionaries like in stage 1, but -this time we take into consideration typeIDs affected by effect picked -in stage 2. -Stage 2.2. Create several lists (1 per grouping type) which will keep -IDs of these groups which will describe set of the typeIDs, and start -iterating. Each iteration one ID will be appended to any of the lists. -Stage 2.2.1. Compose score dictionaries per grouping type, and -calculate total score for given grouping type. -Stage 2.2.2. Pick grouping type with highest score, find winner group -inside grouping type, append its ID to corresponding list created in -stage 2.2. If score is less than certain value, stop iterating. If some -items are not covered by set of winners from lists, they'll be -presented as single items. -Stage 2.3. Print results to file if anything has been changed. - -Grouping types used are: -Groups (groupID of an item); -Categories (categoryID of groupID of an item); -Base types (variations, like they appear on eve's variation tab); -Market groups + variations (marketGroupID of an item, plus variations -of all items from given market group, excluding items with -marketGroupID). -Type names (various combinations of words taken from typeName of item). -""" - -import copy -import itertools -import os.path -import re -import sqlite3 -from optparse import OptionParser - -script_dir = os.path.dirname(__file__) - -# Form list of effects for processing -effects_path = os.path.join(script_dir, "..", "eos", "effects") - -usage = "usage: %prog --database=DB [--debug=DEBUG]" -parser = OptionParser(usage=usage) -parser.add_option("-d", "--database", help="path to eve cache data dump in \ - sqlite format, default to eve database file included in pyfa (../eve.db)", - type="string", default=os.path.join(script_dir, "..", "eve.db")) -parser.add_option("-e", "--effects", help="explicit comma-separated list of \ -effects to process", type="string", default="") -parser.add_option("-r", "--remove", help="remove effect files that are not \ -used by any items", action="store_true", dest="remove", default=False) -parser.add_option("-x", "--remove2", help="remove effect files that do not exist \ -in database", action="store_true", dest="remove2", default=False) -parser.add_option("-u", "--debug", help="debug level, 0 by default", - type="int", default=0) -(options, args) = parser.parse_args() - -# Connect to database and set up cursor -db = sqlite3.connect(os.path.expanduser(options.database)) -cursor = db.cursor() - -QUERY_ALLEFFECTS = 'SELECT effectID, effectName FROM dgmeffects' - - -# Compose list of effects w/o symbols which eos doesn't take into -# consideration, we'll use it to find proper effect IDs from file -# names -globalmap_effectnameeos_effectid = {} -globalmap_effectnameeos_effectnamedb = {} -STRIPSPEC = "[^A-Za-z0-9]" -cursor.execute(QUERY_ALLEFFECTS) -for row in cursor: - effectid = row[0] - effectnamedb = row[1] - effectnameeos = re.sub(STRIPSPEC, "", effectnamedb).lower() - if(os.path.isfile(os.path.join('..', 'eos','effects',effectnameeos+'.py'))): - os.rename(os.path.join('..', 'eos','effects',effectnameeos+'.py'), os.path.join('..', 'eos','effects','effect{}.py'.format(effectid))) - # There may be different effects with the same name, so form From 86459faf76264cc13831638ceb5db56bb048627c Mon Sep 17 00:00:00 2001 From: DarkPhoenix Date: Wed, 20 Mar 2019 12:12:51 +0300 Subject: [PATCH 79/88] Fix issue with ship filter which didn't follow market overrides It bugged out if you have some limited edition ships. E.g. if you have malice fit and no other AF fits, when you enable filter it hid limited edition group but showed AF group --- gui/shipBrowser.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/gui/shipBrowser.py b/gui/shipBrowser.py index f103d9560..ed490194e 100644 --- a/gui/shipBrowser.py +++ b/gui/shipBrowser.py @@ -168,9 +168,8 @@ class ShipBrowser(wx.Panel): # set map & cache of fittings per category for cat in self.categoryList: - itemIDs = [x.ID for x in cat.items] + itemIDs = [x.ID for x in sMkt.getItemsByGroup(cat)] self.categoryFitCache[cat.ID] = sum([count for shipID, count in counts if shipID in itemIDs]) > 0 - for ship in self.categoryList: if self.filterShipsWithNoFits and not self.categoryFitCache[ship.ID]: continue From e9c6d98db80b89294657ef8ecee48a717431e814 Mon Sep 17 00:00:00 2001 From: DarkPhoenix Date: Wed, 20 Mar 2019 13:04:38 +0300 Subject: [PATCH 80/88] Fix fetching skills via ESI --- service/esiAccess.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/service/esiAccess.py b/service/esiAccess.py index 1b7a191c8..d89fc9b0b 100644 --- a/service/esiAccess.py +++ b/service/esiAccess.py @@ -98,20 +98,20 @@ class EsiAccess(object): return '%s/oauth/token' % self.sso_url def getSkills(self, char): - return self.get(char, EsiEndpoints.CHAR_SKILLS, character_id=char.characterID) + return self.get(char, EsiEndpoints.CHAR_SKILLS.value, character_id=char.characterID) def getSecStatus(self, char): - return self.get(char, EsiEndpoints.CHAR, character_id=char.characterID) + return self.get(char, EsiEndpoints.CHAR.value, character_id=char.characterID) def getFittings(self, char): - return self.get(char, EsiEndpoints.CHAR_FITTINGS, character_id=char.characterID) + return self.get(char, EsiEndpoints.CHAR_FITTINGS.value, character_id=char.characterID) def postFitting(self, char, json_str): # @todo: new fitting ID can be recovered from resp.data, - return self.post(char, EsiEndpoints.CHAR_FITTINGS, json_str, character_id=char.characterID) + return self.post(char, EsiEndpoints.CHAR_FITTINGS.value, json_str, character_id=char.characterID) def delFitting(self, char, fittingID): - return self.delete(char, EsiEndpoints.CHAR_DEL_FIT, character_id=char.characterID, fitting_id=fittingID) + return self.delete(char, EsiEndpoints.CHAR_DEL_FIT.value, character_id=char.characterID, fitting_id=fittingID) @staticmethod def update_token(char, tokenResponse): From 0242cc845cbe1574d957bf8ba63a2e976d6433bf Mon Sep 17 00:00:00 2001 From: DarkPhoenix Date: Wed, 20 Mar 2019 13:05:38 +0300 Subject: [PATCH 81/88] Pep8 --- eos/const.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/eos/const.py b/eos/const.py index e0ae7c9ea..a8def2bcf 100644 --- a/eos/const.py +++ b/eos/const.py @@ -47,6 +47,7 @@ class FittingSlot(IntEnum): FS_SUPPORT = 14 FS_HEAVY = 15 + @unique class ImplantLocation(IntEnum): """ @@ -55,6 +56,7 @@ class ImplantLocation(IntEnum): FIT = 0 CHARACTER = 1 + @unique class CalcType(IntEnum): """ @@ -64,6 +66,7 @@ class CalcType(IntEnum): PROJECTED = 1 COMMAND = 2 + @unique class FittingModuleState(IntEnum): """ @@ -74,6 +77,7 @@ class FittingModuleState(IntEnum): ACTIVE = 1 OVERHEATED = 2 + @unique class FittingHardpoint(IntEnum): """ @@ -82,4 +86,3 @@ class FittingHardpoint(IntEnum): NONE = 0 MISSILE = 1 TURRET = 2 - From 4dc281b37e9c2aa3eb2cf25f90ecc95c957c8cb7 Mon Sep 17 00:00:00 2001 From: DarkPhoenix Date: Wed, 20 Mar 2019 13:07:44 +0300 Subject: [PATCH 82/88] Move spoolup enum into costs --- eos/const.py | 7 +++++++ eos/effects/shipmoduleremotearmormutadaptiverepairer.py | 3 ++- eos/utils/spoolSupport.py | 9 +-------- 3 files changed, 10 insertions(+), 9 deletions(-) diff --git a/eos/const.py b/eos/const.py index a8def2bcf..4c71d76c5 100644 --- a/eos/const.py +++ b/eos/const.py @@ -86,3 +86,10 @@ class FittingHardpoint(IntEnum): NONE = 0 MISSILE = 1 TURRET = 2 + + +@unique +class SpoolType(IntEnum): + SCALE = 0 # [0..1] + TIME = 1 # Expressed via time in seconds since spool up started + CYCLES = 2 # Expressed in amount of cycles since spool up started diff --git a/eos/effects/shipmoduleremotearmormutadaptiverepairer.py b/eos/effects/shipmoduleremotearmormutadaptiverepairer.py index 29d52fb47..94a53be2b 100644 --- a/eos/effects/shipmoduleremotearmormutadaptiverepairer.py +++ b/eos/effects/shipmoduleremotearmormutadaptiverepairer.py @@ -4,8 +4,9 @@ # Modules from group: Mutadaptive Remote Armor Repairer (5 of 5) -from eos.utils.spoolSupport import SpoolType, SpoolOptions, calculateSpoolup, resolveSpoolOptions import eos.config +from eos.utils.spoolSupport import SpoolType, SpoolOptions, calculateSpoolup, resolveSpoolOptions + type = "projected", "active" runTime = "late" diff --git a/eos/utils/spoolSupport.py b/eos/utils/spoolSupport.py index de265731f..2014654d4 100644 --- a/eos/utils/spoolSupport.py +++ b/eos/utils/spoolSupport.py @@ -19,21 +19,14 @@ from collections import namedtuple -from enum import IntEnum, unique +from eos.const import SpoolType from eos.utils.float import floatUnerr SpoolOptions = namedtuple('SpoolOptions', ('spoolType', 'spoolAmount', 'force')) -@unique -class SpoolType(IntEnum): - SCALE = 0 # [0..1] - TIME = 1 # Expressed via time in seconds since spool up started - CYCLES = 2 # Expressed in amount of cycles since spool up started - - def calculateSpoolup(modMaxValue, modStepValue, modCycleTime, spoolType, spoolAmount): """ Calculate damage multiplier increment based on passed parameters. Module cycle time From 5940625e24a03e899dab97fbc6bf41a53c2f7b7f Mon Sep 17 00:00:00 2001 From: Ryan Holmes Date: Wed, 20 Mar 2019 21:51:58 -0400 Subject: [PATCH 83/88] Don't attempt to add cargo if there is not fitting loaded (#1888) --- gui/builtinAdditionPanes/cargoView.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/gui/builtinAdditionPanes/cargoView.py b/gui/builtinAdditionPanes/cargoView.py index 5734f622d..29721603c 100644 --- a/gui/builtinAdditionPanes/cargoView.py +++ b/gui/builtinAdditionPanes/cargoView.py @@ -81,7 +81,9 @@ class CargoView(d.Display): if data[0] == "fitting": self.swapModule(x, y, int(data[1])) elif data[0] == "market": - self.mainFrame.command.Submit(cmd.GuiAddCargoCommand(self.mainFrame.getActiveFit(), int(data[1]))) + fit = self.mainFrame.getActiveFit() + if fit: + self.mainFrame.command.Submit(cmd.GuiAddCargoCommand(fit, int(data[1]))) def startDrag(self, event): row = event.GetIndex() From cdaf5cc168cff0369279a9e16e477717302ecd6d Mon Sep 17 00:00:00 2001 From: DarkPhoenix Date: Thu, 21 Mar 2019 12:55:39 +0300 Subject: [PATCH 84/88] No need to use .value for IntEnums --- service/port/eft.py | 14 +++++++------- service/port/multibuy.py | 16 ++++++++-------- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/service/port/eft.py b/service/port/eft.py index e1c15be7e..1c8086d50 100644 --- a/service/port/eft.py +++ b/service/port/eft.py @@ -43,9 +43,9 @@ from service.port.shared import IPortUser, fetchItem, processing_notify pyfalog = Logger(__name__) EFT_OPTIONS = ( - (PortEftOptions.LOADED_CHARGES.value, 'Loaded Charges', 'Export charges loaded into modules', True), - (PortEftOptions.MUTATIONS.value, 'Mutated Attributes', 'Export mutated modules\' stats', True), - (PortEftOptions.IMPLANTS.value, 'Implants && Boosters', 'Export implants and boosters', True), + (PortEftOptions.LOADED_CHARGES, 'Loaded Charges', 'Export charges loaded into modules', True), + (PortEftOptions.MUTATIONS, 'Mutated Attributes', 'Export mutated modules\' stats', True), + (PortEftOptions.IMPLANTS, 'Implants && Boosters', 'Export implants and boosters', True), ) @@ -80,14 +80,14 @@ def exportEft(fit, options, callback): modName = module.baseItem.name else: modName = module.item.name - if module.isMutated and options[PortEftOptions.MUTATIONS.value]: + if module.isMutated and options[PortEftOptions.MUTATIONS]: mutants[mutantReference] = module mutationSuffix = ' [{}]'.format(mutantReference) mutantReference += 1 else: mutationSuffix = '' modOfflineSuffix = ' {}'.format(OFFLINE_SUFFIX) if module.state == FittingModuleState.OFFLINE else '' - if module.charge and options[PortEftOptions.LOADED_CHARGES.value]: + if module.charge and options[PortEftOptions.LOADED_CHARGES]: rackLines.append('{}, {}{}{}'.format( modName, module.charge.name, modOfflineSuffix, mutationSuffix)) else: @@ -116,7 +116,7 @@ def exportEft(fit, options, callback): sections.append('\n\n'.join(minionSection)) # Section 3: implants, boosters - if options[PortEftOptions.IMPLANTS.value]: + if options[PortEftOptions.IMPLANTS]: charSection = [] implantLines = [] for implant in fit.implants: @@ -143,7 +143,7 @@ def exportEft(fit, options, callback): # Section 5: mutated modules' details mutationLines = [] - if mutants and options[PortEftOptions.MUTATIONS.value]: + if mutants and options[PortEftOptions.MUTATIONS]: for mutantReference in sorted(mutants): mutant = mutants[mutantReference] mutationLines.append(renderMutant(mutant, firstPrefix='[{}] '.format(mutantReference), prefix=' ')) diff --git a/service/port/multibuy.py b/service/port/multibuy.py index fbb099a6d..2dfe7eff8 100644 --- a/service/port/multibuy.py +++ b/service/port/multibuy.py @@ -23,10 +23,10 @@ from service.price import Price as sPrc MULTIBUY_OPTIONS = ( - (PortMultiBuyOptions.LOADED_CHARGES.value, 'Loaded Charges', 'Export charges loaded into modules', True), - (PortMultiBuyOptions.IMPLANTS.value, 'Implants && Boosters', 'Export implants and boosters', False), - (PortMultiBuyOptions.CARGO.value, 'Cargo', 'Export cargo contents', True), - (PortMultiBuyOptions.OPTIMIZE_PRICES.value, 'Optimize Prices', 'Replace items by cheaper alternatives', False), + (PortMultiBuyOptions.LOADED_CHARGES, 'Loaded Charges', 'Export charges loaded into modules', True), + (PortMultiBuyOptions.IMPLANTS, 'Implants && Boosters', 'Export implants and boosters', False), + (PortMultiBuyOptions.CARGO, 'Cargo', 'Export cargo contents', True), + (PortMultiBuyOptions.OPTIMIZE_PRICES, 'Optimize Prices', 'Replace items by cheaper alternatives', False), ) @@ -39,7 +39,7 @@ def exportMultiBuy(fit, options, callback): if module.isMutated: continue _addItem(itemAmounts, module.item) - if module.charge and options[PortMultiBuyOptions.LOADED_CHARGES.value]: + if module.charge and options[PortMultiBuyOptions.LOADED_CHARGES]: _addItem(itemAmounts, module.charge, module.numCharges) for drone in fit.drones: @@ -48,18 +48,18 @@ def exportMultiBuy(fit, options, callback): for fighter in fit.fighters: _addItem(itemAmounts, fighter.item, fighter.amountActive) - if options[PortMultiBuyOptions.CARGO.value]: + if options[PortMultiBuyOptions.CARGO]: for cargo in fit.cargo: _addItem(itemAmounts, cargo.item, cargo.amount) - if options[PortMultiBuyOptions.IMPLANTS.value]: + if options[PortMultiBuyOptions.IMPLANTS]: for implant in fit.implants: _addItem(itemAmounts, implant.item) for booster in fit.boosters: _addItem(itemAmounts, booster.item) - if options[PortMultiBuyOptions.OPTIMIZE_PRICES.value]: + if options[PortMultiBuyOptions.OPTIMIZE_PRICES]: def formatCheaperExportCb(replacementsCheaper): updatedAmounts = {} From 6291fe16263eab02583af8a01bc242b90d669487 Mon Sep 17 00:00:00 2001 From: DarkPhoenix Date: Thu, 21 Mar 2019 13:01:21 +0300 Subject: [PATCH 85/88] Fix HTML export (#1890) --- gui/utils/exportHtml.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/gui/utils/exportHtml.py b/gui/utils/exportHtml.py index d1c0af9d0..608b52396 100644 --- a/gui/utils/exportHtml.py +++ b/gui/utils/exportHtml.py @@ -2,6 +2,7 @@ import threading import time # noinspection PyPackageRequirements import wx +from service.const import PortEftOptions from service.settings import HTMLExportSettings from service.fit import Fit from service.port import Port @@ -208,8 +209,10 @@ class exportHtmlThread(threading.Thread): if self.stopRunning: return try: - eftFit = Port.exportEft(getFit(fit[0])) - print(eftFit) + eftFit = Port.exportEft(getFit(fit[0]), options={ + PortEftOptions.IMPLANTS: True, + PortEftOptions.MUTATIONS: True, + PortEftOptions.LOADED_CHARGES: True}) HTMLfit = ( '

  • Date: Thu, 21 Mar 2019 23:55:25 +0300 Subject: [PATCH 86/88] Sort boosters by slot --- gui/builtinAdditionPanes/boosterView.py | 3 +++ service/port/eft.py | 4 ++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/gui/builtinAdditionPanes/boosterView.py b/gui/builtinAdditionPanes/boosterView.py index 11bac08ca..eda07eb5e 100644 --- a/gui/builtinAdditionPanes/boosterView.py +++ b/gui/builtinAdditionPanes/boosterView.py @@ -110,6 +110,9 @@ class BoosterView(d.Display): self.origional = fit.boosters if fit is not None else None self.boosters = stuff = fit.boosters[:] if fit is not None else None + if stuff is not None: + stuff.sort(key=lambda booster: booster.slot or 0) + if event.fitID != self.lastFitId: self.lastFitId = event.fitID diff --git a/service/port/eft.py b/service/port/eft.py index 1c8086d50..9206cba32 100644 --- a/service/port/eft.py +++ b/service/port/eft.py @@ -119,12 +119,12 @@ def exportEft(fit, options, callback): if options[PortEftOptions.IMPLANTS]: charSection = [] implantLines = [] - for implant in fit.implants: + for implant in sorted(fit.implants, key=lambda i: i.slot or 0): implantLines.append(implant.item.name) if implantLines: charSection.append('\n'.join(implantLines)) boosterLines = [] - for booster in fit.boosters: + for booster in sorted(fit.boosters, key=lambda b: b.slot): boosterLines.append(booster.item.name) if boosterLines: charSection.append('\n'.join(boosterLines)) From 8380f516e829e3f3d337078fedb1c29581148e14 Mon Sep 17 00:00:00 2001 From: DarkPhoenix Date: Thu, 21 Mar 2019 23:56:44 +0300 Subject: [PATCH 87/88] Add fallback for safety --- service/port/eft.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/service/port/eft.py b/service/port/eft.py index 9206cba32..b6c57967f 100644 --- a/service/port/eft.py +++ b/service/port/eft.py @@ -124,7 +124,7 @@ def exportEft(fit, options, callback): if implantLines: charSection.append('\n'.join(implantLines)) boosterLines = [] - for booster in sorted(fit.boosters, key=lambda b: b.slot): + for booster in sorted(fit.boosters, key=lambda b: b.slot or 0): boosterLines.append(booster.item.name) if boosterLines: charSection.append('\n'.join(boosterLines)) From 1603201166986c8feca4d35b084e6c38f220788d Mon Sep 17 00:00:00 2001 From: Ryan Holmes Date: Thu, 21 Mar 2019 19:47:31 -0400 Subject: [PATCH 88/88] Add "Can fit" grouping --- gui/builtinItemStatsViews/attributeGrouping.py | 8 ++++++++ gui/builtinItemStatsViews/itemAttributes.py | 14 +++++++++++--- service/const.py | 1 + 3 files changed, 20 insertions(+), 3 deletions(-) diff --git a/gui/builtinItemStatsViews/attributeGrouping.py b/gui/builtinItemStatsViews/attributeGrouping.py index c93e97010..6780c176c 100644 --- a/gui/builtinItemStatsViews/attributeGrouping.py +++ b/gui/builtinItemStatsViews/attributeGrouping.py @@ -207,8 +207,15 @@ AttrGroupDict = { "fighterSquadronOrbitRange", ] }, + GuiAttrGroup.SHIP_GROUP : { + "label" : "Can Fit To", + "attributes": [] + }, } +AttrGroupDict[GuiAttrGroup.SHIP_GROUP]["attributes"].extend([("canFitShipGroup{:02d}".format(i+1), "Group") for i in range(20)]) +AttrGroupDict[GuiAttrGroup.SHIP_GROUP]["attributes"].extend([("canFitShipType{:01d}".format(i+1), "Ship") for i in range(20)]) + Group1 = [ GuiAttrGroup.FITTING, GuiAttrGroup.STRUCTURE, @@ -222,6 +229,7 @@ Group1 = [ GuiAttrGroup.ON_DEATH, GuiAttrGroup.JUMP_SYSTEMS, GuiAttrGroup.PROPULSIONS, + GuiAttrGroup.SHIP_GROUP ] CategoryGroups = { diff --git a/gui/builtinItemStatsViews/itemAttributes.py b/gui/builtinItemStatsViews/itemAttributes.py index 20065b6b0..558762d70 100644 --- a/gui/builtinItemStatsViews/itemAttributes.py +++ b/gui/builtinItemStatsViews/itemAttributes.py @@ -173,9 +173,15 @@ class ItemParams(wx.Panel): self.paramList.AssignImageList(self.imageList) def AddAttribute(self, parent, attr): + display = None + + if isinstance(attr, tuple): + display = attr[1] + attr = attr[0] + if attr in self.attrValues and attr not in self.processed_attribs: - data = self.GetData(attr) + data = self.GetData(attr, display) if data is None: return @@ -203,7 +209,7 @@ class ItemParams(wx.Panel): misc_parent = root # We must first deet4ermine if it's categorey already has defined groupings set for it. Otherwise, we default to just using the fitting group - order = CategoryGroups.get(self.item.category.categoryName, [GuiAttrGroup.FITTING]) + order = CategoryGroups.get(self.item.category.categoryName, [GuiAttrGroup.FITTING, GuiAttrGroup.SHIP_GROUP]) # start building out the tree for data in [AttrGroupDict[o] for o in order]: heading = data.get("label") @@ -257,6 +263,8 @@ class ItemParams(wx.Panel): self.paramList.SetColumnWidth(i, wx.LIST_AUTOSIZE) def GetData(self, attr): + + def GetData(self, attr, displayOveride = None): info = self.attrInfo.get(attr) att = self.attrValues[attr] @@ -275,7 +283,7 @@ class ItemParams(wx.Panel): return None if info and info.displayName and self.toggleView == AttributeView.NORMAL: - attrName = info.displayName + attrName = displayOveride or info.displayName else: attrName = attr diff --git a/service/const.py b/service/const.py index 1f83b38a9..d09d809f6 100644 --- a/service/const.py +++ b/service/const.py @@ -101,3 +101,4 @@ class GuiAttrGroup(IntEnum): JUMP_SYSTEMS = auto() PROPULSIONS = auto() FIGHTERS = auto() + SHIP_GROUP = auto() \ No newline at end of file