From 9ef182aa99f67e6086aa8425051a1a9f2e22cf74 Mon Sep 17 00:00:00 2001 From: blitzmann Date: Mon, 6 Jul 2015 23:39:20 -0400 Subject: [PATCH 01/53] First working prototype of toggleable projected fits. Creates a new association object that stores projection-specific information. GUI hasn't been touched (need to show state), and there are a lot of variables that I need to rename. --- eos/db/saveddata/fit.py | 123 +++++++++++++++++++++++++++--------- eos/effectHandlerHelpers.py | 2 + eos/saveddata/fit.py | 3 +- service/fit.py | 3 + 4 files changed, 100 insertions(+), 31 deletions(-) diff --git a/eos/db/saveddata/fit.py b/eos/db/saveddata/fit.py index 0c5edaee9..3b5fc0e3e 100644 --- a/eos/db/saveddata/fit.py +++ b/eos/db/saveddata/fit.py @@ -17,9 +17,10 @@ # along with eos. If not, see . #=============================================================================== -from sqlalchemy import Table, Column, Integer, ForeignKey, String, Boolean -from sqlalchemy.orm import relation, mapper +from sqlalchemy import * +from sqlalchemy.orm import * from sqlalchemy.sql import and_ +from sqlalchemy.ext.associationproxy import association_proxy from eos.db import saveddata_meta from eos.db.saveddata.module import modules_table @@ -46,32 +47,94 @@ projectedFits_table = Table("projectedFits", saveddata_meta, Column("sourceID", ForeignKey("fits.ID"), primary_key = True), Column("victimID", ForeignKey("fits.ID"), primary_key = True), Column("amount", Integer)) + +class ProjectedFit(object): + def __init__(self, source_item, dest_item, enabled): + print "init projected item", source_item, dest_item, enabled + self.source_item = source_item + self.dest_item = dest_item + self.amount = enabled + + @reconstructor + def init(self): + print "db init" + print "\t source:",self.source_item + print "\t dest:", self.dest_item + self.dest_item.projectionInfo = self + +Fit._Fit__projectedFits = association_proxy( + "projected_items", + "dest_item", + creator=lambda dest_item: ProjectedFit(None, dest_item, True) +) + mapper(Fit, fits_table, - properties = {"_Fit__modules" : relation(Module, collection_class = HandledModuleList, - primaryjoin = and_(modules_table.c.fitID == fits_table.c.ID, modules_table.c.projected == False), - order_by = modules_table.c.position, cascade='all, delete, delete-orphan'), - "_Fit__projectedModules" : relation(Module, collection_class = HandledProjectedModList, cascade='all, delete, delete-orphan', single_parent=True, - primaryjoin = and_(modules_table.c.fitID == fits_table.c.ID, modules_table.c.projected == True)), - "owner" : relation(User, backref = "fits"), - "itemID" : fits_table.c.shipID, - "shipID" : fits_table.c.shipID, - "_Fit__boosters" : relation(Booster, collection_class = HandledImplantBoosterList, cascade='all, delete, delete-orphan', single_parent=True), - "_Fit__drones" : relation(Drone, collection_class = HandledDroneCargoList, cascade='all, delete, delete-orphan', single_parent=True, - primaryjoin = and_(drones_table.c.fitID == fits_table.c.ID, drones_table.c.projected == False)), - "_Fit__cargo" : relation(Cargo, collection_class = HandledDroneCargoList, cascade='all, delete, delete-orphan', single_parent=True, - primaryjoin = and_(cargo_table.c.fitID == fits_table.c.ID)), - "_Fit__projectedDrones" : relation(Drone, collection_class = HandledProjectedDroneList, cascade='all, delete, delete-orphan', single_parent=True, - primaryjoin = and_(drones_table.c.fitID == fits_table.c.ID, drones_table.c.projected == True)), - "_Fit__implants" : relation(Implant, collection_class = HandledImplantBoosterList, cascade='all, delete, delete-orphan', backref='fit', single_parent=True, - primaryjoin = fitImplants_table.c.fitID == fits_table.c.ID, - secondaryjoin = fitImplants_table.c.implantID == Implant.ID, - secondary = fitImplants_table), - "_Fit__character" : relation(Character, backref = "fits"), - "_Fit__damagePattern" : relation(DamagePattern), - "_Fit__targetResists" : relation(TargetResists), - "_Fit__projectedFits" : relation(Fit, - primaryjoin = projectedFits_table.c.victimID == fits_table.c.ID, - secondaryjoin = fits_table.c.ID == projectedFits_table.c.sourceID, - secondary = projectedFits_table, - collection_class = HandledProjectedFitList) - }) + properties = { + "_Fit__modules": relation( + Module, + collection_class=HandledModuleList, + primaryjoin=and_(modules_table.c.fitID == fits_table.c.ID, modules_table.c.projected == False), + order_by=modules_table.c.position, + cascade='all, delete, delete-orphan'), + "_Fit__projectedModules": relation( + Module, + collection_class=HandledProjectedModList, + cascade='all, delete, delete-orphan', + single_parent=True, + primaryjoin=and_(modules_table.c.fitID == fits_table.c.ID, modules_table.c.projected == True)), + "owner": relation( + User, + backref="fits"), + "itemID": fits_table.c.shipID, + "shipID": fits_table.c.shipID, + "_Fit__boosters": relation( + Booster, + collection_class=HandledImplantBoosterList, + cascade='all, delete, delete-orphan', + single_parent=True), + "_Fit__drones": relation( + Drone, + collection_class=HandledDroneCargoList, + cascade='all, delete, delete-orphan', + single_parent=True, + primaryjoin=and_(drones_table.c.fitID == fits_table.c.ID, drones_table.c.projected == False)), + "_Fit__cargo": relation( + Cargo, + collection_class=HandledDroneCargoList, + cascade='all, delete, delete-orphan', + single_parent=True, + primaryjoin=and_(cargo_table.c.fitID == fits_table.c.ID)), + "_Fit__projectedDrones": relation( + Drone, + collection_class=HandledProjectedDroneList, + cascade='all, delete, delete-orphan', + single_parent=True, + primaryjoin=and_(drones_table.c.fitID == fits_table.c.ID, drones_table.c.projected == True)), + "_Fit__implants": relation( + Implant, + collection_class=HandledImplantBoosterList, + cascade='all, delete, delete-orphan', + backref='fit', + single_parent=True, + primaryjoin=fitImplants_table.c.fitID == fits_table.c.ID, + secondaryjoin=fitImplants_table.c.implantID == Implant.ID, + secondary=fitImplants_table), + "_Fit__character": relation( + Character, + backref="fits"), + "_Fit__damagePattern": relation(DamagePattern), + "_Fit__targetResists": relation(TargetResists), + "dest_items": relationship( + ProjectedFit, + primaryjoin=projectedFits_table.c.victimID == fits_table.c.ID, + backref='dest_item', + cascade='all, delete, delete-orphan'), + "projected_items": relationship( + ProjectedFit, + primaryjoin=fits_table.c.ID == projectedFits_table.c.sourceID, + backref='source_item', + cascade='all, delete, delete-orphan'), + } +) + +mapper(ProjectedFit, projectedFits_table) diff --git a/eos/effectHandlerHelpers.py b/eos/effectHandlerHelpers.py index c658cf0a9..fee65fad0 100644 --- a/eos/effectHandlerHelpers.py +++ b/eos/effectHandlerHelpers.py @@ -228,8 +228,10 @@ class HandledProjectedDroneList(HandledDroneCargoList): if proj.isInvalid or not proj.item.isType("projected"): self.remove(proj) +# @todo: remove this once we are sure we no longer need it class HandledProjectedFitList(HandledList): def append(self, proj): + print "apppending projected fit", proj proj.projected = True list.append(self, proj) diff --git a/eos/saveddata/fit.py b/eos/saveddata/fit.py index 5c03d6a2a..12d9b4cd8 100644 --- a/eos/saveddata/fit.py +++ b/eos/saveddata/fit.py @@ -452,7 +452,8 @@ class Fit(object): item.calculateModifiedAttributes(targetFit, runTime, True) for fit in self.projectedFits: - fit.calculateModifiedAttributes(self, withBoosters=withBoosters, dirtyStorage=dirtyStorage) + if fit.projectionInfo.amount: + fit.calculateModifiedAttributes(self, withBoosters=withBoosters, dirtyStorage=dirtyStorage) def fill(self): """ diff --git a/service/fit.py b/service/fit.py index f20d9183a..9ce47ad62 100644 --- a/service/fit.py +++ b/service/fit.py @@ -363,6 +363,9 @@ class Fit(object): thing.state = self.__getProposedState(thing, click) if not thing.canHaveState(thing.state, fit): thing.state = State.OFFLINE + elif isinstance(thing, eos.types.Fit): + print "toggle fit" + thing.projectionInfo.amount = not thing.projectionInfo.amount eos.db.commit() self.recalc(fit) From 2bca3ddcc87b04e833e2c390c4ea005f05d375d6 Mon Sep 17 00:00:00 2001 From: blitzmann Date: Tue, 7 Jul 2015 00:12:36 -0400 Subject: [PATCH 02/53] GUI support (also made regular checkboxes pretty for drones/implant/etc) --- eos/saveddata/fit.py | 11 ++++++++++- gui/builtinViewColumns/state.py | 21 +++++++++++++++++---- 2 files changed, 27 insertions(+), 5 deletions(-) diff --git a/eos/saveddata/fit.py b/eos/saveddata/fit.py index 12d9b4cd8..b0b94c2df 100644 --- a/eos/saveddata/fit.py +++ b/eos/saveddata/fit.py @@ -117,6 +117,7 @@ class Fit(object): self.__capUsed = None self.__capRecharge = None self.__calculatedTargets = [] + self.__projectionInfo = None self.factorReload = False self.fleet = None self.boostsFits = set() @@ -207,6 +208,14 @@ class Fit(object): def projectedFits(self): return self.__projectedFits + @property + def projectionInfo(self): + return self.__projectionInfo + + @projectionInfo.setter + def projectionInfo(self, projectionInfo): + self.__projectionInfo = projectionInfo + @property def projectedDrones(self): return self.__projectedDrones @@ -452,7 +461,7 @@ class Fit(object): item.calculateModifiedAttributes(targetFit, runTime, True) for fit in self.projectedFits: - if fit.projectionInfo.amount: + if fit.projectionInfo.amount > 0: fit.calculateModifiedAttributes(self, withBoosters=withBoosters, dirtyStorage=dirtyStorage) def fill(self): diff --git a/gui/builtinViewColumns/state.py b/gui/builtinViewColumns/state.py index d26c46443..c10a0f77f 100644 --- a/gui/builtinViewColumns/state.py +++ b/gui/builtinViewColumns/state.py @@ -20,7 +20,7 @@ from gui.viewColumn import ViewColumn from gui import bitmapLoader import wx -from eos.types import Drone, Module, Rack +from eos.types import Drone, Module, Rack, Fit from eos.types import State as State_ class State(ViewColumn): @@ -49,8 +49,14 @@ 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(), "icons") + generic_inactive = self.fittingView.imageList.GetImageIndex("state_%s_small" % State_.getName(-1).lower(), "icons") + if isinstance(stuff, Drone): - return self.checkedId if stuff.amountActive > 0 else self.uncheckedId + if stuff.amountActive > 0: + return generic_active + else: + return generic_inactive elif isinstance(stuff, Rack): return -1 elif isinstance(stuff, Module): @@ -58,11 +64,18 @@ class State(ViewColumn): return -1 else: return self.fittingView.imageList.GetImageIndex("state_%s_small" % State_.getName(stuff.state).lower(), "icons") + elif isinstance(stuff, Fit): + if stuff.projectionInfo is None: + return -1 + if stuff.projectionInfo.amount > 0: + return generic_active + return generic_inactive else: active = getattr(stuff, "active", None) if active is None: return -1 - else: - return self.checkedId if active else self.uncheckedId + if active: + return generic_active + return generic_inactive State.register() From b95a10d284a8b0dad41c72486b356f484d897fd4 Mon Sep 17 00:00:00 2001 From: blitzmann Date: Tue, 7 Jul 2015 00:25:24 -0400 Subject: [PATCH 03/53] Add active column. Looping the fit to apply it x amount of times doesn't seem to work. Probably because it's been flagged calculated and returns early --- eos/db/saveddata/fit.py | 14 +++++++++----- eos/saveddata/fit.py | 5 +++-- gui/builtinViewColumns/baseName.py | 2 +- gui/builtinViewColumns/state.py | 2 +- service/fit.py | 2 +- 5 files changed, 15 insertions(+), 10 deletions(-) diff --git a/eos/db/saveddata/fit.py b/eos/db/saveddata/fit.py index 3b5fc0e3e..4c03bdd32 100644 --- a/eos/db/saveddata/fit.py +++ b/eos/db/saveddata/fit.py @@ -46,14 +46,18 @@ fits_table = Table("fits", saveddata_meta, projectedFits_table = Table("projectedFits", saveddata_meta, Column("sourceID", ForeignKey("fits.ID"), primary_key = True), Column("victimID", ForeignKey("fits.ID"), primary_key = True), - Column("amount", Integer)) + Column("amount", Integer), + Column("active", Boolean), +) class ProjectedFit(object): - def __init__(self, source_item, dest_item, enabled): - print "init projected item", source_item, dest_item, enabled + def __init__(self, source_item, dest_item, amount=1, active=True): + print "init projected item", source_item, dest_item, active, amount self.source_item = source_item self.dest_item = dest_item - self.amount = enabled + self.amount = amount + self.active = active + self.dest_item.projectionInfo = self @reconstructor def init(self): @@ -65,7 +69,7 @@ class ProjectedFit(object): Fit._Fit__projectedFits = association_proxy( "projected_items", "dest_item", - creator=lambda dest_item: ProjectedFit(None, dest_item, True) + creator=lambda dest_item: ProjectedFit(None, dest_item) ) mapper(Fit, fits_table, diff --git a/eos/saveddata/fit.py b/eos/saveddata/fit.py index b0b94c2df..f21e8539d 100644 --- a/eos/saveddata/fit.py +++ b/eos/saveddata/fit.py @@ -461,8 +461,9 @@ class Fit(object): item.calculateModifiedAttributes(targetFit, runTime, True) for fit in self.projectedFits: - if fit.projectionInfo.amount > 0: - fit.calculateModifiedAttributes(self, withBoosters=withBoosters, dirtyStorage=dirtyStorage) + if fit.projectionInfo.active: + #for _ in xrange(fit.projectionInfo.amount): + fit.calculateModifiedAttributes(self, withBoosters=withBoosters, dirtyStorage=dirtyStorage) def fill(self): """ diff --git a/gui/builtinViewColumns/baseName.py b/gui/builtinViewColumns/baseName.py index a6b3fe49f..0bd0e8c43 100644 --- a/gui/builtinViewColumns/baseName.py +++ b/gui/builtinViewColumns/baseName.py @@ -39,7 +39,7 @@ class BaseName(ViewColumn): elif isinstance(stuff, Cargo): return "%dx %s" % (stuff.amount, stuff.item.name) elif isinstance(stuff, Fit): - return "%s (%s)" % (stuff.name, stuff.ship.item.name) + return "%dx %s (%s)" % (stuff.projectionInfo.amount, stuff.name, stuff.ship.item.name) elif isinstance(stuff, Rack): if service.Fit.getInstance().serviceFittingOptions["rackLabels"]: if stuff.slot == Slot.MODE: diff --git a/gui/builtinViewColumns/state.py b/gui/builtinViewColumns/state.py index c10a0f77f..a0e8258ee 100644 --- a/gui/builtinViewColumns/state.py +++ b/gui/builtinViewColumns/state.py @@ -67,7 +67,7 @@ class State(ViewColumn): elif isinstance(stuff, Fit): if stuff.projectionInfo is None: return -1 - if stuff.projectionInfo.amount > 0: + if stuff.projectionInfo.active: return generic_active return generic_inactive else: diff --git a/service/fit.py b/service/fit.py index 9ce47ad62..d328be6ed 100644 --- a/service/fit.py +++ b/service/fit.py @@ -365,7 +365,7 @@ class Fit(object): thing.state = State.OFFLINE elif isinstance(thing, eos.types.Fit): print "toggle fit" - thing.projectionInfo.amount = not thing.projectionInfo.amount + thing.projectionInfo.active = not thing.projectionInfo.active eos.db.commit() self.recalc(fit) From 06e4a7e80f6195122c6f7a9dd95cd66047d85a44 Mon Sep 17 00:00:00 2001 From: blitzmann Date: Tue, 7 Jul 2015 01:57:59 -0400 Subject: [PATCH 04/53] Support changing amount of projected fits --- gui/builtinContextMenus/__init__.py | 3 +- gui/builtinContextMenus/amount.py | 76 +++++++++++++++++++++++++++++ gui/builtinContextMenus/cargo.py | 64 ------------------------ service/fit.py | 13 ++++- 4 files changed, 90 insertions(+), 66 deletions(-) create mode 100644 gui/builtinContextMenus/amount.py diff --git a/gui/builtinContextMenus/__init__.py b/gui/builtinContextMenus/__init__.py index 7ce9ed894..b9fb3386d 100644 --- a/gui/builtinContextMenus/__init__.py +++ b/gui/builtinContextMenus/__init__.py @@ -17,5 +17,6 @@ __all__ = [ #"changeAffectingSkills", "tacticalMode", "targetResists", - "priceClear" + "priceClear", + "amount", ] diff --git a/gui/builtinContextMenus/amount.py b/gui/builtinContextMenus/amount.py new file mode 100644 index 000000000..a8e00a28f --- /dev/null +++ b/gui/builtinContextMenus/amount.py @@ -0,0 +1,76 @@ +from gui.contextMenu import ContextMenu +from gui.itemStats import ItemStatsDialog +import eos.types +import gui.mainFrame +import service +import gui.globalEvents as GE +import wx + +class ChangeAmount(ContextMenu): + def __init__(self): + self.mainFrame = gui.mainFrame.MainFrame.getInstance() + + def display(self, srcContext, selection): + return srcContext in ("cargoItem","projectedFit") + + def getText(self, itmContext, selection): + print selection + return "Change {0} Quantity".format(itmContext) + + def activate(self, fullContext, selection, i): + srcContext = fullContext[0] + dlg = AmountChanger(self.mainFrame, selection[0], srcContext) + dlg.ShowModal() + dlg.Destroy() + +ChangeAmount.register() + +class AmountChanger(wx.Dialog): + + def __init__(self, parent, thing, context): + wx.Dialog.__init__(self, parent, title="Select Amount", size=wx.Size(220, 60)) + self.thing = thing + self.context = context + + bSizer1 = wx.BoxSizer(wx.HORIZONTAL) + + self.input = wx.TextCtrl(self, wx.ID_ANY, style=wx.TE_PROCESS_ENTER) + + bSizer1.Add(self.input, 1, wx.ALL, 5) + self.input.Bind(wx.EVT_CHAR, self.onChar) + self.input.Bind(wx.EVT_TEXT_ENTER, self.change) + self.button = wx.Button(self, wx.ID_OK, u"Done") + bSizer1.Add(self.button, 0, wx.ALL, 5) + + self.SetSizer(bSizer1) + self.Layout() + self.Centre(wx.BOTH) + self.button.Bind(wx.EVT_BUTTON, self.change) + + def change(self, event): + sFit = service.Fit.getInstance() + mainFrame = gui.mainFrame.MainFrame.getInstance() + fitID = mainFrame.getActiveFit() + + if isinstance(self.thing, eos.types.Cargo): + sFit.addCargo(fitID, self.thing.item.ID, int(self.input.GetLineText(0)), replace=True) + elif isinstance(self.thing, eos.types.Fit): + sFit.changeAmount(fitID, self.thing, int(self.input.GetLineText(0))) + + wx.PostEvent(mainFrame, GE.FitChanged(fitID=fitID)) + + event.Skip() + self.Destroy() + + ## checks to make sure it's valid number + def onChar(self, event): + key = event.GetKeyCode() + + acceptable_characters = "1234567890" + acceptable_keycode = [3, 22, 13, 8, 127] # modifiers like delete, copy, paste + if key in acceptable_keycode or key >= 255 or (key < 255 and chr(key) in acceptable_characters): + event.Skip() + return + else: + return False + diff --git a/gui/builtinContextMenus/cargo.py b/gui/builtinContextMenus/cargo.py index 6eda67458..3cc86902b 100644 --- a/gui/builtinContextMenus/cargo.py +++ b/gui/builtinContextMenus/cargo.py @@ -29,67 +29,3 @@ class Cargo(ContextMenu): wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=fitID)) Cargo.register() - -class CargoAmount(ContextMenu): - def __init__(self): - self.mainFrame = gui.mainFrame.MainFrame.getInstance() - - def display(self, srcContext, selection): - return srcContext in ("cargoItem",) and selection[0].amount >= 0 - - def getText(self, itmContext, selection): - return "Change {0} Quantity".format(itmContext) - - def activate(self, fullContext, selection, i): - srcContext = fullContext[0] - dlg = CargoChanger(self.mainFrame, selection[0], srcContext) - dlg.ShowModal() - dlg.Destroy() - -CargoAmount.register() - -class CargoChanger(wx.Dialog): - - def __init__(self, parent, cargo, context): - wx.Dialog.__init__(self, parent, title="Select Amount", size=wx.Size(220, 60)) - self.cargo = cargo - self.context = context - - bSizer1 = wx.BoxSizer(wx.HORIZONTAL) - - self.input = wx.TextCtrl(self, wx.ID_ANY, style=wx.TE_PROCESS_ENTER) - - bSizer1.Add(self.input, 1, wx.ALL, 5) - self.input.Bind(wx.EVT_CHAR, self.onChar) - self.input.Bind(wx.EVT_TEXT_ENTER, self.change) - self.button = wx.Button(self, wx.ID_OK, u"Done") - bSizer1.Add(self.button, 0, wx.ALL, 5) - - self.SetSizer(bSizer1) - self.Layout() - self.Centre(wx.BOTH) - self.button.Bind(wx.EVT_BUTTON, self.change) - - def change(self, event): - sFit = service.Fit.getInstance() - mainFrame = gui.mainFrame.MainFrame.getInstance() - fitID = mainFrame.getActiveFit() - - sFit.addCargo(fitID, self.cargo.item.ID, int(self.input.GetLineText(0)), replace=True) - - wx.PostEvent(mainFrame, GE.FitChanged(fitID=fitID)) - - event.Skip() - self.Destroy() - ## checks to make sure it's valid number - def onChar(self, event): - key = event.GetKeyCode() - - acceptable_characters = "1234567890" - acceptable_keycode = [3, 22, 13, 8, 127] # modifiers like delete, copy, paste - if key in acceptable_keycode or key >= 255 or (key < 255 and chr(key) in acceptable_characters): - event.Skip() - return - else: - return False - diff --git a/service/fit.py b/service/fit.py index d328be6ed..5102a8bc5 100644 --- a/service/fit.py +++ b/service/fit.py @@ -363,13 +363,24 @@ class Fit(object): thing.state = self.__getProposedState(thing, click) if not thing.canHaveState(thing.state, fit): thing.state = State.OFFLINE - elif isinstance(thing, eos.types.Fit): + elif isinstance(thing, eos.types.Fit) and thing.projectionInfo is not None: print "toggle fit" thing.projectionInfo.active = not thing.projectionInfo.active eos.db.commit() self.recalc(fit) + def changeAmount(self, fitID, projected_fit, amount): + """Change amount of projected fits""" + fit = eos.db.getFit(fitID) + amount = min(5, max(1, amount)) # 1 <= a <= 5 + + if projected_fit.projectionInfo is not None: + projected_fit.projectionInfo.amount = amount + + eos.db.commit() + self.recalc(fit) + def removeProjected(self, fitID, thing): fit = eos.db.getFit(fitID) if isinstance(thing, eos.types.Drone): From 23309a5da6c8bee37d9d10878c66c55421b73ad4 Mon Sep 17 00:00:00 2001 From: blitzmann Date: Tue, 7 Jul 2015 13:22:59 -0400 Subject: [PATCH 05/53] Remove unneeded code that created a bitmap for checkboxes --- gui/builtinViewColumns/state.py | 9 --------- 1 file changed, 9 deletions(-) diff --git a/gui/builtinViewColumns/state.py b/gui/builtinViewColumns/state.py index a0e8258ee..0925d2f2d 100644 --- a/gui/builtinViewColumns/state.py +++ b/gui/builtinViewColumns/state.py @@ -31,15 +31,6 @@ class State(ViewColumn): self.size = 16 self.maxsize = self.size self.mask = wx.LIST_MASK_IMAGE - for name, state in (("checked", wx.CONTROL_CHECKED), ("unchecked", 0)): - bitmap = wx.EmptyBitmap(16, 16) - dc = wx.MemoryDC() - dc.SelectObject(bitmap) - dc.SetBackground(wx.TheBrushList.FindOrCreateBrush(fittingView.GetBackgroundColour(), wx.SOLID)) - dc.Clear() - wx.RendererNative.Get().DrawCheckBox(fittingView, dc, wx.Rect(0, 0, 16, 16), state) - dc.Destroy() - setattr(self, "%sId" % name, fittingView.imageList.Add(bitmap)) def getText(self, mod): return "" From c17bce55bbe68384c3a53a22b8076f9ab46d0d05 Mon Sep 17 00:00:00 2001 From: blitzmann Date: Tue, 7 Jul 2015 21:48:04 -0400 Subject: [PATCH 06/53] Lots of stuff - Added logging and replaced Timer class with more useful one - Move projected fit loop out of runtimes - Eliminate recursions from Fit.clear() - Clean up overall fit calc logic --- config.py | 2 +- eos/saveddata/fit.py | 144 +++++++++++++++++++++++++++---------------- service/fit.py | 8 ++- utils/timer.py | 48 ++++++++------- 4 files changed, 124 insertions(+), 78 deletions(-) diff --git a/config.py b/config.py index c20489972..a33ec451a 100644 --- a/config.py +++ b/config.py @@ -17,7 +17,7 @@ debug = False # Defines if our saveddata will be in pyfa root or not saveInRoot = False -logLevel = logging.WARN +logLevel = logging.DEBUG # Version data version = "1.12.1" diff --git a/eos/saveddata/fit.py b/eos/saveddata/fit.py index f21e8539d..3edb73a30 100644 --- a/eos/saveddata/fit.py +++ b/eos/saveddata/fit.py @@ -29,6 +29,8 @@ from eos.saveddata.module import State from eos.saveddata.mode import Mode import eos.db import time +from utils.timer import Timer + import logging logger = logging.getLogger(__name__) @@ -353,10 +355,28 @@ class Fit(object): del self.__calculatedTargets[:] del self.__extraDrains[:] - if self.ship is not None: self.ship.clear() - c = chain(self.modules, self.drones, self.boosters, self.implants, self.projectedDrones, self.projectedModules, self.projectedFits, (self.character, self.extraAttributes)) + if self.ship: + self.ship.clear() + + c = chain( + self.modules, + self.drones, + self.boosters, + self.implants, + self.projectedDrones, + self.projectedModules, + (self.character, self.extraAttributes), + ) + + # If we are in a root ship, add projected fits to clear list + # Do not add projected fits if self is already projected - this can + # cause infinite recursion in projection loop, eg A > B > C > A + if self.projectionInfo is None: + c = chain(c, self.projectedFits) + for stuff in c: - if stuff is not None and stuff != self: stuff.clear() + if stuff is not None and stuff != self: + stuff.clear() #Methods to register and get the thing currently affecting the fit, #so we can correctly map "Affected By" @@ -370,7 +390,38 @@ class Fit(object): def getModifier(self): return self.__modifier + def __calculateGangBoosts(self, runTime): + for name, info in self.gangBoosts.iteritems(): + # Unpack all data required to run effect properly + effect, thing = info[1] + if effect.runTime == runTime: + context = ("gang", thing.__class__.__name__.lower()) + if isinstance(thing, Module): + if effect.isType("offline") or (effect.isType("passive") and thing.state >= State.ONLINE) or \ + (effect.isType("active") and thing.state >= State.ACTIVE): + # Run effect, and get proper bonuses applied + try: + self.register(thing) + effect.handler(self, thing, context) + except: + pass + else: + # Run effect, and get proper bonuses applied + try: + self.register(thing) + effect.handler(self, thing, context) + except: + pass + def calculateModifiedAttributes(self, targetFit=None, withBoosters=False, dirtyStorage=None): + timer = Timer('Fit: %d, %s'%(self.ID, self.name), logger) + logger.debug("Starting fit calculation on: %d %s (%s)" % + (self.ID, self.name, self.ship.item.name)) + + if targetFit: + logger.debug("Applying projections to target: %d %s (%s)" % + (targetFit.ID, targetFit.name, targetFit.ship.item.name)) + refreshBoosts = False if withBoosters is True: refreshBoosts = True @@ -379,6 +430,7 @@ class Fit(object): if dirtyStorage is not None: dirtyStorage.update(self.boostsFits) if self.fleet is not None and refreshBoosts is True: + logger.debug("Fleet is set, gathering gang boosts") self.gangBoosts = self.fleet.recalculateLinear(withBoosters=withBoosters, dirtyStorage=dirtyStorage) elif self.fleet is None: self.gangBoosts = None @@ -387,84 +439,70 @@ class Fit(object): dirtyStorage.remove(self.ID) except KeyError: pass + # If we're not explicitly asked to project fit onto something, # set self as target fit if targetFit is None: targetFit = self - forceProjected = False + projected = False # Else, we're checking all target projectee fits elif targetFit not in self.__calculatedTargets: + logger.debug("Target fit has not been calculated, calculating first") + # target fit is required to be calculated before we do projections + # @todo: is there any situation where a projected ship would get here and the targte fit not be calculated already? See if we can get rid of this block of code self.__calculatedTargets.append(targetFit) targetFit.calculateModifiedAttributes(dirtyStorage=dirtyStorage) - forceProjected = True + projected = True # Or do nothing if target fit is calculated else: return # If fit is calculated and we have nothing to do here, get out - if self.__calculated == True and forceProjected == False: + if self.__calculated and not projected: + logger.debug("Fit has already been calculated and is not projected, returning") return # Mark fit as calculated self.__calculated = True - # There's a few things to keep in mind here - # 1: Early effects first, then regular ones, then late ones, regardless of anything else - # 2: Some effects aren't implemented - # 3: Some effects are implemented poorly and will just explode on us - # 4: Errors should be handled gracefully and preferably without crashing unless serious - for runTime in ("early", "normal", "late"): - # Build a little chain of stuff - # Avoid adding projected drones and modules when fit is projected onto self - # TODO: remove this workaround when proper self-projection using virtual duplicate fits is implemented - if forceProjected is True: - # if fit is being projected onto another fit - c = chain((self.character, self.ship), self.drones, self.boosters, self.appliedImplants, self.modules) - else: - c = chain((self.character, self.ship, self.mode), self.drones, self.boosters, self.appliedImplants, self.modules, - self.projectedDrones, self.projectedModules) + c = chain( + (self.character, self.ship), + self.drones, + self.boosters, + self.appliedImplants, + self.modules + ) + if not projected: + # if not a projected fit, add a couple of more things + c = chain(c, self.projectedDrones, self.projectedModules) + + for runTime in ("early", "normal", "late"): + # We calculate gang bonuses first so that projected fits get them if self.gangBoosts is not None: - contextMap = {Skill: "skill", - Ship: "ship", - Module: "module", - Implant: "implant"} - for name, info in self.gangBoosts.iteritems(): - # Unpack all data required to run effect properly - effect, thing = info[1] - if effect.runTime == runTime: - context = ("gang", contextMap[type(thing)]) - if isinstance(thing, Module): - if effect.isType("offline") or (effect.isType("passive") and thing.state >= State.ONLINE) or \ - (effect.isType("active") and thing.state >= State.ACTIVE): - # Run effect, and get proper bonuses applied - try: - self.register(thing) - effect.handler(self, thing, context) - except: - pass - else: - # Run effect, and get proper bonuses applied - try: - self.register(thing) - effect.handler(self, thing, context) - except: - pass + self.__calculateGangBoosts(runTime) for item in c: - # Registering the item about to affect the fit allows us to track "Affected By" relations correctly + # Registering the item about to affect the fit allows us to + # track "Affected By" relations correctly if item is not None: self.register(item) item.calculateModifiedAttributes(self, runTime, False) - if forceProjected is True: - targetFit.register(item) - item.calculateModifiedAttributes(targetFit, runTime, True) + if projected is True: + for _ in xrange(self.projectionInfo.amount): + targetFit.register(item) + item.calculateModifiedAttributes(targetFit, runTime, True) - for fit in self.projectedFits: - if fit.projectionInfo.active: - #for _ in xrange(fit.projectionInfo.amount): + timer.checkpoint('Done with runtime: %s'%runTime) + + # Only apply projected fits if fit it not projected itself. + if not projected: + for fit in self.projectedFits: + if fit.projectionInfo.active: fit.calculateModifiedAttributes(self, withBoosters=withBoosters, dirtyStorage=dirtyStorage) + timer.checkpoint('Done with fit calculation') + def fill(self): """ Fill this fit's module slots with enough dummy slots so that all slots are used. diff --git a/service/fit.py b/service/fit.py index 5102a8bc5..dddc4ebfb 100644 --- a/service/fit.py +++ b/service/fit.py @@ -36,7 +36,7 @@ from service.fleet import Fleet from service.settings import SettingsProvider from service.port import Port -logger = logging.getLogger("pyfa.service.fit") +logger = logging.getLogger(__name__) class FitBackupThread(threading.Thread): def __init__(self, path, callback): @@ -236,6 +236,7 @@ class Fit(object): return None fit = eos.db.getFit(fitID) inited = getattr(fit, "inited", None) + if inited is None or inited is False: sFleet = Fleet.getInstance() f = sFleet.getLinearFleet(fit) @@ -373,7 +374,7 @@ class Fit(object): def changeAmount(self, fitID, projected_fit, amount): """Change amount of projected fits""" fit = eos.db.getFit(fitID) - amount = min(5, max(1, amount)) # 1 <= a <= 5 + amount = min(20, max(1, amount)) # 1 <= a <= 5 if projected_fit.projectionInfo is not None: projected_fit.projectionInfo.amount = amount @@ -936,7 +937,8 @@ class Fit(object): self.recalc(fit) def recalc(self, fit, withBoosters=False): + logger.debug("="*10+"recalc"+"="*10) if fit.factorReload is not self.serviceFittingOptions["useGlobalForceReload"]: fit.factorReload = self.serviceFittingOptions["useGlobalForceReload"] - fit.clear() + fit.clear() fit.calculateModifiedAttributes(withBoosters=withBoosters, dirtyStorage=self.dirtyFitIDs) diff --git a/utils/timer.py b/utils/timer.py index 811dfe348..da355cba9 100644 --- a/utils/timer.py +++ b/utils/timer.py @@ -1,30 +1,36 @@ import time -class Timer(object): - """ - Generic timing class for simple profiling. +class Timer(): + def __init__(self, name='', logger=None): + self.name = name + self.start = time.time() + self.__last = self.start + self.logger = logger - Usage: + @property + def elapsed(self): + return (time.time() - self.start)*1000 - with Timer(verbose=True) as t: - # code to be timed - time.sleep(5) + @property + def last(self): + return (time.time() - self.__last)*1000 - Output: - elapsed time: 5000.000 ms - - Can also access time with t.secs - """ - def __init__(self, verbose=False): - self.verbose = verbose + def checkpoint(self, name=''): + text = 'Timer - {timer} - {checkpoint} - {last:.2f}ms ({elapsed:.2f}ms elapsed)'.format( + timer=self.name, + checkpoint=name, + last=self.last, + elapsed=self.elapsed + ).strip() + self.__last = time.time() + if self.logger: + self.logger.debug(text) + else: + print text def __enter__(self): - self.start = time.time() return self - def __exit__(self, *args): - self.end = time.time() - self.secs = self.end - self.start - self.msecs = self.secs * 1000 # millisecs - if self.verbose: - print 'elapsed time: %f ms' % self.msecs \ No newline at end of file + def __exit__(self, type, value, traceback): + self.checkpoint('finished') + pass From af9f64db5f841ef6f402fe72327412dc43067ece Mon Sep 17 00:00:00 2001 From: blitzmann Date: Thu, 9 Jul 2015 14:48:15 -0400 Subject: [PATCH 07/53] Move the chain into the runtime loop, otherwise projections won't work for some odd reason. --- eos/saveddata/fit.py | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/eos/saveddata/fit.py b/eos/saveddata/fit.py index 3edb73a30..391f046b8 100644 --- a/eos/saveddata/fit.py +++ b/eos/saveddata/fit.py @@ -465,19 +465,19 @@ class Fit(object): # Mark fit as calculated self.__calculated = True - c = chain( - (self.character, self.ship), - self.drones, - self.boosters, - self.appliedImplants, - self.modules - ) - - if not projected: - # if not a projected fit, add a couple of more things - c = chain(c, self.projectedDrones, self.projectedModules) - for runTime in ("early", "normal", "late"): + c = chain( + (self.character, self.ship), + self.drones, + self.boosters, + self.appliedImplants, + self.modules + ) + + if not projected: + # if not a projected fit, add a couple of more things + c = chain(c, self.projectedDrones, self.projectedModules) + # We calculate gang bonuses first so that projected fits get them if self.gangBoosts is not None: self.__calculateGangBoosts(runTime) From c17e03d8d01147635ff81b79b46e3e05a31f9984 Mon Sep 17 00:00:00 2001 From: blitzmann Date: Thu, 9 Jul 2015 17:53:41 -0400 Subject: [PATCH 08/53] Fixes critical design issue when it comes to projected fits. Disabled some of the more advanced functionality (projection amount and active) to cope to development. Crash still happens occasionally when adding projected fit for unknown reasons - not 100% reproducable yet --- eos/db/saveddata/fit.py | 39 +++++++++++++++++------------- eos/saveddata/fit.py | 32 ++++++++++++------------ gui/builtinViewColumns/baseName.py | 6 ++++- gui/builtinViewColumns/state.py | 10 ++++++-- service/fit.py | 16 ++++++------ 5 files changed, 61 insertions(+), 42 deletions(-) diff --git a/eos/db/saveddata/fit.py b/eos/db/saveddata/fit.py index 4c03bdd32..6b4e44fb4 100644 --- a/eos/db/saveddata/fit.py +++ b/eos/db/saveddata/fit.py @@ -21,6 +21,7 @@ from sqlalchemy import * from sqlalchemy.orm import * from sqlalchemy.sql import and_ from sqlalchemy.ext.associationproxy import association_proxy +from sqlalchemy.orm.collections import attribute_mapped_collection from eos.db import saveddata_meta from eos.db.saveddata.module import modules_table @@ -51,25 +52,27 @@ projectedFits_table = Table("projectedFits", saveddata_meta, ) class ProjectedFit(object): - def __init__(self, source_item, dest_item, amount=1, active=True): - print "init projected item", source_item, dest_item, active, amount - self.source_item = source_item - self.dest_item = dest_item + def __init__(self, source_fit, k, amount=1, active=True): + print "init projected: ", k, source_fit.name, active, amount + self.sourceID = k + self.source_item = source_fit + self.victim_item = None self.amount = amount self.active = active - self.dest_item.projectionInfo = self + #self.dest_item.setProjectionInfo(self.source_item.ID, self) @reconstructor def init(self): print "db init" - print "\t source:",self.source_item - print "\t dest:", self.dest_item - self.dest_item.projectionInfo = self + print "\t source:", self.source_fit + print "\t dest:", self.victim_fit + #self.dest_item.setProjectionInfo(self.source_item.ID, self) + #print self.dest_item.ship.item.name, ">", self.source_item.ship.item.name,self Fit._Fit__projectedFits = association_proxy( - "projected_items", - "dest_item", - creator=lambda dest_item: ProjectedFit(None, dest_item) + "victimOf", # look at the victimOf association... + "source_fit", # .. and return the source fits + creator=lambda k, victim_fit: ProjectedFit(victim_fit, k) ) mapper(Fit, fits_table, @@ -128,15 +131,17 @@ mapper(Fit, fits_table, backref="fits"), "_Fit__damagePattern": relation(DamagePattern), "_Fit__targetResists": relation(TargetResists), - "dest_items": relationship( + "projectedOnto": relationship( ProjectedFit, - primaryjoin=projectedFits_table.c.victimID == fits_table.c.ID, - backref='dest_item', + primaryjoin=projectedFits_table.c.sourceID == fits_table.c.ID, + backref='source_fit', + collection_class=attribute_mapped_collection('victimID'), cascade='all, delete, delete-orphan'), - "projected_items": relationship( + "victimOf": relationship( ProjectedFit, - primaryjoin=fits_table.c.ID == projectedFits_table.c.sourceID, - backref='source_item', + primaryjoin=fits_table.c.ID == projectedFits_table.c.victimID, + backref='victim_fit', + collection_class=attribute_mapped_collection('sourceID'), cascade='all, delete, delete-orphan'), } ) diff --git a/eos/saveddata/fit.py b/eos/saveddata/fit.py index 391f046b8..9c76dee23 100644 --- a/eos/saveddata/fit.py +++ b/eos/saveddata/fit.py @@ -119,7 +119,7 @@ class Fit(object): self.__capUsed = None self.__capRecharge = None self.__calculatedTargets = [] - self.__projectionInfo = None + self.__projectionMap = {} self.factorReload = False self.fleet = None self.boostsFits = set() @@ -208,15 +208,10 @@ class Fit(object): @property def projectedFits(self): - return self.__projectedFits + return self.__projectedFits.values() - @property - def projectionInfo(self): - return self.__projectionInfo - - @projectionInfo.setter - def projectionInfo(self, projectionInfo): - self.__projectionInfo = projectionInfo + def getProjectionInfo(self, fitID): + return self.projectedOnto.get(fitID, None) @property def projectedDrones(self): @@ -371,7 +366,11 @@ class Fit(object): # If we are in a root ship, add projected fits to clear list # Do not add projected fits if self is already projected - this can # cause infinite recursion in projection loop, eg A > B > C > A - if self.projectionInfo is None: + # @todo: since fits persist, we need to be sure that even if a fit has + # projection info (loaded as a projected fit), this still happens when + # we clear the fit if the fit is the root + #if self.projectionInfo is None: + if True: c = chain(c, self.projectedFits) for stuff in c: @@ -417,10 +416,13 @@ class Fit(object): timer = Timer('Fit: %d, %s'%(self.ID, self.name), logger) logger.debug("Starting fit calculation on: %d %s (%s)" % (self.ID, self.name, self.ship.item.name)) - + #print self.projectedFits if targetFit: - logger.debug("Applying projections to target: %d %s (%s)" % - (targetFit.ID, targetFit.name, targetFit.ship.item.name)) + logger.debug("Applying projections to target: %d %s (%s)", + targetFit.ID, targetFit.name, targetFit.ship.item.name) + projectionInfo = self.getProjectionInfo(targetFit.ID) + logger.debug("ProjectionInfo: amount=%s, active=%s, instance=%s", + projectionInfo.amount, projectionInfo.active, projectionInfo) refreshBoosts = False if withBoosters is True: @@ -489,7 +491,7 @@ class Fit(object): self.register(item) item.calculateModifiedAttributes(self, runTime, False) if projected is True: - for _ in xrange(self.projectionInfo.amount): + #for _ in xrange(projectionInfo.amount): targetFit.register(item) item.calculateModifiedAttributes(targetFit, runTime, True) @@ -498,7 +500,7 @@ class Fit(object): # Only apply projected fits if fit it not projected itself. if not projected: for fit in self.projectedFits: - if fit.projectionInfo.active: + #if fit.getProjectionInfo(self.ID).active: fit.calculateModifiedAttributes(self, withBoosters=withBoosters, dirtyStorage=dirtyStorage) timer.checkpoint('Done with fit calculation') diff --git a/gui/builtinViewColumns/baseName.py b/gui/builtinViewColumns/baseName.py index 0bd0e8c43..cf9222414 100644 --- a/gui/builtinViewColumns/baseName.py +++ b/gui/builtinViewColumns/baseName.py @@ -21,6 +21,8 @@ from gui import builtinViewColumns from gui.viewColumn import ViewColumn from gui import bitmapLoader +import gui.mainFrame + import wx from eos.types import Drone, Cargo, Fit, Module, Slot, Rack import service @@ -29,6 +31,7 @@ class BaseName(ViewColumn): name = "Base Name" def __init__(self, fittingView, params): ViewColumn.__init__(self, fittingView) + self.mainFrame = gui.mainFrame.MainFrame.getInstance() self.columnText = "Name" self.shipImage = fittingView.imageList.GetImageIndex("ship_small", "icons") self.mask = wx.LIST_MASK_TEXT @@ -39,7 +42,8 @@ class BaseName(ViewColumn): elif isinstance(stuff, Cargo): return "%dx %s" % (stuff.amount, stuff.item.name) elif isinstance(stuff, Fit): - return "%dx %s (%s)" % (stuff.projectionInfo.amount, stuff.name, stuff.ship.item.name) + fitID = self.mainFrame.getActiveFit() + return "%dx %s (%s)" % (stuff.getProjectionInfo(fitID).amount, stuff.name, stuff.ship.item.name) elif isinstance(stuff, Rack): if service.Fit.getInstance().serviceFittingOptions["rackLabels"]: if stuff.slot == Slot.MODE: diff --git a/gui/builtinViewColumns/state.py b/gui/builtinViewColumns/state.py index 0925d2f2d..8110a85ad 100644 --- a/gui/builtinViewColumns/state.py +++ b/gui/builtinViewColumns/state.py @@ -19,6 +19,8 @@ from gui.viewColumn import ViewColumn from gui import bitmapLoader +import gui.mainFrame + import wx from eos.types import Drone, Module, Rack, Fit from eos.types import State as State_ @@ -27,6 +29,7 @@ class State(ViewColumn): name = "State" def __init__(self, fittingView, params): ViewColumn.__init__(self, fittingView) + self.mainFrame = gui.mainFrame.MainFrame.getInstance() self.resizable = False self.size = 16 self.maxsize = self.size @@ -56,9 +59,12 @@ class State(ViewColumn): else: return self.fittingView.imageList.GetImageIndex("state_%s_small" % State_.getName(stuff.state).lower(), "icons") elif isinstance(stuff, Fit): - if stuff.projectionInfo is None: + fitID = self.mainFrame.getActiveFit() + projectionInfo = stuff.getProjectionInfo(fitID) + + if projectionInfo is None: return -1 - if stuff.projectionInfo.active: + if projectionInfo.active: return generic_active return generic_inactive else: diff --git a/service/fit.py b/service/fit.py index dddc4ebfb..9effe43a6 100644 --- a/service/fit.py +++ b/service/fit.py @@ -325,7 +325,8 @@ class Fit(object): if isinstance(thing, eos.types.Fit): if thing.ID == fitID: return - fit.projectedFits.append(thing) + + fit.__projectedFits[thing.ID] = thing elif thing.category.name == "Drone": drone = None for d in fit.projectedDrones.find(thing): @@ -374,10 +375,10 @@ class Fit(object): def changeAmount(self, fitID, projected_fit, amount): """Change amount of projected fits""" fit = eos.db.getFit(fitID) - amount = min(20, max(1, amount)) # 1 <= a <= 5 - - if projected_fit.projectionInfo is not None: - projected_fit.projectionInfo.amount = amount + amount = min(20, max(1, amount)) # 1 <= a <= 20 + projectionInfo = projected_fit.getProjectionInfo(fitID) + if projectionInfo: + projectionInfo.amount = amount eos.db.commit() self.recalc(fit) @@ -389,7 +390,8 @@ class Fit(object): elif isinstance(thing, eos.types.Module): fit.projectedModules.remove(thing) else: - fit.projectedFits.remove(thing) + del fit.__projectedFits[thing.ID] + #fit.projectedFits.remove(thing) eos.db.commit() self.recalc(fit) @@ -937,7 +939,7 @@ class Fit(object): self.recalc(fit) def recalc(self, fit, withBoosters=False): - logger.debug("="*10+"recalc"+"="*10) + logger.debug("="*10+"recalc"+"="*10) if fit.factorReload is not self.serviceFittingOptions["useGlobalForceReload"]: fit.factorReload = self.serviceFittingOptions["useGlobalForceReload"] fit.clear() From 68dddf2810cb1d8404ca09641f0ceb3c1cc8b95c Mon Sep 17 00:00:00 2001 From: blitzmann Date: Fri, 10 Jul 2015 11:58:15 -0400 Subject: [PATCH 09/53] Fix for init projected fit. Took a long time to figure out what was happening. --- eos/db/saveddata/fit.py | 11 ++++------- eos/saveddata/fit.py | 33 +++++++++++++++++---------------- service/fit.py | 6 +++++- 3 files changed, 26 insertions(+), 24 deletions(-) diff --git a/eos/db/saveddata/fit.py b/eos/db/saveddata/fit.py index 6b4e44fb4..b355ba4f1 100644 --- a/eos/db/saveddata/fit.py +++ b/eos/db/saveddata/fit.py @@ -53,26 +53,23 @@ projectedFits_table = Table("projectedFits", saveddata_meta, class ProjectedFit(object): def __init__(self, source_fit, k, amount=1, active=True): - print "init projected: ", k, source_fit.name, active, amount + #print "init projected: source fit: ", source_fit.name, source_fit, "key (fit ID)", key, "active:", active, "amount:",amount self.sourceID = k - self.source_item = source_fit - self.victim_item = None + self.source_fit = source_fit + #self.victim_item = None self.amount = amount self.active = active - #self.dest_item.setProjectionInfo(self.source_item.ID, self) @reconstructor def init(self): print "db init" print "\t source:", self.source_fit print "\t dest:", self.victim_fit - #self.dest_item.setProjectionInfo(self.source_item.ID, self) - #print self.dest_item.ship.item.name, ">", self.source_item.ship.item.name,self Fit._Fit__projectedFits = association_proxy( "victimOf", # look at the victimOf association... "source_fit", # .. and return the source fits - creator=lambda k, victim_fit: ProjectedFit(victim_fit, k) + creator=lambda k, source_fit: ProjectedFit(source_fit, k) ) mapper(Fit, fits_table, diff --git a/eos/saveddata/fit.py b/eos/saveddata/fit.py index 9c76dee23..e1f943d05 100644 --- a/eos/saveddata/fit.py +++ b/eos/saveddata/fit.py @@ -63,7 +63,7 @@ class Fit(object): self.__cargo = HandledDroneCargoList() self.__implants = HandledImplantBoosterList() self.__boosters = HandledImplantBoosterList() - self.__projectedFits = HandledProjectedFitList() + #self.__projectedFits = {} self.__projectedModules = HandledProjectedModList() self.__projectedDrones = HandledProjectedDroneList() self.__character = None @@ -119,7 +119,6 @@ class Fit(object): self.__capUsed = None self.__capRecharge = None self.__calculatedTargets = [] - self.__projectionMap = {} self.factorReload = False self.fleet = None self.boostsFits = set() @@ -208,9 +207,11 @@ class Fit(object): @property def projectedFits(self): + #print "get projected fits for :", self.name return self.__projectedFits.values() def getProjectionInfo(self, fitID): + print "get projection info for fitID: ", fitID return self.projectedOnto.get(fitID, None) @property @@ -416,13 +417,15 @@ class Fit(object): timer = Timer('Fit: %d, %s'%(self.ID, self.name), logger) logger.debug("Starting fit calculation on: %d %s (%s)" % (self.ID, self.name, self.ship.item.name)) + print self + #print self.__projectedFits #print self.projectedFits if targetFit: logger.debug("Applying projections to target: %d %s (%s)", targetFit.ID, targetFit.name, targetFit.ship.item.name) - projectionInfo = self.getProjectionInfo(targetFit.ID) - logger.debug("ProjectionInfo: amount=%s, active=%s, instance=%s", - projectionInfo.amount, projectionInfo.active, projectionInfo) + #projectionInfo = self.getProjectionInfo(targetFit.ID) + #logger.debug("ProjectionInfo: amount=%s, active=%s, instance=%s", + # projectionInfo.amount, projectionInfo.active, projectionInfo) refreshBoosts = False if withBoosters is True: @@ -447,23 +450,21 @@ class Fit(object): if targetFit is None: targetFit = self projected = False - # Else, we're checking all target projectee fits - elif targetFit not in self.__calculatedTargets: - logger.debug("Target fit has not been calculated, calculating first") - # target fit is required to be calculated before we do projections - # @todo: is there any situation where a projected ship would get here and the targte fit not be calculated already? See if we can get rid of this block of code - self.__calculatedTargets.append(targetFit) - targetFit.calculateModifiedAttributes(dirtyStorage=dirtyStorage) - projected = True - # Or do nothing if target fit is calculated else: - return + projected = True # If fit is calculated and we have nothing to do here, get out if self.__calculated and not projected: logger.debug("Fit has already been calculated and is not projected, returning") return - + print + print "******** projected fits ********" + print self.__projectedFits + print "******** projectedOnto ********" + print self.projectedOnto + print "******** victimOf ********" + print self.victimOf + print # Mark fit as calculated self.__calculated = True diff --git a/service/fit.py b/service/fit.py index 9effe43a6..7b4f6e406 100644 --- a/service/fit.py +++ b/service/fit.py @@ -327,6 +327,10 @@ class Fit(object): return fit.__projectedFits[thing.ID] = thing + + # this bit is required -- see GH issue + eos.db.saveddata_session.flush() + eos.db.saveddata_session.refresh(thing) elif thing.category.name == "Drone": drone = None for d in fit.projectedDrones.find(thing): @@ -939,7 +943,7 @@ class Fit(object): self.recalc(fit) def recalc(self, fit, withBoosters=False): - logger.debug("="*10+"recalc"+"="*10) + logger.debug("="*10+"recalc"+"="*10) if fit.factorReload is not self.serviceFittingOptions["useGlobalForceReload"]: fit.factorReload = self.serviceFittingOptions["useGlobalForceReload"] fit.clear() From b8f73a7c94f69da12be9ca0414a9578ba7e38028 Mon Sep 17 00:00:00 2001 From: blitzmann Date: Fri, 10 Jul 2015 12:58:03 -0400 Subject: [PATCH 10/53] bump dev --- config.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/config.py b/config.py index f1b8bcb3e..6f1047302 100644 --- a/config.py +++ b/config.py @@ -20,8 +20,8 @@ saveInRoot = False logLevel = logging.WARN # Version data -version = "1.13.2" -tag = "Stable" +version = "1.13.3" +tag = "git" expansionName = "Aegis" expansionVersion = "1.0" evemonMinVersion = "4081" From 496e9b56b5b69ad218882b6eab6578001962376d Mon Sep 17 00:00:00 2001 From: blitzmann Date: Fri, 10 Jul 2015 15:45:36 -0400 Subject: [PATCH 11/53] Handle use case of invalid fit's mucking things up --- eos/db/saveddata/fit.py | 16 +++++++------- eos/saveddata/fit.py | 46 +++++++++++++++-------------------------- service/fit.py | 14 +++++++++---- 3 files changed, 35 insertions(+), 41 deletions(-) diff --git a/eos/db/saveddata/fit.py b/eos/db/saveddata/fit.py index b355ba4f1..744a849a0 100644 --- a/eos/db/saveddata/fit.py +++ b/eos/db/saveddata/fit.py @@ -52,24 +52,24 @@ projectedFits_table = Table("projectedFits", saveddata_meta, ) class ProjectedFit(object): - def __init__(self, source_fit, k, amount=1, active=True): - #print "init projected: source fit: ", source_fit.name, source_fit, "key (fit ID)", key, "active:", active, "amount:",amount - self.sourceID = k + def __init__(self, sourceID, source_fit, amount=1, active=True): + self.sourceID = sourceID self.source_fit = source_fit - #self.victim_item = None self.amount = amount self.active = active @reconstructor def init(self): - print "db init" - print "\t source:", self.source_fit - print "\t dest:", self.victim_fit + if self.source_fit.isInvalid: + # Very rare for this to happen, but be prepared for it + eos.db.saveddata_session.delete(self.source_fit) + eos.db.saveddata_session.flush() + eos.db.saveddata_session.refresh(self.victim_fit) Fit._Fit__projectedFits = association_proxy( "victimOf", # look at the victimOf association... "source_fit", # .. and return the source fits - creator=lambda k, source_fit: ProjectedFit(source_fit, k) + creator=lambda sourceID, source_fit: ProjectedFit(sourceID, source_fit) ) mapper(Fit, fits_table, diff --git a/eos/saveddata/fit.py b/eos/saveddata/fit.py index e1f943d05..2ded319b7 100644 --- a/eos/saveddata/fit.py +++ b/eos/saveddata/fit.py @@ -207,8 +207,9 @@ class Fit(object): @property def projectedFits(self): - #print "get projected fits for :", self.name - return self.__projectedFits.values() + # only in extreme edge cases will the fit be invalid, but to be sure do + # not return them. By this time + return [fit for fit in self.__projectedFits.values() if not fit.isInvalid] def getProjectionInfo(self, fitID): print "get projection info for fitID: ", fitID @@ -331,7 +332,7 @@ class Fit(object): if map[key](val) == False: raise ValueError(str(val) + " is not a valid value for " + key) else: return val - def clear(self): + def clear(self, projected=False): self.__effectiveTank = None self.__weaponDPS = None self.__minerYield = None @@ -364,20 +365,18 @@ class Fit(object): (self.character, self.extraAttributes), ) - # If we are in a root ship, add projected fits to clear list - # Do not add projected fits if self is already projected - this can - # cause infinite recursion in projection loop, eg A > B > C > A - # @todo: since fits persist, we need to be sure that even if a fit has - # projection info (loaded as a projected fit), this still happens when - # we clear the fit if the fit is the root - #if self.projectionInfo is None: - if True: - c = chain(c, self.projectedFits) - for stuff in c: if stuff is not None and stuff != self: stuff.clear() + # If this is the active fit that we are clearing, not a projected fit, + # then this will run and clear the projected ships and flag the next + # iteration to skip this part to prevent recursion. + if not projected: + for stuff in self.projectedFits: + if stuff is not None and stuff != self: + stuff.clear(projected=True) + #Methods to register and get the thing currently affecting the fit, #so we can correctly map "Affected By" def register(self, currModifier): @@ -417,15 +416,11 @@ class Fit(object): timer = Timer('Fit: %d, %s'%(self.ID, self.name), logger) logger.debug("Starting fit calculation on: %d %s (%s)" % (self.ID, self.name, self.ship.item.name)) - print self - #print self.__projectedFits - #print self.projectedFits if targetFit: logger.debug("Applying projections to target: %d %s (%s)", targetFit.ID, targetFit.name, targetFit.ship.item.name) - #projectionInfo = self.getProjectionInfo(targetFit.ID) - #logger.debug("ProjectionInfo: amount=%s, active=%s, instance=%s", - # projectionInfo.amount, projectionInfo.active, projectionInfo) + projectionInfo = self.getProjectionInfo(targetFit.ID) + logger.debug("ProjectionInfo: %s", ', '.join("%s: %s" % item for item in vars(projectionInfo).items())) refreshBoosts = False if withBoosters is True: @@ -457,14 +452,7 @@ class Fit(object): if self.__calculated and not projected: logger.debug("Fit has already been calculated and is not projected, returning") return - print - print "******** projected fits ********" - print self.__projectedFits - print "******** projectedOnto ********" - print self.projectedOnto - print "******** victimOf ********" - print self.victimOf - print + # Mark fit as calculated self.__calculated = True @@ -492,7 +480,7 @@ class Fit(object): self.register(item) item.calculateModifiedAttributes(self, runTime, False) if projected is True: - #for _ in xrange(projectionInfo.amount): + for _ in xrange(projectionInfo.amount): targetFit.register(item) item.calculateModifiedAttributes(targetFit, runTime, True) @@ -501,7 +489,7 @@ class Fit(object): # Only apply projected fits if fit it not projected itself. if not projected: for fit in self.projectedFits: - #if fit.getProjectionInfo(self.ID).active: + if fit.getProjectionInfo(self.ID).active: fit.calculateModifiedAttributes(self, withBoosters=withBoosters, dirtyStorage=dirtyStorage) timer.checkpoint('Done with fit calculation') diff --git a/service/fit.py b/service/fit.py index 7b4f6e406..be7efa4c8 100644 --- a/service/fit.py +++ b/service/fit.py @@ -175,7 +175,7 @@ class Fit(object): fit = eos.db.getFit(fitID) sFleet = Fleet.getInstance() sFleet.removeAssociatedFleetData(fit) - self.removeProjectedData(fitID) + #self.removeProjectedData(fitID) eos.db.remove(fit) @@ -247,6 +247,7 @@ class Fit(object): fit.fleet = f if not projected: + print "Not projected, getting projected fits" for fitP in fit.projectedFits: self.getFit(fitP.ID, projected = True) self.recalc(fit, withBoosters=True) @@ -326,9 +327,12 @@ class Fit(object): if thing.ID == fitID: return + if thing in fit.projectedFits: + return + fit.__projectedFits[thing.ID] = thing - # this bit is required -- see GH issue + # this bit is required -- see GH issue # 83 eos.db.saveddata_session.flush() eos.db.saveddata_session.refresh(thing) elif thing.category.name == "Drone": @@ -369,9 +373,11 @@ class Fit(object): thing.state = self.__getProposedState(thing, click) if not thing.canHaveState(thing.state, fit): thing.state = State.OFFLINE - elif isinstance(thing, eos.types.Fit) and thing.projectionInfo is not None: + elif isinstance(thing, eos.types.Fit): print "toggle fit" - thing.projectionInfo.active = not thing.projectionInfo.active + projectionInfo = thing.getProjectionInfo(fitID) + if projectionInfo: + projectionInfo.active = not projectionInfo.active eos.db.commit() self.recalc(fit) From 4216904736885ddebf335d71cfc29c5bfaa68931 Mon Sep 17 00:00:00 2001 From: blitzmann Date: Fri, 10 Jul 2015 15:46:42 -0400 Subject: [PATCH 12/53] Remove function to remove projected fits correctly. This is now handled by proper DB relationships --- service/fit.py | 9 --------- 1 file changed, 9 deletions(-) diff --git a/service/fit.py b/service/fit.py index be7efa4c8..ebb7024a8 100644 --- a/service/fit.py +++ b/service/fit.py @@ -175,7 +175,6 @@ class Fit(object): fit = eos.db.getFit(fitID) sFleet = Fleet.getInstance() sFleet.removeAssociatedFleetData(fit) - #self.removeProjectedData(fitID) eos.db.remove(fit) @@ -193,14 +192,6 @@ class Fit(object): fit.clear() return fit - def removeProjectedData(self, fitID): - """Removes projection relation from ships that have fitID as projection. See GitHub issue #90""" - fit = eos.db.getFit(fitID) - fits = eos.db.getProjectedFits(fitID) - - for projectee in fits: - projectee.projectedFits.remove(fit) - def toggleFactorReload(self, fitID): if fitID is None: return None From 609ee13cd696010758a2328e2f52987cf25ffd0b Mon Sep 17 00:00:00 2001 From: blitzmann Date: Fri, 10 Jul 2015 15:58:45 -0400 Subject: [PATCH 13/53] Redirect stderr and stdout to logger when we are frozen. Need to test this. --- config.py | 34 ++++++++++++++++++++++------------ 1 file changed, 22 insertions(+), 12 deletions(-) diff --git a/config.py b/config.py index a33ec451a..fb0e93eff 100644 --- a/config.py +++ b/config.py @@ -32,6 +32,21 @@ staticPath = None saveDB = None gameDB = None +class StreamToLogger(object): + """ + Fake file-like stream object that redirects writes to a logger instance. + From: http://www.electricmonk.nl/log/2011/08/14/redirect-stdout-and-stderr-to-a-logger-in-python/ + """ + def __init__(self, logger, log_level=logging.INFO): + self.logger = logger + self.log_level = log_level + self.linebuf = '' + + def write(self, buf): + for line in buf.rstrip().splitlines(): + self.logger.log(self.log_level, line.rstrip()) + + def defPaths(): global pyfaPath global savePath @@ -66,19 +81,14 @@ def defPaths(): logging.info("Starting pyfa") - # Redirect stderr to file if we're requested to do so - stderrToFile = getattr(configforced, "stderrToFile", None) - if stderrToFile is True: - if not os.path.exists(savePath): - os.mkdir(savePath) - sys.stderr = open(os.path.join(savePath, "error_log.txt"), "w") + if hasattr(sys, 'frozen'): + stdout_logger = logging.getLogger('STDOUT') + sl = StreamToLogger(stdout_logger, logging.INFO) + sys.stdout = sl - # Same for stdout - stdoutToFile = getattr(configforced, "stdoutToFile", None) - if stdoutToFile is True: - if not os.path.exists(savePath): - os.mkdir(savePath) - sys.stdout = open(os.path.join(savePath, "output_log.txt"), "w") + stderr_logger = logging.getLogger('STDERR') + sl = StreamToLogger(stderr_logger, logging.ERROR) + sys.stderr = sl # Static EVE Data from the staticdata repository, should be in the staticdata # directory in our pyfa directory From 2256efacb0baafe2d681c24b3038f15fdca4a22e Mon Sep 17 00:00:00 2001 From: blitzmann Date: Fri, 10 Jul 2015 16:40:00 -0400 Subject: [PATCH 14/53] Do migration stuff for projected fits --- eos/db/migrations/upgrade10.py | 16 ++++++++++++++++ eos/db/saveddata/fit.py | 4 ++-- 2 files changed, 18 insertions(+), 2 deletions(-) create mode 100644 eos/db/migrations/upgrade10.py diff --git a/eos/db/migrations/upgrade10.py b/eos/db/migrations/upgrade10.py new file mode 100644 index 000000000..0bfb0f0ee --- /dev/null +++ b/eos/db/migrations/upgrade10.py @@ -0,0 +1,16 @@ +""" +Migration 10 + +- Adds active attribute to projected fits +""" + +import sqlalchemy + +def upgrade(saveddata_engine): + # Update projectedFits schema to include active attribute + try: + saveddata_engine.execute("SELECT active FROM projectedFits LIMIT 1") + except sqlalchemy.exc.DatabaseError: + saveddata_engine.execute("ALTER TABLE projectedFits ADD COLUMN active BOOLEAN") + saveddata_engine.execute("UPDATE projectedFits SET active = 1") + saveddata_engine.execute("UPDATE projectedFits SET amount = 1") diff --git a/eos/db/saveddata/fit.py b/eos/db/saveddata/fit.py index 744a849a0..24773a429 100644 --- a/eos/db/saveddata/fit.py +++ b/eos/db/saveddata/fit.py @@ -47,8 +47,8 @@ fits_table = Table("fits", saveddata_meta, projectedFits_table = Table("projectedFits", saveddata_meta, Column("sourceID", ForeignKey("fits.ID"), primary_key = True), Column("victimID", ForeignKey("fits.ID"), primary_key = True), - Column("amount", Integer), - Column("active", Boolean), + Column("amount", Integer, nullable = False, default = 1), + Column("active", Boolean, nullable = False, default = 1), ) class ProjectedFit(object): From 23b458534f5d867730ded5ea24a3289fd6b980d6 Mon Sep 17 00:00:00 2001 From: blitzmann Date: Fri, 10 Jul 2015 23:22:58 -0400 Subject: [PATCH 15/53] Remove unneeded collection class for projected fits --- eos/effectHandlerHelpers.py | 7 ------- 1 file changed, 7 deletions(-) diff --git a/eos/effectHandlerHelpers.py b/eos/effectHandlerHelpers.py index 40349f467..3bf576a4c 100644 --- a/eos/effectHandlerHelpers.py +++ b/eos/effectHandlerHelpers.py @@ -232,13 +232,6 @@ class HandledProjectedDroneList(HandledDroneCargoList): if proj.isInvalid or not proj.item.isType("projected"): self.remove(proj) -# @todo: remove this once we are sure we no longer need it -class HandledProjectedFitList(HandledList): - def append(self, proj): - print "apppending projected fit", proj - proj.projected = True - list.append(self, proj) - class HandledItem(object): def preAssignItemAttr(self, *args, **kwargs): self.itemModifiedAttributes.preAssign(*args, **kwargs) From 0060f58e3d940649a5758c4b4011eabb0f6fab51 Mon Sep 17 00:00:00 2001 From: blitzmann Date: Sat, 11 Jul 2015 01:31:18 -0400 Subject: [PATCH 16/53] Support evemon character imports. --- eos/saveddata/character.py | 5 +++-- service/character.py | 31 ++++++++++++++++++++++++++----- 2 files changed, 29 insertions(+), 7 deletions(-) diff --git a/eos/saveddata/character.py b/eos/saveddata/character.py index f0b4d9a56..3efb5b75e 100644 --- a/eos/saveddata/character.py +++ b/eos/saveddata/character.py @@ -105,10 +105,11 @@ class Character(object): for skill in self.__skills: self.__skillIdMap[skill.itemID] = skill - def apiUpdateCharSheet(self, sheet): + def apiUpdateCharSheet(self, skills): del self.__skills[:] self.__skillIdMap.clear() - for skillRow in sheet.skills: + for skillRow in skills: + self.addSkill(Skill(skillRow["typeID"], skillRow["level"])) @property diff --git a/service/character.py b/service/character.py index af4b43106..b6b3e4e1e 100644 --- a/service/character.py +++ b/service/character.py @@ -45,13 +45,34 @@ class CharacterImportThread(threading.Thread): sCharacter = Character.getInstance() for path in paths: try: + # we try to parse api XML data first with open(path, mode='r') as charFile: sheet = service.ParseXML(charFile) charID = sCharacter.new() sCharacter.rename(charID, sheet.name+" (imported)") - sCharacter.apiUpdateCharSheet(charID, sheet) + sCharacter.apiUpdateCharSheet(charID, sheet.skills) except: - continue + # if it's not api XML data, try this + # this is a horrible logic flow, but whatever + try: + charFile = open(path, mode='r').read() + doc = minidom.parseString(charFile) + if doc.documentElement.tagName != "SerializableCCPCharacter": + raise RuntimeError("Incorrect EVEMon XML sheet") + name = doc.getElementsByTagName("name")[0].firstChild.nodeValue + skill_els = doc.getElementsByTagName("skill") + skills = [] + for skill in skill_els: + skills.append({ + "typeID": int(skill.getAttribute("typeID")), + "level": int(skill.getAttribute("level")), + }) + charID = sCharacter.new() + sCharacter.rename(charID, name+" (EVEMon)") + sCharacter.apiUpdateCharSheet(charID, skills) + except: + continue + wx.CallAfter(self.callback) class SkillBackupThread(threading.Thread): @@ -269,12 +290,12 @@ class Character(object): sheet = auth.character(charID).CharacterSheet() - dbChar.apiUpdateCharSheet(sheet) + dbChar.apiUpdateCharSheet(sheet.skills) eos.db.commit() - def apiUpdateCharSheet(self, charID, sheet): + def apiUpdateCharSheet(self, charID, skills): char = eos.db.getCharacter(charID) - char.apiUpdateCharSheet(sheet) + char.apiUpdateCharSheet(skills) eos.db.commit() def changeLevel(self, charID, skillID, level): From 86ee5292d887e21164203b550b5783f9575b3b0c Mon Sep 17 00:00:00 2001 From: blitzmann Date: Sat, 11 Jul 2015 11:19:10 -0400 Subject: [PATCH 17/53] Fix fit copying and deleting fits not being reflected in other fits. --- eos/saveddata/fit.py | 8 +++++--- service/fit.py | 5 +++++ 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/eos/saveddata/fit.py b/eos/saveddata/fit.py index 3048b1702..a58946009 100644 --- a/eos/saveddata/fit.py +++ b/eos/saveddata/fit.py @@ -210,11 +210,10 @@ class Fit(object): @property def projectedFits(self): # only in extreme edge cases will the fit be invalid, but to be sure do - # not return them. By this time + # not return them. return [fit for fit in self.__projectedFits.values() if not fit.isInvalid] def getProjectionInfo(self, fitID): - print "get projection info for fitID: ", fitID return self.projectedOnto.get(fitID, None) @property @@ -967,6 +966,9 @@ class Fit(object): c.append(deepcopy(i, memo)) for fit in self.projectedFits: - copy.projectedFits.append(fit) + copy.__projectedFits[fit.ID] = fit + # this bit is required -- see GH issue # 83 + eos.db.saveddata_session.flush() + eos.db.saveddata_session.refresh(fit) return copy diff --git a/service/fit.py b/service/fit.py index ebb7024a8..40cbe8eb0 100644 --- a/service/fit.py +++ b/service/fit.py @@ -178,6 +178,11 @@ class Fit(object): eos.db.remove(fit) + # refresh any fits this fit is projected onto. Otherwise, if we have + # already loaded those fits, they will not reflect the changes + for projection in fit.projectedOnto.values(): + eos.db.saveddata_session.refresh(projection.victim_fit) + def copyFit(self, fitID): fit = eos.db.getFit(fitID) newFit = copy.deepcopy(fit) From 63fce4be1785f3bef43391f3a0bdbb1b4e0721de Mon Sep 17 00:00:00 2001 From: blitzmann Date: Sat, 11 Jul 2015 16:27:02 -0400 Subject: [PATCH 18/53] Handle self projections by creating a copy of the fit. Due to the way effects are calculated, we would have double effects implemented if not for the copy --- eos/saveddata/fit.py | 16 +++++++++++++++- service/fit.py | 3 --- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/eos/saveddata/fit.py b/eos/saveddata/fit.py index a58946009..b7f7a4f2f 100644 --- a/eos/saveddata/fit.py +++ b/eos/saveddata/fit.py @@ -29,6 +29,7 @@ from eos.saveddata.module import State from eos.saveddata.mode import Mode import eos.db import time +import copy from utils.timer import Timer import logging @@ -414,14 +415,23 @@ class Fit(object): pass def calculateModifiedAttributes(self, targetFit=None, withBoosters=False, dirtyStorage=None): - timer = Timer('Fit: %d, %s'%(self.ID, self.name), logger) + timer = Timer('Fit: {}, {}'.format(self.ID, self.name), logger) logger.debug("Starting fit calculation on: %d %s (%s)" % (self.ID, self.name, self.ship.item.name)) + shadow = False if targetFit: logger.debug("Applying projections to target: %d %s (%s)", targetFit.ID, targetFit.name, targetFit.ship.item.name) projectionInfo = self.getProjectionInfo(targetFit.ID) logger.debug("ProjectionInfo: %s", ', '.join("%s: %s" % item for item in vars(projectionInfo).items())) + if self == targetFit: + shadow = True + self = copy.deepcopy(self) + logger.debug("Handling self projection - making shadow copy of fit. %s => %s", projectionInfo.source_fit, self) + # we rollback because when we copy a fit, flush() is called to + # properly handle projection updates. However, we do not want to + # save this fit to the database, so we can immediately rollback + eos.db.saveddata_session.rollback() refreshBoosts = False if withBoosters is True: @@ -495,6 +505,10 @@ class Fit(object): timer.checkpoint('Done with fit calculation') + if shadow: + logger.debug("Delete shadow fit object") + del self + def fill(self): """ Fill this fit's module slots with enough dummy slots so that all slots are used. diff --git a/service/fit.py b/service/fit.py index 40cbe8eb0..ac641a2bd 100644 --- a/service/fit.py +++ b/service/fit.py @@ -320,9 +320,6 @@ class Fit(object): eager=("attributes", "group.category")) if isinstance(thing, eos.types.Fit): - if thing.ID == fitID: - return - if thing in fit.projectedFits: return From 6f944fc7db4b3e9d0807535d4569fdb39f7c2e96 Mon Sep 17 00:00:00 2001 From: DarkPhoenix Date: Sun, 12 Jul 2015 02:12:59 +0300 Subject: [PATCH 19/53] Stacking penalize missile flight time rigs --- ...ndelayownercharmodulesrequiringmissilelauncheroperation.py | 4 +++- eos/effects/missileskillmissileprojectilevelocitybonus.py | 3 ++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/eos/effects/missilebombardmentmaxflighttimebonuspostpercentexplosiondelayownercharmodulesrequiringmissilelauncheroperation.py b/eos/effects/missilebombardmentmaxflighttimebonuspostpercentexplosiondelayownercharmodulesrequiringmissilelauncheroperation.py index fa5dd3eb0..2576aa361 100644 --- a/eos/effects/missilebombardmentmaxflighttimebonuspostpercentexplosiondelayownercharmodulesrequiringmissilelauncheroperation.py +++ b/eos/effects/missilebombardmentmaxflighttimebonuspostpercentexplosiondelayownercharmodulesrequiringmissilelauncheroperation.py @@ -7,5 +7,7 @@ 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"), - "explosionDelay", container.getModifiedItemAttr("maxFlightTimeBonus") * level) + "explosionDelay", container.getModifiedItemAttr("maxFlightTimeBonus") * level, + stackingPenalties=penalized) diff --git a/eos/effects/missileskillmissileprojectilevelocitybonus.py b/eos/effects/missileskillmissileprojectilevelocitybonus.py index e67441c80..2168de284 100644 --- a/eos/effects/missileskillmissileprojectilevelocitybonus.py +++ b/eos/effects/missileskillmissileprojectilevelocitybonus.py @@ -7,6 +7,7 @@ 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 = "skill" not in context and "implant" not in context) + stackingPenalties=penalized) From c571fdc5e6429e34251ebb759ee1df37276d359e Mon Sep 17 00:00:00 2001 From: blitzmann Date: Mon, 13 Jul 2015 19:29:23 -0400 Subject: [PATCH 20/53] Fit fit alterations with self projections --- eos/saveddata/fit.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/eos/saveddata/fit.py b/eos/saveddata/fit.py index b7f7a4f2f..e22360de6 100644 --- a/eos/saveddata/fit.py +++ b/eos/saveddata/fit.py @@ -428,10 +428,10 @@ class Fit(object): shadow = True self = copy.deepcopy(self) logger.debug("Handling self projection - making shadow copy of fit. %s => %s", projectionInfo.source_fit, self) - # we rollback because when we copy a fit, flush() is called to - # properly handle projection updates. However, we do not want to - # save this fit to the database, so we can immediately rollback - eos.db.saveddata_session.rollback() + # we delete the fit because when we copy a fit, flush() is + # called to properly handle projection updates. However, we do + # not want to save this fit to the database, so simply remove it + eos.db.saveddata_session.delete(self) refreshBoosts = False if withBoosters is True: From f591ecba103029fa3a9ca1b612caf427f5a3ad86 Mon Sep 17 00:00:00 2001 From: blitzmann Date: Tue, 14 Jul 2015 16:15:52 -0400 Subject: [PATCH 21/53] Fix use case where gang boosts were not being applied when projections were added/removed. --- service/fit.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/service/fit.py b/service/fit.py index ac641a2bd..2ac93e4ee 100644 --- a/service/fit.py +++ b/service/fit.py @@ -941,7 +941,7 @@ class Fit(object): eos.db.commit() self.recalc(fit) - def recalc(self, fit, withBoosters=False): + def recalc(self, fit, withBoosters=True): logger.debug("="*10+"recalc"+"="*10) if fit.factorReload is not self.serviceFittingOptions["useGlobalForceReload"]: fit.factorReload = self.serviceFittingOptions["useGlobalForceReload"] From 9a1b0f07c0c5c2dfa13811a4b6bc523c57d604fb Mon Sep 17 00:00:00 2001 From: blitzmann Date: Tue, 14 Jul 2015 16:32:10 -0400 Subject: [PATCH 22/53] Added documentation on why projections don't respect the __calculated flag which gang boosts do --- eos/saveddata/fit.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/eos/saveddata/fit.py b/eos/saveddata/fit.py index e22360de6..decf8e51d 100644 --- a/eos/saveddata/fit.py +++ b/eos/saveddata/fit.py @@ -460,6 +460,18 @@ class Fit(object): projected = True # If fit is calculated and we have nothing to do here, get out + + # A note on why projected fits don't get to return here. If we return + # here, the projection afflictions will not be run as they are + # intertwined into the regular fit calculations. So, even if the fit has + # been calculated, we need to recalculate it again just to apply the + # projections. This is in contract to gang boosts, which are only + # calculated once, and their items are then looped and accessed with + # self.gangBoosts.iteritems() + # We might be able to exit early in the fit calculations if we separate + # projections from the normal fit calculations. But we must ensure that + # projection have modifying stuff applied, such as gang boosts and other + # local modules that may help if self.__calculated and not projected: logger.debug("Fit has already been calculated and is not projected, returning") return From 3bed268d81fe5a950f4dd97ab052e91c5d0a27b9 Mon Sep 17 00:00:00 2001 From: blitzmann Date: Tue, 14 Jul 2015 19:13:56 -0400 Subject: [PATCH 23/53] Fix use case for downgrading and adding a row with NULL --- eos/db/saveddata/fit.py | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/eos/db/saveddata/fit.py b/eos/db/saveddata/fit.py index 24773a429..08cbef344 100644 --- a/eos/db/saveddata/fit.py +++ b/eos/db/saveddata/fit.py @@ -55,8 +55,8 @@ class ProjectedFit(object): def __init__(self, sourceID, source_fit, amount=1, active=True): self.sourceID = sourceID self.source_fit = source_fit - self.amount = amount self.active = active + self.__amount = amount @reconstructor def init(self): @@ -66,6 +66,16 @@ class ProjectedFit(object): eos.db.saveddata_session.flush() eos.db.saveddata_session.refresh(self.victim_fit) + # We have a series of setters and getters here just in case someone + # downgrades and screws up the table with NULL values + @property + def amount(self): + return self.__amount or 1 + + @amount.setter + def amount(self, amount): + self.__amount = amount + Fit._Fit__projectedFits = association_proxy( "victimOf", # look at the victimOf association... "source_fit", # .. and return the source fits @@ -143,4 +153,8 @@ mapper(Fit, fits_table, } ) -mapper(ProjectedFit, projectedFits_table) +mapper(ProjectedFit, projectedFits_table, + properties = { + "_ProjectedFit__amount": projectedFits_table.c.amount, + } +) From 3ad5aaac89214dc5078188c0c95e5d423c3bf332 Mon Sep 17 00:00:00 2001 From: blitzmann Date: Wed, 15 Jul 2015 16:52:09 -0400 Subject: [PATCH 24/53] Fix #331 - gang boosts not applied to self projection --- eos/db/saveddata/fit.py | 5 +++++ eos/saveddata/fit.py | 24 ++++++++++++++++++------ 2 files changed, 23 insertions(+), 6 deletions(-) diff --git a/eos/db/saveddata/fit.py b/eos/db/saveddata/fit.py index 08cbef344..a40d8c7fb 100644 --- a/eos/db/saveddata/fit.py +++ b/eos/db/saveddata/fit.py @@ -76,6 +76,11 @@ class ProjectedFit(object): def amount(self, amount): self.__amount = amount + def __repr__(self): + return "ProjectedFit(sourceID={}, victimID={}, amount={}, active={}) at {}".format( + self.sourceID, self.victimID, self.amount, self.active, hex(id(self)) + ) + Fit._Fit__projectedFits = association_proxy( "victimOf", # look at the victimOf association... "source_fit", # .. and return the source fits diff --git a/eos/saveddata/fit.py b/eos/saveddata/fit.py index decf8e51d..b8a530752 100644 --- a/eos/saveddata/fit.py +++ b/eos/saveddata/fit.py @@ -392,6 +392,7 @@ class Fit(object): return self.__modifier def __calculateGangBoosts(self, runTime): + logger.debug("Applying gang boosts in `%s` runtime for %s", runTime, self) for name, info in self.gangBoosts.iteritems(): # Unpack all data required to run effect properly effect, thing = info[1] @@ -416,18 +417,19 @@ class Fit(object): def calculateModifiedAttributes(self, targetFit=None, withBoosters=False, dirtyStorage=None): timer = Timer('Fit: {}, {}'.format(self.ID, self.name), logger) - logger.debug("Starting fit calculation on: %d %s (%s)" % - (self.ID, self.name, self.ship.item.name)) + logger.debug("Starting fit calculation on: %s", repr(self)) + shadow = False if targetFit: - logger.debug("Applying projections to target: %d %s (%s)", - targetFit.ID, targetFit.name, targetFit.ship.item.name) + logger.debug("Applying projections to target: %s", repr(targetFit)) projectionInfo = self.getProjectionInfo(targetFit.ID) - logger.debug("ProjectionInfo: %s", ', '.join("%s: %s" % item for item in vars(projectionInfo).items())) + logger.debug("ProjectionInfo: %s", projectionInfo) if self == targetFit: + copied = self # original fit shadow = True self = copy.deepcopy(self) - logger.debug("Handling self projection - making shadow copy of fit. %s => %s", projectionInfo.source_fit, self) + self.fleet = copied.fleet + logger.debug("Handling self projection - making shadow copy of fit. %s => %s", repr(copied), repr(self)) # we delete the fit because when we copy a fit, flush() is # called to properly handle projection updates. However, we do # not want to save this fit to the database, so simply remove it @@ -998,3 +1000,13 @@ class Fit(object): eos.db.saveddata_session.refresh(fit) return copy + + def __repr__(self): + return "Fit(ID={}, ship={}, name={}) at {}".format( + self.ID, self.ship.item.name, self.name, hex(id(self)) + ) + + def __str__(self): + return "{} ({})".format( + self.name, self.ship.item.name + ) \ No newline at end of file From d6199a58c2bf9982a839746f5aee82485a8e7728 Mon Sep 17 00:00:00 2001 From: blitzmann Date: Thu, 16 Jul 2015 23:59:37 -0400 Subject: [PATCH 25/53] Separate projected fits from list of affectors. Also, show when affected module is projected. Still need to clean up affector tree stuff --- eos/modifiedAttributeDict.py | 9 ++++--- eos/saveddata/character.py | 5 ++++ eos/saveddata/fit.py | 8 ++++-- eos/saveddata/module.py | 8 ++++++ gui/itemStats.py | 47 ++++++++++++++++++++++++------------ 5 files changed, 57 insertions(+), 20 deletions(-) diff --git a/eos/modifiedAttributeDict.py b/eos/modifiedAttributeDict.py index 79d871ce5..09497be2a 100644 --- a/eos/modifiedAttributeDict.py +++ b/eos/modifiedAttributeDict.py @@ -217,13 +217,16 @@ class ModifiedAttributeDict(collections.MutableMapping): if attributeName not in self.__affectedBy: self.__affectedBy[attributeName] = {} affs = self.__affectedBy[attributeName] + origin = self.fit.getOrigin() + fit = origin if origin and origin != self.fit else self.fit # If there's no set for current fit in dictionary, create it - if self.fit not in affs: - affs[self.fit] = [] + if fit not in affs: + affs[fit] = [] # Reassign alias to list - affs = affs[self.fit] + affs = affs[fit] # Get modifier which helps to compose 'Affected by' map modifier = self.fit.getModifier() + # Add current affliction to list affs.append((modifier, operation, bonus, used)) diff --git a/eos/saveddata/character.py b/eos/saveddata/character.py index f0b4d9a56..c3e476526 100644 --- a/eos/saveddata/character.py +++ b/eos/saveddata/character.py @@ -285,5 +285,10 @@ class Skill(HandledItem): copy = Skill(self.item, self.level, self.__ro) return copy + def __repr__(self): + return "Skill(ID={}, name={}) at {}".format( + self.item.ID, self.item.name, hex(id(self)) + ) + class ReadOnlyException(Exception): pass diff --git a/eos/saveddata/fit.py b/eos/saveddata/fit.py index b8a530752..6e1515c44 100644 --- a/eos/saveddata/fit.py +++ b/eos/saveddata/fit.py @@ -381,8 +381,9 @@ class Fit(object): #Methods to register and get the thing currently affecting the fit, #so we can correctly map "Affected By" - def register(self, currModifier): + def register(self, currModifier, origin=None): self.__modifier = currModifier + self.__origin = origin if hasattr(currModifier, "itemModifiedAttributes"): currModifier.itemModifiedAttributes.fit = self if hasattr(currModifier, "chargeModifiedAttributes"): @@ -391,6 +392,9 @@ class Fit(object): def getModifier(self): return self.__modifier + def getOrigin(self): + return self.__origin + def __calculateGangBoosts(self, runTime): logger.debug("Applying gang boosts in `%s` runtime for %s", runTime, self) for name, info in self.gangBoosts.iteritems(): @@ -506,7 +510,7 @@ class Fit(object): item.calculateModifiedAttributes(self, runTime, False) if projected is True: for _ in xrange(projectionInfo.amount): - targetFit.register(item) + targetFit.register(item, origin=self) item.calculateModifiedAttributes(targetFit, runTime, True) timer.checkpoint('Done with runtime: %s'%runTime) diff --git a/eos/saveddata/module.py b/eos/saveddata/module.py index a4fdbec07..32a28c28e 100644 --- a/eos/saveddata/module.py +++ b/eos/saveddata/module.py @@ -639,6 +639,14 @@ class Module(HandledItem, HandledCharge, ItemAttrShortcut, ChargeAttrShortcut): copy.state = self.state return copy + def __repr__(self): + if self.item: + return "Module(ID={}, name={}) at {}".format( + self.item.ID, self.item.name, hex(id(self)) + ) + else: + return "EmptyModule() at {}".format(hex(id(self))) + class Rack(Module): ''' This is simply the Module class named something else to differentiate diff --git a/gui/itemStats.py b/gui/itemStats.py index a26406af5..b12eddf4e 100644 --- a/gui/itemStats.py +++ b/gui/itemStats.py @@ -24,7 +24,7 @@ import bitmapLoader import sys import wx.lib.mixins.listctrl as listmix import wx.html -from eos.types import Ship, Module, Skill, Booster, Implant, Drone, Mode +from eos.types import Fit, Ship, Module, Skill, Booster, Implant, Drone, Mode from gui.utils.numberFormatter import formatAmount import service import config @@ -549,9 +549,9 @@ class ItemEffects (wx.Panel): class ItemAffectedBy (wx.Panel): - ORDER = [Ship, Mode, Module, Drone, Implant, Booster, Skill] + ORDER = [Fit, Ship, Mode, Module, Drone, Implant, Booster, Skill] def __init__(self, parent, stuff, item): - wx.Panel.__init__ (self, parent) + wx.Panel.__init__(self, parent) self.stuff = stuff self.item = item @@ -640,26 +640,37 @@ class ItemAffectedBy (wx.Panel): def PopulateTree(self): root = self.affectedBy.AddRoot("WINPWNZ0R") self.affectedBy.SetPyData(root, None) - + activeFit = gui.mainFrame.MainFrame.getInstance().getActiveFit() + print activeFit self.imageList = wx.ImageList(16, 16) self.affectedBy.SetImageList(self.imageList) cont = self.stuff.itemModifiedAttributes if self.item == self.stuff.item else self.stuff.chargeModifiedAttributes things = {} + holding = {} for attrName in cont.iterAfflictions(): # if value is 0 or there has been no change from original to modified, return if cont[attrName] == (cont.getOriginal(attrName) or 0): continue + for fit, afflictors in cont.getAfflictions(attrName).iteritems(): for afflictor, modifier, amount, used in afflictors: + container = things + #print "\t", afflictor, modifier, amount, used, + if not used or afflictor.item is None: continue - if afflictor.item.name not in things: - things[afflictor.item.name] = [type(afflictor), set(), []] + if fit.ID != activeFit: + if fit not in holding: + holding[fit] = {} + container = holding[fit] - info = things[afflictor.item.name] + if afflictor.item.name not in container: + container[afflictor.item.name] = [type(afflictor), set(), [], getattr(afflictor, "projected", False)] + + info = container[afflictor.item.name] info[1].add(afflictor) # If info[1] > 1, there are two separate modules working. # Check to make sure we only include the modifier once @@ -668,15 +679,20 @@ class ItemAffectedBy (wx.Panel): continue info[2].append((attrName, modifier, amount)) + for fit, items in holding.iteritems(): + child = self.affectedBy.AppendItem(root, fit.name, self.imageList.Add(bitmapLoader.getBitmap("ship_small", "icons"))) + self.test(child, holding[fit]) + self.test(root, things) + self.ExpandCollapseTree() + + def test(self, parent, things): order = things.keys() order.sort(key=lambda x: (self.ORDER.index(things[x][0]), x)) - for itemName in order: info = things[itemName] - afflictorType, afflictors, attrData = info + afflictorType, afflictors, attrData, projected = info counter = len(afflictors) - baseAfflictor = afflictors.pop() if afflictorType == Ship: itemIcon = self.imageList.Add(bitmapLoader.getBitmap("ship_small", "icons")) @@ -686,7 +702,12 @@ class ItemAffectedBy (wx.Panel): else: itemIcon = -1 - child = self.affectedBy.AppendItem(root, "%s" % itemName if counter == 1 else "%s x %d" % (itemName,counter), itemIcon) + displayStr = "%s" % itemName if counter == 1 else "%s x %d" % (itemName,counter) + + if projected: + displayStr += " (projected)" + + child = self.affectedBy.AppendItem(parent, displayStr, itemIcon) if counter > 0: attributes = [] @@ -716,7 +737,6 @@ class ItemAffectedBy (wx.Panel): attributes.append((attrName, (displayName if displayName != "" else attrName), attrModifier, attrAmount, penalized, attrIcon)) attrSorted = sorted(attributes, key = lambda attribName: attribName[0]) - for attr in attrSorted: attrName, displayName, attrModifier, attrAmount, penalized, attrIcon = attr if self.toggleView == 1: @@ -725,6 +745,3 @@ class ItemAffectedBy (wx.Panel): else: treeitem = self.affectedBy.AppendItem(child, "%s %s %.2f %s" % (attrName, attrModifier, attrAmount, penalized), attrIcon) self.affectedBy.SetPyData(treeitem,"%s %s %.2f %s" % ((displayName if displayName != "" else attrName), attrModifier, attrAmount, penalized)) - - self.ExpandCollapseTree() - From cd7579a4bf47fc2318ed0c7ef42c525cfac03a62 Mon Sep 17 00:00:00 2001 From: blitzmann Date: Fri, 17 Jul 2015 00:01:31 -0400 Subject: [PATCH 26/53] Fix #332 - offline rigs calculated in calibration stats --- eos/saveddata/fit.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eos/saveddata/fit.py b/eos/saveddata/fit.py index 5a277070c..35c332b36 100644 --- a/eos/saveddata/fit.py +++ b/eos/saveddata/fit.py @@ -549,7 +549,7 @@ class Fit(object): @property def calibrationUsed(self): - return self.getItemAttrSum(self.modules, 'upgradeCost') + return self.getItemAttrOnlineSum(self.modules, 'upgradeCost') @property def pgUsed(self): From 71b258a8f545f055dcd0e11479c1fe2937c66767 Mon Sep 17 00:00:00 2001 From: blitzmann Date: Fri, 17 Jul 2015 14:59:19 -0400 Subject: [PATCH 27/53] Merge fit attributes with ship --- eos/saveddata/fit.py | 11 +---------- eos/saveddata/ship.py | 14 +++++++++++++- 2 files changed, 14 insertions(+), 11 deletions(-) diff --git a/eos/saveddata/fit.py b/eos/saveddata/fit.py index 6e1515c44..4f9f3e867 100644 --- a/eos/saveddata/fit.py +++ b/eos/saveddata/fit.py @@ -43,14 +43,6 @@ except ImportError: class Fit(object): """Represents a fitting, with modules, ship, implants, etc.""" - EXTRA_ATTRIBUTES = {"armorRepair": 0, - "hullRepair": 0, - "shieldRepair": 0, - "maxActiveDrones": 0, - "maxTargetsLockedFromSkills": 2, - "droneControlRange": 20000, - "cloaked": False, - "siege": False} PEAK_RECHARGE = 0.25 @@ -127,8 +119,7 @@ class Fit(object): self.boostsFits = set() self.gangBoosts = None self.ecmProjectedStr = 1 - self.extraAttributes = ModifiedAttributeDict(self) - self.extraAttributes.original = self.EXTRA_ATTRIBUTES + self.extraAttributes = self.ship.itemModifiedAttributes @property def targetResists(self): diff --git a/eos/saveddata/ship.py b/eos/saveddata/ship.py index 86123bfc1..901aa2607 100644 --- a/eos/saveddata/ship.py +++ b/eos/saveddata/ship.py @@ -26,6 +26,17 @@ import logging logger = logging.getLogger(__name__) class Ship(ItemAttrShortcut, HandledItem): + EXTRA_ATTRIBUTES = { + "armorRepair": 0, + "hullRepair": 0, + "shieldRepair": 0, + "maxActiveDrones": 0, + "maxTargetsLockedFromSkills": 2, + "droneControlRange": 20000, + "cloaked": False, + "siege": False + } + def __init__(self, item): if item.category.name != "Ship": @@ -34,7 +45,8 @@ class Ship(ItemAttrShortcut, HandledItem): self.__item = item self.__modeItems = self.__getModeItems() self.__itemModifiedAttributes = ModifiedAttributeDict() - self.__itemModifiedAttributes.original = self.item.attributes + self.__itemModifiedAttributes.original = dict(self.item.attributes) + self.__itemModifiedAttributes.original.update(self.EXTRA_ATTRIBUTES) self.commandBonus = 0 From 40aeb1ed4aca808468ed7ebea33cbce750f7678f Mon Sep 17 00:00:00 2001 From: blitzmann Date: Fri, 17 Jul 2015 16:33:07 -0400 Subject: [PATCH 28/53] Move active fir to init, fixes bug when refreshing with another active fit --- gui/itemStats.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/gui/itemStats.py b/gui/itemStats.py index b12eddf4e..0fd2b4e72 100644 --- a/gui/itemStats.py +++ b/gui/itemStats.py @@ -555,6 +555,8 @@ class ItemAffectedBy (wx.Panel): self.stuff = stuff self.item = item + self.activeFit = gui.mainFrame.MainFrame.getInstance().getActiveFit() + self.toggleView = 1 self.expand = -1 @@ -640,8 +642,7 @@ class ItemAffectedBy (wx.Panel): def PopulateTree(self): root = self.affectedBy.AddRoot("WINPWNZ0R") self.affectedBy.SetPyData(root, None) - activeFit = gui.mainFrame.MainFrame.getInstance().getActiveFit() - print activeFit + self.imageList = wx.ImageList(16, 16) self.affectedBy.SetImageList(self.imageList) @@ -662,7 +663,7 @@ class ItemAffectedBy (wx.Panel): if not used or afflictor.item is None: continue - if fit.ID != activeFit: + if fit.ID != self.activeFit: if fit not in holding: holding[fit] = {} container = holding[fit] From d18482072831592f4b92674d920bfe20c8470247 Mon Sep 17 00:00:00 2001 From: blitzmann Date: Fri, 17 Jul 2015 18:28:31 -0400 Subject: [PATCH 29/53] Fix toggle attribute names. Previous way assumed no other trees apart from first child and siblings. Not true now with projected fit trees. Instead of attempting to walk the tree, we simply store the items in a list that we later iterate over. Much easier --- gui/itemStats.py | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/gui/itemStats.py b/gui/itemStats.py index 0fd2b4e72..02a5e626b 100644 --- a/gui/itemStats.py +++ b/gui/itemStats.py @@ -560,6 +560,8 @@ class ItemAffectedBy (wx.Panel): self.toggleView = 1 self.expand = -1 + self.treeItems = [] + mainSizer = wx.BoxSizer(wx.VERTICAL) self.affectedBy = wx.TreeCtrl(self, style = wx.TR_DEFAULT_STYLE | wx.TR_HIDE_ROOT | wx.NO_BORDER) @@ -609,18 +611,11 @@ class ItemAffectedBy (wx.Panel): def ToggleViewTree(self): self.Freeze() - root = self.affectedBy.GetRootItem() - child,cookie = self.affectedBy.GetFirstChild(root) - while child.IsOk(): - item,childcookie = self.affectedBy.GetFirstChild(child) - while item.IsOk(): - change = self.affectedBy.GetPyData(item) - display = self.affectedBy.GetItemText(item) - self.affectedBy.SetItemText(item,change) - self.affectedBy.SetPyData(item,display) - item,childcookie = self.affectedBy.GetNextChild(child,childcookie) - - child,cookie = self.affectedBy.GetNextChild(root,cookie) + for item in self.treeItems: + change = self.affectedBy.GetPyData(item) + display = self.affectedBy.GetItemText(item) + self.affectedBy.SetItemText(item,change) + self.affectedBy.SetPyData(item,display) self.Thaw() @@ -746,3 +741,4 @@ class ItemAffectedBy (wx.Panel): else: treeitem = self.affectedBy.AppendItem(child, "%s %s %.2f %s" % (attrName, attrModifier, attrAmount, penalized), attrIcon) self.affectedBy.SetPyData(treeitem,"%s %s %.2f %s" % ((displayName if displayName != "" else attrName), attrModifier, attrAmount, penalized)) + self.treeItems.append(treeitem) From 2f8c201ab37556f54a39534891fe72ef15d352da Mon Sep 17 00:00:00 2001 From: blitzmann Date: Sat, 18 Jul 2015 14:45:26 -0400 Subject: [PATCH 30/53] Add attribute view --- gui/itemStats.py | 336 +++++++++++++++++++++++++++++++++++++---------- 1 file changed, 264 insertions(+), 72 deletions(-) diff --git a/gui/itemStats.py b/gui/itemStats.py index 02a5e626b..4701cbe90 100644 --- a/gui/itemStats.py +++ b/gui/itemStats.py @@ -557,7 +557,8 @@ class ItemAffectedBy (wx.Panel): self.activeFit = gui.mainFrame.MainFrame.getInstance().getActiveFit() - self.toggleView = 1 + self.showRealNames = False + self.showAttrView = True self.expand = -1 self.treeItems = [] @@ -575,7 +576,10 @@ class ItemAffectedBy (wx.Panel): self.toggleExpandBtn = wx.ToggleButton( self, wx.ID_ANY, u"Expand All", wx.DefaultPosition, wx.DefaultSize, 0 ) bSizer.Add( self.toggleExpandBtn, 0, wx.ALIGN_CENTER_VERTICAL) - self.toggleViewBtn = wx.ToggleButton( self, wx.ID_ANY, u"Toggle view mode", wx.DefaultPosition, wx.DefaultSize, 0 ) + self.toggleNameBtn = wx.ToggleButton( self, wx.ID_ANY, u"Real Attribute Names", wx.DefaultPosition, wx.DefaultSize, 0 ) + bSizer.Add( self.toggleNameBtn, 0, wx.ALIGN_CENTER_VERTICAL) + + self.toggleViewBtn = wx.ToggleButton( self, wx.ID_ANY, u"Toggle View", wx.DefaultPosition, wx.DefaultSize, 0 ) bSizer.Add( self.toggleViewBtn, 0, wx.ALIGN_CENTER_VERTICAL) if stuff is not None: @@ -583,8 +587,9 @@ class ItemAffectedBy (wx.Panel): bSizer.Add( self.refreshBtn, 0, wx.ALIGN_CENTER_VERTICAL) self.refreshBtn.Bind( wx.EVT_BUTTON, self.RefreshTree ) - self.toggleViewBtn.Bind(wx.EVT_TOGGLEBUTTON,self.ToggleViewMode) + self.toggleNameBtn.Bind(wx.EVT_TOGGLEBUTTON,self.ToggleNameMode) self.toggleExpandBtn.Bind(wx.EVT_TOGGLEBUTTON,self.ToggleExpand) + self.toggleViewBtn.Bind(wx.EVT_TOGGLEBUTTON,self.ToggleViewMode) mainSizer.Add( bSizer, 0, wx.ALIGN_RIGHT) self.SetSizer(mainSizer) @@ -614,8 +619,8 @@ class ItemAffectedBy (wx.Panel): for item in self.treeItems: change = self.affectedBy.GetPyData(item) display = self.affectedBy.GetItemText(item) - self.affectedBy.SetItemText(item,change) - self.affectedBy.SetPyData(item,display) + self.affectedBy.SetItemText(item, change) + self.affectedBy.SetPyData(item, display) self.Thaw() @@ -630,43 +635,84 @@ class ItemAffectedBy (wx.Panel): event.Skip() def ToggleViewMode(self, event): - self.toggleView *=-1 + self.showAttrView = not self.showAttrView + self.affectedBy.DeleteAllItems() + self.PopulateTree() + event.Skip() + + def ToggleNameMode(self, event): + self.showRealNames = not self.showRealNames self.ToggleViewTree() event.Skip() def PopulateTree(self): + # sheri was here + del self.treeItems[:] root = self.affectedBy.AddRoot("WINPWNZ0R") self.affectedBy.SetPyData(root, None) self.imageList = wx.ImageList(16, 16) self.affectedBy.SetImageList(self.imageList) - cont = self.stuff.itemModifiedAttributes if self.item == self.stuff.item else self.stuff.chargeModifiedAttributes - things = {} - holding = {} + if self.showAttrView: + self.buildAttributeView(root) + else: + self.buildModuleView(root) - for attrName in cont.iterAfflictions(): + self.ExpandCollapseTree() + def sortAttrDisplayName(self, attr): + info = self.stuff.item.attributes.get(attr) + if info and info.displayName != "": + return info.displayName + + return attr + def buildAttributeView(self, root): + # We first build a usable dictionary of items. The key is either a fit + # if the afflictions stem from a projected fit, or self.stuff if they + # are local afflictions (everything else, even gang boosts at this time) + # The value of this is yet another dictionary in the following format: + # + # "atribute name": { + # "Module Name": [ + # class of affliction, + # set of afflictors (such as 2 of the same module), + # info on affliction (attribute name, modifier, and modification amount), + # whether this affliction is actually used (unlearned skills are not used) + # ] + # } + + attributes = self.stuff.itemModifiedAttributes if self.item == self.stuff.item else self.stuff.chargeModifiedAttributes + container = {} + for attrName in attributes.iterAfflictions(): # if value is 0 or there has been no change from original to modified, return - if cont[attrName] == (cont.getOriginal(attrName) or 0): + if attributes[attrName] == (attributes.getOriginal(attrName) or 0): continue - for fit, afflictors in cont.getAfflictions(attrName).iteritems(): + for fit, afflictors in attributes.getAfflictions(attrName).iteritems(): for afflictor, modifier, amount, used in afflictors: - container = things - #print "\t", afflictor, modifier, amount, used, if not used or afflictor.item is None: continue if fit.ID != self.activeFit: - if fit not in holding: - holding[fit] = {} - container = holding[fit] + # affliction fit does not match our fit + if fit not in container: + container[fit] = {} + items = container[fit] + else: + # local afflictions + if self.stuff not in container: + container[self.stuff] = {} + items = container[self.stuff] - if afflictor.item.name not in container: - container[afflictor.item.name] = [type(afflictor), set(), [], getattr(afflictor, "projected", False)] + # items hold our module: info mappings + if attrName not in items: + items[attrName] = {} - info = container[afflictor.item.name] + if afflictor.item.name not in items[attrName]: + items[attrName][afflictor.item.name] = [type(afflictor), set(), [], getattr(afflictor, "projected", False)] + + info = items[attrName][afflictor.item.name] info[1].add(afflictor) # If info[1] > 1, there are two separate modules working. # Check to make sure we only include the modifier once @@ -675,54 +721,74 @@ class ItemAffectedBy (wx.Panel): continue info[2].append((attrName, modifier, amount)) - for fit, items in holding.iteritems(): - child = self.affectedBy.AppendItem(root, fit.name, self.imageList.Add(bitmapLoader.getBitmap("ship_small", "icons"))) - self.test(child, holding[fit]) - self.test(root, things) - self.ExpandCollapseTree() + # Make sure projected fits are on top + rootOrder = container.keys() + rootOrder.sort(key=lambda x: self.ORDER.index(type(x))) - def test(self, parent, things): - order = things.keys() - order.sort(key=lambda x: (self.ORDER.index(things[x][0]), x)) - for itemName in order: - info = things[itemName] + # Now, we take our created dictionary and start adding stuff to our tree + for thing in rootOrder: + # This block simply directs which parent we are adding to (root or projected fit) + if thing == self.stuff: + parent = root + else: # projected fit + icon = self.imageList.Add(bitmapLoader.getBitmap("ship_small", "icons")) + child = self.affectedBy.AppendItem(root, "{} ({})".format(thing.name, thing.ship.item.name), icon) + parent = child - afflictorType, afflictors, attrData, projected = info - counter = len(afflictors) - baseAfflictor = afflictors.pop() - if afflictorType == Ship: - itemIcon = self.imageList.Add(bitmapLoader.getBitmap("ship_small", "icons")) - elif baseAfflictor.item.icon: - bitmap = bitmapLoader.getBitmap(baseAfflictor.item.icon.iconFile, "pack") - itemIcon = self.imageList.Add(bitmap) if bitmap else -1 - else: - itemIcon = -1 + attributes = container[thing] + attrOrder = sorted(attributes.keys(), key=self.sortAttrDisplayName) - displayStr = "%s" % itemName if counter == 1 else "%s x %d" % (itemName,counter) + for attrName in attrOrder: + attrInfo = self.stuff.item.attributes.get(attrName) + displayName = attrInfo.displayName if attrInfo and attrInfo.displayName != "" else attrName - if projected: - displayStr += " (projected)" - - child = self.affectedBy.AppendItem(parent, displayStr, itemIcon) - - if counter > 0: - attributes = [] - for attrName, attrModifier, attrAmount in attrData: - attrInfo = self.stuff.item.attributes.get(attrName) - displayName = attrInfo.displayName if attrInfo else "" - - if attrInfo: - if attrInfo.icon is not None: - iconFile = attrInfo.icon.iconFile - icon = bitmapLoader.getBitmap(iconFile, "pack") - if icon is None: - icon = bitmapLoader.getBitmap("transparent16x16", "icons") - - attrIcon = self.imageList.Add(icon) - else: - attrIcon = self.imageList.Add(bitmapLoader.getBitmap("07_15", "pack")) + if attrInfo: + if attrInfo.icon is not None: + iconFile = attrInfo.icon.iconFile + icon = bitmapLoader.getBitmap(iconFile, "pack") + if icon is None: + icon = bitmapLoader.getBitmap("transparent16x16", "icons") + attrIcon = self.imageList.Add(icon) else: attrIcon = self.imageList.Add(bitmapLoader.getBitmap("07_15", "pack")) + else: + attrIcon = self.imageList.Add(bitmapLoader.getBitmap("07_15", "pack")) + + + if self.showRealNames: + display = attrName + saved = displayName + else: + display = displayName + saved = attrName + + # this is the attribute node + child = self.affectedBy.AppendItem(parent, display, attrIcon) + self.affectedBy.SetPyData(child, saved) + self.treeItems.append(child) + + items = attributes[attrName] + for itemName, info in items.iteritems(): + afflictorType, afflictors, attrData, projected = info + attrName, attrModifier, attrAmount = attrData[0] + counter = len(afflictors) + baseAfflictor = afflictors.pop() + + if afflictorType == Ship: + itemIcon = self.imageList.Add(bitmapLoader.getBitmap("ship_small", "icons")) + elif baseAfflictor.item.icon: + bitmap = bitmapLoader.getBitmap(baseAfflictor.item.icon.iconFile, "pack") + itemIcon = self.imageList.Add(bitmap) if bitmap else -1 + else: + itemIcon = -1 + + displayStr = itemName + + if counter > 1: + displayStr += " x {}".format(counter) + + if projected: + displayStr += " (projected)" if attrModifier == "s*": attrModifier = "*" @@ -730,15 +796,141 @@ class ItemAffectedBy (wx.Panel): else: penalized = "" - attributes.append((attrName, (displayName if displayName != "" else attrName), attrModifier, attrAmount, penalized, attrIcon)) + # this is the Module node, the attribute will be attached to this + display = "%s %s %.2f %s" % (displayStr, attrModifier, attrAmount, penalized) + self.affectedBy.AppendItem(child, display, itemIcon) - attrSorted = sorted(attributes, key = lambda attribName: attribName[0]) - for attr in attrSorted: - attrName, displayName, attrModifier, attrAmount, penalized, attrIcon = attr - if self.toggleView == 1: - treeitem = self.affectedBy.AppendItem(child, "%s %s %.2f %s" % ((displayName if displayName != "" else attrName), attrModifier, attrAmount, penalized), attrIcon) - self.affectedBy.SetPyData(treeitem,"%s %s %.2f %s" % (attrName, attrModifier, attrAmount, penalized)) + def buildModuleView(self, root): + # We first build a usable dictionary of items. The key is either a fit + # if the afflictions stem from a projected fit, or self.stuff if they + # are local afflictions (everything else, even gang boosts at this time) + # The value of this is yet another dictionary in the following format: + # + # "Module Name": [ + # class of affliction, + # set of afflictors (such as 2 of the same module), + # info on affliction (attribute name, modifier, and modification amount), + # whether this affliction is actually used (unlearned skills are not used) + # ] + + attributes = self.stuff.itemModifiedAttributes if self.item == self.stuff.item else self.stuff.chargeModifiedAttributes + container = {} + for attrName in attributes.iterAfflictions(): + # if value is 0 or there has been no change from original to modified, return + if attributes[attrName] == (attributes.getOriginal(attrName) or 0): + continue + + for fit, afflictors in attributes.getAfflictions(attrName).iteritems(): + for afflictor, modifier, amount, used in afflictors: + + if not used or afflictor.item is None: + continue + + if fit.ID != self.activeFit: + # affliction fit does not match our fit + if fit not in container: + container[fit] = {} + items = container[fit] else: - treeitem = self.affectedBy.AppendItem(child, "%s %s %.2f %s" % (attrName, attrModifier, attrAmount, penalized), attrIcon) - self.affectedBy.SetPyData(treeitem,"%s %s %.2f %s" % ((displayName if displayName != "" else attrName), attrModifier, attrAmount, penalized)) - self.treeItems.append(treeitem) + # local afflictions + if self.stuff not in container: + container[self.stuff] = {} + items = container[self.stuff] + + # items hold our module: info mappings + if afflictor.item.name not in items: + items[afflictor.item.name] = [type(afflictor), set(), [], getattr(afflictor, "projected", False)] + + info = items[afflictor.item.name] + info[1].add(afflictor) + # If info[1] > 1, there are two separate modules working. + # Check to make sure we only include the modifier once + # See GH issue 154 + if len(info[1]) > 1 and (attrName, modifier, amount) in info[2]: + continue + info[2].append((attrName, modifier, amount)) + + # Make sure projected fits are on top + rootOrder = container.keys() + rootOrder.sort(key=lambda x: self.ORDER.index(type(x))) + + # Now, we take our created dictionary and start adding stuff to our tree + for thing in rootOrder: + # This block simply directs which parent we are adding to (root or projected fit) + if thing == self.stuff: + parent = root + else: # projected fit + icon = self.imageList.Add(bitmapLoader.getBitmap("ship_small", "icons")) + child = self.affectedBy.AppendItem(root, "{} ({})".format(thing.name, thing.ship.item.name), icon) + parent = child + + items = container[thing] + order = items.keys() + order.sort(key=lambda x: (self.ORDER.index(items[x][0]), x)) + + for itemName in order: + info = items[itemName] + + afflictorType, afflictors, attrData, projected = info + counter = len(afflictors) + baseAfflictor = afflictors.pop() + if afflictorType == Ship: + itemIcon = self.imageList.Add(bitmapLoader.getBitmap("ship_small", "icons")) + elif baseAfflictor.item.icon: + bitmap = bitmapLoader.getBitmap(baseAfflictor.item.icon.iconFile, "pack") + itemIcon = self.imageList.Add(bitmap) if bitmap else -1 + else: + itemIcon = -1 + + displayStr = itemName + + if counter > 1: + displayStr += " x {}".format(counter) + + if projected: + displayStr += " (projected)" + + # this is the Module node, the attribute will be attached to this + child = self.affectedBy.AppendItem(parent, displayStr, itemIcon) + + if counter > 0: + attributes = [] + for attrName, attrModifier, attrAmount in attrData: + attrInfo = self.stuff.item.attributes.get(attrName) + displayName = attrInfo.displayName if attrInfo else "" + + if attrInfo: + if attrInfo.icon is not None: + iconFile = attrInfo.icon.iconFile + icon = bitmapLoader.getBitmap(iconFile, "pack") + if icon is None: + icon = bitmapLoader.getBitmap("transparent16x16", "icons") + + attrIcon = self.imageList.Add(icon) + else: + attrIcon = self.imageList.Add(bitmapLoader.getBitmap("07_15", "pack")) + else: + attrIcon = self.imageList.Add(bitmapLoader.getBitmap("07_15", "pack")) + + if attrModifier == "s*": + attrModifier = "*" + penalized = "(penalized)" + else: + penalized = "" + + attributes.append((attrName, (displayName if displayName != "" else attrName), attrModifier, attrAmount, penalized, attrIcon)) + + attrSorted = sorted(attributes, key = lambda attribName: attribName[0]) + for attr in attrSorted: + attrName, displayName, attrModifier, attrAmount, penalized, attrIcon = attr + + if self.showRealNames: + display = "%s %s %.2f %s" % (attrName, attrModifier, attrAmount, penalized) + saved = "%s %s %.2f %s" % ((displayName if displayName != "" else attrName), attrModifier, attrAmount, penalized) + else: + display = "%s %s %.2f %s" % ((displayName if displayName != "" else attrName), attrModifier, attrAmount, penalized) + saved = "%s %s %.2f %s" % (attrName, attrModifier, attrAmount, penalized) + + treeitem = self.affectedBy.AppendItem(child, display, attrIcon) + self.affectedBy.SetPyData(treeitem, saved) + self.treeItems.append(treeitem) From b06ce24d4ad3e9b54b04b0707ccd3580fa1be6a2 Mon Sep 17 00:00:00 2001 From: blitzmann Date: Sat, 18 Jul 2015 15:20:15 -0400 Subject: [PATCH 31/53] Fix attribute view items (two of the same item would merge into one, even if they had different modifiers. now simply list them individually) --- gui/itemStats.py | 49 +++++++++++++++++------------------------------- 1 file changed, 17 insertions(+), 32 deletions(-) diff --git a/gui/itemStats.py b/gui/itemStats.py index 4701cbe90..408adb96d 100644 --- a/gui/itemStats.py +++ b/gui/itemStats.py @@ -660,23 +660,24 @@ class ItemAffectedBy (wx.Panel): self.buildModuleView(root) self.ExpandCollapseTree() - def sortAttrDisplayName(self, attr): - info = self.stuff.item.attributes.get(attr) - if info and info.displayName != "": - return info.displayName - return attr + def sortAttrDisplayName(self, attr): + info = self.stuff.item.attributes.get(attr) + if info and info.displayName != "": + return info.displayName + + return attr + def buildAttributeView(self, root): # We first build a usable dictionary of items. The key is either a fit # if the afflictions stem from a projected fit, or self.stuff if they # are local afflictions (everything else, even gang boosts at this time) # The value of this is yet another dictionary in the following format: # - # "atribute name": { + # "attribute name": { # "Module Name": [ # class of affliction, - # set of afflictors (such as 2 of the same module), - # info on affliction (attribute name, modifier, and modification amount), + # afflictor info (afflictor, modifier, and modification amount), # whether this affliction is actually used (unlearned skills are not used) # ] # } @@ -707,19 +708,9 @@ class ItemAffectedBy (wx.Panel): # items hold our module: info mappings if attrName not in items: - items[attrName] = {} + items[attrName] = [] - if afflictor.item.name not in items[attrName]: - items[attrName][afflictor.item.name] = [type(afflictor), set(), [], getattr(afflictor, "projected", False)] - - info = items[attrName][afflictor.item.name] - info[1].add(afflictor) - # If info[1] > 1, there are two separate modules working. - # Check to make sure we only include the modifier once - # See GH issue 154 - if len(info[1]) > 1 and (attrName, modifier, amount) in info[2]: - continue - info[2].append((attrName, modifier, amount)) + items[attrName].append((type(afflictor), afflictor, modifier, amount, getattr(afflictor, "projected", False))) # Make sure projected fits are on top rootOrder = container.keys() @@ -754,7 +745,6 @@ class ItemAffectedBy (wx.Panel): else: attrIcon = self.imageList.Add(bitmapLoader.getBitmap("07_15", "pack")) - if self.showRealNames: display = attrName saved = displayName @@ -768,24 +758,19 @@ class ItemAffectedBy (wx.Panel): self.treeItems.append(child) items = attributes[attrName] - for itemName, info in items.iteritems(): - afflictorType, afflictors, attrData, projected = info - attrName, attrModifier, attrAmount = attrData[0] - counter = len(afflictors) - baseAfflictor = afflictors.pop() + items.sort(key=lambda x: self.ORDER.index(x[0])) + for itemInfo in items: + afflictorType, afflictor, attrModifier, attrAmount, projected = itemInfo if afflictorType == Ship: itemIcon = self.imageList.Add(bitmapLoader.getBitmap("ship_small", "icons")) - elif baseAfflictor.item.icon: - bitmap = bitmapLoader.getBitmap(baseAfflictor.item.icon.iconFile, "pack") + elif afflictor.item.icon: + bitmap = bitmapLoader.getBitmap(afflictor.item.icon.iconFile, "pack") itemIcon = self.imageList.Add(bitmap) if bitmap else -1 else: itemIcon = -1 - displayStr = itemName - - if counter > 1: - displayStr += " x {}".format(counter) + displayStr = afflictor.item.name if projected: displayStr += " (projected)" From 9941b6c74b9ecbd426517ac1b37c62b8617c805d Mon Sep 17 00:00:00 2001 From: blitzmann Date: Sat, 18 Jul 2015 15:23:10 -0400 Subject: [PATCH 32/53] Make default view module again --- gui/itemStats.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gui/itemStats.py b/gui/itemStats.py index 408adb96d..3d5190e63 100644 --- a/gui/itemStats.py +++ b/gui/itemStats.py @@ -558,7 +558,7 @@ class ItemAffectedBy (wx.Panel): self.activeFit = gui.mainFrame.MainFrame.getInstance().getActiveFit() self.showRealNames = False - self.showAttrView = True + self.showAttrView = False self.expand = -1 self.treeItems = [] @@ -576,7 +576,7 @@ class ItemAffectedBy (wx.Panel): self.toggleExpandBtn = wx.ToggleButton( self, wx.ID_ANY, u"Expand All", wx.DefaultPosition, wx.DefaultSize, 0 ) bSizer.Add( self.toggleExpandBtn, 0, wx.ALIGN_CENTER_VERTICAL) - self.toggleNameBtn = wx.ToggleButton( self, wx.ID_ANY, u"Real Attribute Names", wx.DefaultPosition, wx.DefaultSize, 0 ) + self.toggleNameBtn = wx.ToggleButton( self, wx.ID_ANY, u"Toggle Names", wx.DefaultPosition, wx.DefaultSize, 0 ) bSizer.Add( self.toggleNameBtn, 0, wx.ALIGN_CENTER_VERTICAL) self.toggleViewBtn = wx.ToggleButton( self, wx.ID_ANY, u"Toggle View", wx.DefaultPosition, wx.DefaultSize, 0 ) From 4596c526a2c40dfc40673a15684e1a46cc1cc366 Mon Sep 17 00:00:00 2001 From: blitzmann Date: Sat, 18 Jul 2015 23:39:16 -0400 Subject: [PATCH 33/53] Fix #335 - properly represent charge modifiers --- gui/itemStats.py | 44 +++++++++++++++++++++++++++++--------------- 1 file changed, 29 insertions(+), 15 deletions(-) diff --git a/gui/itemStats.py b/gui/itemStats.py index 3d5190e63..d29895e7a 100644 --- a/gui/itemStats.py +++ b/gui/itemStats.py @@ -677,8 +677,10 @@ class ItemAffectedBy (wx.Panel): # "attribute name": { # "Module Name": [ # class of affliction, - # afflictor info (afflictor, modifier, and modification amount), - # whether this affliction is actually used (unlearned skills are not used) + # affliction item (required due to GH issue #335) + # modifier type + # amount of modification + # whether this affliction was projected # ] # } @@ -710,7 +712,13 @@ class ItemAffectedBy (wx.Panel): if attrName not in items: items[attrName] = [] - items[attrName].append((type(afflictor), afflictor, modifier, amount, getattr(afflictor, "projected", False))) + if afflictor == self.stuff and getattr(afflictor, 'charge', None): + # we are showing a charges modifications, see #335 + item = afflictor.charge + else: + item = afflictor.item + + items[attrName].append((type(afflictor), item, modifier, amount, getattr(afflictor, "projected", False))) # Make sure projected fits are on top rootOrder = container.keys() @@ -760,17 +768,17 @@ class ItemAffectedBy (wx.Panel): items = attributes[attrName] items.sort(key=lambda x: self.ORDER.index(x[0])) for itemInfo in items: - afflictorType, afflictor, attrModifier, attrAmount, projected = itemInfo + afflictorType, item, attrModifier, attrAmount, projected = itemInfo if afflictorType == Ship: itemIcon = self.imageList.Add(bitmapLoader.getBitmap("ship_small", "icons")) - elif afflictor.item.icon: - bitmap = bitmapLoader.getBitmap(afflictor.item.icon.iconFile, "pack") + elif item.icon: + bitmap = bitmapLoader.getBitmap(item.icon.iconFile, "pack") itemIcon = self.imageList.Add(bitmap) if bitmap else -1 else: itemIcon = -1 - displayStr = afflictor.item.name + displayStr = item.name if projected: displayStr += " (projected)" @@ -795,6 +803,7 @@ class ItemAffectedBy (wx.Panel): # class of affliction, # set of afflictors (such as 2 of the same module), # info on affliction (attribute name, modifier, and modification amount), + # item that will be used to determine icon (required due to GH issue #335) # whether this affliction is actually used (unlearned skills are not used) # ] @@ -822,11 +831,17 @@ class ItemAffectedBy (wx.Panel): container[self.stuff] = {} items = container[self.stuff] - # items hold our module: info mappings - if afflictor.item.name not in items: - items[afflictor.item.name] = [type(afflictor), set(), [], getattr(afflictor, "projected", False)] + if afflictor == self.stuff and getattr(afflictor, 'charge', None): + # we are showing a charges modifications, see #335 + item = afflictor.charge + else: + item = afflictor.item - info = items[afflictor.item.name] + # items hold our module: info mappings + if item.name not in items: + items[item.name] = [type(afflictor), set(), [], item, getattr(afflictor, "projected", False)] + + info = items[item.name] info[1].add(afflictor) # If info[1] > 1, there are two separate modules working. # Check to make sure we only include the modifier once @@ -856,13 +871,12 @@ class ItemAffectedBy (wx.Panel): for itemName in order: info = items[itemName] - afflictorType, afflictors, attrData, projected = info + afflictorType, afflictors, attrData, item, projected = info counter = len(afflictors) - baseAfflictor = afflictors.pop() if afflictorType == Ship: itemIcon = self.imageList.Add(bitmapLoader.getBitmap("ship_small", "icons")) - elif baseAfflictor.item.icon: - bitmap = bitmapLoader.getBitmap(baseAfflictor.item.icon.iconFile, "pack") + elif item.icon: + bitmap = bitmapLoader.getBitmap(item.icon.iconFile, "pack") itemIcon = self.imageList.Add(bitmap) if bitmap else -1 else: itemIcon = -1 From d496637614a652366ce687ef3a81a2767caf51ab Mon Sep 17 00:00:00 2001 From: blitzmann Date: Sun, 19 Jul 2015 02:44:05 -0400 Subject: [PATCH 34/53] Add ship skill bonuses to modified modules. Modify effect files for new skill parameter. Enable affecting skill menu. --- .../blockaderunnercloakcpupercentbonus.py | 3 +-- .../caldarishipecmburstoptimalrangecb3.py | 3 +-- eos/effects/caldarishipewcapacitorneedcc.py | 3 +-- eos/effects/caldarishipewcapacitorneedcf2.py | 3 +-- eos/effects/caldarishipewfalloffrangecb3.py | 3 +-- eos/effects/caldarishipewfalloffrangecc2.py | 3 +-- eos/effects/caldarishipewoptimalrangecb3.py | 3 +-- eos/effects/caldarishipewoptimalrangecc2.py | 3 +-- eos/effects/caldarishipewstrengthcb.py | 3 +-- .../carrieramarrarmorenergytransferrange3.py | 6 ++--- eos/effects/carrieramarrarmorresist2.py | 3 +-- eos/effects/carrieramarrdronemax1.py | 4 +-- .../carrieramarrfighterbombermaxvelocity2.py | 3 +-- .../carrieramarrfightermaxvelocity2.py | 3 +-- .../carrieramarrleadershipmaxgroupactive4.py | 3 +-- eos/effects/carriercaldaridronemax1.py | 4 +-- .../carriercaldarifightersandbomberssig1.py | 3 +-- ...carriercaldarileadershipmaxgroupactive4.py | 3 +-- ...arriercaldarishieldenergytransferrange3.py | 5 ++-- eos/effects/carriercaldarishieldresist2.py | 3 +-- ...arriergallentearmorshieldtransferrange3.py | 5 ++-- .../carriergallentebomberdroneowndmg2.py | 3 +-- eos/effects/carriergallentedronemax1.py | 4 +-- eos/effects/carriergallentedroneowndmg2.py | 3 +-- ...arriergallenteleadershipmaxgroupactive4.py | 3 +-- .../carrierminmatararmorshieldamount.py | 5 ++-- ...arrierminmatararmorshieldtransferrange3.py | 5 ++-- eos/effects/carrierminmatardronemax1.py | 4 +-- ...arrierminmatarleadershipmaxgroupactive4.py | 3 +-- eos/effects/covertopscloakcpupercentbonus1.py | 3 +-- eos/effects/dreadnoughtmd1projdmgbonus.py | 3 +-- eos/effects/dreadnoughtmd3projrofbonus.py | 3 +-- .../dreadnoughtshipbonushybriddmgg1.py | 3 +-- .../dreadnoughtshipbonushybridrofg2.py | 3 +-- .../dreadnoughtshipbonuslasercapneeda1.py | 3 +-- eos/effects/dreadnoughtshipbonuslaserrofa2.py | 3 +-- ...dreadnoughtshipbonusshieldresistancesc2.py | 3 +-- ...ebargebonusiceharvestingcycletimebarge3.py | 3 +-- .../elitebargebonusminingdurationbarge2.py | 3 +-- eos/effects/elitebargeshieldresistance1.py | 3 +-- .../elitebonusassaultshiplightmissilerof.py | 3 +-- .../elitebonusassaultshipmissilevelocity1.py | 3 +-- eos/effects/elitebonusassaultshiprocketrof.py | 3 +-- eos/effects/elitebonusblackopsagiliy1.py | 3 +-- .../elitebonusblackopscloakvelocity2.py | 3 +-- ...secmburstgravandladarandmagnetoandradar.py | 3 +-- ...dladarandmagnetometricandradarstrength1.py | 3 +-- ...bonusblackopslargeenergyturrettracking1.py | 3 +-- eos/effects/elitebonusblackopsmaxvelocity1.py | 3 +-- .../elitebonuscommandshiparmoredcs3.py | 3 +-- eos/effects/elitebonuscommandshiparmorhp1.py | 3 +-- eos/effects/elitebonuscommandshiphamrofcs1.py | 3 +-- ...commandshipheavyassaultmissiledamagecs2.py | 3 +-- ...tebonuscommandshipheavydronetrackingcs2.py | 3 +-- ...tebonuscommandshipheavydronevelocitycs2.py | 3 +-- ...tebonuscommandshipheavymissiledamagecs2.py | 3 +-- eos/effects/elitebonuscommandshiphmrofcs1.py | 3 +-- .../elitebonuscommandshiphybridfalloffcs2.py | 3 +-- .../elitebonuscommandshiphybridoptimalcs1.py | 3 +-- .../elitebonuscommandshipinformationcs3.py | 3 +-- ...itebonuscommandshipinformationhiddencs3.py | 3 +-- .../elitebonuscommandshiplaserdamagecs1.py | 3 +-- .../elitebonuscommandshiplaserrofcs2.py | 3 +-- ...tebonuscommandshipmediumhybriddamagecs2.py | 3 +-- ...elitebonuscommandshipmediumhybridrofcs1.py | 3 +-- ...bonuscommandshipmediumhybridtrackingcs1.py | 3 +-- ...litebonuscommandshipprojectiledamagecs1.py | 3 +-- ...itebonuscommandshipprojectilefalloffcs2.py | 3 +-- ...psheavyassaultmissileexplosionradiuscs2.py | 3 +-- ...heavyassaultmissileexplosionvelocitycs2.py | 3 +-- ...mandshipsheavymissileexplosionradiuscs2.py | 3 +-- ...ndshipsheavymissileexplosionvelocitycs2.py | 3 +-- eos/effects/elitebonuscommandshipsiegecs3.py | 3 +-- .../elitebonuscommandshipskirmishcs3.py | 3 +-- eos/effects/elitebonuscoveropsbombemdmg1.py | 3 +-- .../elitebonuscoveropsbombexplosivedmg1.py | 3 +-- .../elitebonuscoveropsbombkineticdmg1.py | 3 +-- .../elitebonuscoveropsbombthermaldmg1.py | 3 +-- .../elitebonuscoveropsscanprobestrength2.py | 3 +-- ...selectronicattackshipcapacitorcapacity2.py | 3 +-- ...nuselectronicattackshipecmoptimalrange1.py | 3 +-- ...nuselectronicattackshipenergyneutrange1.py | 3 +-- ...electronicattackshipenergyvampirerange1.py | 3 +-- ...ebonuselectronicattackshiprechargerate2.py | 3 +-- ...nuselectronicattackshipsignatureradius2.py | 3 +-- ...selectronicattackshipstasiswebmaxrange1.py | 3 +-- ...ectronicattackshipwarpscramblercapneed2.py | 3 +-- ...ctronicattackshipwarpscramblermaxrange1.py | 3 +-- eos/effects/elitebonusexpeditionmining1.py | 3 +-- eos/effects/elitebonusexpeditionsigradius2.py | 3 +-- .../elitebonusgunshiparmoremresistance1.py | 3 +-- ...tebonusgunshiparmorexplosiveresistance1.py | 3 +-- ...litebonusgunshiparmorkineticresistance1.py | 3 +-- ...litebonusgunshiparmorthermalresistance1.py | 3 +-- eos/effects/elitebonusgunshipcaprecharge2.py | 3 +-- .../elitebonusgunshipdronecapacity2.py | 3 +-- eos/effects/elitebonusgunshiphybriddmg2.py | 3 +-- .../elitebonusgunshiphybridoptimal1.py | 3 +-- .../elitebonusgunshiphybridtracking2.py | 3 +-- eos/effects/elitebonusgunshiplaserdamage2.py | 3 +-- eos/effects/elitebonusgunshiplaseroptimal1.py | 3 +-- .../elitebonusgunshipprojectiledamage1.py | 3 +-- .../elitebonusgunshipprojectiledamage2.py | 3 +-- .../elitebonusgunshipprojectilefalloff2.py | 3 +-- .../elitebonusgunshipprojectileoptimal1.py | 3 +-- eos/effects/elitebonusgunshipshieldboost2.py | 3 +-- ...usheavygunshipassaultmissileflighttime1.py | 3 +-- ...sheavygunshipassaultmissilelaunhcerrof2.py | 3 +-- ...litebonusheavygunshipdronecontrolrange1.py | 4 +-- ...eavyassaultandassaultmissilelauncherrof.py | 3 +-- ...ygunshipheavyassaultmissilelaunhcerrof2.py | 3 +-- ...onusheavygunshipheavymissileflighttime1.py | 3 +-- ...nusheavygunshipheavymissilelaunhcerrof2.py | 3 +-- .../elitebonusheavygunshiphybriddmg2.py | 3 +-- .../elitebonusheavygunshiphybridfalloff1.py | 3 +-- .../elitebonusheavygunshiphybridoptimal1.py | 3 +-- .../elitebonusheavygunshiplaserdmg2.py | 3 +-- .../elitebonusheavygunshiplaseroptimal1.py | 3 +-- ...onusheavygunshiplightmissileflighttime1.py | 3 +-- .../elitebonusheavygunshipprojectiledmg2.py | 3 +-- ...litebonusheavygunshipprojectilefalloff1.py | 3 +-- ...litebonusheavygunshipprojectileoptimal1.py | 3 +-- ...itebonusheavygunshipprojectiletracking2.py | 3 +-- ...rdictorheavyassaultmissilevelocitybonus.py | 3 +-- ...vyinterdictorheavymissilevelocitybonus1.py | 3 +-- ...avyinterdictorlightmissilevelocitybonus.py | 3 +-- ...itebonusheavyinterdictorshybridoptimal1.py | 3 +-- .../elitebonusheavyinterdictorsmetoptimal.py | 3 +-- ...onusheavyinterdictorsprojectilefalloff1.py | 3 +-- ...disruptfieldgeneratorwarpscramblerange2.py | 3 +-- .../elitebonusinterdictorsarmorresist1.py | 3 +-- ...ebonusinterdictorsmissilekineticdamage1.py | 3 +-- .../elitebonusinterdictorsmwdsigradius2.py | 3 +-- ...litebonusinterdictorsprojectilefalloff1.py | 3 +-- eos/effects/elitebonusinterdictorsshtrof1.py | 3 +-- .../elitebonusjumpfreighterarmorhp1.py | 3 +-- eos/effects/elitebonusjumpfreighterhullhp1.py | 3 +-- ...umpfreighterjumpdriveconsumptionamount2.py | 3 +-- .../elitebonusjumpfreightershieldhp1.py | 3 +-- ...litebonuslogisticenergytransfercapneed1.py | 3 +-- ...litebonuslogisticenergytransfercapneed2.py | 3 +-- ...ebonuslogisticremotearmorrepaircapneed1.py | 3 +-- ...ebonuslogisticremotearmorrepaircapneed2.py | 3 +-- ...litebonuslogisticshieldtransfercapneed1.py | 3 +-- ...litebonuslogisticshieldtransfercapneed2.py | 3 +-- ...bonuslogisticstrackinglinkfalloffbonus1.py | 3 +-- ...bonuslogisticstrackinglinkfalloffbonus2.py | 3 +-- ...onuslogisticstrackinglinkmaxrangebonus1.py | 3 +-- ...onuslogisticstrackinglinkmaxrangebonus2.py | 3 +-- ...ogisticstrackinglinktrackingspeedbonus1.py | 3 +-- ...ogisticstrackinglinktrackingspeedbonus2.py | 3 +-- .../elitebonusmaraudershieldbonus2a.py | 3 +-- eos/effects/elitebonusvampiredrainamount2.py | 3 +-- .../elitebonusviolatorsewtargetpainting1.py | 3 +-- ...ebonusviolatorslargeenergyturretdamage1.py | 3 +-- ...onusviolatorslargehybridturrettracking1.py | 3 +-- ...violatorslargeprojectileturrettracking1.py | 3 +-- ...iolatorsrepairsystemsarmordamageamount2.py | 3 +-- eos/effects/eliteindustrialarmorresists2.py | 4 +-- eos/effects/eliteindustrialfleetcapacity1.py | 3 +-- eos/effects/eliteindustrialshieldresists2.py | 3 +-- eos/effects/eliteindustrialwarpspeedbonus1.py | 3 +-- .../elitereconbonusenergyneutamount2.py | 3 +-- .../elitereconbonusenergyneutrange1.py | 3 +-- .../elitereconbonusgravimetricstrength2.py | 3 +-- ...tereconbonusheavyassaultmissilevelocity.py | 3 +-- .../elitereconbonusheavymissilevelocity.py | 3 +-- eos/effects/elitereconbonusladarstrength2.py | 3 +-- .../elitereconbonusmagnetometricstrength2.py | 3 +-- .../elitereconbonusmhtoptimalrange1.py | 3 +-- eos/effects/elitereconbonusmptdamage1.py | 3 +-- eos/effects/elitereconbonusneutrange3.py | 3 +-- eos/effects/elitereconbonusradarstrength2.py | 3 +-- eos/effects/elitereconbonusvamprange3.py | 3 +-- .../elitereconenergyvampirerangebonus1.py | 3 +-- .../elitereconjumpscramblerrangebonus2.py | 3 +-- eos/effects/elitereconstasiswebbonus2.py | 3 +-- ...ompensationhardeningbonusgroupshieldamp.py | 3 +-- eos/effects/freighteragilitybonus2o2.py | 3 +-- eos/effects/freighteragilitybonusa1.py | 3 +-- eos/effects/freighteragilitybonusc1.py | 3 +-- eos/effects/freighteragilitybonusg1.py | 3 +-- eos/effects/freighteragilitybonusm1.py | 3 +-- eos/effects/freightercargobonusa2.py | 3 +-- eos/effects/freightercargobonusc2.py | 3 +-- eos/effects/freightercargobonusg2.py | 3 +-- eos/effects/freightercargobonusm2.py | 3 +-- eos/effects/freightermaxvelocitybonusa1.py | 3 +-- eos/effects/freightermaxvelocitybonusc1.py | 3 +-- eos/effects/freightermaxvelocitybonusg1.py | 3 +-- eos/effects/freightermaxvelocitybonusm1.py | 3 +-- eos/effects/freightersmacapacitybonuso1.py | 4 +-- eos/effects/interceptor2hybridtracking.py | 3 +-- eos/effects/interceptor2lasertracking.py | 3 +-- eos/effects/interceptor2projectiledamage.py | 3 +-- eos/effects/interceptor2shieldresist.py | 3 +-- eos/effects/interceptor2warpscramblerange.py | 3 +-- .../interceptormwdsignatureradiusbonus.py | 3 +-- eos/effects/minmatarshipewtargetpaintermc1.py | 3 +-- eos/effects/minmatarshipewtargetpaintermc2.py | 3 +-- eos/effects/minmatarshipewtargetpaintermf2.py | 3 +-- .../orecapitalshipshieldtransferrange.py | 3 +-- eos/effects/reconshipcloakcpubonus1.py | 3 +-- ...hipadvancedspaceshipcommandagilitybonus.py | 3 +-- ...parmoremandexpandkinandthmresistanceac2.py | 3 +-- eos/effects/shiparmoremresistance1abc1.py | 3 +-- eos/effects/shiparmoremresistanceac2.py | 3 +-- eos/effects/shiparmoremresistanceaf1.py | 3 +-- eos/effects/shiparmoremresistancemc2.py | 3 +-- .../shiparmorexplosiveresistance1abc1.py | 3 +-- .../shiparmorexplosiveresistanceac2.py | 3 +-- .../shiparmorexplosiveresistancemc2.py | 3 +-- eos/effects/shiparmorexresistanceaf1.py | 3 +-- eos/effects/shiparmorhpac2.py | 3 +-- .../shiparmorkineticresistance1abc1.py | 3 +-- eos/effects/shiparmorkineticresistanceac2.py | 3 +-- eos/effects/shiparmorkineticresistancemc2.py | 3 +-- eos/effects/shiparmorknresistanceaf1.py | 3 +-- eos/effects/shiparmorrepairing1gbc2.py | 3 +-- eos/effects/shiparmorrepairinggf2.py | 3 +-- eos/effects/shiparmorresistanceaf1.py | 3 +-- eos/effects/shiparmorthermalresistanceac2.py | 3 +-- eos/effects/shiparmorthermalresistancemc2.py | 3 +-- eos/effects/shiparmorthermresistance1abc1.py | 3 +-- eos/effects/shiparmorthresistanceaf1.py | 3 +-- .../shipbonusaf1torpedoexplosionvelocity.py | 3 +-- eos/effects/shipbonusaf1torpedoflighttime.py | 3 +-- .../shipbonusafterburnerspeedfactor2cb.py | 3 +-- .../shipbonusafterburnerspeedfactorcc2.py | 3 +-- .../shipbonusafterburnerspeedfactorcf2.py | 3 +-- eos/effects/shipbonusagilityai2.py | 3 +-- eos/effects/shipbonusagilityci2.py | 3 +-- eos/effects/shipbonusagilitygi2.py | 3 +-- eos/effects/shipbonusagilitymi2.py | 3 +-- eos/effects/shipbonusammobaymi2.py | 3 +-- ...shipbonusaoevelocitycruiseandtorpedocb2.py | 3 +-- .../shipbonusaoevelocitycruisemissilesmb2.py | 3 +-- eos/effects/shipbonusaoevelocityrocketscd2.py | 3 +-- ...shipbonusaoevelocitystandardmissilescd2.py | 3 +-- eos/effects/shipbonusarmorrepairai2.py | 3 +-- eos/effects/shipbonusarmorrepairgi2.py | 3 +-- eos/effects/shipbonusarmorrepamountgc2.py | 3 +-- eos/effects/shipbonusarmorresistab.py | 3 +-- eos/effects/shipbonuscapcapab.py | 3 +-- eos/effects/shipbonuscargo2gi.py | 3 +-- eos/effects/shipbonuscargoci.py | 3 +-- eos/effects/shipbonuscargomi.py | 3 +-- .../shipbonuscf1torpedoexplosionvelocity.py | 3 +-- eos/effects/shipbonuscf1torpedoflighttime.py | 3 +-- eos/effects/shipbonuscruisemissileemdmgmb.py | 3 +-- .../shipbonuscruisemissileexplodmgmb.py | 3 +-- .../shipbonuscruisemissilekineticdmgmb.py | 3 +-- .../shipbonuscruisemissilethermdmgmb.py | 3 +-- eos/effects/shipbonuscruiserofmb.py | 3 +-- .../shipbonusdreadcitadelcruiserofc1.py | 3 +-- eos/effects/shipbonusdreadcitadeltorprofc1.py | 3 +-- eos/effects/shipbonusdronearmorhitpointsab.py | 3 +-- .../shipbonusdronearmorhitpointsgf2.py | 3 +-- eos/effects/shipbonusdronedamagegf2.py | 3 +-- .../shipbonusdronedamagemultiplierab.py | 3 +-- .../shipbonusdronedamagemultiplierabc2.py | 3 +-- .../shipbonusdronedamagemultiplierac2.py | 3 +-- .../shipbonusdronedamagemultiplierad1.py | 3 +-- .../shipbonusdronedamagemultipliergb2.py | 3 +-- .../shipbonusdronedamagemultipliergbc1.py | 3 +-- .../shipbonusdronedamagemultipliergc2.py | 3 +-- .../shipbonusdronedamagemultipliergd1.py | 3 +-- eos/effects/shipbonusdronehitpointsabc2.py | 3 +-- eos/effects/shipbonusdronehitpointsad1.py | 3 +-- .../shipbonusdronehitpointsfixedac2.py | 3 +-- eos/effects/shipbonusdronehitpointsgb2.py | 3 +-- eos/effects/shipbonusdronehitpointsgbc1.py | 3 +-- eos/effects/shipbonusdronehitpointsgc2.py | 3 +-- eos/effects/shipbonusdronehitpointsgd1.py | 3 +-- eos/effects/shipbonusdronehitpointsgf.py | 3 +-- eos/effects/shipbonusdronehitpointsgf2.py | 3 +-- eos/effects/shipbonusdroneminingamountac2.py | 3 +-- eos/effects/shipbonusdroneminingamountgc2.py | 3 +-- eos/effects/shipbonusdronemwdboostgc.py | 3 +-- eos/effects/shipbonusdroneoptimalrangegb.py | 3 +-- .../shipbonusdroneshieldhitpointsab.py | 3 +-- .../shipbonusdroneshieldhitpointsgf2.py | 3 +-- .../shipbonusdronestructurehitpointsab.py | 3 +-- eos/effects/shipbonusdronetrackinggb.py | 3 +-- eos/effects/shipbonusdronetrackinggc.py | 3 +-- eos/effects/shipbonusdronetrackinggf.py | 3 +-- eos/effects/shipbonusecmstrengthbonuscc.py | 3 +-- .../shipbonuselitecover2torpedoemdamage.py | 3 +-- ...pbonuselitecover2torpedoexplosivedamage.py | 3 +-- ...hipbonuselitecover2torpedokineticdamage.py | 3 +-- ...hipbonuselitecover2torpedothermaldamage.py | 3 +-- eos/effects/shipbonusemshieldresistancecb2.py | 3 +-- eos/effects/shipbonusenergyneutrangeab2.py | 3 +-- eos/effects/shipbonusenergyneutrangead2.py | 3 +-- eos/effects/shipbonusenergyvampirerangeab2.py | 3 +-- eos/effects/shipbonusenergyvampirerangead2.py | 3 +-- ...usewremotesensordampenerfalloffbonusgc1.py | 3 +-- ...otesensordampenermaxtargetrangebonusgc2.py | 3 +-- ...otesensordampenermaxtargetrangebonusgf2.py | 3 +-- ...usewremotesensordampeneroptimalbonusgc1.py | 3 +-- ...otesensordampenerscanresolutionbonusgc2.py | 3 +-- ...otesensordampenerscanresolutionbonusgf2.py | 3 +-- ...sensordampenerscanresolutionbonusrookie.py | 1 - ...weapondisruptionrangedisruptionbonusac1.py | 5 ++-- ...weapondisruptionrangedisruptionbonusaf2.py | 5 ++-- ...ewweapondisruptiontrackingspeedbonusac1.py | 3 +-- ...ewweapondisruptiontrackingspeedbonusaf2.py | 3 +-- .../shipbonusexplosiveshieldresistancecb2.py | 3 +-- ...gatesizedlightmissileexplosivedamagemd1.py | 3 +-- ...onusfrigatesizedmissilekineticdamagecd1.py | 3 +-- eos/effects/shipbonusgf1torpedoflighttime.py | 3 +-- .../shipbonusgftorpedoexplosionvelocity.py | 3 +-- ...bonushamvelocityelitebonusheavygunship1.py | 3 +-- ...hipbonusheavyassaultmissilealldamagemc2.py | 3 +-- ...nusheavyassaultmissilekineticdamagecbc1.py | 3 +-- ...bonusheavyassaultmissilelauncherrofmbc2.py | 3 +-- eos/effects/shipbonusheavydronearmorhpgc2.py | 3 +-- .../shipbonusheavydronedamagemultipliergc2.py | 3 +-- eos/effects/shipbonusheavydronehpgc2.py | 3 +-- eos/effects/shipbonusheavydroneshieldhpgc2.py | 3 +-- eos/effects/shipbonusheavydronespeedgc.py | 3 +-- eos/effects/shipbonusheavydronetrackinggc.py | 3 +-- .../shipbonusheavymissilealldamagemc2.py | 3 +-- eos/effects/shipbonusheavymissileemdmgmb.py | 3 +-- .../shipbonusheavymissileexplodmgmb.py | 3 +-- .../shipbonusheavymissilekineticdamagecbc1.py | 3 +-- .../shipbonusheavymissilekineticdmgmb.py | 3 +-- .../shipbonusheavymissilelauncherrofmbc2.py | 3 +-- .../shipbonusheavymissilethermdmgmb.py | 3 +-- eos/effects/shipbonushmlemdamageac.py | 3 +-- eos/effects/shipbonushmlexplodamageac.py | 3 +-- eos/effects/shipbonushmlkineticdamageac.py | 3 +-- eos/effects/shipbonushmlthermdamageac.py | 3 +-- ...bonushmlvelocityelitebonusheavygunship1.py | 3 +-- eos/effects/shipbonushtfalloffgb2.py | 3 +-- eos/effects/shipbonushybridoptimalcb.py | 3 +-- eos/effects/shipbonushybridtrackinggf2.py | 3 +-- .../shipbonusiceharvesterdurationore3.py | 3 +-- .../shipbonuskineticmissiledamagegb2.py | 3 +-- .../shipbonuskineticmissiledamagegc2.py | 3 +-- .../shipbonuskineticmissiledamagegf.py | 3 +-- .../shipbonuskineticshieldresistancecb2.py | 3 +-- .../shipbonuslargeenergyturretmaxrangeab.py | 3 +-- .../shipbonuslargeenergyturretmaxrangeab2.py | 3 +-- .../shipbonuslargeenergyturrettrackingab.py | 3 +-- .../shipbonuslargeenergyweapondamageab2.py | 3 +-- eos/effects/shipbonuslightdronearmorhpgc2.py | 3 +-- .../shipbonuslightdronedamagemultipliergc2.py | 3 +-- eos/effects/shipbonuslightdronehpgc2.py | 3 +-- eos/effects/shipbonuslightdroneshieldhpgc2.py | 3 +-- .../shipbonuslightmissilealldamagemc2.py | 3 +-- eos/effects/shipbonusmediumdronearmorhpgc2.py | 3 +-- ...shipbonusmediumdronedamagemultipliergc2.py | 3 +-- eos/effects/shipbonusmediumdronehpgc2.py | 3 +-- .../shipbonusmediumdroneshieldhpgc2.py | 3 +-- .../shipbonusmediumenergyturrettrackingac2.py | 3 +-- eos/effects/shipbonusmediumhybriddmgcc2.py | 3 +-- eos/effects/shipbonusmetoptimalac2.py | 3 +-- .../shipbonusmf1torpedoexplosionvelocity.py | 3 +-- eos/effects/shipbonusmf1torpedoflighttime.py | 3 +-- eos/effects/shipbonusmineralbaygi2.py | 3 +-- eos/effects/shipbonusminingdurationore3.py | 3 +-- .../shipbonusminingiceharvestingrangeore2.py | 3 +-- eos/effects/shipbonusmissileaoevelocitymb2.py | 3 +-- eos/effects/shipbonusmissilevelocityad2.py | 3 +-- eos/effects/shipbonusmissilevelocitycc2.py | 3 +-- eos/effects/shipbonusmwdsignatureradiusmd2.py | 3 +-- eos/effects/shipbonusnoctissalvagecycle.py | 3 +-- eos/effects/shipbonusnoctistractorcycle.py | 3 +-- eos/effects/shipbonusnoctistractorrange.py | 3 +-- eos/effects/shipbonusnoctistractorvelocity.py | 3 +-- eos/effects/shipbonusorecapacitygi2.py | 3 +-- ...apshipdronearmorhpandshieldhpandhpbonus.py | 3 +-- .../shipbonusorecapshipdronedmgbonus.py | 3 +-- eos/effects/shipbonusoreholdore2.py | 3 +-- eos/effects/shipbonuspicommoditiesholdgi2.py | 3 +-- eos/effects/shipbonusprojectiledamagembc1.py | 3 +-- eos/effects/shipbonusprojectiledamagembc2.py | 3 +-- eos/effects/shipbonusprojectiletrackingmc2.py | 3 +-- eos/effects/shipbonusptfalloffmb1.py | 3 +-- .../shipbonusremotearmorrepairamount2af.py | 3 +-- .../shipbonusremotearmorrepairamountac2.py | 3 +-- .../shipbonusremotearmorrepairamountgc2.py | 3 +-- .../shipbonusremotearmorrepairamountgf2.py | 3 +-- .../shipbonusremotearmorrepaircapneedac1.py | 3 +-- .../shipbonusremotearmorrepaircapneedaf.py | 3 +-- .../shipbonusremotearmorrepaircapneedgc1.py | 3 +-- .../shipbonusremotearmorrepaircapneedgf.py | 3 +-- ...pbonusrepairsystemsarmorrepairamountgb2.py | 3 +-- eos/effects/shipbonusrhmlrof2cb.py | 3 +-- eos/effects/shipbonusrhmlrofcb.py | 3 +-- eos/effects/shipbonusrhmlrofmb.py | 3 +-- eos/effects/shipbonussalvagecycleaf.py | 3 +-- eos/effects/shipbonussalvagecyclecf.py | 3 +-- eos/effects/shipbonussalvagecyclegf.py | 3 +-- eos/effects/shipbonussalvagecyclemf.py | 3 +-- eos/effects/shipbonusscanprobestrength2af.py | 3 +-- eos/effects/shipbonusscanprobestrengthcf.py | 3 +-- eos/effects/shipbonusscanprobestrengthgf.py | 3 +-- eos/effects/shipbonusscanprobestrengthmf.py | 3 +-- eos/effects/shipbonussentryarmorhpgc3.py | 3 +-- .../shipbonussentrydamagemultipliergc3.py | 3 +-- ...roneoptimalrangeelitebonusheavygunship2.py | 3 +-- ...trydronetrackingelitebonusheavygunship2.py | 3 +-- eos/effects/shipbonussentryhpgc3.py | 3 +-- eos/effects/shipbonussentryshieldhpgc3.py | 3 +-- eos/effects/shipbonusshieldboostamountmc2.py | 3 +-- eos/effects/shipbonusshieldboostci2.py | 3 +-- eos/effects/shipbonusshieldboostermb1a.py | 3 +-- eos/effects/shipbonusshieldboostmi2.py | 3 +-- eos/effects/shipbonusshieldcapacityore2.py | 3 +-- .../shipbonusshieldtransferboostamountcc2.py | 3 +-- .../shipbonusshieldtransferboostamountcf2.py | 3 +-- .../shipbonusshieldtransferboostamountmc2.py | 3 +-- .../shipbonusshieldtransferboostamountmf2.py | 3 +-- .../shipbonusshieldtransfercapneed1.py | 3 +-- .../shipbonusshieldtransfercapneedcf.py | 3 +-- .../shipbonusshieldtransfercapneedmc1.py | 3 +-- .../shipbonusshieldtransfercapneedmf.py | 3 +-- .../shipbonussmallenergyturrettracking2af.py | 3 +-- ...shipbonussmallmissileexplosionradiuscd2.py | 3 +-- ...shipbonussmallmissileexplosionradiuscf2.py | 3 +-- eos/effects/shipbonussptfalloffmf2.py | 3 +-- eos/effects/shipbonusstasismf2.py | 3 +-- .../shipbonusstasiswebspeedfactormb.py | 3 +-- ...hipbonusstrategiccruiseramarrheatdamage.py | 3 +-- ...pbonusstrategiccruisercaldariheatdamage.py | 3 +-- ...bonusstrategiccruisergallenteheatdamage.py | 3 +-- ...bonusstrategiccruiserminmatarheatdamage.py | 3 +-- ...robeexplosiondelayskillsurveycovertops3.py | 3 +-- .../shipbonustargetpainteroptimalmf1.py | 3 +-- eos/effects/shipbonustdoptimalbonusaf1.py | 3 +-- .../shipbonusthermalmissiledamagegb2.py | 3 +-- .../shipbonusthermalmissiledamagegc2.py | 3 +-- .../shipbonusthermalmissiledamagegf.py | 3 +-- .../shipbonusthermicshieldresistancecb2.py | 3 +-- eos/effects/shipbonustorpedomissileemdmgmb.py | 3 +-- .../shipbonustorpedomissileexplodmgmb.py | 3 +-- .../shipbonustorpedomissilekineticdmgmb.py | 3 +-- .../shipbonustorpedomissilethermdmgmb.py | 3 +-- eos/effects/shipbonustorpedorofmb.py | 3 +-- eos/effects/shipbonustorpedovelocity2af.py | 3 +-- eos/effects/shipbonustorpedovelocitycf2.py | 3 +-- eos/effects/shipbonustorpedovelocitygf2.py | 3 +-- eos/effects/shipbonustorpedovelocitymf2.py | 3 +-- eos/effects/shipbonusvelocityci.py | 3 +-- eos/effects/shipbonusvelocitygi.py | 3 +-- .../shipbonuswarpscramblemaxrangegb.py | 3 +-- .../shipbonuswarpscramblermaxrangegc2.py | 3 +-- .../shipbonuswarpscramblermaxrangegf2.py | 3 +-- eos/effects/shipcapneedbonusab.py | 3 +-- eos/effects/shipcaprecharge2af.py | 3 +-- eos/effects/shipcargobonusai.py | 3 +-- ...mandbonuseffectivemultiplierorecapital2.py | 3 +-- ...nusindustrialreconfigurationorecapital1.py | 3 +-- .../shipcruiseandsiegelauncherrofbonus2cb.py | 3 +-- .../shipcruiseandtorpedovelocitybonuscb3.py | 3 +-- eos/effects/shipcruiselauncherrofbonus2cb.py | 3 +-- .../shipcruisemissileaoecloudsize1cb.py | 3 +-- eos/effects/shipcruisemissilerofcb.py | 3 +-- .../shipcruisemissilevelocitybonuscb3.py | 3 +-- eos/effects/shipdronescoutthermaldamagegf2.py | 3 +-- eos/effects/shipdronesmaxgc2.py | 4 +-- eos/effects/shipecmscanstrengthbonuscf.py | 3 +-- eos/effects/shipenergydrainamountaf1.py | 3 +-- .../shipenergyneutralizerrangebonusac.py | 3 +-- .../shipenergyneutralizerrangebonusaf2.py | 3 +-- ...penergyneutralizertransferamountbonusab.py | 3 +-- ...penergyneutralizertransferamountbonusac.py | 3 +-- ...penergyneutralizertransferamountbonusaf.py | 3 +-- ...energyneutralizertransferamountbonusaf2.py | 3 +-- eos/effects/shipenergytcapneedbonusaf.py | 3 +-- eos/effects/shipenergytrackingabc1.py | 3 +-- eos/effects/shipenergytransferrange1.py | 3 +-- eos/effects/shipenergytransferrange2.py | 3 +-- .../shipenergyvampireamountbonusfixedaf2.py | 3 +-- .../shipenergyvampirerangebonusfixedac.py | 3 +-- .../shipenergyvampirerangebonusfixedaf2.py | 3 +-- .../shipenergyvampiretransferamountbonusab.py | 3 +-- .../shipenergyvampiretransferamountbonusac.py | 3 +-- eos/effects/shipetdamageaf.py | 3 +-- eos/effects/shipetoptimalrange2af.py | 3 +-- eos/effects/shipetspeedbonusab2.py | 3 +-- eos/effects/shipfalloffbonusgf.py | 3 +-- eos/effects/shipfalloffbonusmf.py | 3 +-- eos/effects/shipgchyieldbonusorefrig2.py | 3 +-- .../shipheatdamageamarrtacticaldestroyer3.py | 3 +-- ...shipheatdamagecaldaritacticaldestroyer3.py | 3 +-- ...hipheatdamagegallentetacticaldestroyer3.py | 3 +-- ...hipheatdamageminmatartacticaldestroyer3.py | 3 +-- ...shipheavyassaultmissileaoecloudsizecbc1.py | 3 +-- .../shipheavyassaultmissileaoecloudsizecc2.py | 3 +-- ...ssaultmissileemandexpandkinandthmdmgac1.py | 3 +-- .../shipheavyassaultmissilevelocitycbc2.py | 3 +-- .../shipheavymissileaoecloudsizecbc1.py | 3 +-- .../shipheavymissileaoecloudsizecc2.py | 3 +-- eos/effects/shipheavymissilevelocitycbc2.py | 3 +-- eos/effects/shiphrangebonuscc.py | 3 +-- eos/effects/shiphtdamagebonuscc.py | 3 +-- eos/effects/shiphtdmgbonusfixedgc.py | 3 +-- eos/effects/shiphtdmgbonusgb.py | 3 +-- eos/effects/shiphttrackingbonusgb.py | 3 +-- eos/effects/shiphttrackingbonusgb2.py | 3 +-- eos/effects/shiphturretfalloffbonusgc.py | 3 +-- eos/effects/shiphybriddamagebonuscbc2.py | 3 +-- eos/effects/shiphybriddamagebonuscf.py | 3 +-- eos/effects/shiphybriddamagebonuscf2.py | 3 +-- eos/effects/shiphybriddamagebonusgbc2.py | 3 +-- eos/effects/shiphybriddmg1gbc1.py | 3 +-- eos/effects/shiphybridfalloff1gd1.py | 3 +-- eos/effects/shiphybridoptimal1cbc1.py | 3 +-- eos/effects/shiphybridoptimalgd1.py | 3 +-- eos/effects/shiphybridrange1cd1.py | 3 +-- eos/effects/shiphybridrangebonuscbc1.py | 3 +-- eos/effects/shiphybridrangebonuscf2.py | 3 +-- eos/effects/shiphybridtracking1gd2.py | 3 +-- eos/effects/shiphybridtrackingcd2.py | 3 +-- eos/effects/shiphybridtrackinggbc2.py | 3 +-- eos/effects/shiphybridtrackinggc.py | 3 +-- eos/effects/shiphybridtrackinggc2.py | 3 +-- eos/effects/shiphybridturretrofbonusgc2.py | 3 +-- .../shiplargehybridtrackingbonusgbc1.py | 3 +-- eos/effects/shiplargehybridturretrofgb.py | 3 +-- eos/effects/shiplargelasercapabc1.py | 3 +-- eos/effects/shiplargelaserdamagebonusabc2.py | 3 +-- eos/effects/shiplasercap1abc2.py | 3 +-- eos/effects/shiplasercapabc1.py | 3 +-- eos/effects/shiplasercapneed2ad1.py | 3 +-- eos/effects/shiplaserdamagebonusabc2.py | 3 +-- eos/effects/shiplaserrofac2.py | 3 +-- eos/effects/shiplasertracking2ad2.py | 3 +-- eos/effects/shipmetcdamagebonusac.py | 3 +-- eos/effects/shipmetdamagebonusac2.py | 3 +-- eos/effects/shipminingbonusorefrig1.py | 3 +-- ...ipmissileassaultmissilevelocitybonuscc2.py | 3 +-- eos/effects/shipmissileemdamagecb.py | 3 +-- eos/effects/shipmissileemdamagecc.py | 3 +-- eos/effects/shipmissileemdamagecf2.py | 3 +-- eos/effects/shipmissileexpdamagecc.py | 3 +-- eos/effects/shipmissileexplodamagecb.py | 3 +-- eos/effects/shipmissileexplosivedamagecf2.py | 3 +-- .../shipmissileheavyassaultvelocityabc2.py | 3 +-- eos/effects/shipmissileheavyvelocityabc2.py | 3 +-- .../shipmissileheavyvelocitybonuscc2.py | 3 +-- eos/effects/shipmissilekindamagecb.py | 3 +-- eos/effects/shipmissilekindamagecc2.py | 3 +-- eos/effects/shipmissilekineticdamagecc.py | 3 +-- eos/effects/shipmissilekineticdamagecf.py | 3 +-- eos/effects/shipmissilekineticdamagecf2.py | 3 +-- eos/effects/shipmissilelauncherrofad1fixed.py | 3 +-- eos/effects/shipmissilelauncherrofcc2.py | 3 +-- .../shipmissilelauncherspeedbonusmc2.py | 3 +-- .../shipmissilelightvelocitybonuscc2.py | 3 +-- .../shipmissilelightvelocitybonuscf2.py | 3 +-- ...silereloadtimecaldaritacticaldestroyer2.py | 3 +-- .../shipmissilerocketvelocitybonuscf2.py | 3 +-- ...shipmissilerofcaldaritacticaldestroyer1.py | 3 +-- eos/effects/shipmissilerofcc.py | 3 +-- eos/effects/shipmissilerofmf2.py | 3 +-- eos/effects/shipmissilespeedbonusaf.py | 3 +-- eos/effects/shipmissilespeedbonuscf.py | 3 +-- eos/effects/shipmissilethermaldamagecf2.py | 3 +-- eos/effects/shipmissilethermdamagecb.py | 3 +-- eos/effects/shipmissilethermdamagecc.py | 3 +-- eos/effects/shipmissilevelocitycd1.py | 3 +-- eos/effects/shipmissilevelocitycf.py | 3 +-- eos/effects/shippdmgbonusmf.py | 3 +-- eos/effects/shipprojectiledamagemd1.py | 3 +-- eos/effects/shipprojectiledmgmc.py | 3 +-- eos/effects/shipprojectiledmgmc2.py | 3 +-- eos/effects/shipprojectilefalloffbonusmbc2.py | 3 +-- eos/effects/shipprojectileoptimalbonusemf2.py | 3 +-- eos/effects/shipprojectilerof1mbc2.py | 3 +-- eos/effects/shipprojectilerofbonusmbc1.py | 3 +-- eos/effects/shipprojectiletracking1md2.py | 3 +-- eos/effects/shipprojectiletrackinggf.py | 3 +-- eos/effects/shipprojectiletrackingmf2.py | 3 +-- eos/effects/shipptdmgbonusmb.py | 3 +-- eos/effects/shipptspeedbonusmb2.py | 3 +-- eos/effects/shippturretfalloffbonusgb.py | 3 +-- eos/effects/shippturretfalloffbonusgc.py | 3 +-- eos/effects/shippturretfalloffbonusmc2.py | 3 +-- eos/effects/shippturretspeedbonusmc.py | 3 +-- eos/effects/shipremotearmorrange1.py | 3 +-- eos/effects/shipremotearmorrange2.py | 3 +-- .../shipremotesensordampenercapneedgf.py | 3 +-- eos/effects/shiprocketemdmgaf.py | 3 +-- eos/effects/shiprocketexplosivedmgaf.py | 3 +-- eos/effects/shiprocketexplosivedmgmd1.py | 3 +-- eos/effects/shiprocketkineticdmgaf.py | 3 +-- eos/effects/shiprocketkineticdmgcd1.py | 3 +-- eos/effects/shiprocketrofbonusaf2.py | 3 +-- eos/effects/shiprocketthermaldmgaf.py | 3 +-- .../shipsetcapneedamarrtacticaldestroyer2.py | 3 +-- .../shipsetdamageamarrtacticaldestroyer1.py | 3 +-- eos/effects/shipsetdmgbonus2af.py | 3 +-- eos/effects/shipsetdmgbonusaf.py | 3 +-- eos/effects/shipsettrackingbonusaf.py | 3 +-- eos/effects/shipshieldboost1mbc1.py | 3 +-- eos/effects/shipshieldboostmf.py | 3 +-- eos/effects/shipshieldemresistance1cbc2.py | 3 +-- eos/effects/shipshieldemresistancecc2.py | 3 +-- eos/effects/shipshieldemresistancecf2.py | 3 +-- .../shipshieldexplosiveresistance1cbc2.py | 3 +-- .../shipshieldexplosiveresistancecc2.py | 3 +-- .../shipshieldexplosiveresistancecf2.py | 3 +-- .../shipshieldkineticresistance1cbc2.py | 3 +-- eos/effects/shipshieldkineticresistancecc2.py | 3 +-- eos/effects/shipshieldkineticresistancecf2.py | 3 +-- .../shipshieldthermalresistance1cbc2.py | 3 +-- eos/effects/shipshieldthermalresistancecc2.py | 3 +-- eos/effects/shipshieldthermalresistancecf2.py | 3 +-- eos/effects/shipshieldtransferrange1.py | 3 +-- eos/effects/shipshieldtransferrange2.py | 3 +-- eos/effects/shipshtdmgbonusgf.py | 3 +-- eos/effects/shipshtoptimalbonusgf.py | 3 +-- .../shipshtrofgallentetacticaldestroyer1.py | 3 +-- ...ipshttrackinggallentetacticaldestroyer2.py | 3 +-- eos/effects/shipsiegelauncherrofbonus2cb.py | 3 +-- eos/effects/shipsmallmissileemdmgcf2.py | 3 +-- eos/effects/shipsmallmissileexpdmgcf2.py | 3 +-- eos/effects/shipsmallmissilekindmgcf2.py | 3 +-- eos/effects/shipsmallmissilethermdmgcf2.py | 3 +-- ...shipsptdamageminmatartacticaldestroyer1.py | 3 +-- eos/effects/shipsptoptimalbonusmf.py | 3 +-- ...hipsptoptimalminmatartacticaldestroyer2.py | 3 +-- eos/effects/shipstasiswebrangebonusmb.py | 3 +-- eos/effects/shipstasiswebrangebonusmc2.py | 3 +-- eos/effects/shipstasiswebstrengthbonusmc2.py | 3 +-- eos/effects/shipstasiswebstrengthbonusmf2.py | 3 +-- eos/effects/shiptcapneedbonusac.py | 3 +-- eos/effects/shiptorpedoaoecloudsize1cb.py | 3 +-- eos/effects/shiptorpedorofcb.py | 3 +-- eos/effects/shiptorpedosvelocitybonuscb3.py | 3 +-- eos/effects/shiptrackingbonusab.py | 3 +-- eos/effects/shiptrackinglinkrange1fixed.py | 3 +-- eos/effects/shiptrackinglinkrange2group.py | 3 +-- eos/effects/shipvelocitybonusai.py | 3 +-- eos/effects/shipvelocitybonusmi.py | 3 +-- ...samarrdefensive2remotearmorrepairamount.py | 3 +-- ...systembonusamarrdefensivearmoredwarfare.py | 3 +-- .../subsystembonusamarrdefensivearmorhp.py | 3 +-- ...tembonusamarrdefensivearmorrepairamount.py | 3 +-- ...ystembonusamarrdefensivearmorresistance.py | 3 +-- ...embonusamarrdefensiveinformationwarfare.py | 3 +-- ...samarrdefensiveinformationwarfarehidden.py | 3 +-- ...ystembonusamarrdefensiveskirmishwarfare.py | 3 +-- ...mbonusamarrelectronic2maxtargetingrange.py | 3 +-- ...stembonusamarrelectronic2scanresolution.py | 3 +-- ...embonusamarrelectronic2tractorbeamrange.py | 3 +-- ...onusamarrelectronic2tractorbeamvelocity.py | 3 +-- ...amarrelectronicenergydestabilizeramount.py | 3 +-- ...bonusamarrelectronicenergyvampireamount.py | 3 +-- ...embonusamarrelectronicscanprobestrength.py | 3 +-- ...embonusamarrelectronicscanstrengthradar.py | 3 +-- ...mbonusamarrengineeringcapacitorcapacity.py | 3 +-- ...mbonusamarrengineeringcapacitorrecharge.py | 3 +-- ...onusamarrengineeringheatdamagereduction.py | 3 +-- ...bsystembonusamarrengineeringpoweroutput.py | 3 +-- ...marroffensive2energyweaponcapacitorneed.py | 3 +-- ...ubsystembonusamarroffensive2hamemdamage.py | 3 +-- ...mbonusamarroffensive2hamexplosivedamage.py | 3 +-- ...tembonusamarroffensive2hamkineticdamage.py | 3 +-- ...tembonusamarroffensive2hamthermaldamage.py | 3 +-- .../subsystembonusamarroffensive3dronehp.py | 3 +-- ...onusamarroffensive3energyweaponmaxrange.py | 3 +-- ...amarroffensiveassaultmissilelauncherrof.py | 3 +-- ...onusamarroffensivedronedamagemultiplier.py | 3 +-- ...amarroffensiveenergyweaponcapacitorneed.py | 3 +-- ...rroffensiveenergyweapondamagemultiplier.py | 3 +-- ...offensiveheavyassaultmissilelauncherrof.py | 3 +-- ...usamarroffensiveheavymissilelauncherrof.py | 3 +-- ...usamarrpropulsionafterburnerspeedfactor.py | 3 +-- .../subsystembonusamarrpropulsionagility.py | 3 +-- ...ubsystembonusamarrpropulsionmaxvelocity.py | 3 +-- ...subsystembonusamarrpropulsionmwdpenalty.py | 3 +-- ...defensive2remoteshieldtransporteramount.py | 3 +-- ...bonuscaldaridefensiveinformationwarfare.py | 3 +-- ...aldaridefensiveinformationwarfarehidden.py | 3 +-- ...mbonuscaldaridefensiveshieldboostamount.py | 3 +-- .../subsystembonuscaldaridefensiveshieldhp.py | 3 +-- ...bonuscaldaridefensiveshieldrechargerate.py | 3 +-- ...embonuscaldaridefensiveshieldresistance.py | 3 +-- ...systembonuscaldaridefensivesiegewarfare.py | 3 +-- ...tembonuscaldaridefensiveskirmishwarfare.py | 3 +-- ...onuscaldarielectronic2maxtargetingrange.py | 3 +-- ...bonuscaldarielectronic2tractorbeamrange.py | 3 +-- ...uscaldarielectronic2tractorbeamvelocity.py | 3 +-- .../subsystembonuscaldarielectroniccpu.py | 3 +-- ...subsystembonuscaldarielectronicecmrange.py | 3 +-- ...bonuscaldarielectronicscanprobestrength.py | 3 +-- ...aldarielectronicscanstrengthgravimetric.py | 3 +-- ...onuscaldariengineeringcapacitorcapacity.py | 3 +-- ...onuscaldariengineeringcapacitorrecharge.py | 3 +-- ...uscaldariengineeringheatdamagereduction.py | 3 +-- ...ystembonuscaldariengineeringpoweroutput.py | 3 +-- ...ioffensive2hybridweapondamagemultiplier.py | 3 +-- ...ioffensive2missilelauncherkineticdamage.py | 3 +-- ...tembonuscaldarioffensive3ewstrengthgrav.py | 3 +-- ...embonuscaldarioffensive3ewstrengthladar.py | 3 +-- ...tembonuscaldarioffensive3ewstrengthmagn.py | 3 +-- ...embonuscaldarioffensive3ewstrengthradar.py | 3 +-- ...rioffensive3heavyassaultmissilevelocity.py | 3 +-- ...uscaldarioffensive3heavymissilevelocity.py | 3 +-- ...ldarioffensiveassaultmissilelauncherrof.py | 3 +-- ...offensiveheavyassaultmissilelauncherrof.py | 3 +-- ...caldarioffensiveheavymissilelauncherrof.py | 3 +-- ...nuscaldarioffensivehybridweaponmaxrange.py | 3 +-- ...embonuscaldaripropulsion2warpcapacitor2.py | 3 +-- ...caldaripropulsionafterburnerspeedfactor.py | 3 +-- .../subsystembonuscaldaripropulsionagility.py | 3 +-- ...ubsystembonuscaldaripropulsionwarpspeed.py | 3 +-- ...llentedefensive2remotearmorrepairamount.py | 3 +-- ...tembonusgallentedefensivearmoredwarfare.py | 3 +-- .../subsystembonusgallentedefensivearmorhp.py | 3 +-- ...bonusgallentedefensivearmorrepairamount.py | 3 +-- ...embonusgallentedefensivearmorresistance.py | 3 +-- ...onusgallentedefensiveinformationwarfare.py | 3 +-- ...llentedefensiveinformationwarfarehidden.py | 3 +-- ...embonusgallentedefensiveskirmishwarfare.py | 3 +-- ...nusgallenteelectronic2maxtargetingrange.py | 3 +-- ...onusgallenteelectronic2tractorbeamrange.py | 3 +-- ...sgallenteelectronic2tractorbeamvelocity.py | 3 +-- .../subsystembonusgallenteelectroniccpu.py | 3 +-- ...onusgallenteelectronicscanprobestrength.py | 3 +-- ...enteelectronicscanstrengthmagnetometric.py | 3 +-- ...onusgallenteelectronicwarpscramblerange.py | 3 +-- ...systembonusgallenteengineering2dronemwd.py | 3 +-- ...nusgallenteengineeringcapacitorrecharge.py | 3 +-- ...ubsystembonusgallenteengineeringdronehp.py | 3 +-- ...sgallenteengineeringheatdamagereduction.py | 3 +-- ...stembonusgallenteengineeringpoweroutput.py | 3 +-- ...eoffensive2hybridweapondamagemultiplier.py | 3 +-- ...gallenteoffensive3dronedamagemultiplier.py | 3 +-- ...embonusgallenteoffensive3turrettracking.py | 3 +-- .../subsystembonusgallenteoffensivedronehp.py | 3 +-- ...teoffensivehybridweapondamagemultiplier.py | 3 +-- ...nusgallenteoffensivehybridweaponfalloff.py | 3 +-- ...embonusgallentepropulsion2warpcapacitor.py | 3 +-- ...stembonusgallentepropulsionabmwdcapneed.py | 3 +-- ...subsystembonusgallentepropulsionagility.py | 3 +-- ...systembonusgallentepropulsionmwdpenalty.py | 3 +-- ...bsystembonusgallentepropulsionwarpspeed.py | 3 +-- ...defensive2remoteshieldtransporteramount.py | 3 +-- ...tembonusminmatardefensivearmoredwarfare.py | 3 +-- ...embonusminmatardefensivearmorresistance.py | 3 +-- ...mbonusminmatardefensiveshieldresistance.py | 3 +-- ...ystembonusminmatardefensivesiegewarfare.py | 3 +-- ...embonusminmatardefensivesignatureradius.py | 3 +-- ...embonusminmatardefensiveskirmishwarfare.py | 3 +-- ...nusminmatarelectronic2maxtargetingrange.py | 3 +-- ...mbonusminmatarelectronic2scanresolution.py | 3 +-- ...onusminmatarelectronic2tractorbeamrange.py | 3 +-- ...sminmatarelectronic2tractorbeamvelocity.py | 3 +-- ...onusminmatarelectronicscanprobestrength.py | 3 +-- ...onusminmatarelectronicscanstrengthladar.py | 3 +-- ...usminmatarelectronicstasiswebifierrange.py | 3 +-- ...nusminmatarengineeringcapacitorcapacity.py | 3 +-- ...nusminmatarengineeringcapacitorrecharge.py | 3 +-- ...sminmatarengineeringheatdamagereduction.py | 3 +-- ...stembonusminmatarengineeringpoweroutput.py | 3 +-- ...ensive2projectileweapondamagemultiplier.py | 3 +-- ...usminmataroffensive2projectileweaponrof.py | 3 +-- ...embonusminmataroffensive3turrettracking.py | 3 +-- ...mataroffensiveassaultmissilelauncherrof.py | 3 +-- ...offensiveheavyassaultmissilelauncherrof.py | 3 +-- ...inmataroffensiveheavymissilelauncherrof.py | 3 +-- ...inmataroffensiveprojectileweaponfalloff.py | 3 +-- ...nmataroffensiveprojectileweaponmaxrange.py | 3 +-- ...nusminmataroffensiveprojectileweaponrof.py | 3 +-- ...inmatarpropulsionafterburnerspeedfactor.py | 3 +-- ...subsystembonusminmatarpropulsionagility.py | 3 +-- ...ystembonusminmatarpropulsionmaxvelocity.py | 3 +-- eos/effects/titanamarrlaserdmg3.py | 3 +-- .../titanamarrleadershipmoduleamount4.py | 3 +-- .../titancaldarileadershipmoduleamount4.py | 3 +-- eos/effects/titancaldarimissilekineticdmg2.py | 3 +-- eos/effects/titangallentehybriddamage1.py | 3 +-- .../titangallenteleadershipmoduleamount4.py | 3 +-- .../titanminmatarleadershipmoduleamount4.py | 3 +-- eos/effects/titanminmatarprojectiledmg3.py | 3 +-- eos/effects/zcolinorcacargobonus.py | 3 +-- eos/effects/zcolinorcaforemanmodbonus.py | 3 +-- eos/modifiedAttributeDict.py | 26 ++++++++++++++++--- gui/builtinContextMenus/__init__.py | 2 +- 785 files changed, 814 insertions(+), 1584 deletions(-) diff --git a/eos/effects/blockaderunnercloakcpupercentbonus.py b/eos/effects/blockaderunnercloakcpupercentbonus.py index 70cc5f132..aaca38f6a 100644 --- a/eos/effects/blockaderunnercloakcpupercentbonus.py +++ b/eos/effects/blockaderunnercloakcpupercentbonus.py @@ -5,6 +5,5 @@ type = "passive" runTime = "early" def handler(fit, ship, context): - level = fit.character.getSkill("Transport Ships").level fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Cloaking Device", - "cpu", ship.getModifiedItemAttr("eliteIndustrialCovertCloakBonus") * level) + "cpu", ship.getModifiedItemAttr("eliteIndustrialCovertCloakBonus"), skill="Transport Ships") diff --git a/eos/effects/caldarishipecmburstoptimalrangecb3.py b/eos/effects/caldarishipecmburstoptimalrangecb3.py index 4cb1863dd..7675fd758 100644 --- a/eos/effects/caldarishipecmburstoptimalrangecb3.py +++ b/eos/effects/caldarishipecmburstoptimalrangecb3.py @@ -4,6 +4,5 @@ # Ship: Scorpion type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Caldari Battleship").level fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "ECM Burst", - "ecmBurstRange", ship.getModifiedItemAttr("shipBonusCB3") * level) \ No newline at end of file + "ecmBurstRange", ship.getModifiedItemAttr("shipBonusCB3"), skill="Caldari Battleship") diff --git a/eos/effects/caldarishipewcapacitorneedcc.py b/eos/effects/caldarishipewcapacitorneedcc.py index e30f96999..d0c1f9108 100644 --- a/eos/effects/caldarishipewcapacitorneedcc.py +++ b/eos/effects/caldarishipewcapacitorneedcc.py @@ -6,6 +6,5 @@ # Ship: Rook type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Caldari Cruiser").level fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "ECM", - "capacitorNeed", ship.getModifiedItemAttr("shipBonusCC") * level) + "capacitorNeed", ship.getModifiedItemAttr("shipBonusCC", skill="Caldari Cruiser") diff --git a/eos/effects/caldarishipewcapacitorneedcf2.py b/eos/effects/caldarishipewcapacitorneedcf2.py index 1c244dd2b..58c2e34a0 100644 --- a/eos/effects/caldarishipewcapacitorneedcf2.py +++ b/eos/effects/caldarishipewcapacitorneedcf2.py @@ -4,6 +4,5 @@ # Variations of ship: Griffin (2 of 2) type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Caldari Frigate").level fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "ECM", - "capacitorNeed", ship.getModifiedItemAttr("shipBonusCF2") * level) + "capacitorNeed", ship.getModifiedItemAttr("shipBonusCF2"), skill="Caldari Frigate") diff --git a/eos/effects/caldarishipewfalloffrangecb3.py b/eos/effects/caldarishipewfalloffrangecb3.py index 53c0c30fb..c5e520bee 100644 --- a/eos/effects/caldarishipewfalloffrangecb3.py +++ b/eos/effects/caldarishipewfalloffrangecb3.py @@ -4,6 +4,5 @@ # Ship: Scorpion type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Caldari Battleship").level fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "ECM", - "falloff", ship.getModifiedItemAttr("shipBonusCB3") * level) \ No newline at end of file + "falloff", ship.getModifiedItemAttr("shipBonusCB3"), skill="Caldari Battleship") diff --git a/eos/effects/caldarishipewfalloffrangecc2.py b/eos/effects/caldarishipewfalloffrangecc2.py index 0b8d78379..c1a05d6d6 100644 --- a/eos/effects/caldarishipewfalloffrangecc2.py +++ b/eos/effects/caldarishipewfalloffrangecc2.py @@ -4,6 +4,5 @@ # Ship: Blackbird type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Caldari Cruiser").level fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "ECM", - "falloff", ship.getModifiedItemAttr("shipBonusCC2") * level) + "falloff", ship.getModifiedItemAttr("shipBonusCC2"), skill="Caldari Cruiser") diff --git a/eos/effects/caldarishipewoptimalrangecb3.py b/eos/effects/caldarishipewoptimalrangecb3.py index 22a59a00c..53794d267 100644 --- a/eos/effects/caldarishipewoptimalrangecb3.py +++ b/eos/effects/caldarishipewoptimalrangecb3.py @@ -4,6 +4,5 @@ # Ship: Scorpion type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Caldari Battleship").level fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "ECM", - "maxRange", ship.getModifiedItemAttr("shipBonusCB3") * level) \ No newline at end of file + "maxRange", ship.getModifiedItemAttr("shipBonusCB3"), skill="Caldari Battleship") diff --git a/eos/effects/caldarishipewoptimalrangecc2.py b/eos/effects/caldarishipewoptimalrangecc2.py index db80957bd..d6e8b850e 100644 --- a/eos/effects/caldarishipewoptimalrangecc2.py +++ b/eos/effects/caldarishipewoptimalrangecc2.py @@ -4,6 +4,5 @@ # Ship: Blackbird type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Caldari Cruiser").level fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "ECM", - "maxRange", ship.getModifiedItemAttr("shipBonusCC2") * level) + "maxRange", ship.getModifiedItemAttr("shipBonusCC2"), skill="Caldari Cruiser") diff --git a/eos/effects/caldarishipewstrengthcb.py b/eos/effects/caldarishipewstrengthcb.py index 680703718..1ac5a01c0 100644 --- a/eos/effects/caldarishipewstrengthcb.py +++ b/eos/effects/caldarishipewstrengthcb.py @@ -4,8 +4,7 @@ # Ship: Scorpion type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Caldari Battleship").level for sensorType in ("Gravimetric", "Ladar", "Magnetometric", "Radar"): fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "ECM", "scan{0}StrengthBonus".format(sensorType), - ship.getModifiedItemAttr("shipBonusCB") * level) + ship.getModifiedItemAttr("shipBonusCB"), skill="Caldari Battleship") diff --git a/eos/effects/carrieramarrarmorenergytransferrange3.py b/eos/effects/carrieramarrarmorenergytransferrange3.py index 92cf89337..cfe150ded 100644 --- a/eos/effects/carrieramarrarmorenergytransferrange3.py +++ b/eos/effects/carrieramarrarmorenergytransferrange3.py @@ -5,9 +5,7 @@ # Ship: Archon type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Amarr Carrier").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capital Remote Armor Repair Systems"), - "maxRange", ship.getModifiedItemAttr("carrierAmarrBonus3") * level) + "maxRange", ship.getModifiedItemAttr("carrierAmarrBonus3"), skill="Amarr Carrier") fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capital Capacitor Emission Systems"), - "powerTransferRange", ship.getModifiedItemAttr("carrierAmarrBonus3") * level) - \ No newline at end of file + "powerTransferRange", ship.getModifiedItemAttr("carrierAmarrBonus3"), skill="Amarr Carrier") diff --git a/eos/effects/carrieramarrarmorresist2.py b/eos/effects/carrieramarrarmorresist2.py index c10204b66..c4ff2e9dd 100644 --- a/eos/effects/carrieramarrarmorresist2.py +++ b/eos/effects/carrieramarrarmorresist2.py @@ -5,7 +5,6 @@ # Ship: Archon type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Amarr Carrier").level for resType in ("Em", "Explosive", "Kinetic", "Thermal"): fit.ship.boostItemAttr("armor{0}DamageResonance".format(resType), - ship.getModifiedItemAttr("carrierAmarrBonus2") * level) + ship.getModifiedItemAttr("carrierAmarrBonus2"), skill="Amarr Carrier") diff --git a/eos/effects/carrieramarrdronemax1.py b/eos/effects/carrieramarrdronemax1.py index f91b6d3d8..0908e0cf6 100644 --- a/eos/effects/carrieramarrdronemax1.py +++ b/eos/effects/carrieramarrdronemax1.py @@ -5,6 +5,4 @@ # Ship: Archon type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Amarr Carrier").level - amount = ship.getModifiedItemAttr("carrierAmarrBonus1") - fit.extraAttributes.increase("maxActiveDrones", amount * level) + fit.extraAttributes.increase("maxActiveDrones", ship.getModifiedItemAttr("carrierAmarrBonus1"), skill="Amarr Carrier") diff --git a/eos/effects/carrieramarrfighterbombermaxvelocity2.py b/eos/effects/carrieramarrfighterbombermaxvelocity2.py index b48ebd3cf..8a3a49b7a 100644 --- a/eos/effects/carrieramarrfighterbombermaxvelocity2.py +++ b/eos/effects/carrieramarrfighterbombermaxvelocity2.py @@ -4,6 +4,5 @@ # Ship: Revenant type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Amarr Carrier").level fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Fighter Bombers"), - "maxVelocity", ship.getModifiedItemAttr("carrierAmarrBonus2") * level) + "maxVelocity", ship.getModifiedItemAttr("carrierAmarrBonus2"), skill="Amarr Carrier") diff --git a/eos/effects/carrieramarrfightermaxvelocity2.py b/eos/effects/carrieramarrfightermaxvelocity2.py index abb9dd005..085ddf508 100644 --- a/eos/effects/carrieramarrfightermaxvelocity2.py +++ b/eos/effects/carrieramarrfightermaxvelocity2.py @@ -4,6 +4,5 @@ # Ship: Revenant type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Amarr Carrier").level fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Fighters"), - "maxVelocity", ship.getModifiedItemAttr("carrierAmarrBonus2") * level) + "maxVelocity", ship.getModifiedItemAttr("carrierAmarrBonus2"), skill="Amarr Carrier") diff --git a/eos/effects/carrieramarrleadershipmaxgroupactive4.py b/eos/effects/carrieramarrleadershipmaxgroupactive4.py index e78dd541d..6b46d82a5 100644 --- a/eos/effects/carrieramarrleadershipmaxgroupactive4.py +++ b/eos/effects/carrieramarrleadershipmaxgroupactive4.py @@ -5,6 +5,5 @@ # Ship: Revenant type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Amarr Carrier").level fit.modules.filteredItemIncrease(lambda mod: mod.item.group.name == "Gang Coordinator", - "maxGroupActive", ship.getModifiedItemAttr("carrierAmarrBonus4") * level) + "maxGroupActive", ship.getModifiedItemAttr("carrierAmarrBonus4"), skill="Amarr Carrier") diff --git a/eos/effects/carriercaldaridronemax1.py b/eos/effects/carriercaldaridronemax1.py index 7bae73470..aa9f9f69a 100644 --- a/eos/effects/carriercaldaridronemax1.py +++ b/eos/effects/carriercaldaridronemax1.py @@ -5,6 +5,4 @@ # Ship: Wyvern type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Caldari Carrier").level - amount = ship.getModifiedItemAttr("carrierCaldariBonus1") - fit.extraAttributes.increase("maxActiveDrones", amount * level) + fit.extraAttributes.increase("maxActiveDrones", ship.getModifiedItemAttr("carrierCaldariBonus1"), skill="Caldari Carrier") diff --git a/eos/effects/carriercaldarifightersandbomberssig1.py b/eos/effects/carriercaldarifightersandbomberssig1.py index 3689bdd7c..3602e72e7 100644 --- a/eos/effects/carriercaldarifightersandbomberssig1.py +++ b/eos/effects/carriercaldarifightersandbomberssig1.py @@ -4,6 +4,5 @@ # Ship: Revenant type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Caldari Carrier").level fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Fighters") or drone.item.requiresSkill("Fighter Bombers"), - "signatureRadius", ship.getModifiedItemAttr("carrierCaldariBonus1") * level) + "signatureRadius", ship.getModifiedItemAttr("carrierCaldariBonus1"), skill="Caldari Carrier") diff --git a/eos/effects/carriercaldarileadershipmaxgroupactive4.py b/eos/effects/carriercaldarileadershipmaxgroupactive4.py index 3bf0fd44b..118bef11d 100644 --- a/eos/effects/carriercaldarileadershipmaxgroupactive4.py +++ b/eos/effects/carriercaldarileadershipmaxgroupactive4.py @@ -4,6 +4,5 @@ # Ship: Wyvern type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Caldari Carrier").level fit.modules.filteredItemIncrease(lambda mod: mod.item.group.name == "Gang Coordinator", - "maxGroupActive", ship.getModifiedItemAttr("carrierCaldariBonus4") * level) + "maxGroupActive", ship.getModifiedItemAttr("carrierCaldariBonus4"), skill="Caldari Carrier") diff --git a/eos/effects/carriercaldarishieldenergytransferrange3.py b/eos/effects/carriercaldarishieldenergytransferrange3.py index 3874ed4b0..4d75090c5 100644 --- a/eos/effects/carriercaldarishieldenergytransferrange3.py +++ b/eos/effects/carriercaldarishieldenergytransferrange3.py @@ -6,8 +6,7 @@ # Ship: Wyvern type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Caldari Carrier").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capital Shield Emission Systems"), - "shieldTransferRange", ship.getModifiedItemAttr("carrierCaldariBonus3") * level) + "shieldTransferRange", ship.getModifiedItemAttr("carrierCaldariBonus3"), skill="Caldari Carrier") fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capital Capacitor Emission Systems"), - "powerTransferRange", ship.getModifiedItemAttr("carrierCaldariBonus3") * level) + "powerTransferRange", ship.getModifiedItemAttr("carrierCaldariBonus3"), skill="Caldari Carrier") diff --git a/eos/effects/carriercaldarishieldresist2.py b/eos/effects/carriercaldarishieldresist2.py index 3699782e2..29e4de20a 100644 --- a/eos/effects/carriercaldarishieldresist2.py +++ b/eos/effects/carriercaldarishieldresist2.py @@ -5,7 +5,6 @@ # Ship: Wyvern type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Caldari Carrier").level for resType in ("Em", "Explosive", "Kinetic", "Thermal"): fit.ship.boostItemAttr("shield{0}DamageResonance".format(resType), - ship.getModifiedItemAttr("carrierCaldariBonus2") * level) + ship.getModifiedItemAttr("carrierCaldariBonus2"), skill="Caldari Carrier") diff --git a/eos/effects/carriergallentearmorshieldtransferrange3.py b/eos/effects/carriergallentearmorshieldtransferrange3.py index cd13920fa..76f995889 100644 --- a/eos/effects/carriergallentearmorshieldtransferrange3.py +++ b/eos/effects/carriergallentearmorshieldtransferrange3.py @@ -5,8 +5,7 @@ # Ship: Thanatos type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Gallente Carrier").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capital Shield Emission Systems"), - "shieldTransferRange", ship.getModifiedItemAttr("carrierGallenteBonus3") * level) + "shieldTransferRange", ship.getModifiedItemAttr("carrierGallenteBonus3"), skill="Gallente Carrier") fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capital Remote Armor Repair Systems"), - "maxRange", ship.getModifiedItemAttr("carrierGallenteBonus3") * level) + "maxRange", ship.getModifiedItemAttr("carrierGallenteBonus3"), skill="Gallente Carrier") diff --git a/eos/effects/carriergallentebomberdroneowndmg2.py b/eos/effects/carriergallentebomberdroneowndmg2.py index 94de6ff25..3dafc54f8 100644 --- a/eos/effects/carriergallentebomberdroneowndmg2.py +++ b/eos/effects/carriergallentebomberdroneowndmg2.py @@ -4,6 +4,5 @@ # Ship: Nyx type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Gallente Carrier").level fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Fighter Bombers"), - "damageMultiplier", ship.getModifiedItemAttr("carrierGallenteBonus2") * level) + "damageMultiplier", ship.getModifiedItemAttr("carrierGallenteBonus2"), skill="Gallente Carrier") diff --git a/eos/effects/carriergallentedronemax1.py b/eos/effects/carriergallentedronemax1.py index 93dcfcfa4..8f05ba0be 100644 --- a/eos/effects/carriergallentedronemax1.py +++ b/eos/effects/carriergallentedronemax1.py @@ -5,6 +5,4 @@ # Ship: Thanatos type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Gallente Carrier").level - amount = ship.getModifiedItemAttr("carrierGallenteBonus1") - fit.extraAttributes.increase("maxActiveDrones", amount * level) + fit.extraAttributes.increase("maxActiveDrones", ship.getModifiedItemAttr("carrierGallenteBonus1"), skill="Gallente Carrier") diff --git a/eos/effects/carriergallentedroneowndmg2.py b/eos/effects/carriergallentedroneowndmg2.py index 06fcb12fb..a9fcc279b 100644 --- a/eos/effects/carriergallentedroneowndmg2.py +++ b/eos/effects/carriergallentedroneowndmg2.py @@ -5,6 +5,5 @@ # Ship: Thanatos type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Gallente Carrier").level fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Fighters"), - "damageMultiplier", ship.getModifiedItemAttr("carrierGallenteBonus2") * level) + "damageMultiplier", ship.getModifiedItemAttr("carrierGallenteBonus2"), skill="Gallente Carrier") diff --git a/eos/effects/carriergallenteleadershipmaxgroupactive4.py b/eos/effects/carriergallenteleadershipmaxgroupactive4.py index b265b6718..a82ea857d 100644 --- a/eos/effects/carriergallenteleadershipmaxgroupactive4.py +++ b/eos/effects/carriergallenteleadershipmaxgroupactive4.py @@ -4,6 +4,5 @@ # Ship: Nyx type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Gallente Carrier").level fit.modules.filteredItemIncrease(lambda mod: mod.item.group.name == "Gang Coordinator", - "maxGroupActive", ship.getModifiedItemAttr("carrierGallenteBonus4") * level) + "maxGroupActive", ship.getModifiedItemAttr("carrierGallenteBonus4"), skill="Gallente Carrier") diff --git a/eos/effects/carrierminmatararmorshieldamount.py b/eos/effects/carrierminmatararmorshieldamount.py index a29634ecd..b8a5fbfb3 100644 --- a/eos/effects/carrierminmatararmorshieldamount.py +++ b/eos/effects/carrierminmatararmorshieldamount.py @@ -5,8 +5,7 @@ # Ship: Nidhoggur type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Minmatar Carrier").level fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Remote Shield Booster", - "shieldBonus", ship.getModifiedItemAttr("carrierMinmatarBonus2") * level) + "shieldBonus", ship.getModifiedItemAttr("carrierMinmatarBonus2"), skill="Minmatar Carrier") fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Remote Armor Repairer", - "armorDamageAmount", ship.getModifiedItemAttr("carrierMinmatarBonus2") * level) + "armorDamageAmount", ship.getModifiedItemAttr("carrierMinmatarBonus2"), skill="Minmatar Carrier") diff --git a/eos/effects/carrierminmatararmorshieldtransferrange3.py b/eos/effects/carrierminmatararmorshieldtransferrange3.py index aeb4813af..3bb5b7caf 100644 --- a/eos/effects/carrierminmatararmorshieldtransferrange3.py +++ b/eos/effects/carrierminmatararmorshieldtransferrange3.py @@ -5,8 +5,7 @@ # Ship: Nidhoggur type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Minmatar Carrier").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capital Shield Emission Systems"), - "shieldTransferRange", ship.getModifiedItemAttr("carrierMinmatarBonus3") * level) + "shieldTransferRange", ship.getModifiedItemAttr("carrierMinmatarBonus3"), skill="Minmatar Carrier") fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capital Remote Armor Repair Systems"), - "maxRange", ship.getModifiedItemAttr("carrierMinmatarBonus3") * level) + "maxRange", ship.getModifiedItemAttr("carrierMinmatarBonus3"), skill="Minmatar Carrier") diff --git a/eos/effects/carrierminmatardronemax1.py b/eos/effects/carrierminmatardronemax1.py index adb5da559..58e3e6917 100644 --- a/eos/effects/carrierminmatardronemax1.py +++ b/eos/effects/carrierminmatardronemax1.py @@ -5,6 +5,4 @@ # Ship: Nidhoggur type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Minmatar Carrier").level - amount = ship.getModifiedItemAttr("carrierMinmatarBonus1") - fit.extraAttributes.increase("maxActiveDrones", amount * level) + fit.extraAttributes.increase("maxActiveDrones", ship.getModifiedItemAttr("carrierMinmatarBonus1"), skill="Minmatar Carrier") diff --git a/eos/effects/carrierminmatarleadershipmaxgroupactive4.py b/eos/effects/carrierminmatarleadershipmaxgroupactive4.py index 1183687e3..449cc1bd3 100644 --- a/eos/effects/carrierminmatarleadershipmaxgroupactive4.py +++ b/eos/effects/carrierminmatarleadershipmaxgroupactive4.py @@ -4,6 +4,5 @@ # Ship: Hel type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Minmatar Carrier").level fit.modules.filteredItemIncrease(lambda mod: mod.item.group.name == "Gang Coordinator", - "maxGroupActive", ship.getModifiedItemAttr("carrierMinmatarBonus4") * level) + "maxGroupActive", ship.getModifiedItemAttr("carrierMinmatarBonus4"), skill="Minmatar Carrier") diff --git a/eos/effects/covertopscloakcpupercentbonus1.py b/eos/effects/covertopscloakcpupercentbonus1.py index 199c502e2..cdd671913 100644 --- a/eos/effects/covertopscloakcpupercentbonus1.py +++ b/eos/effects/covertopscloakcpupercentbonus1.py @@ -5,6 +5,5 @@ type = "passive" runTime = "early" def handler(fit, ship, context): - level = fit.character.getSkill("Covert Ops").level fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Cloaking Device", - "cpu", ship.getModifiedItemAttr("eliteBonusCoverOps1") * level) + "cpu", ship.getModifiedItemAttr("eliteBonusCoverOps1"), skill="Covert Ops") diff --git a/eos/effects/dreadnoughtmd1projdmgbonus.py b/eos/effects/dreadnoughtmd1projdmgbonus.py index 303d8b87f..33115de5a 100644 --- a/eos/effects/dreadnoughtmd1projdmgbonus.py +++ b/eos/effects/dreadnoughtmd1projdmgbonus.py @@ -4,6 +4,5 @@ # Ship: Naglfar type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Minmatar Dreadnought").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capital Projectile Turret"), - "damageMultiplier", ship.getModifiedItemAttr("dreadnoughtShipBonusM1") * level) + "damageMultiplier", ship.getModifiedItemAttr("dreadnoughtShipBonusM1"), skill="Minmatar Dreadnought") diff --git a/eos/effects/dreadnoughtmd3projrofbonus.py b/eos/effects/dreadnoughtmd3projrofbonus.py index 639985a44..1dd5f7096 100644 --- a/eos/effects/dreadnoughtmd3projrofbonus.py +++ b/eos/effects/dreadnoughtmd3projrofbonus.py @@ -4,6 +4,5 @@ # Ship: Naglfar type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Minmatar Dreadnought").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capital Projectile Turret"), - "speed", ship.getModifiedItemAttr("dreadnoughtShipBonusM3") * level) + "speed", ship.getModifiedItemAttr("dreadnoughtShipBonusM3"), skill="Minmatar Dreadnought") diff --git a/eos/effects/dreadnoughtshipbonushybriddmgg1.py b/eos/effects/dreadnoughtshipbonushybriddmgg1.py index c0921b5d3..316e4b01f 100644 --- a/eos/effects/dreadnoughtshipbonushybriddmgg1.py +++ b/eos/effects/dreadnoughtshipbonushybriddmgg1.py @@ -4,6 +4,5 @@ # Ship: Moros type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Gallente Dreadnought").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capital Hybrid Turret"), - "damageMultiplier", ship.getModifiedItemAttr("dreadnoughtShipBonusG1") * level) + "damageMultiplier", ship.getModifiedItemAttr("dreadnoughtShipBonusG1"), skill="Gallente Dreadnought") diff --git a/eos/effects/dreadnoughtshipbonushybridrofg2.py b/eos/effects/dreadnoughtshipbonushybridrofg2.py index ca1a8325e..251e7c408 100644 --- a/eos/effects/dreadnoughtshipbonushybridrofg2.py +++ b/eos/effects/dreadnoughtshipbonushybridrofg2.py @@ -4,6 +4,5 @@ # Ship: Moros type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Gallente Dreadnought").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capital Hybrid Turret"), - "speed", ship.getModifiedItemAttr("dreadnoughtShipBonusG2") * level) + "speed", ship.getModifiedItemAttr("dreadnoughtShipBonusG2"), skill="Gallente Dreadnought") diff --git a/eos/effects/dreadnoughtshipbonuslasercapneeda1.py b/eos/effects/dreadnoughtshipbonuslasercapneeda1.py index 53912cfb1..f6d86d71b 100644 --- a/eos/effects/dreadnoughtshipbonuslasercapneeda1.py +++ b/eos/effects/dreadnoughtshipbonuslasercapneeda1.py @@ -4,6 +4,5 @@ # Ship: Revelation type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Amarr Dreadnought").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capital Energy Turret"), - "capacitorNeed", ship.getModifiedItemAttr("dreadnoughtShipBonusA1") * level) + "capacitorNeed", ship.getModifiedItemAttr("dreadnoughtShipBonusA1"), skill="Amarr Dreadnought") diff --git a/eos/effects/dreadnoughtshipbonuslaserrofa2.py b/eos/effects/dreadnoughtshipbonuslaserrofa2.py index d01246d24..a1563282d 100644 --- a/eos/effects/dreadnoughtshipbonuslaserrofa2.py +++ b/eos/effects/dreadnoughtshipbonuslaserrofa2.py @@ -4,6 +4,5 @@ # Ship: Revelation type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Amarr Dreadnought").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capital Energy Turret"), - "speed", ship.getModifiedItemAttr("dreadnoughtShipBonusA2") * level) + "speed", ship.getModifiedItemAttr("dreadnoughtShipBonusA2"), skill="Amarr Dreadnought") diff --git a/eos/effects/dreadnoughtshipbonusshieldresistancesc2.py b/eos/effects/dreadnoughtshipbonusshieldresistancesc2.py index a837c7a36..2d8266e69 100644 --- a/eos/effects/dreadnoughtshipbonusshieldresistancesc2.py +++ b/eos/effects/dreadnoughtshipbonusshieldresistancesc2.py @@ -4,7 +4,6 @@ # Ship: Phoenix type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Caldari Dreadnought").level for damageType in ("em", "thermal", "explosive", "kinetic"): fit.ship.boostItemAttr("shield{}DamageResonance".format(damageType.capitalize()), - ship.getModifiedItemAttr("dreadnoughtShipBonusC2") * level) + ship.getModifiedItemAttr("dreadnoughtShipBonusC2"), skill="Caldari Dreadnought") diff --git a/eos/effects/elitebargebonusiceharvestingcycletimebarge3.py b/eos/effects/elitebargebonusiceharvestingcycletimebarge3.py index 9f8b3d19c..0dcb9f4b7 100644 --- a/eos/effects/elitebargebonusiceharvestingcycletimebarge3.py +++ b/eos/effects/elitebargebonusiceharvestingcycletimebarge3.py @@ -4,6 +4,5 @@ # Ships from group: Exhumer (3 of 3) type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Exhumers").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Ice Harvesting"), - "duration", ship.getModifiedItemAttr("eliteBonusBarge2") * level) + "duration", ship.getModifiedItemAttr("eliteBonusBarge2"), skill="Exhumers") diff --git a/eos/effects/elitebargebonusminingdurationbarge2.py b/eos/effects/elitebargebonusminingdurationbarge2.py index c0ac3476b..d664e7b67 100644 --- a/eos/effects/elitebargebonusminingdurationbarge2.py +++ b/eos/effects/elitebargebonusminingdurationbarge2.py @@ -4,6 +4,5 @@ # Ships from group: Exhumer (3 of 3) type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Exhumers").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Mining"), - "duration", ship.getModifiedItemAttr("eliteBonusBarge2") * level) + "duration", ship.getModifiedItemAttr("eliteBonusBarge2"), skill="Exhumers") diff --git a/eos/effects/elitebargeshieldresistance1.py b/eos/effects/elitebargeshieldresistance1.py index b336ae615..e9d1b0d2e 100644 --- a/eos/effects/elitebargeshieldresistance1.py +++ b/eos/effects/elitebargeshieldresistance1.py @@ -4,7 +4,6 @@ # Ships from group: Exhumer (3 of 3) type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Exhumers").level for damageType in ("em", "thermal", "explosive", "kinetic"): fit.ship.boostItemAttr("shield{}DamageResonance".format(damageType.capitalize()), - ship.getModifiedItemAttr("eliteBonusBarge1") * level) + ship.getModifiedItemAttr("eliteBonusBarge1"), skill="Exhumers") diff --git a/eos/effects/elitebonusassaultshiplightmissilerof.py b/eos/effects/elitebonusassaultshiplightmissilerof.py index 34ddd205f..d85fb7b45 100644 --- a/eos/effects/elitebonusassaultshiplightmissilerof.py +++ b/eos/effects/elitebonusassaultshiplightmissilerof.py @@ -4,6 +4,5 @@ # Ship: Cambion type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Assault Frigates").level fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Missile Launcher Light", - "speed", ship.getModifiedItemAttr("eliteBonusGunship1") * level) + "speed", ship.getModifiedItemAttr("eliteBonusGunship1"), skill="Assault Frigates") diff --git a/eos/effects/elitebonusassaultshipmissilevelocity1.py b/eos/effects/elitebonusassaultshipmissilevelocity1.py index 3ae157043..7cf9c2e73 100644 --- a/eos/effects/elitebonusassaultshipmissilevelocity1.py +++ b/eos/effects/elitebonusassaultshipmissilevelocity1.py @@ -4,6 +4,5 @@ # Ship: Hawk type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Assault Frigates").level fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), - "maxVelocity", ship.getModifiedItemAttr("eliteBonusGunship1") * level) \ No newline at end of file + "maxVelocity", ship.getModifiedItemAttr("eliteBonusGunship1"), skill="Assault Frigates") \ No newline at end of file diff --git a/eos/effects/elitebonusassaultshiprocketrof.py b/eos/effects/elitebonusassaultshiprocketrof.py index e8f9deefd..6964fa188 100644 --- a/eos/effects/elitebonusassaultshiprocketrof.py +++ b/eos/effects/elitebonusassaultshiprocketrof.py @@ -4,6 +4,5 @@ # Ship: Cambion type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Assault Frigates").level fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Missile Launcher Rocket", - "speed", ship.getModifiedItemAttr("eliteBonusGunship1") * level) + "speed", ship.getModifiedItemAttr("eliteBonusGunship1"), skill="Assault Frigates") diff --git a/eos/effects/elitebonusblackopsagiliy1.py b/eos/effects/elitebonusblackopsagiliy1.py index 91df914f7..b71a30716 100644 --- a/eos/effects/elitebonusblackopsagiliy1.py +++ b/eos/effects/elitebonusblackopsagiliy1.py @@ -4,5 +4,4 @@ # Ship: Sin type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Black Ops").level - fit.ship.boostItemAttr("agility", ship.getModifiedItemAttr("eliteBonusBlackOps1") * level) \ No newline at end of file + fit.ship.boostItemAttr("agility", ship.getModifiedItemAttr("eliteBonusBlackOps1"), skill="Black Ops") \ No newline at end of file diff --git a/eos/effects/elitebonusblackopscloakvelocity2.py b/eos/effects/elitebonusblackopscloakvelocity2.py index 149abc8aa..557a23df9 100644 --- a/eos/effects/elitebonusblackopscloakvelocity2.py +++ b/eos/effects/elitebonusblackopscloakvelocity2.py @@ -5,5 +5,4 @@ type = "passive" def handler(fit, ship, context): if fit.extraAttributes["cloaked"]: - level = fit.character.getSkill("Black Ops").level - fit.ship.multiplyItemAttr("maxVelocity", ship.getModifiedItemAttr("eliteBonusBlackOps2") * level) + fit.ship.multiplyItemAttr("maxVelocity", ship.getModifiedItemAttr("eliteBonusBlackOps2"), skill="Black Ops") diff --git a/eos/effects/elitebonusblackopsecmburstgravandladarandmagnetoandradar.py b/eos/effects/elitebonusblackopsecmburstgravandladarandmagnetoandradar.py index e8a0e89ce..3611c52ff 100644 --- a/eos/effects/elitebonusblackopsecmburstgravandladarandmagnetoandradar.py +++ b/eos/effects/elitebonusblackopsecmburstgravandladarandmagnetoandradar.py @@ -4,8 +4,7 @@ # Ship: Widow type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Black Ops").level sensorTypes = ("Gravimetric", "Ladar", "Magnetometric", "Radar") for type in sensorTypes: fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "ECM Burst", "scan{0}StrengthBonus".format(type), - ship.getModifiedItemAttr("eliteBonusBlackOps1") * level) + ship.getModifiedItemAttr("eliteBonusBlackOps1"), skill="Black Ops") diff --git a/eos/effects/elitebonusblackopsecmgravandladarandmagnetometricandradarstrength1.py b/eos/effects/elitebonusblackopsecmgravandladarandmagnetometricandradarstrength1.py index 46abc4ffd..d5251486b 100644 --- a/eos/effects/elitebonusblackopsecmgravandladarandmagnetometricandradarstrength1.py +++ b/eos/effects/elitebonusblackopsecmgravandladarandmagnetometricandradarstrength1.py @@ -4,8 +4,7 @@ # Ship: Widow type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Black Ops").level 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") * level) + ship.getModifiedItemAttr("eliteBonusBlackOps1"), skill="Black Ops") diff --git a/eos/effects/elitebonusblackopslargeenergyturrettracking1.py b/eos/effects/elitebonusblackopslargeenergyturrettracking1.py index cc98a186e..1cc54e482 100644 --- a/eos/effects/elitebonusblackopslargeenergyturrettracking1.py +++ b/eos/effects/elitebonusblackopslargeenergyturrettracking1.py @@ -4,6 +4,5 @@ # Ship: Redeemer type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Black Ops").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Large Energy Turret"), - "trackingSpeed", ship.getModifiedItemAttr("eliteBonusBlackOps1") * level) + "trackingSpeed", ship.getModifiedItemAttr("eliteBonusBlackOps1"), skill="Black Ops") diff --git a/eos/effects/elitebonusblackopsmaxvelocity1.py b/eos/effects/elitebonusblackopsmaxvelocity1.py index e3e2255c9..98ff1dc28 100644 --- a/eos/effects/elitebonusblackopsmaxvelocity1.py +++ b/eos/effects/elitebonusblackopsmaxvelocity1.py @@ -4,5 +4,4 @@ # Ship: Panther type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Black Ops").level - fit.ship.boostItemAttr("maxVelocity", ship.getModifiedItemAttr("eliteBonusBlackOps1") * level) \ No newline at end of file + fit.ship.boostItemAttr("maxVelocity", ship.getModifiedItemAttr("eliteBonusBlackOps1"), skill="Black Ops") \ No newline at end of file diff --git a/eos/effects/elitebonuscommandshiparmoredcs3.py b/eos/effects/elitebonuscommandshiparmoredcs3.py index 06531d6dc..d801e659d 100644 --- a/eos/effects/elitebonuscommandshiparmoredcs3.py +++ b/eos/effects/elitebonuscommandshiparmoredcs3.py @@ -4,6 +4,5 @@ # Ships from group: Command Ship (4 of 8) type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Command Ships").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Armored Warfare Specialist"), - "commandBonus", ship.getModifiedItemAttr("eliteBonusCommandShips3") * level) + "commandBonus", ship.getModifiedItemAttr("eliteBonusCommandShips3"), skill="Command Ships") diff --git a/eos/effects/elitebonuscommandshiparmorhp1.py b/eos/effects/elitebonuscommandshiparmorhp1.py index ebf52b647..81ef932b1 100644 --- a/eos/effects/elitebonuscommandshiparmorhp1.py +++ b/eos/effects/elitebonuscommandshiparmorhp1.py @@ -4,5 +4,4 @@ # Ship: Damnation type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Command Ships").level - fit.ship.boostItemAttr("armorHP", ship.getModifiedItemAttr("eliteBonusCommandShips1") * level) \ No newline at end of file + fit.ship.boostItemAttr("armorHP", ship.getModifiedItemAttr("eliteBonusCommandShips1"), skill="Command Ships") \ No newline at end of file diff --git a/eos/effects/elitebonuscommandshiphamrofcs1.py b/eos/effects/elitebonuscommandshiphamrofcs1.py index 17c537f7b..63eaf51a9 100644 --- a/eos/effects/elitebonuscommandshiphamrofcs1.py +++ b/eos/effects/elitebonuscommandshiphamrofcs1.py @@ -5,6 +5,5 @@ # Ship: Nighthawk type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Command Ships").level fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Missile Launcher Heavy Assault", - "speed", ship.getModifiedItemAttr("eliteBonusCommandShips1") * level) + "speed", ship.getModifiedItemAttr("eliteBonusCommandShips1"), skill="Command Ships") diff --git a/eos/effects/elitebonuscommandshipheavyassaultmissiledamagecs2.py b/eos/effects/elitebonuscommandshipheavyassaultmissiledamagecs2.py index d4b791853..18aa69a30 100644 --- a/eos/effects/elitebonuscommandshipheavyassaultmissiledamagecs2.py +++ b/eos/effects/elitebonuscommandshipheavyassaultmissiledamagecs2.py @@ -4,8 +4,7 @@ # Ship: Damnation type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Command Ships").level 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") * level) + "{0}Damage".format(damageType), ship.getModifiedItemAttr("eliteBonusCommandShips2"), skill="Command Ships") diff --git a/eos/effects/elitebonuscommandshipheavydronetrackingcs2.py b/eos/effects/elitebonuscommandshipheavydronetrackingcs2.py index 4eacfeee3..1bcf86d54 100644 --- a/eos/effects/elitebonuscommandshipheavydronetrackingcs2.py +++ b/eos/effects/elitebonuscommandshipheavydronetrackingcs2.py @@ -4,6 +4,5 @@ # Ship: Eos type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Command Ships").level fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Heavy Drone Operation"), - "trackingSpeed", ship.getModifiedItemAttr("eliteBonusCommandShips2") * level) + "trackingSpeed", ship.getModifiedItemAttr("eliteBonusCommandShips2"), skill="Command Ships") diff --git a/eos/effects/elitebonuscommandshipheavydronevelocitycs2.py b/eos/effects/elitebonuscommandshipheavydronevelocitycs2.py index 1a8cfe6f5..b71aab5bd 100644 --- a/eos/effects/elitebonuscommandshipheavydronevelocitycs2.py +++ b/eos/effects/elitebonuscommandshipheavydronevelocitycs2.py @@ -4,6 +4,5 @@ # Ship: Eos type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Command Ships").level fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Heavy Drone Operation"), - "maxVelocity", ship.getModifiedItemAttr("eliteBonusCommandShips2") * level) + "maxVelocity", ship.getModifiedItemAttr("eliteBonusCommandShips2"), skill="Command Ships") diff --git a/eos/effects/elitebonuscommandshipheavymissiledamagecs2.py b/eos/effects/elitebonuscommandshipheavymissiledamagecs2.py index 9d2b3de08..0c77bf231 100644 --- a/eos/effects/elitebonuscommandshipheavymissiledamagecs2.py +++ b/eos/effects/elitebonuscommandshipheavymissiledamagecs2.py @@ -4,8 +4,7 @@ # Ship: Damnation type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Command Ships").level 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") * level) + "{0}Damage".format(damageType), ship.getModifiedItemAttr("eliteBonusCommandShips2"), skill="Command Ships") diff --git a/eos/effects/elitebonuscommandshiphmrofcs1.py b/eos/effects/elitebonuscommandshiphmrofcs1.py index 281e1b498..cfb685d19 100644 --- a/eos/effects/elitebonuscommandshiphmrofcs1.py +++ b/eos/effects/elitebonuscommandshiphmrofcs1.py @@ -5,6 +5,5 @@ # Ship: Nighthawk type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Command Ships").level fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Missile Launcher Heavy", - "speed", ship.getModifiedItemAttr("eliteBonusCommandShips1") * level) + "speed", ship.getModifiedItemAttr("eliteBonusCommandShips1"), skill="Command Ships") diff --git a/eos/effects/elitebonuscommandshiphybridfalloffcs2.py b/eos/effects/elitebonuscommandshiphybridfalloffcs2.py index a66a3ebc2..785a1e69a 100644 --- a/eos/effects/elitebonuscommandshiphybridfalloffcs2.py +++ b/eos/effects/elitebonuscommandshiphybridfalloffcs2.py @@ -4,6 +4,5 @@ # Ship: Astarte type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Command Ships").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Hybrid Turret"), - "falloff", ship.getModifiedItemAttr("eliteBonusCommandShips2") * level) + "falloff", ship.getModifiedItemAttr("eliteBonusCommandShips2"), skill="Command Ships") diff --git a/eos/effects/elitebonuscommandshiphybridoptimalcs1.py b/eos/effects/elitebonuscommandshiphybridoptimalcs1.py index 73a52b132..706a6876f 100644 --- a/eos/effects/elitebonuscommandshiphybridoptimalcs1.py +++ b/eos/effects/elitebonuscommandshiphybridoptimalcs1.py @@ -4,6 +4,5 @@ # Ship: Vulture type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Command Ships").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Hybrid Turret"), - "maxRange", ship.getModifiedItemAttr("eliteBonusCommandShips1") * level) + "maxRange", ship.getModifiedItemAttr("eliteBonusCommandShips1"), skill="Command Ships") diff --git a/eos/effects/elitebonuscommandshipinformationcs3.py b/eos/effects/elitebonuscommandshipinformationcs3.py index 374e4e169..0a982f2d1 100644 --- a/eos/effects/elitebonuscommandshipinformationcs3.py +++ b/eos/effects/elitebonuscommandshipinformationcs3.py @@ -4,6 +4,5 @@ # Ships from group: Command Ship (4 of 8) type = "passive" def handler(fit, module, context): - level = fit.character.getSkill("Command Ships").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Information Warfare Specialist"), - "commandBonus", module.getModifiedItemAttr("eliteBonusCommandShips3") * level) + "commandBonus", module.getModifiedItemAttr("eliteBonusCommandShips3"), skill="Command Ships") diff --git a/eos/effects/elitebonuscommandshipinformationhiddencs3.py b/eos/effects/elitebonuscommandshipinformationhiddencs3.py index 6f480e452..fee3ea437 100644 --- a/eos/effects/elitebonuscommandshipinformationhiddencs3.py +++ b/eos/effects/elitebonuscommandshipinformationhiddencs3.py @@ -4,6 +4,5 @@ # Ships from group: Command Ship (4 of 8) type = "passive" def handler(fit, module, context): - level = fit.character.getSkill("Command Ships").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Information Warfare Specialist"), - "commandBonusHidden", module.getModifiedItemAttr("eliteBonusCommandShips3") * level) + "commandBonusHidden", module.getModifiedItemAttr("eliteBonusCommandShips3"), skill="Command Ships") diff --git a/eos/effects/elitebonuscommandshiplaserdamagecs1.py b/eos/effects/elitebonuscommandshiplaserdamagecs1.py index 42f08204a..9dc55f3d4 100644 --- a/eos/effects/elitebonuscommandshiplaserdamagecs1.py +++ b/eos/effects/elitebonuscommandshiplaserdamagecs1.py @@ -4,6 +4,5 @@ # Ship: Absolution type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Command Ships").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Energy Turret"), - "damageMultiplier", ship.getModifiedItemAttr("eliteBonusCommandShips1") * level) + "damageMultiplier", ship.getModifiedItemAttr("eliteBonusCommandShips1"), skill="Command Ships") diff --git a/eos/effects/elitebonuscommandshiplaserrofcs2.py b/eos/effects/elitebonuscommandshiplaserrofcs2.py index 3b8176a8d..0df96f5bf 100644 --- a/eos/effects/elitebonuscommandshiplaserrofcs2.py +++ b/eos/effects/elitebonuscommandshiplaserrofcs2.py @@ -4,6 +4,5 @@ # Ship: Absolution type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Command Ships").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Energy Turret"), - "speed", ship.getModifiedItemAttr("eliteBonusCommandShips2") * level) + "speed", ship.getModifiedItemAttr("eliteBonusCommandShips2"), skill="Command Ships") diff --git a/eos/effects/elitebonuscommandshipmediumhybriddamagecs2.py b/eos/effects/elitebonuscommandshipmediumhybriddamagecs2.py index e39fcc6d1..e5910f8f7 100644 --- a/eos/effects/elitebonuscommandshipmediumhybriddamagecs2.py +++ b/eos/effects/elitebonuscommandshipmediumhybriddamagecs2.py @@ -4,6 +4,5 @@ # Ship: Vulture type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Command Ships").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Hybrid Turret"), - "damageMultiplier", ship.getModifiedItemAttr("eliteBonusCommandShips2") * level) + "damageMultiplier", ship.getModifiedItemAttr("eliteBonusCommandShips2"), skill="Command Ships") diff --git a/eos/effects/elitebonuscommandshipmediumhybridrofcs1.py b/eos/effects/elitebonuscommandshipmediumhybridrofcs1.py index 70cdc5767..bd5344ef2 100644 --- a/eos/effects/elitebonuscommandshipmediumhybridrofcs1.py +++ b/eos/effects/elitebonuscommandshipmediumhybridrofcs1.py @@ -4,6 +4,5 @@ # Ship: Astarte type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Command Ships").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Hybrid Turret"), - "speed", ship.getModifiedItemAttr("eliteBonusCommandShips1") * level) + "speed", ship.getModifiedItemAttr("eliteBonusCommandShips1"), skill="Command Ships") diff --git a/eos/effects/elitebonuscommandshipmediumhybridtrackingcs1.py b/eos/effects/elitebonuscommandshipmediumhybridtrackingcs1.py index 408e53e62..b1662054e 100644 --- a/eos/effects/elitebonuscommandshipmediumhybridtrackingcs1.py +++ b/eos/effects/elitebonuscommandshipmediumhybridtrackingcs1.py @@ -4,6 +4,5 @@ # Ship: Eos type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Command Ships").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Hybrid Turret"), - "trackingSpeed", ship.getModifiedItemAttr("eliteBonusCommandShips1") * level) + "trackingSpeed", ship.getModifiedItemAttr("eliteBonusCommandShips1"), skill="Command Ships") diff --git a/eos/effects/elitebonuscommandshipprojectiledamagecs1.py b/eos/effects/elitebonuscommandshipprojectiledamagecs1.py index b0e929740..6929f463d 100644 --- a/eos/effects/elitebonuscommandshipprojectiledamagecs1.py +++ b/eos/effects/elitebonuscommandshipprojectiledamagecs1.py @@ -4,6 +4,5 @@ # Ship: Sleipnir type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Command Ships").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Projectile Turret"), - "damageMultiplier", ship.getModifiedItemAttr("eliteBonusCommandShips1") * level) + "damageMultiplier", ship.getModifiedItemAttr("eliteBonusCommandShips1"), skill="Command Ships") diff --git a/eos/effects/elitebonuscommandshipprojectilefalloffcs2.py b/eos/effects/elitebonuscommandshipprojectilefalloffcs2.py index e90c37138..93833cb9a 100644 --- a/eos/effects/elitebonuscommandshipprojectilefalloffcs2.py +++ b/eos/effects/elitebonuscommandshipprojectilefalloffcs2.py @@ -4,6 +4,5 @@ # Ship: Sleipnir type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Command Ships").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Projectile Turret"), - "falloff", ship.getModifiedItemAttr("eliteBonusCommandShips2") * level) + "falloff", ship.getModifiedItemAttr("eliteBonusCommandShips2"), skill="Command Ships") diff --git a/eos/effects/elitebonuscommandshipsheavyassaultmissileexplosionradiuscs2.py b/eos/effects/elitebonuscommandshipsheavyassaultmissileexplosionradiuscs2.py index cc149aa62..fd81ed844 100644 --- a/eos/effects/elitebonuscommandshipsheavyassaultmissileexplosionradiuscs2.py +++ b/eos/effects/elitebonuscommandshipsheavyassaultmissileexplosionradiuscs2.py @@ -4,6 +4,5 @@ # Ship: Nighthawk type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Command Ships").level fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Assault Missiles"), - "aoeCloudSize", ship.getModifiedItemAttr("eliteBonusCommandShips2") * level) + "aoeCloudSize", ship.getModifiedItemAttr("eliteBonusCommandShips2"), skill="Command Ships") diff --git a/eos/effects/elitebonuscommandshipsheavyassaultmissileexplosionvelocitycs2.py b/eos/effects/elitebonuscommandshipsheavyassaultmissileexplosionvelocitycs2.py index 7af905c49..0d6407019 100644 --- a/eos/effects/elitebonuscommandshipsheavyassaultmissileexplosionvelocitycs2.py +++ b/eos/effects/elitebonuscommandshipsheavyassaultmissileexplosionvelocitycs2.py @@ -4,6 +4,5 @@ # Ship: Claymore type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Command Ships").level fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Assault Missiles"), - "aoeVelocity", ship.getModifiedItemAttr("eliteBonusCommandShips2") * level) + "aoeVelocity", ship.getModifiedItemAttr("eliteBonusCommandShips2"), skill="Command Ships") diff --git a/eos/effects/elitebonuscommandshipsheavymissileexplosionradiuscs2.py b/eos/effects/elitebonuscommandshipsheavymissileexplosionradiuscs2.py index d0799135c..22c395a96 100644 --- a/eos/effects/elitebonuscommandshipsheavymissileexplosionradiuscs2.py +++ b/eos/effects/elitebonuscommandshipsheavymissileexplosionradiuscs2.py @@ -4,6 +4,5 @@ # Ship: Nighthawk type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Command Ships").level fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Missiles"), - "aoeCloudSize", ship.getModifiedItemAttr("eliteBonusCommandShips2") * level) + "aoeCloudSize", ship.getModifiedItemAttr("eliteBonusCommandShips2"), skill="Command Ships") diff --git a/eos/effects/elitebonuscommandshipsheavymissileexplosionvelocitycs2.py b/eos/effects/elitebonuscommandshipsheavymissileexplosionvelocitycs2.py index 11f917fc0..626a5525c 100644 --- a/eos/effects/elitebonuscommandshipsheavymissileexplosionvelocitycs2.py +++ b/eos/effects/elitebonuscommandshipsheavymissileexplosionvelocitycs2.py @@ -4,6 +4,5 @@ # Ship: Claymore type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Command Ships").level fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Missiles"), - "aoeVelocity", ship.getModifiedItemAttr("eliteBonusCommandShips2") * level) + "aoeVelocity", ship.getModifiedItemAttr("eliteBonusCommandShips2"), skill="Command Ships") diff --git a/eos/effects/elitebonuscommandshipsiegecs3.py b/eos/effects/elitebonuscommandshipsiegecs3.py index 19a79f987..879e87307 100644 --- a/eos/effects/elitebonuscommandshipsiegecs3.py +++ b/eos/effects/elitebonuscommandshipsiegecs3.py @@ -4,6 +4,5 @@ # Ships from group: Command Ship (4 of 8) type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Command Ships").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Siege Warfare Specialist"), - "commandBonus", ship.getModifiedItemAttr("eliteBonusCommandShips3") * level) + "commandBonus", ship.getModifiedItemAttr("eliteBonusCommandShips3"), skill="Command Ships") diff --git a/eos/effects/elitebonuscommandshipskirmishcs3.py b/eos/effects/elitebonuscommandshipskirmishcs3.py index 8dde38372..aa9c020b5 100644 --- a/eos/effects/elitebonuscommandshipskirmishcs3.py +++ b/eos/effects/elitebonuscommandshipskirmishcs3.py @@ -4,6 +4,5 @@ # Ships from group: Command Ship (4 of 8) type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Command Ships").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Skirmish Warfare Specialist"), - "commandBonus", ship.getModifiedItemAttr("eliteBonusCommandShips3") * level) + "commandBonus", ship.getModifiedItemAttr("eliteBonusCommandShips3"), skill="Command Ships") diff --git a/eos/effects/elitebonuscoveropsbombemdmg1.py b/eos/effects/elitebonuscoveropsbombemdmg1.py index 95b290c17..4c965a722 100644 --- a/eos/effects/elitebonuscoveropsbombemdmg1.py +++ b/eos/effects/elitebonuscoveropsbombemdmg1.py @@ -4,6 +4,5 @@ # Ship: Purifier type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Covert Ops").level fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Bomb Deployment"), - "emDamage", ship.getModifiedItemAttr("eliteBonusCoverOps1") * level) + "emDamage", ship.getModifiedItemAttr("eliteBonusCoverOps1"), skill="Covert Ops") diff --git a/eos/effects/elitebonuscoveropsbombexplosivedmg1.py b/eos/effects/elitebonuscoveropsbombexplosivedmg1.py index d89252a5b..a9e0e2193 100644 --- a/eos/effects/elitebonuscoveropsbombexplosivedmg1.py +++ b/eos/effects/elitebonuscoveropsbombexplosivedmg1.py @@ -4,6 +4,5 @@ # Ship: Hound type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Covert Ops").level fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Bomb Deployment"), - "explosiveDamage", ship.getModifiedItemAttr("eliteBonusCoverOps1") * level) + "explosiveDamage", ship.getModifiedItemAttr("eliteBonusCoverOps1"), skill="Covert Ops") diff --git a/eos/effects/elitebonuscoveropsbombkineticdmg1.py b/eos/effects/elitebonuscoveropsbombkineticdmg1.py index 0946cb367..401d5ab4f 100644 --- a/eos/effects/elitebonuscoveropsbombkineticdmg1.py +++ b/eos/effects/elitebonuscoveropsbombkineticdmg1.py @@ -4,6 +4,5 @@ # Ship: Manticore type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Covert Ops").level fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Bomb Deployment"), - "kineticDamage", ship.getModifiedItemAttr("eliteBonusCoverOps1") * level) + "kineticDamage", ship.getModifiedItemAttr("eliteBonusCoverOps1"), skill="Covert Ops") diff --git a/eos/effects/elitebonuscoveropsbombthermaldmg1.py b/eos/effects/elitebonuscoveropsbombthermaldmg1.py index 63d37056d..4859ab88c 100644 --- a/eos/effects/elitebonuscoveropsbombthermaldmg1.py +++ b/eos/effects/elitebonuscoveropsbombthermaldmg1.py @@ -4,6 +4,5 @@ # Ship: Nemesis type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Covert Ops").level fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Bomb Deployment"), - "thermalDamage", ship.getModifiedItemAttr("eliteBonusCoverOps1") * level) + "thermalDamage", ship.getModifiedItemAttr("eliteBonusCoverOps1"), skill="Covert Ops") diff --git a/eos/effects/elitebonuscoveropsscanprobestrength2.py b/eos/effects/elitebonuscoveropsscanprobestrength2.py index 2905d536b..fd767798c 100644 --- a/eos/effects/elitebonuscoveropsscanprobestrength2.py +++ b/eos/effects/elitebonuscoveropsscanprobestrength2.py @@ -4,6 +4,5 @@ # Ships from group: Covert Ops (5 of 5) type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Covert Ops").level fit.modules.filteredChargeBoost(lambda mod: mod.charge.group.name == "Scanner Probe", - "baseSensorStrength", ship.getModifiedItemAttr("eliteBonusCoverOps2") * level) + "baseSensorStrength", ship.getModifiedItemAttr("eliteBonusCoverOps2"), skill="Covert Ops") diff --git a/eos/effects/elitebonuselectronicattackshipcapacitorcapacity2.py b/eos/effects/elitebonuselectronicattackshipcapacitorcapacity2.py index 1053bf7eb..3113f1b80 100644 --- a/eos/effects/elitebonuselectronicattackshipcapacitorcapacity2.py +++ b/eos/effects/elitebonuselectronicattackshipcapacitorcapacity2.py @@ -4,5 +4,4 @@ # Ship: Kitsune type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Electronic Attack Ships").level - fit.ship.boostItemAttr("capacitorCapacity", ship.getModifiedItemAttr("eliteBonusElectronicAttackShip2") * level) + fit.ship.boostItemAttr("capacitorCapacity", ship.getModifiedItemAttr("eliteBonusElectronicAttackShip2"), skill="Electronic Attack Ships") diff --git a/eos/effects/elitebonuselectronicattackshipecmoptimalrange1.py b/eos/effects/elitebonuselectronicattackshipecmoptimalrange1.py index 7723b19f8..8c0f338f1 100644 --- a/eos/effects/elitebonuselectronicattackshipecmoptimalrange1.py +++ b/eos/effects/elitebonuselectronicattackshipecmoptimalrange1.py @@ -4,6 +4,5 @@ # Ship: Kitsune type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Electronic Attack Ships").level fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "ECM", - "maxRange", ship.getModifiedItemAttr("eliteBonusElectronicAttackShip1") * level) + "maxRange", ship.getModifiedItemAttr("eliteBonusElectronicAttackShip1"), skill="Electronic Attack Ships") diff --git a/eos/effects/elitebonuselectronicattackshipenergyneutrange1.py b/eos/effects/elitebonuselectronicattackshipenergyneutrange1.py index 3333d25da..d443e20c9 100644 --- a/eos/effects/elitebonuselectronicattackshipenergyneutrange1.py +++ b/eos/effects/elitebonuselectronicattackshipenergyneutrange1.py @@ -4,6 +4,5 @@ # Ship: Sentinel type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Electronic Attack Ships").level fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Destabilizer", - "energyDestabilizationRange", ship.getModifiedItemAttr("eliteBonusElectronicAttackShip1") * level) + "energyDestabilizationRange", ship.getModifiedItemAttr("eliteBonusElectronicAttackShip1"), skill="Electronic Attack Ships") diff --git a/eos/effects/elitebonuselectronicattackshipenergyvampirerange1.py b/eos/effects/elitebonuselectronicattackshipenergyvampirerange1.py index eed92d963..9bc17e752 100644 --- a/eos/effects/elitebonuselectronicattackshipenergyvampirerange1.py +++ b/eos/effects/elitebonuselectronicattackshipenergyvampirerange1.py @@ -4,6 +4,5 @@ # Ship: Sentinel type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Electronic Attack Ships").level fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Vampire", - "powerTransferRange", ship.getModifiedItemAttr("eliteBonusElectronicAttackShip1") * level) + "powerTransferRange", ship.getModifiedItemAttr("eliteBonusElectronicAttackShip1"), skill="Electronic Attack Ships") diff --git a/eos/effects/elitebonuselectronicattackshiprechargerate2.py b/eos/effects/elitebonuselectronicattackshiprechargerate2.py index 2eedd833a..268ab1483 100644 --- a/eos/effects/elitebonuselectronicattackshiprechargerate2.py +++ b/eos/effects/elitebonuselectronicattackshiprechargerate2.py @@ -4,5 +4,4 @@ # Ship: Sentinel type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Electronic Attack Ships").level - fit.ship.boostItemAttr("rechargeRate", ship.getModifiedItemAttr("eliteBonusElectronicAttackShip2") * level) + fit.ship.boostItemAttr("rechargeRate", ship.getModifiedItemAttr("eliteBonusElectronicAttackShip2"), skill="Electronic Attack Ships") diff --git a/eos/effects/elitebonuselectronicattackshipsignatureradius2.py b/eos/effects/elitebonuselectronicattackshipsignatureradius2.py index 3e5084085..c484c89aa 100644 --- a/eos/effects/elitebonuselectronicattackshipsignatureradius2.py +++ b/eos/effects/elitebonuselectronicattackshipsignatureradius2.py @@ -4,5 +4,4 @@ # Ship: Hyena type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Electronic Attack Ships").level - fit.ship.boostItemAttr("signatureRadius", ship.getModifiedItemAttr("eliteBonusElectronicAttackShip2") * level) + fit.ship.boostItemAttr("signatureRadius", ship.getModifiedItemAttr("eliteBonusElectronicAttackShip2"), skill="Electronic Attack Ships") diff --git a/eos/effects/elitebonuselectronicattackshipstasiswebmaxrange1.py b/eos/effects/elitebonuselectronicattackshipstasiswebmaxrange1.py index 1b56814d9..9929787f3 100644 --- a/eos/effects/elitebonuselectronicattackshipstasiswebmaxrange1.py +++ b/eos/effects/elitebonuselectronicattackshipstasiswebmaxrange1.py @@ -4,6 +4,5 @@ # Ship: Hyena type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Electronic Attack Ships").level fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Stasis Web", - "maxRange", ship.getModifiedItemAttr("eliteBonusElectronicAttackShip1") * level) + "maxRange", ship.getModifiedItemAttr("eliteBonusElectronicAttackShip1"), skill="Electronic Attack Ships") diff --git a/eos/effects/elitebonuselectronicattackshipwarpscramblercapneed2.py b/eos/effects/elitebonuselectronicattackshipwarpscramblercapneed2.py index 7f4fb814c..61d9a842b 100644 --- a/eos/effects/elitebonuselectronicattackshipwarpscramblercapneed2.py +++ b/eos/effects/elitebonuselectronicattackshipwarpscramblercapneed2.py @@ -4,6 +4,5 @@ # Ship: Keres type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Electronic Attack Ships").level fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Warp Scrambler", - "capacitorNeed", ship.getModifiedItemAttr("eliteBonusElectronicAttackShip2") * level) \ No newline at end of file + "capacitorNeed", ship.getModifiedItemAttr("eliteBonusElectronicAttackShip2"), skill="Electronic Attack Ships") diff --git a/eos/effects/elitebonuselectronicattackshipwarpscramblermaxrange1.py b/eos/effects/elitebonuselectronicattackshipwarpscramblermaxrange1.py index 8de1f42d4..bc32c8651 100644 --- a/eos/effects/elitebonuselectronicattackshipwarpscramblermaxrange1.py +++ b/eos/effects/elitebonuselectronicattackshipwarpscramblermaxrange1.py @@ -4,6 +4,5 @@ # Ship: Keres type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Electronic Attack Ships").level fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Warp Scrambler", - "maxRange", ship.getModifiedItemAttr("eliteBonusElectronicAttackShip1") * level) + "maxRange", ship.getModifiedItemAttr("eliteBonusElectronicAttackShip1"), skill="Electronic Attack Ships") diff --git a/eos/effects/elitebonusexpeditionmining1.py b/eos/effects/elitebonusexpeditionmining1.py index 51dc7423d..a2b899efb 100644 --- a/eos/effects/elitebonusexpeditionmining1.py +++ b/eos/effects/elitebonusexpeditionmining1.py @@ -4,6 +4,5 @@ # Ship: Prospect type = "passive" def handler(fit, module, context): - level = fit.character.getSkill("Expedition Frigates").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Mining"), - "miningAmount", module.getModifiedItemAttr("eliteBonusExpedition1") * level) + "miningAmount", module.getModifiedItemAttr("eliteBonusExpedition1"), skill="Expedition Frigates") diff --git a/eos/effects/elitebonusexpeditionsigradius2.py b/eos/effects/elitebonusexpeditionsigradius2.py index da66e866d..323d167cd 100644 --- a/eos/effects/elitebonusexpeditionsigradius2.py +++ b/eos/effects/elitebonusexpeditionsigradius2.py @@ -4,5 +4,4 @@ # Ship: Prospect type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Expedition Frigates").level - fit.ship.boostItemAttr("signatureRadius", ship.getModifiedItemAttr("eliteBonusExpedition2") * level) + fit.ship.boostItemAttr("signatureRadius", ship.getModifiedItemAttr("eliteBonusExpedition2"), skill="Expedition Frigates") diff --git a/eos/effects/elitebonusgunshiparmoremresistance1.py b/eos/effects/elitebonusgunshiparmoremresistance1.py index 563bcb8b1..7bfc78fa6 100644 --- a/eos/effects/elitebonusgunshiparmoremresistance1.py +++ b/eos/effects/elitebonusgunshiparmoremresistance1.py @@ -4,5 +4,4 @@ # Ship: Vengeance type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Assault Frigates").level - fit.ship.boostItemAttr("armorEmDamageResonance", ship.getModifiedItemAttr("eliteBonusGunship1") * level) \ No newline at end of file + fit.ship.boostItemAttr("armorEmDamageResonance", ship.getModifiedItemAttr("eliteBonusGunship1"), skill="Assault Frigates") diff --git a/eos/effects/elitebonusgunshiparmorexplosiveresistance1.py b/eos/effects/elitebonusgunshiparmorexplosiveresistance1.py index ab443daf2..1fbee4376 100644 --- a/eos/effects/elitebonusgunshiparmorexplosiveresistance1.py +++ b/eos/effects/elitebonusgunshiparmorexplosiveresistance1.py @@ -4,5 +4,4 @@ # Ship: Vengeance type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Assault Frigates").level - fit.ship.boostItemAttr("armorExplosiveDamageResonance", ship.getModifiedItemAttr("eliteBonusGunship1") * level) \ No newline at end of file + fit.ship.boostItemAttr("armorExplosiveDamageResonance", ship.getModifiedItemAttr("eliteBonusGunship1"), skill="Assault Frigates") \ No newline at end of file diff --git a/eos/effects/elitebonusgunshiparmorkineticresistance1.py b/eos/effects/elitebonusgunshiparmorkineticresistance1.py index 41b5049c5..08bb87f3a 100644 --- a/eos/effects/elitebonusgunshiparmorkineticresistance1.py +++ b/eos/effects/elitebonusgunshiparmorkineticresistance1.py @@ -4,5 +4,4 @@ # Ship: Vengeance type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Assault Frigates").level - fit.ship.boostItemAttr("armorKineticDamageResonance", ship.getModifiedItemAttr("eliteBonusGunship1") * level) \ No newline at end of file + fit.ship.boostItemAttr("armorKineticDamageResonance", ship.getModifiedItemAttr("eliteBonusGunship1"), skill="Assault Frigates") \ No newline at end of file diff --git a/eos/effects/elitebonusgunshiparmorthermalresistance1.py b/eos/effects/elitebonusgunshiparmorthermalresistance1.py index 43a03753e..b348472b7 100644 --- a/eos/effects/elitebonusgunshiparmorthermalresistance1.py +++ b/eos/effects/elitebonusgunshiparmorthermalresistance1.py @@ -4,5 +4,4 @@ # Ship: Vengeance type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Assault Frigates").level - fit.ship.boostItemAttr("armorThermalDamageResonance", ship.getModifiedItemAttr("eliteBonusGunship1") * level) \ No newline at end of file + fit.ship.boostItemAttr("armorThermalDamageResonance", ship.getModifiedItemAttr("eliteBonusGunship1"), skill="Assault Frigates") \ No newline at end of file diff --git a/eos/effects/elitebonusgunshipcaprecharge2.py b/eos/effects/elitebonusgunshipcaprecharge2.py index f56af6b14..a53903eb0 100644 --- a/eos/effects/elitebonusgunshipcaprecharge2.py +++ b/eos/effects/elitebonusgunshipcaprecharge2.py @@ -4,5 +4,4 @@ # Ship: Vengeance type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Assault Frigates").level - fit.ship.boostItemAttr("rechargeRate", ship.getModifiedItemAttr("eliteBonusGunship2") * level) \ No newline at end of file + fit.ship.boostItemAttr("rechargeRate", ship.getModifiedItemAttr("eliteBonusGunship2"), skill="Assault Frigates") \ No newline at end of file diff --git a/eos/effects/elitebonusgunshipdronecapacity2.py b/eos/effects/elitebonusgunshipdronecapacity2.py index bbf682b36..29763eb8c 100644 --- a/eos/effects/elitebonusgunshipdronecapacity2.py +++ b/eos/effects/elitebonusgunshipdronecapacity2.py @@ -4,5 +4,4 @@ # Ship: Ishkur type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Assault Frigates").level - fit.ship.increaseItemAttr("droneCapacity", ship.getModifiedItemAttr("eliteBonusGunship2") * level) \ No newline at end of file + fit.ship.increaseItemAttr("droneCapacity", ship.getModifiedItemAttr("eliteBonusGunship2"), skill="Assault Frigates") \ No newline at end of file diff --git a/eos/effects/elitebonusgunshiphybriddmg2.py b/eos/effects/elitebonusgunshiphybriddmg2.py index f79c5708b..3ca3ec64a 100644 --- a/eos/effects/elitebonusgunshiphybriddmg2.py +++ b/eos/effects/elitebonusgunshiphybriddmg2.py @@ -4,6 +4,5 @@ # Ship: Harpy type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Assault Frigates").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Hybrid Turret"), - "damageMultiplier", ship.getModifiedItemAttr("eliteBonusGunship2") * level) \ No newline at end of file + "damageMultiplier", ship.getModifiedItemAttr("eliteBonusGunship2"), skill="Assault Frigates") \ No newline at end of file diff --git a/eos/effects/elitebonusgunshiphybridoptimal1.py b/eos/effects/elitebonusgunshiphybridoptimal1.py index f5eaf196b..0e39580e6 100644 --- a/eos/effects/elitebonusgunshiphybridoptimal1.py +++ b/eos/effects/elitebonusgunshiphybridoptimal1.py @@ -6,6 +6,5 @@ # Ship: Ishkur type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Assault Frigates").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Hybrid Turret"), - "maxRange", ship.getModifiedItemAttr("eliteBonusGunship1") * level) \ No newline at end of file + "maxRange", ship.getModifiedItemAttr("eliteBonusGunship1"), skill="Assault Frigates") \ No newline at end of file diff --git a/eos/effects/elitebonusgunshiphybridtracking2.py b/eos/effects/elitebonusgunshiphybridtracking2.py index 2513702d2..816b2d8c3 100644 --- a/eos/effects/elitebonusgunshiphybridtracking2.py +++ b/eos/effects/elitebonusgunshiphybridtracking2.py @@ -4,6 +4,5 @@ # Ship: Enyo type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Assault Frigates").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Hybrid Turret"), - "trackingSpeed", ship.getModifiedItemAttr("eliteBonusGunship2") * level) \ No newline at end of file + "trackingSpeed", ship.getModifiedItemAttr("eliteBonusGunship2"), skill="Assault Frigates") \ No newline at end of file diff --git a/eos/effects/elitebonusgunshiplaserdamage2.py b/eos/effects/elitebonusgunshiplaserdamage2.py index fa875b538..4f75755de 100644 --- a/eos/effects/elitebonusgunshiplaserdamage2.py +++ b/eos/effects/elitebonusgunshiplaserdamage2.py @@ -4,6 +4,5 @@ # Ship: Retribution type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Assault Frigates").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Energy Turret"), - "damageMultiplier", ship.getModifiedItemAttr("eliteBonusGunship2") * level) \ No newline at end of file + "damageMultiplier", ship.getModifiedItemAttr("eliteBonusGunship2"), skill="Assault Frigates") \ No newline at end of file diff --git a/eos/effects/elitebonusgunshiplaseroptimal1.py b/eos/effects/elitebonusgunshiplaseroptimal1.py index a1c2b148a..d9a7ffc33 100644 --- a/eos/effects/elitebonusgunshiplaseroptimal1.py +++ b/eos/effects/elitebonusgunshiplaseroptimal1.py @@ -4,6 +4,5 @@ # Ship: Retribution type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Assault Frigates").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Energy Turret"), - "maxRange", ship.getModifiedItemAttr("eliteBonusGunship1") * level) \ No newline at end of file + "maxRange", ship.getModifiedItemAttr("eliteBonusGunship1"), skill="Assault Frigates") \ No newline at end of file diff --git a/eos/effects/elitebonusgunshipprojectiledamage1.py b/eos/effects/elitebonusgunshipprojectiledamage1.py index bc8de5b25..977f6fc9c 100644 --- a/eos/effects/elitebonusgunshipprojectiledamage1.py +++ b/eos/effects/elitebonusgunshipprojectiledamage1.py @@ -4,6 +4,5 @@ # Ship: Wolf type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Assault Frigates").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Projectile Turret"), - "damageMultiplier", ship.getModifiedItemAttr("eliteBonusGunship1") * level) \ No newline at end of file + "damageMultiplier", ship.getModifiedItemAttr("eliteBonusGunship1"), skill="Assault Frigates") \ No newline at end of file diff --git a/eos/effects/elitebonusgunshipprojectiledamage2.py b/eos/effects/elitebonusgunshipprojectiledamage2.py index 773a7b320..a9819287f 100644 --- a/eos/effects/elitebonusgunshipprojectiledamage2.py +++ b/eos/effects/elitebonusgunshipprojectiledamage2.py @@ -4,6 +4,5 @@ # Ship: Jaguar type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Assault Frigates").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Projectile Turret"), - "damageMultiplier", ship.getModifiedItemAttr("eliteBonusGunship2") * level) \ No newline at end of file + "damageMultiplier", ship.getModifiedItemAttr("eliteBonusGunship2"), skill="Assault Frigates") \ No newline at end of file diff --git a/eos/effects/elitebonusgunshipprojectilefalloff2.py b/eos/effects/elitebonusgunshipprojectilefalloff2.py index 4dc2401e0..90e636405 100644 --- a/eos/effects/elitebonusgunshipprojectilefalloff2.py +++ b/eos/effects/elitebonusgunshipprojectilefalloff2.py @@ -4,6 +4,5 @@ # Ship: Wolf type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Assault Frigates").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Projectile Turret"), - "falloff", ship.getModifiedItemAttr("eliteBonusGunship2") * level) \ No newline at end of file + "falloff", ship.getModifiedItemAttr("eliteBonusGunship2"), skill="Assault Frigates") \ No newline at end of file diff --git a/eos/effects/elitebonusgunshipprojectileoptimal1.py b/eos/effects/elitebonusgunshipprojectileoptimal1.py index 27c38257e..31fe35fbb 100644 --- a/eos/effects/elitebonusgunshipprojectileoptimal1.py +++ b/eos/effects/elitebonusgunshipprojectileoptimal1.py @@ -4,6 +4,5 @@ # Ship: Jaguar type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Assault Frigates").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Projectile Turret"), - "maxRange", ship.getModifiedItemAttr("eliteBonusGunship1") * level) \ No newline at end of file + "maxRange", ship.getModifiedItemAttr("eliteBonusGunship1"), skill="Assault Frigates") \ No newline at end of file diff --git a/eos/effects/elitebonusgunshipshieldboost2.py b/eos/effects/elitebonusgunshipshieldboost2.py index b74488dc2..b8ce48c2f 100644 --- a/eos/effects/elitebonusgunshipshieldboost2.py +++ b/eos/effects/elitebonusgunshipshieldboost2.py @@ -4,6 +4,5 @@ # Ship: Hawk type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Assault Frigates").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Operation"), - "shieldBonus", ship.getModifiedItemAttr("eliteBonusGunship2") * level) + "shieldBonus", ship.getModifiedItemAttr("eliteBonusGunship2"), skill="Assault Frigates") diff --git a/eos/effects/elitebonusheavygunshipassaultmissileflighttime1.py b/eos/effects/elitebonusheavygunshipassaultmissileflighttime1.py index 5c12f839b..3c2d4208f 100644 --- a/eos/effects/elitebonusheavygunshipassaultmissileflighttime1.py +++ b/eos/effects/elitebonusheavygunshipassaultmissileflighttime1.py @@ -4,6 +4,5 @@ # Ship: Cerberus type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Heavy Assault Cruisers").level fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Assault Missiles"), - "explosionDelay", ship.getModifiedItemAttr("eliteBonusHeavyGunship1") * level) + "explosionDelay", ship.getModifiedItemAttr("eliteBonusHeavyGunship1"), skill="Heavy Assault Cruisers") diff --git a/eos/effects/elitebonusheavygunshipassaultmissilelaunhcerrof2.py b/eos/effects/elitebonusheavygunshipassaultmissilelaunhcerrof2.py index 1d7fcc7be..c18d7932a 100644 --- a/eos/effects/elitebonusheavygunshipassaultmissilelaunhcerrof2.py +++ b/eos/effects/elitebonusheavygunshipassaultmissilelaunhcerrof2.py @@ -4,6 +4,5 @@ # Ship: Cerberus type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Heavy Assault Cruisers").level fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Missile Launcher Rapid Light", - "speed", ship.getModifiedItemAttr("eliteBonusHeavyGunship2") * level) + "speed", ship.getModifiedItemAttr("eliteBonusHeavyGunship2"), skill="Heavy Assault Cruisers") diff --git a/eos/effects/elitebonusheavygunshipdronecontrolrange1.py b/eos/effects/elitebonusheavygunshipdronecontrolrange1.py index 50a9e1e7e..b21e057b0 100644 --- a/eos/effects/elitebonusheavygunshipdronecontrolrange1.py +++ b/eos/effects/elitebonusheavygunshipdronecontrolrange1.py @@ -4,6 +4,4 @@ # Ship: Ishtar type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Heavy Assault Cruisers").level - amount = ship.getModifiedItemAttr("eliteBonusHeavyGunship1") * level - fit.extraAttributes.increase("droneControlRange", amount) + fit.extraAttributes.increase("droneControlRange", ship.getModifiedItemAttr("eliteBonusHeavyGunship1"), skill="Heavy Assault Cruisers") diff --git a/eos/effects/elitebonusheavygunshipheavyandheavyassaultandassaultmissilelauncherrof.py b/eos/effects/elitebonusheavygunshipheavyandheavyassaultandassaultmissilelauncherrof.py index 912017df1..479257643 100644 --- a/eos/effects/elitebonusheavygunshipheavyandheavyassaultandassaultmissilelauncherrof.py +++ b/eos/effects/elitebonusheavygunshipheavyandheavyassaultandassaultmissilelauncherrof.py @@ -4,7 +4,6 @@ # Ship: Sacrilege type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Heavy Assault Cruisers").level 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") * level) + "speed", ship.getModifiedItemAttr("eliteBonusHeavyGunship2"), skill="Heavy Assault Cruisers") diff --git a/eos/effects/elitebonusheavygunshipheavyassaultmissilelaunhcerrof2.py b/eos/effects/elitebonusheavygunshipheavyassaultmissilelaunhcerrof2.py index 7e06f6e70..41c8274a9 100644 --- a/eos/effects/elitebonusheavygunshipheavyassaultmissilelaunhcerrof2.py +++ b/eos/effects/elitebonusheavygunshipheavyassaultmissilelaunhcerrof2.py @@ -4,6 +4,5 @@ # Ship: Cerberus type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Heavy Assault Cruisers").level fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Missile Launcher Heavy Assault", - "speed", ship.getModifiedItemAttr("eliteBonusHeavyGunship2") * level) + "speed", ship.getModifiedItemAttr("eliteBonusHeavyGunship2"), skill="Heavy Assault Cruisers") diff --git a/eos/effects/elitebonusheavygunshipheavymissileflighttime1.py b/eos/effects/elitebonusheavygunshipheavymissileflighttime1.py index efc622c1a..5cf9a9298 100644 --- a/eos/effects/elitebonusheavygunshipheavymissileflighttime1.py +++ b/eos/effects/elitebonusheavygunshipheavymissileflighttime1.py @@ -4,6 +4,5 @@ # Ship: Cerberus type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Heavy Assault Cruisers").level fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Missiles"), - "explosionDelay", ship.getModifiedItemAttr("eliteBonusHeavyGunship1") * level) + "explosionDelay", ship.getModifiedItemAttr("eliteBonusHeavyGunship1"), skill="Heavy Assault Cruisers") diff --git a/eos/effects/elitebonusheavygunshipheavymissilelaunhcerrof2.py b/eos/effects/elitebonusheavygunshipheavymissilelaunhcerrof2.py index 335a1d921..c6e7fe20a 100644 --- a/eos/effects/elitebonusheavygunshipheavymissilelaunhcerrof2.py +++ b/eos/effects/elitebonusheavygunshipheavymissilelaunhcerrof2.py @@ -4,6 +4,5 @@ # Ship: Cerberus type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Heavy Assault Cruisers").level fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Missile Launcher Heavy", - "speed", ship.getModifiedItemAttr("eliteBonusHeavyGunship2") * level) + "speed", ship.getModifiedItemAttr("eliteBonusHeavyGunship2"), skill="Heavy Assault Cruisers") diff --git a/eos/effects/elitebonusheavygunshiphybriddmg2.py b/eos/effects/elitebonusheavygunshiphybriddmg2.py index 002156a4b..154fa6ea2 100644 --- a/eos/effects/elitebonusheavygunshiphybriddmg2.py +++ b/eos/effects/elitebonusheavygunshiphybriddmg2.py @@ -5,6 +5,5 @@ # Ship: Eagle type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Heavy Assault Cruisers").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Hybrid Turret"), - "damageMultiplier", ship.getModifiedItemAttr("eliteBonusHeavyGunship2") * level) + "damageMultiplier", ship.getModifiedItemAttr("eliteBonusHeavyGunship2"), skill="Heavy Assault Cruisers") diff --git a/eos/effects/elitebonusheavygunshiphybridfalloff1.py b/eos/effects/elitebonusheavygunshiphybridfalloff1.py index 504dc9e58..3940ad2d8 100644 --- a/eos/effects/elitebonusheavygunshiphybridfalloff1.py +++ b/eos/effects/elitebonusheavygunshiphybridfalloff1.py @@ -4,6 +4,5 @@ # Ship: Deimos type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Heavy Assault Cruisers").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Hybrid Turret"), - "falloff", ship.getModifiedItemAttr("eliteBonusHeavyGunship1") * level) + "falloff", ship.getModifiedItemAttr("eliteBonusHeavyGunship1"), skill="Heavy Assault Cruisers") diff --git a/eos/effects/elitebonusheavygunshiphybridoptimal1.py b/eos/effects/elitebonusheavygunshiphybridoptimal1.py index 983c3c420..8416942c7 100644 --- a/eos/effects/elitebonusheavygunshiphybridoptimal1.py +++ b/eos/effects/elitebonusheavygunshiphybridoptimal1.py @@ -4,6 +4,5 @@ # Ship: Eagle type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Heavy Assault Cruisers").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Hybrid Turret"), - "maxRange", ship.getModifiedItemAttr("eliteBonusHeavyGunship1") * level) + "maxRange", ship.getModifiedItemAttr("eliteBonusHeavyGunship1"), skill="Heavy Assault Cruisers") diff --git a/eos/effects/elitebonusheavygunshiplaserdmg2.py b/eos/effects/elitebonusheavygunshiplaserdmg2.py index 90a12df3d..fa06cd039 100644 --- a/eos/effects/elitebonusheavygunshiplaserdmg2.py +++ b/eos/effects/elitebonusheavygunshiplaserdmg2.py @@ -4,6 +4,5 @@ # Ship: Zealot type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Heavy Assault Cruisers").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Energy Turret"), - "damageMultiplier", ship.getModifiedItemAttr("eliteBonusHeavyGunship2") * level) + "damageMultiplier", ship.getModifiedItemAttr("eliteBonusHeavyGunship2"), skill="Heavy Assault Cruisers") diff --git a/eos/effects/elitebonusheavygunshiplaseroptimal1.py b/eos/effects/elitebonusheavygunshiplaseroptimal1.py index 6bc21be23..99fe315c4 100644 --- a/eos/effects/elitebonusheavygunshiplaseroptimal1.py +++ b/eos/effects/elitebonusheavygunshiplaseroptimal1.py @@ -4,6 +4,5 @@ # Ship: Zealot type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Heavy Assault Cruisers").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Energy Turret"), - "maxRange", ship.getModifiedItemAttr("eliteBonusHeavyGunship1") * level) + "maxRange", ship.getModifiedItemAttr("eliteBonusHeavyGunship1"), skill="Heavy Assault Cruisers") diff --git a/eos/effects/elitebonusheavygunshiplightmissileflighttime1.py b/eos/effects/elitebonusheavygunshiplightmissileflighttime1.py index dc917791a..a2b297914 100644 --- a/eos/effects/elitebonusheavygunshiplightmissileflighttime1.py +++ b/eos/effects/elitebonusheavygunshiplightmissileflighttime1.py @@ -4,6 +4,5 @@ # Ship: Cerberus type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Heavy Assault Cruisers").level fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Light Missiles"), - "explosionDelay", ship.getModifiedItemAttr("eliteBonusHeavyGunship1") * level) + "explosionDelay", ship.getModifiedItemAttr("eliteBonusHeavyGunship1"), skill="Heavy Assault Cruisers") diff --git a/eos/effects/elitebonusheavygunshipprojectiledmg2.py b/eos/effects/elitebonusheavygunshipprojectiledmg2.py index 0b70c3283..b3c4bd1ed 100644 --- a/eos/effects/elitebonusheavygunshipprojectiledmg2.py +++ b/eos/effects/elitebonusheavygunshipprojectiledmg2.py @@ -4,6 +4,5 @@ # Ship: Vagabond type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Heavy Assault Cruisers").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Projectile Turret"), - "damageMultiplier", ship.getModifiedItemAttr("eliteBonusHeavyGunship2") * level) + "damageMultiplier", ship.getModifiedItemAttr("eliteBonusHeavyGunship2"), skill="Heavy Assault Cruisers") diff --git a/eos/effects/elitebonusheavygunshipprojectilefalloff1.py b/eos/effects/elitebonusheavygunshipprojectilefalloff1.py index eaea83fc7..094d92c8e 100644 --- a/eos/effects/elitebonusheavygunshipprojectilefalloff1.py +++ b/eos/effects/elitebonusheavygunshipprojectilefalloff1.py @@ -4,6 +4,5 @@ # Ship: Vagabond type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Heavy Assault Cruisers").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Projectile Turret"), - "falloff", ship.getModifiedItemAttr("eliteBonusHeavyGunship1") * level) + "falloff", ship.getModifiedItemAttr("eliteBonusHeavyGunship1"), skill="Heavy Assault Cruisers") diff --git a/eos/effects/elitebonusheavygunshipprojectileoptimal1.py b/eos/effects/elitebonusheavygunshipprojectileoptimal1.py index 32171708a..c03dd91c8 100644 --- a/eos/effects/elitebonusheavygunshipprojectileoptimal1.py +++ b/eos/effects/elitebonusheavygunshipprojectileoptimal1.py @@ -4,6 +4,5 @@ # Ship: Muninn type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Heavy Assault Cruisers").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Projectile Turret"), - "maxRange", ship.getModifiedItemAttr("eliteBonusHeavyGunship1") * level) + "maxRange", ship.getModifiedItemAttr("eliteBonusHeavyGunship1"), skill="Heavy Assault Cruisers") diff --git a/eos/effects/elitebonusheavygunshipprojectiletracking2.py b/eos/effects/elitebonusheavygunshipprojectiletracking2.py index 85d1049af..6d4f33703 100644 --- a/eos/effects/elitebonusheavygunshipprojectiletracking2.py +++ b/eos/effects/elitebonusheavygunshipprojectiletracking2.py @@ -4,6 +4,5 @@ # Ship: Muninn type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Heavy Assault Cruisers").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Projectile Turret"), - "trackingSpeed", ship.getModifiedItemAttr("eliteBonusHeavyGunship2") * level) + "trackingSpeed", ship.getModifiedItemAttr("eliteBonusHeavyGunship2"), skill="Heavy Assault Cruisers") diff --git a/eos/effects/elitebonusheavyinterdictorheavyassaultmissilevelocitybonus.py b/eos/effects/elitebonusheavyinterdictorheavyassaultmissilevelocitybonus.py index f08819af3..8117c8686 100644 --- a/eos/effects/elitebonusheavyinterdictorheavyassaultmissilevelocitybonus.py +++ b/eos/effects/elitebonusheavyinterdictorheavyassaultmissilevelocitybonus.py @@ -4,6 +4,5 @@ # Ship: Onyx type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Heavy Interdiction Cruisers").level fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Assault Missiles"), - "maxVelocity", ship.getModifiedItemAttr("eliteBonusHeavyInterdictors1") * level) + "maxVelocity", ship.getModifiedItemAttr("eliteBonusHeavyInterdictors1"), skill="Heavy Interdiction Cruisers") diff --git a/eos/effects/elitebonusheavyinterdictorheavymissilevelocitybonus1.py b/eos/effects/elitebonusheavyinterdictorheavymissilevelocitybonus1.py index 30fae4d3d..e8a71bde1 100644 --- a/eos/effects/elitebonusheavyinterdictorheavymissilevelocitybonus1.py +++ b/eos/effects/elitebonusheavyinterdictorheavymissilevelocitybonus1.py @@ -4,6 +4,5 @@ # Ship: Onyx type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Heavy Interdiction Cruisers").level fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Missiles"), - "maxVelocity", ship.getModifiedItemAttr("eliteBonusHeavyInterdictors1") * level) + "maxVelocity", ship.getModifiedItemAttr("eliteBonusHeavyInterdictors1"), skill="Heavy Interdiction Cruisers") diff --git a/eos/effects/elitebonusheavyinterdictorlightmissilevelocitybonus.py b/eos/effects/elitebonusheavyinterdictorlightmissilevelocitybonus.py index fb3d8e6b4..a5e6173b2 100644 --- a/eos/effects/elitebonusheavyinterdictorlightmissilevelocitybonus.py +++ b/eos/effects/elitebonusheavyinterdictorlightmissilevelocitybonus.py @@ -4,6 +4,5 @@ # Ship: Onyx type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Heavy Interdiction Cruisers").level fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Light Missiles"), - "maxVelocity", ship.getModifiedItemAttr("eliteBonusHeavyInterdictors1") * level) + "maxVelocity", ship.getModifiedItemAttr("eliteBonusHeavyInterdictors1"), skill="Heavy Interdiction Cruisers") diff --git a/eos/effects/elitebonusheavyinterdictorshybridoptimal1.py b/eos/effects/elitebonusheavyinterdictorshybridoptimal1.py index d3ab00f75..cd63ce6b3 100644 --- a/eos/effects/elitebonusheavyinterdictorshybridoptimal1.py +++ b/eos/effects/elitebonusheavyinterdictorshybridoptimal1.py @@ -4,6 +4,5 @@ # Ship: Phobos type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Heavy Interdiction Cruisers").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Hybrid Turret"), - "maxRange", ship.getModifiedItemAttr("eliteBonusHeavyInterdictors1") * level) + "maxRange", ship.getModifiedItemAttr("eliteBonusHeavyInterdictors1"), skill="Heavy Interdiction Cruisers") diff --git a/eos/effects/elitebonusheavyinterdictorsmetoptimal.py b/eos/effects/elitebonusheavyinterdictorsmetoptimal.py index e7f159fe2..c6bace5fc 100644 --- a/eos/effects/elitebonusheavyinterdictorsmetoptimal.py +++ b/eos/effects/elitebonusheavyinterdictorsmetoptimal.py @@ -4,6 +4,5 @@ # Ship: Devoter type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Heavy Interdiction Cruisers").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Energy Turret"), - "maxRange", ship.getModifiedItemAttr("eliteBonusHeavyInterdictors1") * level) + "maxRange", ship.getModifiedItemAttr("eliteBonusHeavyInterdictors1"), skill="Heavy Interdiction Cruisers") diff --git a/eos/effects/elitebonusheavyinterdictorsprojectilefalloff1.py b/eos/effects/elitebonusheavyinterdictorsprojectilefalloff1.py index 30bf44c37..745cc760d 100644 --- a/eos/effects/elitebonusheavyinterdictorsprojectilefalloff1.py +++ b/eos/effects/elitebonusheavyinterdictorsprojectilefalloff1.py @@ -4,6 +4,5 @@ # Ship: Broadsword type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Heavy Interdiction Cruisers").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Projectile Turret"), - "falloff", ship.getModifiedItemAttr("eliteBonusHeavyInterdictors1") * level) + "falloff", ship.getModifiedItemAttr("eliteBonusHeavyInterdictors1"), skill="Heavy Interdiction Cruisers") diff --git a/eos/effects/elitebonusheavyinterdictorswarpdisruptfieldgeneratorwarpscramblerange2.py b/eos/effects/elitebonusheavyinterdictorswarpdisruptfieldgeneratorwarpscramblerange2.py index 9c8dc5046..f73326783 100644 --- a/eos/effects/elitebonusheavyinterdictorswarpdisruptfieldgeneratorwarpscramblerange2.py +++ b/eos/effects/elitebonusheavyinterdictorswarpdisruptfieldgeneratorwarpscramblerange2.py @@ -4,6 +4,5 @@ # Ships from group: Heavy Interdiction Cruiser (4 of 5) type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Heavy Interdiction Cruisers").level fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Warp Disrupt Field Generator", - "warpScrambleRange", ship.getModifiedItemAttr("eliteBonusHeavyInterdictors2") * level) \ No newline at end of file + "warpScrambleRange", ship.getModifiedItemAttr("eliteBonusHeavyInterdictors2"), skill="Heavy Interdiction Cruisers") \ No newline at end of file diff --git a/eos/effects/elitebonusinterdictorsarmorresist1.py b/eos/effects/elitebonusinterdictorsarmorresist1.py index e470d11ca..5fe8c4960 100644 --- a/eos/effects/elitebonusinterdictorsarmorresist1.py +++ b/eos/effects/elitebonusinterdictorsarmorresist1.py @@ -4,7 +4,6 @@ # Ship: Heretic type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Interdictors").level for damageType in ("Em", "Thermal", "Explosive", "Kinetic"): fit.ship.boostItemAttr("armor%sDamageResonance" % damageType, - ship.getModifiedItemAttr("eliteBonusInterdictors1") * level) + ship.getModifiedItemAttr("eliteBonusInterdictors1"), skill="Interdictors") diff --git a/eos/effects/elitebonusinterdictorsmissilekineticdamage1.py b/eos/effects/elitebonusinterdictorsmissilekineticdamage1.py index ba267abe2..b8dd6e07f 100644 --- a/eos/effects/elitebonusinterdictorsmissilekineticdamage1.py +++ b/eos/effects/elitebonusinterdictorsmissilekineticdamage1.py @@ -4,6 +4,5 @@ # Ship: Flycatcher type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Interdictors").level fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Light Missiles") or mod.charge.requiresSkill("Rockets"), - "kineticDamage", ship.getModifiedItemAttr("eliteBonusInterdictors1") * level) + "kineticDamage", ship.getModifiedItemAttr("eliteBonusInterdictors1"), skill="Interdictors") diff --git a/eos/effects/elitebonusinterdictorsmwdsigradius2.py b/eos/effects/elitebonusinterdictorsmwdsigradius2.py index f0636809d..2ced01dde 100644 --- a/eos/effects/elitebonusinterdictorsmwdsigradius2.py +++ b/eos/effects/elitebonusinterdictorsmwdsigradius2.py @@ -4,6 +4,5 @@ # Ships from group: Interdictor (4 of 4) type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Interdictors").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("High Speed Maneuvering"), - "signatureRadiusBonus", ship.getModifiedItemAttr("eliteBonusInterdictors2") * level) + "signatureRadiusBonus", ship.getModifiedItemAttr("eliteBonusInterdictors2"), skill="Interdictors") diff --git a/eos/effects/elitebonusinterdictorsprojectilefalloff1.py b/eos/effects/elitebonusinterdictorsprojectilefalloff1.py index 996502ab5..b23c1cddc 100644 --- a/eos/effects/elitebonusinterdictorsprojectilefalloff1.py +++ b/eos/effects/elitebonusinterdictorsprojectilefalloff1.py @@ -4,6 +4,5 @@ # Ship: Sabre type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Interdictors").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Projectile Turret"), - "falloff", ship.getModifiedItemAttr("eliteBonusInterdictors1") * level) + "falloff", ship.getModifiedItemAttr("eliteBonusInterdictors1"), skill="Interdictors") diff --git a/eos/effects/elitebonusinterdictorsshtrof1.py b/eos/effects/elitebonusinterdictorsshtrof1.py index 82f076a89..4b9b2796c 100644 --- a/eos/effects/elitebonusinterdictorsshtrof1.py +++ b/eos/effects/elitebonusinterdictorsshtrof1.py @@ -4,6 +4,5 @@ # Ship: Eris type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Interdictors").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Hybrid Turret"), - "speed", ship.getModifiedItemAttr("eliteBonusInterdictors1") * level) \ No newline at end of file + "speed", ship.getModifiedItemAttr("eliteBonusInterdictors1"), skill="Interdictors") \ No newline at end of file diff --git a/eos/effects/elitebonusjumpfreighterarmorhp1.py b/eos/effects/elitebonusjumpfreighterarmorhp1.py index 950fd7460..97d53e9b7 100644 --- a/eos/effects/elitebonusjumpfreighterarmorhp1.py +++ b/eos/effects/elitebonusjumpfreighterarmorhp1.py @@ -5,5 +5,4 @@ # Ship: Ark type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Jump Freighters").level - fit.ship.boostItemAttr("armorHP", ship.getModifiedItemAttr("eliteBonusJumpFreighter1") * level) + fit.ship.boostItemAttr("armorHP", ship.getModifiedItemAttr("eliteBonusJumpFreighter1"), skill="Jump Freighters") diff --git a/eos/effects/elitebonusjumpfreighterhullhp1.py b/eos/effects/elitebonusjumpfreighterhullhp1.py index f3c7b4e74..db20223b0 100644 --- a/eos/effects/elitebonusjumpfreighterhullhp1.py +++ b/eos/effects/elitebonusjumpfreighterhullhp1.py @@ -4,5 +4,4 @@ # Ships from group: Jump Freighter (4 of 4) type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Jump Freighters").level - fit.ship.boostItemAttr("hp", ship.getModifiedItemAttr("eliteBonusJumpFreighter1") * level) + fit.ship.boostItemAttr("hp", ship.getModifiedItemAttr("eliteBonusJumpFreighter1"), skill="Jump Freighters") diff --git a/eos/effects/elitebonusjumpfreighterjumpdriveconsumptionamount2.py b/eos/effects/elitebonusjumpfreighterjumpdriveconsumptionamount2.py index 516e18513..9d241d176 100644 --- a/eos/effects/elitebonusjumpfreighterjumpdriveconsumptionamount2.py +++ b/eos/effects/elitebonusjumpfreighterjumpdriveconsumptionamount2.py @@ -4,5 +4,4 @@ # Ships from group: Jump Freighter (4 of 4) type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Jump Freighters").level - fit.ship.boostItemAttr("jumpDriveConsumptionAmount", ship.getModifiedItemAttr("eliteBonusJumpFreighter2") * level) + fit.ship.boostItemAttr("jumpDriveConsumptionAmount", ship.getModifiedItemAttr("eliteBonusJumpFreighter2"), skill="Jump Freighters") diff --git a/eos/effects/elitebonusjumpfreightershieldhp1.py b/eos/effects/elitebonusjumpfreightershieldhp1.py index 9271219bf..fc36cdd0d 100644 --- a/eos/effects/elitebonusjumpfreightershieldhp1.py +++ b/eos/effects/elitebonusjumpfreightershieldhp1.py @@ -5,5 +5,4 @@ # Ship: Rhea type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Jump Freighters").level - fit.ship.boostItemAttr("shieldCapacity", ship.getModifiedItemAttr("eliteBonusJumpFreighter1") * level) + fit.ship.boostItemAttr("shieldCapacity", ship.getModifiedItemAttr("eliteBonusJumpFreighter1"), skill="Jump Freighters") diff --git a/eos/effects/elitebonuslogisticenergytransfercapneed1.py b/eos/effects/elitebonuslogisticenergytransfercapneed1.py index 1d4a4ef5d..a2978184d 100644 --- a/eos/effects/elitebonuslogisticenergytransfercapneed1.py +++ b/eos/effects/elitebonuslogisticenergytransfercapneed1.py @@ -4,6 +4,5 @@ # Ship: Guardian type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Logistics").level fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Remote Capacitor Transmitter", - "capacitorNeed", ship.getModifiedItemAttr("eliteBonusLogistics1") * level) + "capacitorNeed", ship.getModifiedItemAttr("eliteBonusLogistics1"), skill="Logistics") diff --git a/eos/effects/elitebonuslogisticenergytransfercapneed2.py b/eos/effects/elitebonuslogisticenergytransfercapneed2.py index a39cedf3a..9b31da9fe 100644 --- a/eos/effects/elitebonuslogisticenergytransfercapneed2.py +++ b/eos/effects/elitebonuslogisticenergytransfercapneed2.py @@ -5,6 +5,5 @@ # Ship: Etana type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Logistics").level fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Remote Capacitor Transmitter", - "capacitorNeed", ship.getModifiedItemAttr("eliteBonusLogistics2") * level) + "capacitorNeed", ship.getModifiedItemAttr("eliteBonusLogistics2"), skill="Logistics") diff --git a/eos/effects/elitebonuslogisticremotearmorrepaircapneed1.py b/eos/effects/elitebonuslogisticremotearmorrepaircapneed1.py index 27f0f62e0..e03cbf3a1 100644 --- a/eos/effects/elitebonuslogisticremotearmorrepaircapneed1.py +++ b/eos/effects/elitebonuslogisticremotearmorrepaircapneed1.py @@ -4,6 +4,5 @@ # Ship: Oneiros type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Logistics").level fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Remote Armor Repairer", - "capacitorNeed", ship.getModifiedItemAttr("eliteBonusLogistics1") * level) + "capacitorNeed", ship.getModifiedItemAttr("eliteBonusLogistics1"), skill="Logistics") diff --git a/eos/effects/elitebonuslogisticremotearmorrepaircapneed2.py b/eos/effects/elitebonuslogisticremotearmorrepaircapneed2.py index 0a57309ef..1e05d0d22 100644 --- a/eos/effects/elitebonuslogisticremotearmorrepaircapneed2.py +++ b/eos/effects/elitebonuslogisticremotearmorrepaircapneed2.py @@ -4,6 +4,5 @@ # Ship: Guardian type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Logistics").level fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Remote Armor Repairer", - "capacitorNeed", ship.getModifiedItemAttr("eliteBonusLogistics2") * level) + "capacitorNeed", ship.getModifiedItemAttr("eliteBonusLogistics2"), skill="Logistics") diff --git a/eos/effects/elitebonuslogisticshieldtransfercapneed1.py b/eos/effects/elitebonuslogisticshieldtransfercapneed1.py index 28add0944..40cf695d8 100644 --- a/eos/effects/elitebonuslogisticshieldtransfercapneed1.py +++ b/eos/effects/elitebonuslogisticshieldtransfercapneed1.py @@ -5,6 +5,5 @@ # Ship: Etana type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Logistics").level fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Remote Shield Booster", - "capacitorNeed", ship.getModifiedItemAttr("eliteBonusLogistics1") * level) + "capacitorNeed", ship.getModifiedItemAttr("eliteBonusLogistics1"), skill="Logistics") diff --git a/eos/effects/elitebonuslogisticshieldtransfercapneed2.py b/eos/effects/elitebonuslogisticshieldtransfercapneed2.py index 493562c2e..b94f69ca7 100644 --- a/eos/effects/elitebonuslogisticshieldtransfercapneed2.py +++ b/eos/effects/elitebonuslogisticshieldtransfercapneed2.py @@ -4,6 +4,5 @@ # Ship: Scimitar type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Logistics").level fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Remote Shield Booster", - "capacitorNeed", ship.getModifiedItemAttr("eliteBonusLogistics2") * level) + "capacitorNeed", ship.getModifiedItemAttr("eliteBonusLogistics2"), skill="Logistics") diff --git a/eos/effects/elitebonuslogisticstrackinglinkfalloffbonus1.py b/eos/effects/elitebonuslogisticstrackinglinkfalloffbonus1.py index 6163bb1a2..d9da9e025 100644 --- a/eos/effects/elitebonuslogisticstrackinglinkfalloffbonus1.py +++ b/eos/effects/elitebonuslogisticstrackinglinkfalloffbonus1.py @@ -4,6 +4,5 @@ # Ship: Scimitar type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Logistics").level fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Remote Tracking Computer", - "falloffBonus", ship.getModifiedItemAttr("eliteBonusLogistics1") * level) + "falloffBonus", ship.getModifiedItemAttr("eliteBonusLogistics1"), skill="Logistics") diff --git a/eos/effects/elitebonuslogisticstrackinglinkfalloffbonus2.py b/eos/effects/elitebonuslogisticstrackinglinkfalloffbonus2.py index 9ee2e1eeb..48c6bc5c6 100644 --- a/eos/effects/elitebonuslogisticstrackinglinkfalloffbonus2.py +++ b/eos/effects/elitebonuslogisticstrackinglinkfalloffbonus2.py @@ -4,6 +4,5 @@ # Ship: Oneiros type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Logistics").level fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Remote Tracking Computer", - "falloffBonus", ship.getModifiedItemAttr("eliteBonusLogistics2") * level) + "falloffBonus", ship.getModifiedItemAttr("eliteBonusLogistics2"), skill="Logistics") diff --git a/eos/effects/elitebonuslogisticstrackinglinkmaxrangebonus1.py b/eos/effects/elitebonuslogisticstrackinglinkmaxrangebonus1.py index 4dbe35b2b..ecbd5b370 100644 --- a/eos/effects/elitebonuslogisticstrackinglinkmaxrangebonus1.py +++ b/eos/effects/elitebonuslogisticstrackinglinkmaxrangebonus1.py @@ -4,6 +4,5 @@ # Ship: Scimitar type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Logistics").level fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Remote Tracking Computer", - "maxRangeBonus", ship.getModifiedItemAttr("eliteBonusLogistics1") * level) + "maxRangeBonus", ship.getModifiedItemAttr("eliteBonusLogistics1"), skill="Logistics") diff --git a/eos/effects/elitebonuslogisticstrackinglinkmaxrangebonus2.py b/eos/effects/elitebonuslogisticstrackinglinkmaxrangebonus2.py index 465a1f7c0..280cb4ac3 100644 --- a/eos/effects/elitebonuslogisticstrackinglinkmaxrangebonus2.py +++ b/eos/effects/elitebonuslogisticstrackinglinkmaxrangebonus2.py @@ -4,6 +4,5 @@ # Ship: Oneiros type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Logistics").level fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Remote Tracking Computer", - "maxRangeBonus", ship.getModifiedItemAttr("eliteBonusLogistics2") * level) + "maxRangeBonus", ship.getModifiedItemAttr("eliteBonusLogistics2"), skill="Logistics") diff --git a/eos/effects/elitebonuslogisticstrackinglinktrackingspeedbonus1.py b/eos/effects/elitebonuslogisticstrackinglinktrackingspeedbonus1.py index 58f678efc..c7a42d460 100644 --- a/eos/effects/elitebonuslogisticstrackinglinktrackingspeedbonus1.py +++ b/eos/effects/elitebonuslogisticstrackinglinktrackingspeedbonus1.py @@ -4,6 +4,5 @@ # Ship: Scimitar type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Logistics").level fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Remote Tracking Computer", - "trackingSpeedBonus", ship.getModifiedItemAttr("eliteBonusLogistics1") * level) + "trackingSpeedBonus", ship.getModifiedItemAttr("eliteBonusLogistics1"), skill="Logistics") diff --git a/eos/effects/elitebonuslogisticstrackinglinktrackingspeedbonus2.py b/eos/effects/elitebonuslogisticstrackinglinktrackingspeedbonus2.py index 43372ff91..1ab6ad285 100644 --- a/eos/effects/elitebonuslogisticstrackinglinktrackingspeedbonus2.py +++ b/eos/effects/elitebonuslogisticstrackinglinktrackingspeedbonus2.py @@ -4,6 +4,5 @@ # Ship: Oneiros type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Logistics").level fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Remote Tracking Computer", - "trackingSpeedBonus", ship.getModifiedItemAttr("eliteBonusLogistics2") * level) + "trackingSpeedBonus", ship.getModifiedItemAttr("eliteBonusLogistics2"), skill="Logistics") diff --git a/eos/effects/elitebonusmaraudershieldbonus2a.py b/eos/effects/elitebonusmaraudershieldbonus2a.py index fd15a3216..5e14681d5 100644 --- a/eos/effects/elitebonusmaraudershieldbonus2a.py +++ b/eos/effects/elitebonusmaraudershieldbonus2a.py @@ -5,6 +5,5 @@ # Ship: Vargur type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Marauders").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Operation"), - "shieldBonus", ship.getModifiedItemAttr("eliteBonusViolators2") * level) + "shieldBonus", ship.getModifiedItemAttr("eliteBonusViolators2"), skill="Marauders") diff --git a/eos/effects/elitebonusvampiredrainamount2.py b/eos/effects/elitebonusvampiredrainamount2.py index fdb4d884a..96b934a87 100644 --- a/eos/effects/elitebonusvampiredrainamount2.py +++ b/eos/effects/elitebonusvampiredrainamount2.py @@ -5,6 +5,5 @@ # Ship: Pilgrim type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Recon Ships").level fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Vampire", - "powerTransferAmount", ship.getModifiedItemAttr("eliteBonusReconShip2") * level) + "powerTransferAmount", ship.getModifiedItemAttr("eliteBonusReconShip2"), skill="Recon Ships") diff --git a/eos/effects/elitebonusviolatorsewtargetpainting1.py b/eos/effects/elitebonusviolatorsewtargetpainting1.py index 3bcc86f25..a6ba7f86e 100644 --- a/eos/effects/elitebonusviolatorsewtargetpainting1.py +++ b/eos/effects/elitebonusviolatorsewtargetpainting1.py @@ -4,6 +4,5 @@ # Ship: Golem type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Marauders").level fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Target Painter", - "signatureRadiusBonus", ship.getModifiedItemAttr("eliteBonusViolators1") * level) + "signatureRadiusBonus", ship.getModifiedItemAttr("eliteBonusViolators1"), skill="Marauders") diff --git a/eos/effects/elitebonusviolatorslargeenergyturretdamage1.py b/eos/effects/elitebonusviolatorslargeenergyturretdamage1.py index 19c257162..dc7c316ef 100644 --- a/eos/effects/elitebonusviolatorslargeenergyturretdamage1.py +++ b/eos/effects/elitebonusviolatorslargeenergyturretdamage1.py @@ -4,6 +4,5 @@ # Ship: Paladin type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Marauders").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Large Energy Turret"), - "damageMultiplier", ship.getModifiedItemAttr("eliteBonusViolators1") * level) + "damageMultiplier", ship.getModifiedItemAttr("eliteBonusViolators1"), skill="Marauders") diff --git a/eos/effects/elitebonusviolatorslargehybridturrettracking1.py b/eos/effects/elitebonusviolatorslargehybridturrettracking1.py index 5c7b1fded..2f0acdf46 100644 --- a/eos/effects/elitebonusviolatorslargehybridturrettracking1.py +++ b/eos/effects/elitebonusviolatorslargehybridturrettracking1.py @@ -4,6 +4,5 @@ # Ship: Kronos type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Marauders").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Large Hybrid Turret"), - "trackingSpeed", ship.getModifiedItemAttr("eliteBonusViolators1") * level) + "trackingSpeed", ship.getModifiedItemAttr("eliteBonusViolators1"), skill="Marauders") diff --git a/eos/effects/elitebonusviolatorslargeprojectileturrettracking1.py b/eos/effects/elitebonusviolatorslargeprojectileturrettracking1.py index ac03e4dcf..474e61091 100644 --- a/eos/effects/elitebonusviolatorslargeprojectileturrettracking1.py +++ b/eos/effects/elitebonusviolatorslargeprojectileturrettracking1.py @@ -4,6 +4,5 @@ # Ship: Vargur type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Marauders").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Large Projectile Turret"), - "trackingSpeed", ship.getModifiedItemAttr("eliteBonusViolators1") * level) + "trackingSpeed", ship.getModifiedItemAttr("eliteBonusViolators1"), skill="Marauders") diff --git a/eos/effects/elitebonusviolatorsrepairsystemsarmordamageamount2.py b/eos/effects/elitebonusviolatorsrepairsystemsarmordamageamount2.py index a1d7ce8e1..4a82b6f14 100644 --- a/eos/effects/elitebonusviolatorsrepairsystemsarmordamageamount2.py +++ b/eos/effects/elitebonusviolatorsrepairsystemsarmordamageamount2.py @@ -5,6 +5,5 @@ # Ship: Paladin type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Marauders").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Repair Systems"), - "armorDamageAmount", ship.getModifiedItemAttr("eliteBonusViolators2") * level) + "armorDamageAmount", ship.getModifiedItemAttr("eliteBonusViolators2"), skill="Marauders") diff --git a/eos/effects/eliteindustrialarmorresists2.py b/eos/effects/eliteindustrialarmorresists2.py index 05b2aca3c..e7b309177 100644 --- a/eos/effects/eliteindustrialarmorresists2.py +++ b/eos/effects/eliteindustrialarmorresists2.py @@ -5,7 +5,5 @@ # Ship: Occator type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Transport Ships").level - for damageType in ("em", "thermal", "explosive", "kinetic"): fit.ship.boostItemAttr("armor{}DamageResonance".format(damageType.capitalize()), - ship.getModifiedItemAttr("eliteBonusIndustrial2") * level) + ship.getModifiedItemAttr("eliteBonusIndustrial2"), skill="Transport Ships") diff --git a/eos/effects/eliteindustrialfleetcapacity1.py b/eos/effects/eliteindustrialfleetcapacity1.py index 83345c183..717be0d22 100644 --- a/eos/effects/eliteindustrialfleetcapacity1.py +++ b/eos/effects/eliteindustrialfleetcapacity1.py @@ -4,5 +4,4 @@ # Ships from group: Deep Space Transport (4 of 4) type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Transport Ships").level - fit.ship.boostItemAttr("fleetHangarCapacity", ship.getModifiedItemAttr("eliteBonusIndustrial1") * level) + fit.ship.boostItemAttr("fleetHangarCapacity", ship.getModifiedItemAttr("eliteBonusIndustrial1"), skill="Transport Ships") diff --git a/eos/effects/eliteindustrialshieldresists2.py b/eos/effects/eliteindustrialshieldresists2.py index 78cc6e62f..923855efe 100644 --- a/eos/effects/eliteindustrialshieldresists2.py +++ b/eos/effects/eliteindustrialshieldresists2.py @@ -5,7 +5,6 @@ # Ship: Mastodon type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Transport Ships").level for damageType in ("em", "thermal", "explosive", "kinetic"): fit.ship.boostItemAttr("shield{}DamageResonance".format(damageType.capitalize()), - ship.getModifiedItemAttr("eliteBonusIndustrial2") * level) + ship.getModifiedItemAttr("eliteBonusIndustrial2"), skill="Transport Ships") diff --git a/eos/effects/eliteindustrialwarpspeedbonus1.py b/eos/effects/eliteindustrialwarpspeedbonus1.py index 73c62d1a0..e4e2456f4 100644 --- a/eos/effects/eliteindustrialwarpspeedbonus1.py +++ b/eos/effects/eliteindustrialwarpspeedbonus1.py @@ -4,5 +4,4 @@ # Ships from group: Blockade Runner (4 of 4) type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Transport Ships").level - fit.ship.boostItemAttr("warpSpeedMultiplier", ship.getModifiedItemAttr("eliteBonusIndustrial1") * level) + fit.ship.boostItemAttr("warpSpeedMultiplier", ship.getModifiedItemAttr("eliteBonusIndustrial1"), skill="Transport Ships") diff --git a/eos/effects/elitereconbonusenergyneutamount2.py b/eos/effects/elitereconbonusenergyneutamount2.py index 5a7df6bbb..940318998 100644 --- a/eos/effects/elitereconbonusenergyneutamount2.py +++ b/eos/effects/elitereconbonusenergyneutamount2.py @@ -5,6 +5,5 @@ # Ship: Pilgrim type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Recon Ships").level fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Destabilizer", - "energyDestabilizationAmount", ship.getModifiedItemAttr("eliteBonusReconShip2") * level) + "energyDestabilizationAmount", ship.getModifiedItemAttr("eliteBonusReconShip2"), skill="Recon Ships") diff --git a/eos/effects/elitereconbonusenergyneutrange1.py b/eos/effects/elitereconbonusenergyneutrange1.py index 02aae420d..566b9e868 100644 --- a/eos/effects/elitereconbonusenergyneutrange1.py +++ b/eos/effects/elitereconbonusenergyneutrange1.py @@ -4,6 +4,5 @@ # Ship: Curse type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Recon Ships").level fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Destabilizer", - "energyDestabilizationRange", ship.getModifiedItemAttr("eliteBonusReconShip1") * level) + "energyDestabilizationRange", ship.getModifiedItemAttr("eliteBonusReconShip1"), skill="Recon Ships") diff --git a/eos/effects/elitereconbonusgravimetricstrength2.py b/eos/effects/elitereconbonusgravimetricstrength2.py index 7a747fd3f..bd24450e9 100644 --- a/eos/effects/elitereconbonusgravimetricstrength2.py +++ b/eos/effects/elitereconbonusgravimetricstrength2.py @@ -6,6 +6,5 @@ # Ship: Rook type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Recon Ships").level fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "ECM", - "scanGravimetricStrengthBonus", ship.getModifiedItemAttr("eliteBonusReconShip2") * level) + "scanGravimetricStrengthBonus", ship.getModifiedItemAttr("eliteBonusReconShip2"), skill="Recon Ships") diff --git a/eos/effects/elitereconbonusheavyassaultmissilevelocity.py b/eos/effects/elitereconbonusheavyassaultmissilevelocity.py index fc11e678c..539bc4995 100644 --- a/eos/effects/elitereconbonusheavyassaultmissilevelocity.py +++ b/eos/effects/elitereconbonusheavyassaultmissilevelocity.py @@ -4,6 +4,5 @@ # Ship: Rook type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Recon Ships").level fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Assault Missiles"), - "maxVelocity", ship.getModifiedItemAttr("eliteBonusReconShip1") * level) + "maxVelocity", ship.getModifiedItemAttr("eliteBonusReconShip1"), skill="Recon Ships") diff --git a/eos/effects/elitereconbonusheavymissilevelocity.py b/eos/effects/elitereconbonusheavymissilevelocity.py index 97338e5e5..2d41b5569 100644 --- a/eos/effects/elitereconbonusheavymissilevelocity.py +++ b/eos/effects/elitereconbonusheavymissilevelocity.py @@ -4,6 +4,5 @@ # Ship: Rook type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Recon Ships").level fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Missiles"), - "maxVelocity", ship.getModifiedItemAttr("eliteBonusReconShip1") * level) + "maxVelocity", ship.getModifiedItemAttr("eliteBonusReconShip1"), skill="Recon Ships") diff --git a/eos/effects/elitereconbonusladarstrength2.py b/eos/effects/elitereconbonusladarstrength2.py index 0f7ed9482..b530f6b7b 100644 --- a/eos/effects/elitereconbonusladarstrength2.py +++ b/eos/effects/elitereconbonusladarstrength2.py @@ -6,6 +6,5 @@ # Ship: Rook type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Recon Ships").level fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "ECM", - "scanLadarStrengthBonus", ship.getModifiedItemAttr("eliteBonusReconShip2") * level) + "scanLadarStrengthBonus", ship.getModifiedItemAttr("eliteBonusReconShip2"), skill="Recon Ships") diff --git a/eos/effects/elitereconbonusmagnetometricstrength2.py b/eos/effects/elitereconbonusmagnetometricstrength2.py index 02f41033c..5bedc1821 100644 --- a/eos/effects/elitereconbonusmagnetometricstrength2.py +++ b/eos/effects/elitereconbonusmagnetometricstrength2.py @@ -6,6 +6,5 @@ # Ship: Rook type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Recon Ships").level fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "ECM", - "scanMagnetometricStrengthBonus", ship.getModifiedItemAttr("eliteBonusReconShip2") * level) + "scanMagnetometricStrengthBonus", ship.getModifiedItemAttr("eliteBonusReconShip2"), skill="Recon Ships") diff --git a/eos/effects/elitereconbonusmhtoptimalrange1.py b/eos/effects/elitereconbonusmhtoptimalrange1.py index 4f9ad6048..0d7d06391 100644 --- a/eos/effects/elitereconbonusmhtoptimalrange1.py +++ b/eos/effects/elitereconbonusmhtoptimalrange1.py @@ -4,6 +4,5 @@ # Ship: Lachesis type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Recon Ships").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Hybrid Turret"), - "maxRange", ship.getModifiedItemAttr("eliteBonusReconShip1") * level) + "maxRange", ship.getModifiedItemAttr("eliteBonusReconShip1"), skill="Recon Ships") diff --git a/eos/effects/elitereconbonusmptdamage1.py b/eos/effects/elitereconbonusmptdamage1.py index 1a8b12924..cf0909b32 100644 --- a/eos/effects/elitereconbonusmptdamage1.py +++ b/eos/effects/elitereconbonusmptdamage1.py @@ -4,6 +4,5 @@ # Ship: Huginn type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Recon Ships").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Projectile Turret"), - "damageMultiplier", ship.getModifiedItemAttr("eliteBonusReconShip1") * level) + "damageMultiplier", ship.getModifiedItemAttr("eliteBonusReconShip1"), skill="Recon Ships") diff --git a/eos/effects/elitereconbonusneutrange3.py b/eos/effects/elitereconbonusneutrange3.py index 88b6ecb03..4bb877b0b 100644 --- a/eos/effects/elitereconbonusneutrange3.py +++ b/eos/effects/elitereconbonusneutrange3.py @@ -4,6 +4,5 @@ # Ship: Pilgrim type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Recon Ships").level fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Destabilizer", - "energyDestabilizationRange", ship.getModifiedItemAttr("eliteBonusReconShip3") * level) + "energyDestabilizationRange", ship.getModifiedItemAttr("eliteBonusReconShip3"), skill="Recon Ships") diff --git a/eos/effects/elitereconbonusradarstrength2.py b/eos/effects/elitereconbonusradarstrength2.py index c30bfdcf8..78566d3c2 100644 --- a/eos/effects/elitereconbonusradarstrength2.py +++ b/eos/effects/elitereconbonusradarstrength2.py @@ -6,6 +6,5 @@ # Ship: Rook type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Recon Ships").level fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "ECM", - "scanRadarStrengthBonus", ship.getModifiedItemAttr("eliteBonusReconShip2") * level) + "scanRadarStrengthBonus", ship.getModifiedItemAttr("eliteBonusReconShip2"), skill="Recon Ships") diff --git a/eos/effects/elitereconbonusvamprange3.py b/eos/effects/elitereconbonusvamprange3.py index dfafdd3a3..c870e93ae 100644 --- a/eos/effects/elitereconbonusvamprange3.py +++ b/eos/effects/elitereconbonusvamprange3.py @@ -4,6 +4,5 @@ # Ship: Pilgrim type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Recon Ships").level fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Vampire", - "powerTransferRange", ship.getModifiedItemAttr("eliteBonusReconShip3") * level) + "powerTransferRange", ship.getModifiedItemAttr("eliteBonusReconShip3"), skill="Recon Ships") diff --git a/eos/effects/elitereconenergyvampirerangebonus1.py b/eos/effects/elitereconenergyvampirerangebonus1.py index a147787c9..23ccc34cc 100644 --- a/eos/effects/elitereconenergyvampirerangebonus1.py +++ b/eos/effects/elitereconenergyvampirerangebonus1.py @@ -4,6 +4,5 @@ # Ship: Curse type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Recon Ships").level fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Vampire", - "powerTransferRange", ship.getModifiedItemAttr("eliteBonusReconShip1") * level) + "powerTransferRange", ship.getModifiedItemAttr("eliteBonusReconShip1"), skill="Recon Ships") diff --git a/eos/effects/elitereconjumpscramblerrangebonus2.py b/eos/effects/elitereconjumpscramblerrangebonus2.py index 654785ffd..760164db8 100644 --- a/eos/effects/elitereconjumpscramblerrangebonus2.py +++ b/eos/effects/elitereconjumpscramblerrangebonus2.py @@ -5,6 +5,5 @@ # Ship: Lachesis type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Recon Ships").level fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Warp Scrambler", - "maxRange", ship.getModifiedItemAttr("eliteBonusReconShip2") * level) + "maxRange", ship.getModifiedItemAttr("eliteBonusReconShip2"), skill="Recon Ships") diff --git a/eos/effects/elitereconstasiswebbonus2.py b/eos/effects/elitereconstasiswebbonus2.py index c1f4f0d37..a36bef9de 100644 --- a/eos/effects/elitereconstasiswebbonus2.py +++ b/eos/effects/elitereconstasiswebbonus2.py @@ -6,6 +6,5 @@ # Ship: Rapier type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Recon Ships").level fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Stasis Web", - "maxRange", ship.getModifiedItemAttr("eliteBonusReconShip2") * level) + "maxRange", ship.getModifiedItemAttr("eliteBonusReconShip2"), skill="Recon Ships") diff --git a/eos/effects/emshieldcompensationhardeningbonusgroupshieldamp.py b/eos/effects/emshieldcompensationhardeningbonusgroupshieldamp.py index 91a230952..b71bbe25d 100644 --- a/eos/effects/emshieldcompensationhardeningbonusgroupshieldamp.py +++ b/eos/effects/emshieldcompensationhardeningbonusgroupshieldamp.py @@ -4,6 +4,5 @@ # Skill: EM Shield Compensation type = "passive" def handler(fit, skill, context): - level = fit.character.getSkill("EM Shield Compensation").level fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Shield Amplifier", - "emDamageResistanceBonus", skill.getModifiedItemAttr("hardeningBonus") * level) \ No newline at end of file + "emDamageResistanceBonus", skill.getModifiedItemAttr("hardeningBonus") * skill.level) \ No newline at end of file diff --git a/eos/effects/freighteragilitybonus2o2.py b/eos/effects/freighteragilitybonus2o2.py index 2472ae51f..5a990918e 100644 --- a/eos/effects/freighteragilitybonus2o2.py +++ b/eos/effects/freighteragilitybonus2o2.py @@ -4,5 +4,4 @@ # Ship: Bowhead type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("ORE Freighter").level - fit.ship.boostItemAttr("shipMaintenanceBayCapacity", ship.getModifiedItemAttr("freighterBonusO1")*level) + fit.ship.boostItemAttr("shipMaintenanceBayCapacity", ship.getModifiedItemAttr("freighterBonusO1"), skill="ORE Freighter") diff --git a/eos/effects/freighteragilitybonusa1.py b/eos/effects/freighteragilitybonusa1.py index 17dd28ab9..2595d7d85 100644 --- a/eos/effects/freighteragilitybonusa1.py +++ b/eos/effects/freighteragilitybonusa1.py @@ -4,5 +4,4 @@ # Ship: Ark type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Amarr Freighter").level - fit.ship.boostItemAttr("agility", ship.getModifiedItemAttr("freighterBonusA1") * level) + fit.ship.boostItemAttr("agility", ship.getModifiedItemAttr("freighterBonusA1"), skill="Amarr Freighter") diff --git a/eos/effects/freighteragilitybonusc1.py b/eos/effects/freighteragilitybonusc1.py index 6219968ce..157b2a432 100644 --- a/eos/effects/freighteragilitybonusc1.py +++ b/eos/effects/freighteragilitybonusc1.py @@ -4,5 +4,4 @@ # Ship: Rhea type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Caldari Freighter").level - fit.ship.boostItemAttr("agility", ship.getModifiedItemAttr("freighterBonusC1") * level) + fit.ship.boostItemAttr("agility", ship.getModifiedItemAttr("freighterBonusC1"), skill="Caldari Freighter") diff --git a/eos/effects/freighteragilitybonusg1.py b/eos/effects/freighteragilitybonusg1.py index ec9d7757b..f68d099f7 100644 --- a/eos/effects/freighteragilitybonusg1.py +++ b/eos/effects/freighteragilitybonusg1.py @@ -4,5 +4,4 @@ # Ship: Anshar type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Gallente Freighter").level - fit.ship.boostItemAttr("agility", ship.getModifiedItemAttr("freighterBonusG1") * level) + fit.ship.boostItemAttr("agility", ship.getModifiedItemAttr("freighterBonusG1"), skill="Gallente Freighter") diff --git a/eos/effects/freighteragilitybonusm1.py b/eos/effects/freighteragilitybonusm1.py index b26da4dc8..999ac61b9 100644 --- a/eos/effects/freighteragilitybonusm1.py +++ b/eos/effects/freighteragilitybonusm1.py @@ -4,5 +4,4 @@ # Ship: Nomad type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Minmatar Freighter").level - fit.ship.boostItemAttr("agility", ship.getModifiedItemAttr("freighterBonusM1") * level) + fit.ship.boostItemAttr("agility", ship.getModifiedItemAttr("freighterBonusM1"), skill="Minmatar Freighter") diff --git a/eos/effects/freightercargobonusa2.py b/eos/effects/freightercargobonusa2.py index 120261787..66834b2df 100644 --- a/eos/effects/freightercargobonusa2.py +++ b/eos/effects/freightercargobonusa2.py @@ -4,5 +4,4 @@ # Variations of ship: Providence (2 of 2) type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Amarr Freighter").level - fit.ship.boostItemAttr("capacity", ship.getModifiedItemAttr("freighterBonusA2") * level) + fit.ship.boostItemAttr("capacity", ship.getModifiedItemAttr("freighterBonusA2"), skill="Amarr Freighter") diff --git a/eos/effects/freightercargobonusc2.py b/eos/effects/freightercargobonusc2.py index c6c4efabd..d024c2c54 100644 --- a/eos/effects/freightercargobonusc2.py +++ b/eos/effects/freightercargobonusc2.py @@ -4,5 +4,4 @@ # Variations of ship: Charon (2 of 2) type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Caldari Freighter").level - fit.ship.boostItemAttr("capacity", ship.getModifiedItemAttr("freighterBonusC2") * level) + fit.ship.boostItemAttr("capacity", ship.getModifiedItemAttr("freighterBonusC2"), skill="Caldari Freighter") diff --git a/eos/effects/freightercargobonusg2.py b/eos/effects/freightercargobonusg2.py index 9a2e19bef..43c5bb04b 100644 --- a/eos/effects/freightercargobonusg2.py +++ b/eos/effects/freightercargobonusg2.py @@ -4,5 +4,4 @@ # Variations of ship: Obelisk (2 of 2) type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Gallente Freighter").level - fit.ship.boostItemAttr("capacity", ship.getModifiedItemAttr("freighterBonusG2") * level) + fit.ship.boostItemAttr("capacity", ship.getModifiedItemAttr("freighterBonusG2"), skill="Gallente Freighter") diff --git a/eos/effects/freightercargobonusm2.py b/eos/effects/freightercargobonusm2.py index ac3b0242a..5b8ed9fd8 100644 --- a/eos/effects/freightercargobonusm2.py +++ b/eos/effects/freightercargobonusm2.py @@ -4,5 +4,4 @@ # Variations of ship: Fenrir (2 of 2) type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Minmatar Freighter").level - fit.ship.boostItemAttr("capacity", ship.getModifiedItemAttr("freighterBonusM2") * level) + fit.ship.boostItemAttr("capacity", ship.getModifiedItemAttr("freighterBonusM2"), skill="Minmatar Freighter") diff --git a/eos/effects/freightermaxvelocitybonusa1.py b/eos/effects/freightermaxvelocitybonusa1.py index 10f42aca1..70d2e724c 100644 --- a/eos/effects/freightermaxvelocitybonusa1.py +++ b/eos/effects/freightermaxvelocitybonusa1.py @@ -4,5 +4,4 @@ # Ship: Providence type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Amarr Freighter").level - fit.ship.boostItemAttr("maxVelocity", ship.getModifiedItemAttr("freighterBonusA1") * level) + fit.ship.boostItemAttr("maxVelocity", ship.getModifiedItemAttr("freighterBonusA1"), skill="Amarr Freighter") diff --git a/eos/effects/freightermaxvelocitybonusc1.py b/eos/effects/freightermaxvelocitybonusc1.py index e398b395d..219e7ea8b 100644 --- a/eos/effects/freightermaxvelocitybonusc1.py +++ b/eos/effects/freightermaxvelocitybonusc1.py @@ -4,5 +4,4 @@ # Ship: Charon type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Caldari Freighter").level - fit.ship.boostItemAttr("maxVelocity", ship.getModifiedItemAttr("freighterBonusC1") * level) + fit.ship.boostItemAttr("maxVelocity", ship.getModifiedItemAttr("freighterBonusC1"), skill="Caldari Freighter") diff --git a/eos/effects/freightermaxvelocitybonusg1.py b/eos/effects/freightermaxvelocitybonusg1.py index 244cf3255..83d5a3bce 100644 --- a/eos/effects/freightermaxvelocitybonusg1.py +++ b/eos/effects/freightermaxvelocitybonusg1.py @@ -4,5 +4,4 @@ # Ship: Obelisk type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Gallente Freighter").level - fit.ship.boostItemAttr("maxVelocity", ship.getModifiedItemAttr("freighterBonusG1") * level) + fit.ship.boostItemAttr("maxVelocity", ship.getModifiedItemAttr("freighterBonusG1"), skill="Gallente Freighter") diff --git a/eos/effects/freightermaxvelocitybonusm1.py b/eos/effects/freightermaxvelocitybonusm1.py index 8aa9bb944..7adad4fc6 100644 --- a/eos/effects/freightermaxvelocitybonusm1.py +++ b/eos/effects/freightermaxvelocitybonusm1.py @@ -4,5 +4,4 @@ # Ship: Fenrir type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Minmatar Freighter").level - fit.ship.boostItemAttr("maxVelocity", ship.getModifiedItemAttr("freighterBonusM1") * level) + fit.ship.boostItemAttr("maxVelocity", ship.getModifiedItemAttr("freighterBonusM1"), skill="Minmatar Freighter") diff --git a/eos/effects/freightersmacapacitybonuso1.py b/eos/effects/freightersmacapacitybonuso1.py index ff5861137..b57f86216 100644 --- a/eos/effects/freightersmacapacitybonuso1.py +++ b/eos/effects/freightersmacapacitybonuso1.py @@ -4,6 +4,6 @@ # Ship: Bowhead type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("ORE Freighter").level - fit.ship.boostItemAttr("agility", ship.getModifiedItemAttr("freighterBonusO2")*level, + # todo: stacking? + fit.ship.boostItemAttr("agility", ship.getModifiedItemAttr("freighterBonusO2"), skill="ORE Freighter", stackingPenalties = True) diff --git a/eos/effects/interceptor2hybridtracking.py b/eos/effects/interceptor2hybridtracking.py index bca5b3abf..f1a720f41 100644 --- a/eos/effects/interceptor2hybridtracking.py +++ b/eos/effects/interceptor2hybridtracking.py @@ -4,6 +4,5 @@ # Ship: Taranis type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Interceptors").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Hybrid Turret"), - "trackingSpeed", ship.getModifiedItemAttr("eliteBonusInterceptor2") * level) \ No newline at end of file + "trackingSpeed", ship.getModifiedItemAttr("eliteBonusInterceptor2"), skill="Interceptors") \ No newline at end of file diff --git a/eos/effects/interceptor2lasertracking.py b/eos/effects/interceptor2lasertracking.py index 749899836..b7ff9327e 100644 --- a/eos/effects/interceptor2lasertracking.py +++ b/eos/effects/interceptor2lasertracking.py @@ -4,6 +4,5 @@ # Ship: Crusader type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Interceptors").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Energy Turret"), - "trackingSpeed", ship.getModifiedItemAttr("eliteBonusInterceptor2") * level) \ No newline at end of file + "trackingSpeed", ship.getModifiedItemAttr("eliteBonusInterceptor2"), skill="Interceptors") \ No newline at end of file diff --git a/eos/effects/interceptor2projectiledamage.py b/eos/effects/interceptor2projectiledamage.py index c7e4e157f..a8f976175 100644 --- a/eos/effects/interceptor2projectiledamage.py +++ b/eos/effects/interceptor2projectiledamage.py @@ -4,6 +4,5 @@ # Ship: Claw type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Interceptors").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Projectile Turret"), - "damageMultiplier", ship.getModifiedItemAttr("eliteBonusInterceptor2") * level) + "damageMultiplier", ship.getModifiedItemAttr("eliteBonusInterceptor2"), skill="Interceptors") diff --git a/eos/effects/interceptor2shieldresist.py b/eos/effects/interceptor2shieldresist.py index ec13b2d83..9a74e396f 100644 --- a/eos/effects/interceptor2shieldresist.py +++ b/eos/effects/interceptor2shieldresist.py @@ -4,7 +4,6 @@ # Ship: Raptor type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Interceptors").level damageTypes = ("Em", "Explosive", "Kinetic", "Thermal") for damageType in damageTypes: - fit.ship.boostItemAttr("shield{0}DamageResonance".format(damageType), ship.getModifiedItemAttr("eliteBonusInterceptor2") * level) + fit.ship.boostItemAttr("shield{0}DamageResonance".format(damageType), ship.getModifiedItemAttr("eliteBonusInterceptor2"), skill="Interceptors") diff --git a/eos/effects/interceptor2warpscramblerange.py b/eos/effects/interceptor2warpscramblerange.py index 8de21fae9..e188fe9c6 100644 --- a/eos/effects/interceptor2warpscramblerange.py +++ b/eos/effects/interceptor2warpscramblerange.py @@ -4,6 +4,5 @@ # Ships from group: Interceptor (5 of 10) type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Interceptors").level fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Warp Scrambler", - "maxRange", ship.getModifiedItemAttr("eliteBonusInterceptor2") * level) \ No newline at end of file + "maxRange", ship.getModifiedItemAttr("eliteBonusInterceptor2"), skill="Interceptors") \ No newline at end of file diff --git a/eos/effects/interceptormwdsignatureradiusbonus.py b/eos/effects/interceptormwdsignatureradiusbonus.py index 9dedb49a4..8b52a1147 100644 --- a/eos/effects/interceptormwdsignatureradiusbonus.py +++ b/eos/effects/interceptormwdsignatureradiusbonus.py @@ -4,6 +4,5 @@ # Ships from group: Interceptor (9 of 10) type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Interceptors").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("High Speed Maneuvering"), - "signatureRadiusBonus", ship.getModifiedItemAttr("eliteBonusInterceptor") * level) + "signatureRadiusBonus", ship.getModifiedItemAttr("eliteBonusInterceptor"), skill="Interceptors") diff --git a/eos/effects/minmatarshipewtargetpaintermc1.py b/eos/effects/minmatarshipewtargetpaintermc1.py index bc6088a6b..77cdb088b 100644 --- a/eos/effects/minmatarshipewtargetpaintermc1.py +++ b/eos/effects/minmatarshipewtargetpaintermc1.py @@ -5,6 +5,5 @@ # Ship: Rapier type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Minmatar Cruiser").level fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Target Painter", - "signatureRadiusBonus", ship.getModifiedItemAttr("shipBonusMC") * level) + "signatureRadiusBonus", ship.getModifiedItemAttr("shipBonusMC"), skill="Minmatar Cruiser") diff --git a/eos/effects/minmatarshipewtargetpaintermc2.py b/eos/effects/minmatarshipewtargetpaintermc2.py index 7867bcd1c..899ef2036 100644 --- a/eos/effects/minmatarshipewtargetpaintermc2.py +++ b/eos/effects/minmatarshipewtargetpaintermc2.py @@ -4,6 +4,5 @@ # Ship: Huginn type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Minmatar Cruiser").level fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Target Painter", - "signatureRadiusBonus", ship.getModifiedItemAttr("shipBonusMC2") * level) + "signatureRadiusBonus", ship.getModifiedItemAttr("shipBonusMC2"), skill="Minmatar Cruiser") diff --git a/eos/effects/minmatarshipewtargetpaintermf2.py b/eos/effects/minmatarshipewtargetpaintermf2.py index 394fed1ad..43dcdcc78 100644 --- a/eos/effects/minmatarshipewtargetpaintermf2.py +++ b/eos/effects/minmatarshipewtargetpaintermf2.py @@ -4,6 +4,5 @@ # Variations of ship: Vigil (2 of 2) type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Minmatar Frigate").level fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Target Painter", - "signatureRadiusBonus", ship.getModifiedItemAttr("shipBonusMF2") * level) + "signatureRadiusBonus", ship.getModifiedItemAttr("shipBonusMF2"), skill="Minmatar Frigate") diff --git a/eos/effects/orecapitalshipshieldtransferrange.py b/eos/effects/orecapitalshipshieldtransferrange.py index 76d91c365..bb5ed2972 100644 --- a/eos/effects/orecapitalshipshieldtransferrange.py +++ b/eos/effects/orecapitalshipshieldtransferrange.py @@ -4,6 +4,5 @@ # Ship: Rorqual type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Capital Industrial Ships").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capital Shield Emission Systems"), - "shieldTransferRange", ship.getModifiedItemAttr("shipBonusORECapital3") * level) + "shieldTransferRange", ship.getModifiedItemAttr("shipBonusORECapital3"), skill="Capital Industrial Ships") diff --git a/eos/effects/reconshipcloakcpubonus1.py b/eos/effects/reconshipcloakcpubonus1.py index b371e1550..e302d47ce 100644 --- a/eos/effects/reconshipcloakcpubonus1.py +++ b/eos/effects/reconshipcloakcpubonus1.py @@ -5,6 +5,5 @@ type = "passive" runTime = "early" def handler(fit, ship, context): - level = fit.character.getSkill("Recon Ships").level fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Cloaking Device", - "cpu", ship.getModifiedItemAttr("eliteBonusReconShip1") * level) + "cpu", ship.getModifiedItemAttr("eliteBonusReconShip1"), skill="Recon Ships") diff --git a/eos/effects/shipadvancedspaceshipcommandagilitybonus.py b/eos/effects/shipadvancedspaceshipcommandagilitybonus.py index e6370d5aa..a9eab85dd 100644 --- a/eos/effects/shipadvancedspaceshipcommandagilitybonus.py +++ b/eos/effects/shipadvancedspaceshipcommandagilitybonus.py @@ -4,5 +4,4 @@ # Items from market group: Ships > Capital Ships (27 of 28) type = "passive" def handler(fit, ship, context): - skill = fit.character.getSkill("Advanced Spaceship Command") - fit.ship.boostItemAttr("agility", skill.getModifiedItemAttr("agilityBonus") * skill.level) + fit.ship.boostItemAttr("agility", skill.getModifiedItemAttr("agilityBonus"), skill="Advanced Spaceship Command") diff --git a/eos/effects/shiparmoremandexpandkinandthmresistanceac2.py b/eos/effects/shiparmoremandexpandkinandthmresistanceac2.py index c96a71b61..546bc98c9 100644 --- a/eos/effects/shiparmoremandexpandkinandthmresistanceac2.py +++ b/eos/effects/shiparmoremandexpandkinandthmresistanceac2.py @@ -6,7 +6,6 @@ # Ship: Vangel type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Amarr Cruiser").level damageTypes = ("Em", "Explosive", "Kinetic", "Thermal") for damageType in damageTypes: - fit.ship.boostItemAttr("armor{0}DamageResonance".format(damageType), ship.getModifiedItemAttr("shipBonusAC2") * level) + fit.ship.boostItemAttr("armor{0}DamageResonance".format(damageType), ship.getModifiedItemAttr("shipBonusAC2"), skill="Amarr Cruiser") diff --git a/eos/effects/shiparmoremresistance1abc1.py b/eos/effects/shiparmoremresistance1abc1.py index 5d6a53cd4..c30eed18d 100644 --- a/eos/effects/shiparmoremresistance1abc1.py +++ b/eos/effects/shiparmoremresistance1abc1.py @@ -5,5 +5,4 @@ # Ship: Absolution type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Amarr Battlecruiser").level - fit.ship.boostItemAttr("armorEmDamageResonance", ship.getModifiedItemAttr("shipBonusABC1") * level) + fit.ship.boostItemAttr("armorEmDamageResonance", ship.getModifiedItemAttr("shipBonusABC1"), skill="Amarr Battlecruiser") diff --git a/eos/effects/shiparmoremresistanceac2.py b/eos/effects/shiparmoremresistanceac2.py index 7b937bd73..b20f70b08 100644 --- a/eos/effects/shiparmoremresistanceac2.py +++ b/eos/effects/shiparmoremresistanceac2.py @@ -4,5 +4,4 @@ # Ship: Maller type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Amarr Cruiser").level - fit.ship.boostItemAttr("armorEmDamageResonance", ship.getModifiedItemAttr("shipBonusAC2") * level) + fit.ship.boostItemAttr("armorEmDamageResonance", ship.getModifiedItemAttr("shipBonusAC2"), skill="Amarr Cruiser") diff --git a/eos/effects/shiparmoremresistanceaf1.py b/eos/effects/shiparmoremresistanceaf1.py index 492b24541..e89173590 100644 --- a/eos/effects/shiparmoremresistanceaf1.py +++ b/eos/effects/shiparmoremresistanceaf1.py @@ -6,5 +6,4 @@ # Ship: Punisher type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Amarr Frigate").level - fit.ship.boostItemAttr("armorEmDamageResonance", ship.getModifiedItemAttr("shipBonusAF") * level) + fit.ship.boostItemAttr("armorEmDamageResonance", ship.getModifiedItemAttr("shipBonusAF"), skill="Amarr Frigate") diff --git a/eos/effects/shiparmoremresistancemc2.py b/eos/effects/shiparmoremresistancemc2.py index a7178f832..2be5737de 100644 --- a/eos/effects/shiparmoremresistancemc2.py +++ b/eos/effects/shiparmoremresistancemc2.py @@ -4,5 +4,4 @@ # Ship: Mimir type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Minmatar Cruiser").level - fit.ship.boostItemAttr("armorEmDamageResonance", ship.getModifiedItemAttr("shipBonusMC2") * level) + fit.ship.boostItemAttr("armorEmDamageResonance", ship.getModifiedItemAttr("shipBonusMC2"), skill="Minmatar Cruiser") diff --git a/eos/effects/shiparmorexplosiveresistance1abc1.py b/eos/effects/shiparmorexplosiveresistance1abc1.py index 300fefccc..b80f3d3eb 100644 --- a/eos/effects/shiparmorexplosiveresistance1abc1.py +++ b/eos/effects/shiparmorexplosiveresistance1abc1.py @@ -5,5 +5,4 @@ # Ship: Absolution type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Amarr Battlecruiser").level - fit.ship.boostItemAttr("armorExplosiveDamageResonance", ship.getModifiedItemAttr("shipBonusABC1") * level) + fit.ship.boostItemAttr("armorExplosiveDamageResonance", ship.getModifiedItemAttr("shipBonusABC1"), skill="Amarr Battlecruiser") diff --git a/eos/effects/shiparmorexplosiveresistanceac2.py b/eos/effects/shiparmorexplosiveresistanceac2.py index 9d8094d0a..68b1c30b3 100644 --- a/eos/effects/shiparmorexplosiveresistanceac2.py +++ b/eos/effects/shiparmorexplosiveresistanceac2.py @@ -4,5 +4,4 @@ # Ship: Maller type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Amarr Cruiser").level - fit.ship.boostItemAttr("armorExplosiveDamageResonance", ship.getModifiedItemAttr("shipBonusAC2") * level) + fit.ship.boostItemAttr("armorExplosiveDamageResonance", ship.getModifiedItemAttr("shipBonusAC2"), skill="Amarr Cruiser") diff --git a/eos/effects/shiparmorexplosiveresistancemc2.py b/eos/effects/shiparmorexplosiveresistancemc2.py index e3f117f4f..5f3e48b1f 100644 --- a/eos/effects/shiparmorexplosiveresistancemc2.py +++ b/eos/effects/shiparmorexplosiveresistancemc2.py @@ -4,5 +4,4 @@ # Ship: Mimir type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Minmatar Cruiser").level - fit.ship.boostItemAttr("armorExplosiveDamageResonance", ship.getModifiedItemAttr("shipBonusMC2") * level) + fit.ship.boostItemAttr("armorExplosiveDamageResonance", ship.getModifiedItemAttr("shipBonusMC2"), skill="Minmatar Cruiser") diff --git a/eos/effects/shiparmorexresistanceaf1.py b/eos/effects/shiparmorexresistanceaf1.py index 3d5473ba9..898ed3df3 100644 --- a/eos/effects/shiparmorexresistanceaf1.py +++ b/eos/effects/shiparmorexresistanceaf1.py @@ -6,5 +6,4 @@ # Ship: Punisher type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Amarr Frigate").level - fit.ship.boostItemAttr("armorExplosiveDamageResonance", ship.getModifiedItemAttr("shipBonusAF") * level) + fit.ship.boostItemAttr("armorExplosiveDamageResonance", ship.getModifiedItemAttr("shipBonusAF"), skill="Amarr Frigate") diff --git a/eos/effects/shiparmorhpac2.py b/eos/effects/shiparmorhpac2.py index 66385aa2a..5a20e5faf 100644 --- a/eos/effects/shiparmorhpac2.py +++ b/eos/effects/shiparmorhpac2.py @@ -4,5 +4,4 @@ # Ship: Augoror Navy Issue type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Amarr Cruiser").level - fit.ship.boostItemAttr("armorHP", ship.getModifiedItemAttr("shipBonusAC2") * level) + fit.ship.boostItemAttr("armorHP", ship.getModifiedItemAttr("shipBonusAC2"), skill="Amarr Cruiser") diff --git a/eos/effects/shiparmorkineticresistance1abc1.py b/eos/effects/shiparmorkineticresistance1abc1.py index 4ddff9669..09018a295 100644 --- a/eos/effects/shiparmorkineticresistance1abc1.py +++ b/eos/effects/shiparmorkineticresistance1abc1.py @@ -5,5 +5,4 @@ # Ship: Absolution type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Amarr Battlecruiser").level - fit.ship.boostItemAttr("armorKineticDamageResonance", ship.getModifiedItemAttr("shipBonusABC1") * level) + fit.ship.boostItemAttr("armorKineticDamageResonance", ship.getModifiedItemAttr("shipBonusABC1"), skill="Amarr Battlecruiser") diff --git a/eos/effects/shiparmorkineticresistanceac2.py b/eos/effects/shiparmorkineticresistanceac2.py index 974835cab..a2ea82540 100644 --- a/eos/effects/shiparmorkineticresistanceac2.py +++ b/eos/effects/shiparmorkineticresistanceac2.py @@ -4,5 +4,4 @@ # Ship: Maller type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Amarr Cruiser").level - fit.ship.boostItemAttr("armorKineticDamageResonance", ship.getModifiedItemAttr("shipBonusAC2") * level) + fit.ship.boostItemAttr("armorKineticDamageResonance", ship.getModifiedItemAttr("shipBonusAC2"), skill="Amarr Cruiser") diff --git a/eos/effects/shiparmorkineticresistancemc2.py b/eos/effects/shiparmorkineticresistancemc2.py index dd80c59ca..8d9bf0a3e 100644 --- a/eos/effects/shiparmorkineticresistancemc2.py +++ b/eos/effects/shiparmorkineticresistancemc2.py @@ -4,5 +4,4 @@ # Ship: Mimir type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Minmatar Cruiser").level - fit.ship.boostItemAttr("armorKineticDamageResonance", ship.getModifiedItemAttr("shipBonusMC2") * level) + fit.ship.boostItemAttr("armorKineticDamageResonance", ship.getModifiedItemAttr("shipBonusMC2"), skill="Minmatar Cruiser") diff --git a/eos/effects/shiparmorknresistanceaf1.py b/eos/effects/shiparmorknresistanceaf1.py index 3461e2a1e..6263ace6e 100644 --- a/eos/effects/shiparmorknresistanceaf1.py +++ b/eos/effects/shiparmorknresistanceaf1.py @@ -6,5 +6,4 @@ # Ship: Punisher type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Amarr Frigate").level - fit.ship.boostItemAttr("armorKineticDamageResonance", ship.getModifiedItemAttr("shipBonusAF") * level) + fit.ship.boostItemAttr("armorKineticDamageResonance", ship.getModifiedItemAttr("shipBonusAF"), skill="Amarr Frigate") diff --git a/eos/effects/shiparmorrepairing1gbc2.py b/eos/effects/shiparmorrepairing1gbc2.py index 57f427e4a..a7dc3a8b9 100644 --- a/eos/effects/shiparmorrepairing1gbc2.py +++ b/eos/effects/shiparmorrepairing1gbc2.py @@ -6,6 +6,5 @@ # Ship: Brutix type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Gallente Battlecruiser").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Repair Systems"), - "armorDamageAmount", ship.getModifiedItemAttr("shipBonusGBC2") * level) + "armorDamageAmount", ship.getModifiedItemAttr("shipBonusGBC2"), skill="Gallente Battlecruiser") diff --git a/eos/effects/shiparmorrepairinggf2.py b/eos/effects/shiparmorrepairinggf2.py index 1d9245700..40370add3 100644 --- a/eos/effects/shiparmorrepairinggf2.py +++ b/eos/effects/shiparmorrepairinggf2.py @@ -4,6 +4,5 @@ # Ship: Incursus type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Gallente Frigate").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Repair Systems"), - "armorDamageAmount", ship.getModifiedItemAttr("shipBonusGF2") * level) + "armorDamageAmount", ship.getModifiedItemAttr("shipBonusGF2"), skill="Gallente Frigate") diff --git a/eos/effects/shiparmorresistanceaf1.py b/eos/effects/shiparmorresistanceaf1.py index 6b1f55988..8c210c965 100644 --- a/eos/effects/shiparmorresistanceaf1.py +++ b/eos/effects/shiparmorresistanceaf1.py @@ -4,7 +4,6 @@ # Ship: Malediction type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Amarr Frigate").level damageTypes = ("Em", "Explosive", "Kinetic", "Thermal") for damageType in damageTypes: - fit.ship.boostItemAttr("armor{0}DamageResonance".format(damageType), ship.getModifiedItemAttr("shipBonusAF") * level) + fit.ship.boostItemAttr("armor{0}DamageResonance".format(damageType), ship.getModifiedItemAttr("shipBonusAF"), skill="Amarr Frigate") diff --git a/eos/effects/shiparmorthermalresistanceac2.py b/eos/effects/shiparmorthermalresistanceac2.py index 7fca5a7c9..7226fb62c 100644 --- a/eos/effects/shiparmorthermalresistanceac2.py +++ b/eos/effects/shiparmorthermalresistanceac2.py @@ -4,5 +4,4 @@ # Ship: Maller type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Amarr Cruiser").level - fit.ship.boostItemAttr("armorThermalDamageResonance", ship.getModifiedItemAttr("shipBonusAC2") * level) + fit.ship.boostItemAttr("armorThermalDamageResonance", ship.getModifiedItemAttr("shipBonusAC2"), skill="Amarr Cruiser") diff --git a/eos/effects/shiparmorthermalresistancemc2.py b/eos/effects/shiparmorthermalresistancemc2.py index 10aa11b9b..3435ca29c 100644 --- a/eos/effects/shiparmorthermalresistancemc2.py +++ b/eos/effects/shiparmorthermalresistancemc2.py @@ -4,5 +4,4 @@ # Ship: Mimir type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Minmatar Cruiser").level - fit.ship.boostItemAttr("armorThermalDamageResonance", ship.getModifiedItemAttr("shipBonusMC2") * level) + fit.ship.boostItemAttr("armorThermalDamageResonance", ship.getModifiedItemAttr("shipBonusMC2"), skill="Minmatar Cruiser") diff --git a/eos/effects/shiparmorthermresistance1abc1.py b/eos/effects/shiparmorthermresistance1abc1.py index 59b395516..766a6fee0 100644 --- a/eos/effects/shiparmorthermresistance1abc1.py +++ b/eos/effects/shiparmorthermresistance1abc1.py @@ -5,5 +5,4 @@ # Ship: Absolution type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Amarr Battlecruiser").level - fit.ship.boostItemAttr("armorThermalDamageResonance", ship.getModifiedItemAttr("shipBonusABC1") * level) + fit.ship.boostItemAttr("armorThermalDamageResonance", ship.getModifiedItemAttr("shipBonusABC1"), skill="Amarr Battlecruiser") diff --git a/eos/effects/shiparmorthresistanceaf1.py b/eos/effects/shiparmorthresistanceaf1.py index 43b869ce9..231eb7350 100644 --- a/eos/effects/shiparmorthresistanceaf1.py +++ b/eos/effects/shiparmorthresistanceaf1.py @@ -6,5 +6,4 @@ # Ship: Punisher type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Amarr Frigate").level - fit.ship.boostItemAttr("armorThermalDamageResonance", ship.getModifiedItemAttr("shipBonusAF") * level) + fit.ship.boostItemAttr("armorThermalDamageResonance", ship.getModifiedItemAttr("shipBonusAF"), skill="Amarr Frigate") diff --git a/eos/effects/shipbonusaf1torpedoexplosionvelocity.py b/eos/effects/shipbonusaf1torpedoexplosionvelocity.py index a38caef08..805ba8b4c 100644 --- a/eos/effects/shipbonusaf1torpedoexplosionvelocity.py +++ b/eos/effects/shipbonusaf1torpedoexplosionvelocity.py @@ -4,6 +4,5 @@ # Ship: Purifier type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Amarr Frigate").level fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Torpedoes"), - "aoeVelocity", ship.getModifiedItemAttr("shipBonusAF") * level) + "aoeVelocity", ship.getModifiedItemAttr("shipBonusAF"), skill="Amarr Frigate") diff --git a/eos/effects/shipbonusaf1torpedoflighttime.py b/eos/effects/shipbonusaf1torpedoflighttime.py index 171d5937d..cc5e5ed7b 100644 --- a/eos/effects/shipbonusaf1torpedoflighttime.py +++ b/eos/effects/shipbonusaf1torpedoflighttime.py @@ -4,6 +4,5 @@ # Ship: Purifier type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Amarr Frigate").level fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Torpedoes"), - "explosionDelay", ship.getModifiedItemAttr("shipBonusAF") * level) + "explosionDelay", ship.getModifiedItemAttr("shipBonusAF"), skill="Amarr Frigate") diff --git a/eos/effects/shipbonusafterburnerspeedfactor2cb.py b/eos/effects/shipbonusafterburnerspeedfactor2cb.py index b84767d21..5ffa2685b 100644 --- a/eos/effects/shipbonusafterburnerspeedfactor2cb.py +++ b/eos/effects/shipbonusafterburnerspeedfactor2cb.py @@ -4,6 +4,5 @@ # Ship: Nightmare type = "passive" def handler(fit, module, context): - level = fit.character.getSkill("Caldari Battleship").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Afterburner"), - "speedFactor", module.getModifiedItemAttr("shipBonus2CB") * level) + "speedFactor", module.getModifiedItemAttr("shipBonus2CB"), skill="Caldari Battleship") diff --git a/eos/effects/shipbonusafterburnerspeedfactorcc2.py b/eos/effects/shipbonusafterburnerspeedfactorcc2.py index 20bb3e082..98b029671 100644 --- a/eos/effects/shipbonusafterburnerspeedfactorcc2.py +++ b/eos/effects/shipbonusafterburnerspeedfactorcc2.py @@ -4,6 +4,5 @@ # Ship: Phantasm type = "passive" def handler(fit, module, context): - level = fit.character.getSkill("Caldari Cruiser").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Afterburner"), - "speedFactor", module.getModifiedItemAttr("shipBonusCC2") * level) + "speedFactor", module.getModifiedItemAttr("shipBonusCC2"), skill="Caldari Cruiser") diff --git a/eos/effects/shipbonusafterburnerspeedfactorcf2.py b/eos/effects/shipbonusafterburnerspeedfactorcf2.py index 51fd5ee45..716326204 100644 --- a/eos/effects/shipbonusafterburnerspeedfactorcf2.py +++ b/eos/effects/shipbonusafterburnerspeedfactorcf2.py @@ -4,6 +4,5 @@ # Ship: Succubus type = "passive" def handler(fit, module, context): - level = fit.character.getSkill("Caldari Frigate").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Afterburner"), - "speedFactor", module.getModifiedItemAttr("shipBonusCF2") * level) + "speedFactor", module.getModifiedItemAttr("shipBonusCF2"), skill="Caldari Frigate") diff --git a/eos/effects/shipbonusagilityai2.py b/eos/effects/shipbonusagilityai2.py index 1f329d668..d92a8edb9 100644 --- a/eos/effects/shipbonusagilityai2.py +++ b/eos/effects/shipbonusagilityai2.py @@ -4,5 +4,4 @@ # Ship: Sigil type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Amarr Industrial").level - fit.ship.boostItemAttr("agility", ship.getModifiedItemAttr("shipBonusAI2") * level) + fit.ship.boostItemAttr("agility", ship.getModifiedItemAttr("shipBonusAI2"), skill="Amarr Industrial") diff --git a/eos/effects/shipbonusagilityci2.py b/eos/effects/shipbonusagilityci2.py index 2be8591ad..479786f70 100644 --- a/eos/effects/shipbonusagilityci2.py +++ b/eos/effects/shipbonusagilityci2.py @@ -4,5 +4,4 @@ # Ship: Badger type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Caldari Industrial").level - fit.ship.boostItemAttr("agility", ship.getModifiedItemAttr("shipBonusCI2") * level) + fit.ship.boostItemAttr("agility", ship.getModifiedItemAttr("shipBonusCI2"), skill="Caldari Industrial") diff --git a/eos/effects/shipbonusagilitygi2.py b/eos/effects/shipbonusagilitygi2.py index 1db6ef335..26dba42a9 100644 --- a/eos/effects/shipbonusagilitygi2.py +++ b/eos/effects/shipbonusagilitygi2.py @@ -4,5 +4,4 @@ # Ship: Nereus type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Gallente Industrial").level - fit.ship.boostItemAttr("agility", ship.getModifiedItemAttr("shipBonusGI2") * level) + fit.ship.boostItemAttr("agility", ship.getModifiedItemAttr("shipBonusGI2"), skill="Gallente Industrial") diff --git a/eos/effects/shipbonusagilitymi2.py b/eos/effects/shipbonusagilitymi2.py index 045000923..8c5a1fb49 100644 --- a/eos/effects/shipbonusagilitymi2.py +++ b/eos/effects/shipbonusagilitymi2.py @@ -4,5 +4,4 @@ # Ship: Wreathe type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Minmatar Industrial").level - fit.ship.boostItemAttr("agility", ship.getModifiedItemAttr("shipBonusMI2") * level) + fit.ship.boostItemAttr("agility", ship.getModifiedItemAttr("shipBonusMI2"), skill="Minmatar Industrial") diff --git a/eos/effects/shipbonusammobaymi2.py b/eos/effects/shipbonusammobaymi2.py index b812c9bf4..d17a65aa3 100644 --- a/eos/effects/shipbonusammobaymi2.py +++ b/eos/effects/shipbonusammobaymi2.py @@ -4,5 +4,4 @@ # Ship: Hoarder type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Minmatar Industrial").level - fit.ship.boostItemAttr("specialAmmoHoldCapacity", ship.getModifiedItemAttr("shipBonusMI2") * level) + fit.ship.boostItemAttr("specialAmmoHoldCapacity", ship.getModifiedItemAttr("shipBonusMI2"), skill="Minmatar Industrial") diff --git a/eos/effects/shipbonusaoevelocitycruiseandtorpedocb2.py b/eos/effects/shipbonusaoevelocitycruiseandtorpedocb2.py index 75678d3f3..9fcd68b86 100644 --- a/eos/effects/shipbonusaoevelocitycruiseandtorpedocb2.py +++ b/eos/effects/shipbonusaoevelocitycruiseandtorpedocb2.py @@ -4,6 +4,5 @@ # Ship: Golem type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Caldari Battleship").level fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Cruise Missiles") or mod.charge.requiresSkill("Torpedoes"), - "aoeVelocity", ship.getModifiedItemAttr("shipBonus2CB") * level) + "aoeVelocity", ship.getModifiedItemAttr("shipBonus2CB"), skill="Caldari Battleship") diff --git a/eos/effects/shipbonusaoevelocitycruisemissilesmb2.py b/eos/effects/shipbonusaoevelocitycruisemissilesmb2.py index 53f1f6004..90abc91df 100644 --- a/eos/effects/shipbonusaoevelocitycruisemissilesmb2.py +++ b/eos/effects/shipbonusaoevelocitycruisemissilesmb2.py @@ -4,6 +4,5 @@ # Ship: Typhoon type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Minmatar Battleship").level fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Cruise Missiles"), - "aoeVelocity", ship.getModifiedItemAttr("shipBonusMB2") * level) + "aoeVelocity", ship.getModifiedItemAttr("shipBonusMB2"), skill="Minmatar Battleship") diff --git a/eos/effects/shipbonusaoevelocityrocketscd2.py b/eos/effects/shipbonusaoevelocityrocketscd2.py index 1b3d12beb..8d4a1f11b 100644 --- a/eos/effects/shipbonusaoevelocityrocketscd2.py +++ b/eos/effects/shipbonusaoevelocityrocketscd2.py @@ -4,6 +4,5 @@ # Ship: Corax type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Caldari Destroyer").level fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Rockets"), - "aoeVelocity", ship.getModifiedItemAttr("shipBonusCD2") * level) + "aoeVelocity", ship.getModifiedItemAttr("shipBonusCD2"), skill="Caldari Destroyer") diff --git a/eos/effects/shipbonusaoevelocitystandardmissilescd2.py b/eos/effects/shipbonusaoevelocitystandardmissilescd2.py index 9e1a2e2f0..7e396fca5 100644 --- a/eos/effects/shipbonusaoevelocitystandardmissilescd2.py +++ b/eos/effects/shipbonusaoevelocitystandardmissilescd2.py @@ -4,6 +4,5 @@ # Ship: Corax type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Caldari Destroyer").level fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Light Missiles"), - "aoeVelocity", ship.getModifiedItemAttr("shipBonusCD2") * level) + "aoeVelocity", ship.getModifiedItemAttr("shipBonusCD2"), skill="Caldari Destroyer") diff --git a/eos/effects/shipbonusarmorrepairai2.py b/eos/effects/shipbonusarmorrepairai2.py index 46fbf7260..4eb27de16 100644 --- a/eos/effects/shipbonusarmorrepairai2.py +++ b/eos/effects/shipbonusarmorrepairai2.py @@ -4,6 +4,5 @@ # Ship: Impel type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Amarr Industrial").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Repair Systems"), - "armorDamageAmount", ship.getModifiedItemAttr("shipBonusAI2") * level) + "armorDamageAmount", ship.getModifiedItemAttr("shipBonusAI2"), skill="Amarr Industrial") diff --git a/eos/effects/shipbonusarmorrepairgi2.py b/eos/effects/shipbonusarmorrepairgi2.py index 97c3e2d8b..ea4216fb3 100644 --- a/eos/effects/shipbonusarmorrepairgi2.py +++ b/eos/effects/shipbonusarmorrepairgi2.py @@ -4,6 +4,5 @@ # Ship: Occator type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Gallente Industrial").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Repair Systems"), - "armorDamageAmount", ship.getModifiedItemAttr("shipBonusGI2") * level) + "armorDamageAmount", ship.getModifiedItemAttr("shipBonusGI2"), skill="Gallente Industrial") diff --git a/eos/effects/shipbonusarmorrepamountgc2.py b/eos/effects/shipbonusarmorrepamountgc2.py index 3a4b2b5aa..7b5e66cad 100644 --- a/eos/effects/shipbonusarmorrepamountgc2.py +++ b/eos/effects/shipbonusarmorrepamountgc2.py @@ -4,6 +4,5 @@ # Ship: Deimos type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Gallente Cruiser").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Repair Systems"), - "armorDamageAmount", ship.getModifiedItemAttr("shipBonusGC2") * level) + "armorDamageAmount", ship.getModifiedItemAttr("shipBonusGC2"), skill="Gallente Cruiser") diff --git a/eos/effects/shipbonusarmorresistab.py b/eos/effects/shipbonusarmorresistab.py index ae0d083ba..7eed16667 100644 --- a/eos/effects/shipbonusarmorresistab.py +++ b/eos/effects/shipbonusarmorresistab.py @@ -5,6 +5,5 @@ # Ship: Nestor type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Amarr Battleship").level for type in ("Em", "Explosive", "Kinetic", "Thermal"): - fit.ship.boostItemAttr("armor{0}DamageResonance".format(type), ship.getModifiedItemAttr("shipBonusAB") * level) + fit.ship.boostItemAttr("armor{0}DamageResonance".format(type), ship.getModifiedItemAttr("shipBonusAB"), skill="Amarr Battleship") diff --git a/eos/effects/shipbonuscapcapab.py b/eos/effects/shipbonuscapcapab.py index 39104bcf1..7e28253c7 100644 --- a/eos/effects/shipbonuscapcapab.py +++ b/eos/effects/shipbonuscapcapab.py @@ -5,5 +5,4 @@ # Ship: Paladin type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Amarr Battleship").level - fit.ship.boostItemAttr("capacitorCapacity", ship.getModifiedItemAttr("shipBonusAB2") * level) + fit.ship.boostItemAttr("capacitorCapacity", ship.getModifiedItemAttr("shipBonusAB2"), skill="Amarr Battleship") diff --git a/eos/effects/shipbonuscargo2gi.py b/eos/effects/shipbonuscargo2gi.py index fdbabac07..95b1530f7 100644 --- a/eos/effects/shipbonuscargo2gi.py +++ b/eos/effects/shipbonuscargo2gi.py @@ -6,11 +6,10 @@ # Ship: Iteron Mark V type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Gallente Industrial").level # TODO: investigate if we can live without such ifs or hardcoding # Viator doesn't have GI bonus if "shipBonusGI" in fit.ship.item.attributes: bonusAttr = "shipBonusGI" else: bonusAttr = "shipBonusGI2" - fit.ship.boostItemAttr("capacity", ship.getModifiedItemAttr(bonusAttr) * level) + fit.ship.boostItemAttr("capacity", ship.getModifiedItemAttr(bonusAttr), skill="Gallente Industrial") diff --git a/eos/effects/shipbonuscargoci.py b/eos/effects/shipbonuscargoci.py index 5f8bfa00a..338155164 100644 --- a/eos/effects/shipbonuscargoci.py +++ b/eos/effects/shipbonuscargoci.py @@ -5,5 +5,4 @@ # Ship: Tayra type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Caldari Industrial").level - fit.ship.boostItemAttr("capacity", ship.getModifiedItemAttr("shipBonusCI") * level) + fit.ship.boostItemAttr("capacity", ship.getModifiedItemAttr("shipBonusCI"), skill="Caldari Industrial") diff --git a/eos/effects/shipbonuscargomi.py b/eos/effects/shipbonuscargomi.py index cc23db73b..f8adc0250 100644 --- a/eos/effects/shipbonuscargomi.py +++ b/eos/effects/shipbonuscargomi.py @@ -5,5 +5,4 @@ # Ship: Mammoth type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Minmatar Industrial").level - fit.ship.boostItemAttr("capacity", ship.getModifiedItemAttr("shipBonusMI") * level) + fit.ship.boostItemAttr("capacity", ship.getModifiedItemAttr("shipBonusMI"), skill="Minmatar Industrial") diff --git a/eos/effects/shipbonuscf1torpedoexplosionvelocity.py b/eos/effects/shipbonuscf1torpedoexplosionvelocity.py index 6d681ed68..3c18d96fb 100644 --- a/eos/effects/shipbonuscf1torpedoexplosionvelocity.py +++ b/eos/effects/shipbonuscf1torpedoexplosionvelocity.py @@ -4,6 +4,5 @@ # Ship: Manticore type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Caldari Frigate").level fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Torpedoes"), - "aoeVelocity", ship.getModifiedItemAttr("shipBonusCF") * level) + "aoeVelocity", ship.getModifiedItemAttr("shipBonusCF"), skill="Caldari Frigate") diff --git a/eos/effects/shipbonuscf1torpedoflighttime.py b/eos/effects/shipbonuscf1torpedoflighttime.py index 7168d294d..b107b5bc3 100644 --- a/eos/effects/shipbonuscf1torpedoflighttime.py +++ b/eos/effects/shipbonuscf1torpedoflighttime.py @@ -4,6 +4,5 @@ # Ship: Manticore type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Caldari Frigate").level fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Torpedoes"), - "explosionDelay", ship.getModifiedItemAttr("shipBonusCF") * level) + "explosionDelay", ship.getModifiedItemAttr("shipBonusCF"), skill="Caldari Frigate") diff --git a/eos/effects/shipbonuscruisemissileemdmgmb.py b/eos/effects/shipbonuscruisemissileemdmgmb.py index 82d5830f9..4de20283a 100644 --- a/eos/effects/shipbonuscruisemissileemdmgmb.py +++ b/eos/effects/shipbonuscruisemissileemdmgmb.py @@ -4,6 +4,5 @@ # Ship: Typhoon Fleet Issue type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Minmatar Battleship").level fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Cruise Missiles"), - "emDamage", ship.getModifiedItemAttr("shipBonusMB") * level) + "emDamage", ship.getModifiedItemAttr("shipBonusMB"), skill="Minmatar Battleship") diff --git a/eos/effects/shipbonuscruisemissileexplodmgmb.py b/eos/effects/shipbonuscruisemissileexplodmgmb.py index 3eac7134d..43579fd90 100644 --- a/eos/effects/shipbonuscruisemissileexplodmgmb.py +++ b/eos/effects/shipbonuscruisemissileexplodmgmb.py @@ -4,6 +4,5 @@ # Ship: Typhoon Fleet Issue type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Minmatar Battleship").level fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Cruise Missiles"), - "explosiveDamage", ship.getModifiedItemAttr("shipBonusMB") * level) + "explosiveDamage", ship.getModifiedItemAttr("shipBonusMB"), skill="Minmatar Battleship") diff --git a/eos/effects/shipbonuscruisemissilekineticdmgmb.py b/eos/effects/shipbonuscruisemissilekineticdmgmb.py index 9ce64df00..291f941e1 100644 --- a/eos/effects/shipbonuscruisemissilekineticdmgmb.py +++ b/eos/effects/shipbonuscruisemissilekineticdmgmb.py @@ -4,6 +4,5 @@ # Ship: Typhoon Fleet Issue type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Minmatar Battleship").level fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Cruise Missiles"), - "kineticDamage", ship.getModifiedItemAttr("shipBonusMB") * level) + "kineticDamage", ship.getModifiedItemAttr("shipBonusMB"), skill="Minmatar Battleship") diff --git a/eos/effects/shipbonuscruisemissilethermdmgmb.py b/eos/effects/shipbonuscruisemissilethermdmgmb.py index 72e7e83d8..b5b094dfd 100644 --- a/eos/effects/shipbonuscruisemissilethermdmgmb.py +++ b/eos/effects/shipbonuscruisemissilethermdmgmb.py @@ -4,6 +4,5 @@ # Ship: Typhoon Fleet Issue type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Minmatar Battleship").level fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Cruise Missiles"), - "thermalDamage", ship.getModifiedItemAttr("shipBonusMB") * level) + "thermalDamage", ship.getModifiedItemAttr("shipBonusMB"), skill="Minmatar Battleship") diff --git a/eos/effects/shipbonuscruiserofmb.py b/eos/effects/shipbonuscruiserofmb.py index 5e77cce0c..31d7e5394 100644 --- a/eos/effects/shipbonuscruiserofmb.py +++ b/eos/effects/shipbonuscruiserofmb.py @@ -4,6 +4,5 @@ # Ship: Typhoon type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Minmatar Battleship").level fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Missile Launcher Cruise", - "speed", ship.getModifiedItemAttr("shipBonusMB") * level) + "speed", ship.getModifiedItemAttr("shipBonusMB"), skill="Minmatar Battleship") diff --git a/eos/effects/shipbonusdreadcitadelcruiserofc1.py b/eos/effects/shipbonusdreadcitadelcruiserofc1.py index d97580dbc..34f6d176c 100644 --- a/eos/effects/shipbonusdreadcitadelcruiserofc1.py +++ b/eos/effects/shipbonusdreadcitadelcruiserofc1.py @@ -4,6 +4,5 @@ # Ship: Phoenix type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Caldari Dreadnought").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Citadel Cruise Missiles"), - "speed", ship.getModifiedItemAttr("dreadnoughtShipBonusC1") * level) + "speed", ship.getModifiedItemAttr("dreadnoughtShipBonusC1"), skill="Caldari Dreadnought") diff --git a/eos/effects/shipbonusdreadcitadeltorprofc1.py b/eos/effects/shipbonusdreadcitadeltorprofc1.py index ae624dbd5..095344f10 100644 --- a/eos/effects/shipbonusdreadcitadeltorprofc1.py +++ b/eos/effects/shipbonusdreadcitadeltorprofc1.py @@ -4,6 +4,5 @@ # Ship: Phoenix type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Caldari Dreadnought").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Citadel Torpedoes"), - "speed", ship.getModifiedItemAttr("dreadnoughtShipBonusC1") * level) + "speed", ship.getModifiedItemAttr("dreadnoughtShipBonusC1"), skill="Caldari Dreadnought") diff --git a/eos/effects/shipbonusdronearmorhitpointsab.py b/eos/effects/shipbonusdronearmorhitpointsab.py index c5214d90a..366217f22 100644 --- a/eos/effects/shipbonusdronearmorhitpointsab.py +++ b/eos/effects/shipbonusdronearmorhitpointsab.py @@ -4,6 +4,5 @@ # Ship: Armageddon type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Amarr Battleship").level fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Drones"), - "armorHP", ship.getModifiedItemAttr("shipBonusAB") * level) + "armorHP", ship.getModifiedItemAttr("shipBonusAB"), skill="Amarr Battleship") diff --git a/eos/effects/shipbonusdronearmorhitpointsgf2.py b/eos/effects/shipbonusdronearmorhitpointsgf2.py index fc2fb063b..ffab2d3fa 100644 --- a/eos/effects/shipbonusdronearmorhitpointsgf2.py +++ b/eos/effects/shipbonusdronearmorhitpointsgf2.py @@ -4,6 +4,5 @@ # Ship: Ishkur type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Gallente Frigate").level fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Drones"), - "armorHP", ship.getModifiedItemAttr("shipBonusGF2") * level) + "armorHP", ship.getModifiedItemAttr("shipBonusGF2"), skill="Gallente Frigate") diff --git a/eos/effects/shipbonusdronedamagegf2.py b/eos/effects/shipbonusdronedamagegf2.py index 4b2930624..ac5f55643 100644 --- a/eos/effects/shipbonusdronedamagegf2.py +++ b/eos/effects/shipbonusdronedamagegf2.py @@ -4,6 +4,5 @@ # Ship: Utu type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Gallente Frigate").level fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Drones"), - "damageMultiplier", ship.getModifiedItemAttr("shipBonusGF2") * level) + "damageMultiplier", ship.getModifiedItemAttr("shipBonusGF2"), skill="Gallente Frigate") diff --git a/eos/effects/shipbonusdronedamagemultiplierab.py b/eos/effects/shipbonusdronedamagemultiplierab.py index 21a21ac90..dc0f2f271 100644 --- a/eos/effects/shipbonusdronedamagemultiplierab.py +++ b/eos/effects/shipbonusdronedamagemultiplierab.py @@ -4,6 +4,5 @@ # Ship: Armageddon type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Amarr Battleship").level fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Drones"), - "damageMultiplier", ship.getModifiedItemAttr("shipBonusAB") * level) + "damageMultiplier", ship.getModifiedItemAttr("shipBonusAB"), skill="Amarr Battleship") diff --git a/eos/effects/shipbonusdronedamagemultiplierabc2.py b/eos/effects/shipbonusdronedamagemultiplierabc2.py index 0b0738be5..a87f57a3b 100644 --- a/eos/effects/shipbonusdronedamagemultiplierabc2.py +++ b/eos/effects/shipbonusdronedamagemultiplierabc2.py @@ -4,6 +4,5 @@ # Ship: Prophecy type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Amarr Battlecruiser").level fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Drones"), - "damageMultiplier", ship.getModifiedItemAttr("shipBonusABC2") * level) + "damageMultiplier", ship.getModifiedItemAttr("shipBonusABC2"), skill="Amarr Battlecruiser") diff --git a/eos/effects/shipbonusdronedamagemultiplierac2.py b/eos/effects/shipbonusdronedamagemultiplierac2.py index 51b50683d..9e7f823a8 100644 --- a/eos/effects/shipbonusdronedamagemultiplierac2.py +++ b/eos/effects/shipbonusdronedamagemultiplierac2.py @@ -4,6 +4,5 @@ # Variations of ship: Arbitrator (3 of 3) type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Amarr Cruiser").level fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Drones"), - "damageMultiplier", ship.getModifiedItemAttr("shipBonusAC2") * level) + "damageMultiplier", ship.getModifiedItemAttr("shipBonusAC2"), skill="Amarr Cruiser") diff --git a/eos/effects/shipbonusdronedamagemultiplierad1.py b/eos/effects/shipbonusdronedamagemultiplierad1.py index 4bd489fdf..7e70551d7 100644 --- a/eos/effects/shipbonusdronedamagemultiplierad1.py +++ b/eos/effects/shipbonusdronedamagemultiplierad1.py @@ -4,6 +4,5 @@ # Ship: Dragoon type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Amarr Destroyer").level fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Drones"), - "damageMultiplier", ship.getModifiedItemAttr("shipBonusAD1") * level) + "damageMultiplier", ship.getModifiedItemAttr("shipBonusAD1"), skill="Amarr Destroyer") diff --git a/eos/effects/shipbonusdronedamagemultipliergb2.py b/eos/effects/shipbonusdronedamagemultipliergb2.py index c65feca5a..776ac9abf 100644 --- a/eos/effects/shipbonusdronedamagemultipliergb2.py +++ b/eos/effects/shipbonusdronedamagemultipliergb2.py @@ -5,6 +5,5 @@ # Ship: Nestor type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Gallente Battleship").level fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Drones"), - "damageMultiplier", ship.getModifiedItemAttr("shipBonusGB2") * level) + "damageMultiplier", ship.getModifiedItemAttr("shipBonusGB2"), skill="Gallente Battleship") diff --git a/eos/effects/shipbonusdronedamagemultipliergbc1.py b/eos/effects/shipbonusdronedamagemultipliergbc1.py index 869a9a2ba..ab07e9c71 100644 --- a/eos/effects/shipbonusdronedamagemultipliergbc1.py +++ b/eos/effects/shipbonusdronedamagemultipliergbc1.py @@ -4,6 +4,5 @@ # Variations of ship: Myrmidon (2 of 2) type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Gallente Battlecruiser").level fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Drones"), - "damageMultiplier", ship.getModifiedItemAttr("shipBonusGBC1") * level) + "damageMultiplier", ship.getModifiedItemAttr("shipBonusGBC1"), skill="Gallente Battlecruiser") diff --git a/eos/effects/shipbonusdronedamagemultipliergc2.py b/eos/effects/shipbonusdronedamagemultipliergc2.py index 38d87217b..e2933b832 100644 --- a/eos/effects/shipbonusdronedamagemultipliergc2.py +++ b/eos/effects/shipbonusdronedamagemultipliergc2.py @@ -6,6 +6,5 @@ # Ship: Vexor Navy Issue type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Gallente Cruiser").level fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Drones"), - "damageMultiplier", ship.getModifiedItemAttr("shipBonusGC2") * level) + "damageMultiplier", ship.getModifiedItemAttr("shipBonusGC2"), skill="Gallente Cruiser") diff --git a/eos/effects/shipbonusdronedamagemultipliergd1.py b/eos/effects/shipbonusdronedamagemultipliergd1.py index 563750cab..b753cddff 100644 --- a/eos/effects/shipbonusdronedamagemultipliergd1.py +++ b/eos/effects/shipbonusdronedamagemultipliergd1.py @@ -4,6 +4,5 @@ # Ship: Algos type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Gallente Destroyer").level fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Drones"), - "damageMultiplier", ship.getModifiedItemAttr("shipBonusGD1") * level) + "damageMultiplier", ship.getModifiedItemAttr("shipBonusGD1"), skill="Gallente Destroyer") diff --git a/eos/effects/shipbonusdronehitpointsabc2.py b/eos/effects/shipbonusdronehitpointsabc2.py index d1c3a9ce0..209241457 100644 --- a/eos/effects/shipbonusdronehitpointsabc2.py +++ b/eos/effects/shipbonusdronehitpointsabc2.py @@ -4,7 +4,6 @@ # Ship: Prophecy type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Amarr Battlecruiser").level for layer in ("shieldCapacity", "armorHP", "hp"): fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Drones"), - layer, ship.getModifiedItemAttr("shipBonusABC2") * level) + layer, ship.getModifiedItemAttr("shipBonusABC2"), skill="Amarr Battlecruiser") diff --git a/eos/effects/shipbonusdronehitpointsad1.py b/eos/effects/shipbonusdronehitpointsad1.py index f951b5739..d3dd36216 100644 --- a/eos/effects/shipbonusdronehitpointsad1.py +++ b/eos/effects/shipbonusdronehitpointsad1.py @@ -4,7 +4,6 @@ # Ship: Dragoon type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Amarr Destroyer").level for layer in ("shieldCapacity", "armorHP", "hp"): fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Drones"), - layer, ship.getModifiedItemAttr("shipBonusAD1") * level) + layer, ship.getModifiedItemAttr("shipBonusAD1"), skill="Amarr Destroyer") diff --git a/eos/effects/shipbonusdronehitpointsfixedac2.py b/eos/effects/shipbonusdronehitpointsfixedac2.py index 5882f8a65..36dbd1907 100644 --- a/eos/effects/shipbonusdronehitpointsfixedac2.py +++ b/eos/effects/shipbonusdronehitpointsfixedac2.py @@ -4,7 +4,6 @@ # Variations of ship: Arbitrator (3 of 3) type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Amarr Cruiser").level for type in ("shieldCapacity", "armorHP", "hp"): fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Drones"), - type, ship.getModifiedItemAttr("shipBonusAC2") * level) + type, ship.getModifiedItemAttr("shipBonusAC2"), skill="Amarr Cruiser") diff --git a/eos/effects/shipbonusdronehitpointsgb2.py b/eos/effects/shipbonusdronehitpointsgb2.py index 0a526d7e1..3570eee62 100644 --- a/eos/effects/shipbonusdronehitpointsgb2.py +++ b/eos/effects/shipbonusdronehitpointsgb2.py @@ -5,7 +5,6 @@ # Ship: Nestor type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Gallente Battleship").level for type in ("shieldCapacity", "armorHP", "hp"): fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Drones"), - type, ship.getModifiedItemAttr("shipBonusGB2") * level) + type, ship.getModifiedItemAttr("shipBonusGB2"), skill="Gallente Battleship") diff --git a/eos/effects/shipbonusdronehitpointsgbc1.py b/eos/effects/shipbonusdronehitpointsgbc1.py index 04fcd60ae..9b6d29c11 100644 --- a/eos/effects/shipbonusdronehitpointsgbc1.py +++ b/eos/effects/shipbonusdronehitpointsgbc1.py @@ -4,7 +4,6 @@ # Variations of ship: Myrmidon (2 of 2) type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Gallente Battlecruiser").level for layer in ("shieldCapacity", "armorHP", "hp"): fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Drones"), - layer, ship.getModifiedItemAttr("shipBonusGBC1") * level) + layer, ship.getModifiedItemAttr("shipBonusGBC1"), skill="Gallente Battlecruiser") diff --git a/eos/effects/shipbonusdronehitpointsgc2.py b/eos/effects/shipbonusdronehitpointsgc2.py index 620290a64..6b3b8ce66 100644 --- a/eos/effects/shipbonusdronehitpointsgc2.py +++ b/eos/effects/shipbonusdronehitpointsgc2.py @@ -6,7 +6,6 @@ # Ship: Vexor Navy Issue type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Gallente Cruiser").level for type in ("shieldCapacity", "armorHP", "hp"): fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Drones"), - type, ship.getModifiedItemAttr("shipBonusGC2") * level) + type, ship.getModifiedItemAttr("shipBonusGC2"), skill="Gallente Cruiser") diff --git a/eos/effects/shipbonusdronehitpointsgd1.py b/eos/effects/shipbonusdronehitpointsgd1.py index de8037532..975b0ae31 100644 --- a/eos/effects/shipbonusdronehitpointsgd1.py +++ b/eos/effects/shipbonusdronehitpointsgd1.py @@ -4,7 +4,6 @@ # Ship: Algos type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Gallente Destroyer").level for layer in ("shieldCapacity", "armorHP", "hp"): fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Drones"), - layer, ship.getModifiedItemAttr("shipBonusGD1") * level) + layer, ship.getModifiedItemAttr("shipBonusGD1"), skill="Gallente Destroyer") diff --git a/eos/effects/shipbonusdronehitpointsgf.py b/eos/effects/shipbonusdronehitpointsgf.py index d1892d7c8..2ca7e2a3e 100644 --- a/eos/effects/shipbonusdronehitpointsgf.py +++ b/eos/effects/shipbonusdronehitpointsgf.py @@ -5,7 +5,6 @@ # Ship: Tristan type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Gallente Frigate").level for layer in ("shieldCapacity", "armorHP", "hp"): fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Drones"), - layer, ship.getModifiedItemAttr("shipBonusGF") * level) + layer, ship.getModifiedItemAttr("shipBonusGF"), skill="Gallente Frigate") diff --git a/eos/effects/shipbonusdronehitpointsgf2.py b/eos/effects/shipbonusdronehitpointsgf2.py index e91a9e16c..1b9c0d382 100644 --- a/eos/effects/shipbonusdronehitpointsgf2.py +++ b/eos/effects/shipbonusdronehitpointsgf2.py @@ -4,6 +4,5 @@ # Ship: Ishkur type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Gallente Frigate").level fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Drones"), - "hp", ship.getModifiedItemAttr("shipBonusGF2") * level) + "hp", ship.getModifiedItemAttr("shipBonusGF2"), skill="Gallente Frigate") diff --git a/eos/effects/shipbonusdroneminingamountac2.py b/eos/effects/shipbonusdroneminingamountac2.py index 7106ee47e..b268d7443 100644 --- a/eos/effects/shipbonusdroneminingamountac2.py +++ b/eos/effects/shipbonusdroneminingamountac2.py @@ -4,6 +4,5 @@ # Ship: Arbitrator type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Amarr Cruiser").level fit.drones.filteredItemBoost(lambda drone: drone.item.group.name == "Mining Drone", - "miningAmount", ship.getModifiedItemAttr("shipBonusAC2") * level) + "miningAmount", ship.getModifiedItemAttr("shipBonusAC2"), skill="Amarr Cruiser") diff --git a/eos/effects/shipbonusdroneminingamountgc2.py b/eos/effects/shipbonusdroneminingamountgc2.py index 60a66e282..eb904aebd 100644 --- a/eos/effects/shipbonusdroneminingamountgc2.py +++ b/eos/effects/shipbonusdroneminingamountgc2.py @@ -5,6 +5,5 @@ # Ship: Vexor Navy Issue type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Gallente Cruiser").level fit.drones.filteredItemBoost(lambda drone: drone.item.group.name == "Mining Drone", - "miningAmount", ship.getModifiedItemAttr("shipBonusGC2") * level) + "miningAmount", ship.getModifiedItemAttr("shipBonusGC2"), skill="Gallente Cruiser") diff --git a/eos/effects/shipbonusdronemwdboostgc.py b/eos/effects/shipbonusdronemwdboostgc.py index 8ee1d6ce2..b89433e4f 100644 --- a/eos/effects/shipbonusdronemwdboostgc.py +++ b/eos/effects/shipbonusdronemwdboostgc.py @@ -4,6 +4,5 @@ # Ship: Vexor Navy Issue type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Gallente Cruiser").level fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Drones"), - "maxVelocity", ship.getModifiedItemAttr("shipBonusGC") * level) + "maxVelocity", ship.getModifiedItemAttr("shipBonusGC"), skill="Gallente Cruiser") diff --git a/eos/effects/shipbonusdroneoptimalrangegb.py b/eos/effects/shipbonusdroneoptimalrangegb.py index 746b74c2a..0b7cf2d8d 100644 --- a/eos/effects/shipbonusdroneoptimalrangegb.py +++ b/eos/effects/shipbonusdroneoptimalrangegb.py @@ -4,6 +4,5 @@ # Ship: Dominix type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Gallente Battleship").level fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Drones"), - "maxRange", ship.getModifiedItemAttr("shipBonusGB") * level) + "maxRange", ship.getModifiedItemAttr("shipBonusGB"), skill="Gallente Battleship") diff --git a/eos/effects/shipbonusdroneshieldhitpointsab.py b/eos/effects/shipbonusdroneshieldhitpointsab.py index 0355cc00d..45583dc41 100644 --- a/eos/effects/shipbonusdroneshieldhitpointsab.py +++ b/eos/effects/shipbonusdroneshieldhitpointsab.py @@ -4,6 +4,5 @@ # Ship: Armageddon type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Amarr Battleship").level fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Drones"), - "shieldCapacity", ship.getModifiedItemAttr("shipBonusAB") * level) + "shieldCapacity", ship.getModifiedItemAttr("shipBonusAB"), skill="Amarr Battleship") diff --git a/eos/effects/shipbonusdroneshieldhitpointsgf2.py b/eos/effects/shipbonusdroneshieldhitpointsgf2.py index a27f1c12a..01f4c6122 100644 --- a/eos/effects/shipbonusdroneshieldhitpointsgf2.py +++ b/eos/effects/shipbonusdroneshieldhitpointsgf2.py @@ -4,6 +4,5 @@ # Ship: Ishkur type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Gallente Frigate").level fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Drones"), - "shieldCapacity", ship.getModifiedItemAttr("shipBonusGF2") * level) + "shieldCapacity", ship.getModifiedItemAttr("shipBonusGF2"), skill="Gallente Frigate") diff --git a/eos/effects/shipbonusdronestructurehitpointsab.py b/eos/effects/shipbonusdronestructurehitpointsab.py index bdbe27916..3fc42ee65 100644 --- a/eos/effects/shipbonusdronestructurehitpointsab.py +++ b/eos/effects/shipbonusdronestructurehitpointsab.py @@ -4,6 +4,5 @@ # Ship: Armageddon type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Amarr Battleship").level fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Drones"), - "hp", ship.getModifiedItemAttr("shipBonusAB") * level) + "hp", ship.getModifiedItemAttr("shipBonusAB"), skill="Amarr Battleship") diff --git a/eos/effects/shipbonusdronetrackinggb.py b/eos/effects/shipbonusdronetrackinggb.py index 192608c97..f82784f41 100644 --- a/eos/effects/shipbonusdronetrackinggb.py +++ b/eos/effects/shipbonusdronetrackinggb.py @@ -4,6 +4,5 @@ # Ship: Dominix type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Gallente Battleship").level fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Drones"), - "trackingSpeed", ship.getModifiedItemAttr("shipBonusGB") * level) + "trackingSpeed", ship.getModifiedItemAttr("shipBonusGB"), skill="Gallente Battleship") diff --git a/eos/effects/shipbonusdronetrackinggc.py b/eos/effects/shipbonusdronetrackinggc.py index e4ee4dd2f..e6ce626d9 100644 --- a/eos/effects/shipbonusdronetrackinggc.py +++ b/eos/effects/shipbonusdronetrackinggc.py @@ -4,6 +4,5 @@ # Ship: Vexor Navy Issue type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Gallente Cruiser").level fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Drones"), - "trackingSpeed", ship.getModifiedItemAttr("shipBonusGC") * level) + "trackingSpeed", ship.getModifiedItemAttr("shipBonusGC"), skill="Gallente Cruiser") diff --git a/eos/effects/shipbonusdronetrackinggf.py b/eos/effects/shipbonusdronetrackinggf.py index 9f666dfe4..a2996a41e 100644 --- a/eos/effects/shipbonusdronetrackinggf.py +++ b/eos/effects/shipbonusdronetrackinggf.py @@ -4,6 +4,5 @@ # Ship: Tristan type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Gallente Frigate").level fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Drones"), - "trackingSpeed", ship.getModifiedItemAttr("shipBonusGF") * level) + "trackingSpeed", ship.getModifiedItemAttr("shipBonusGF"), skill="Gallente Frigate") diff --git a/eos/effects/shipbonusecmstrengthbonuscc.py b/eos/effects/shipbonusecmstrengthbonuscc.py index 69f7bf88c..0865be894 100644 --- a/eos/effects/shipbonusecmstrengthbonuscc.py +++ b/eos/effects/shipbonusecmstrengthbonuscc.py @@ -4,7 +4,6 @@ # Ship: Blackbird type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Caldari Cruiser").level 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") * level) + "scan{0}StrengthBonus".format(type), ship.getModifiedItemAttr("shipBonusCC"), skill="Caldari Cruiser") diff --git a/eos/effects/shipbonuselitecover2torpedoemdamage.py b/eos/effects/shipbonuselitecover2torpedoemdamage.py index 22dca55b4..03dd49466 100644 --- a/eos/effects/shipbonuselitecover2torpedoemdamage.py +++ b/eos/effects/shipbonuselitecover2torpedoemdamage.py @@ -4,6 +4,5 @@ # Ship: Purifier type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Covert Ops").level fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Torpedoes"), - "emDamage", ship.getModifiedItemAttr("eliteBonusCoverOps2") * level) + "emDamage", ship.getModifiedItemAttr("eliteBonusCoverOps2"), skill="Covert Ops") diff --git a/eos/effects/shipbonuselitecover2torpedoexplosivedamage.py b/eos/effects/shipbonuselitecover2torpedoexplosivedamage.py index 573dc9a4a..f9a3b9203 100644 --- a/eos/effects/shipbonuselitecover2torpedoexplosivedamage.py +++ b/eos/effects/shipbonuselitecover2torpedoexplosivedamage.py @@ -4,6 +4,5 @@ # Ship: Hound type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Covert Ops").level fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Torpedoes"), - "explosiveDamage", ship.getModifiedItemAttr("eliteBonusCoverOps2") * level) + "explosiveDamage", ship.getModifiedItemAttr("eliteBonusCoverOps2"), skill="Covert Ops") diff --git a/eos/effects/shipbonuselitecover2torpedokineticdamage.py b/eos/effects/shipbonuselitecover2torpedokineticdamage.py index fdac53415..4389f1de3 100644 --- a/eos/effects/shipbonuselitecover2torpedokineticdamage.py +++ b/eos/effects/shipbonuselitecover2torpedokineticdamage.py @@ -4,6 +4,5 @@ # Ship: Manticore type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Covert Ops").level fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Torpedoes"), - "kineticDamage", ship.getModifiedItemAttr("eliteBonusCoverOps2") * level) + "kineticDamage", ship.getModifiedItemAttr("eliteBonusCoverOps2"), skill="Covert Ops") diff --git a/eos/effects/shipbonuselitecover2torpedothermaldamage.py b/eos/effects/shipbonuselitecover2torpedothermaldamage.py index 0136c4304..5cc0957d2 100644 --- a/eos/effects/shipbonuselitecover2torpedothermaldamage.py +++ b/eos/effects/shipbonuselitecover2torpedothermaldamage.py @@ -4,6 +4,5 @@ # Ship: Nemesis type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Covert Ops").level fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Torpedoes"), - "thermalDamage", ship.getModifiedItemAttr("eliteBonusCoverOps2") * level) + "thermalDamage", ship.getModifiedItemAttr("eliteBonusCoverOps2"), skill="Covert Ops") diff --git a/eos/effects/shipbonusemshieldresistancecb2.py b/eos/effects/shipbonusemshieldresistancecb2.py index d8f617eaf..145d4b3b3 100644 --- a/eos/effects/shipbonusemshieldresistancecb2.py +++ b/eos/effects/shipbonusemshieldresistancecb2.py @@ -6,5 +6,4 @@ # Ship: Scorpion Navy Issue type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Caldari Battleship").level - fit.ship.boostItemAttr("shieldEmDamageResonance", ship.getModifiedItemAttr("shipBonus2CB") * level) + fit.ship.boostItemAttr("shieldEmDamageResonance", ship.getModifiedItemAttr("shipBonus2CB"), skill="Caldari Battleship") diff --git a/eos/effects/shipbonusenergyneutrangeab2.py b/eos/effects/shipbonusenergyneutrangeab2.py index 3c54013fd..dee87f0fb 100644 --- a/eos/effects/shipbonusenergyneutrangeab2.py +++ b/eos/effects/shipbonusenergyneutrangeab2.py @@ -4,6 +4,5 @@ # Ship: Armageddon type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Amarr Battleship").level fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Destabilizer", - "energyDestabilizationRange", ship.getModifiedItemAttr("shipBonusAB2") * level) + "energyDestabilizationRange", ship.getModifiedItemAttr("shipBonusAB2"), skill="Amarr Battleship") diff --git a/eos/effects/shipbonusenergyneutrangead2.py b/eos/effects/shipbonusenergyneutrangead2.py index 8e2a12dc1..d5531edd7 100644 --- a/eos/effects/shipbonusenergyneutrangead2.py +++ b/eos/effects/shipbonusenergyneutrangead2.py @@ -4,6 +4,5 @@ # Ship: Dragoon type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Amarr Destroyer").level fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Destabilizer", - "energyDestabilizationRange", ship.getModifiedItemAttr("shipBonusAD2") * level) + "energyDestabilizationRange", ship.getModifiedItemAttr("shipBonusAD2"), skill="Amarr Destroyer") diff --git a/eos/effects/shipbonusenergyvampirerangeab2.py b/eos/effects/shipbonusenergyvampirerangeab2.py index e9e52f0a5..2dded0794 100644 --- a/eos/effects/shipbonusenergyvampirerangeab2.py +++ b/eos/effects/shipbonusenergyvampirerangeab2.py @@ -4,6 +4,5 @@ # Ship: Armageddon type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Amarr Battleship").level fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Vampire", - "powerTransferRange", ship.getModifiedItemAttr("shipBonusAB2") * level) + "powerTransferRange", ship.getModifiedItemAttr("shipBonusAB2"), skill="Amarr Battleship") diff --git a/eos/effects/shipbonusenergyvampirerangead2.py b/eos/effects/shipbonusenergyvampirerangead2.py index c6c4461c1..d3fe34378 100644 --- a/eos/effects/shipbonusenergyvampirerangead2.py +++ b/eos/effects/shipbonusenergyvampirerangead2.py @@ -4,6 +4,5 @@ # Ship: Dragoon type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Amarr Destroyer").level fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Vampire", - "powerTransferRange", ship.getModifiedItemAttr("shipBonusAD2") * level) + "powerTransferRange", ship.getModifiedItemAttr("shipBonusAD2"), skill="Amarr Destroyer") diff --git a/eos/effects/shipbonusewremotesensordampenerfalloffbonusgc1.py b/eos/effects/shipbonusewremotesensordampenerfalloffbonusgc1.py index badb1fa2d..7ecc88cbc 100644 --- a/eos/effects/shipbonusewremotesensordampenerfalloffbonusgc1.py +++ b/eos/effects/shipbonusewremotesensordampenerfalloffbonusgc1.py @@ -4,6 +4,5 @@ # Ship: Celestis type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Gallente Cruiser").level fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Remote Sensor Damper", - "falloff", ship.getModifiedItemAttr("shipBonusGC") * level) + "falloff", ship.getModifiedItemAttr("shipBonusGC"), skill="Gallente Cruiser") diff --git a/eos/effects/shipbonusewremotesensordampenermaxtargetrangebonusgc2.py b/eos/effects/shipbonusewremotesensordampenermaxtargetrangebonusgc2.py index 9b67435c8..cafcea20d 100644 --- a/eos/effects/shipbonusewremotesensordampenermaxtargetrangebonusgc2.py +++ b/eos/effects/shipbonusewremotesensordampenermaxtargetrangebonusgc2.py @@ -4,6 +4,5 @@ # Variations of ship: Celestis (3 of 3) type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Gallente Cruiser").level fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Remote Sensor Damper", - "maxTargetRangeBonus", ship.getModifiedItemAttr("shipBonusGC2") * level) + "maxTargetRangeBonus", ship.getModifiedItemAttr("shipBonusGC2"), skill="Gallente Cruiser") diff --git a/eos/effects/shipbonusewremotesensordampenermaxtargetrangebonusgf2.py b/eos/effects/shipbonusewremotesensordampenermaxtargetrangebonusgf2.py index a8610093b..9b48c6bf5 100644 --- a/eos/effects/shipbonusewremotesensordampenermaxtargetrangebonusgf2.py +++ b/eos/effects/shipbonusewremotesensordampenermaxtargetrangebonusgf2.py @@ -4,6 +4,5 @@ # Variations of ship: Maulus (2 of 2) type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Gallente Frigate").level fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Remote Sensor Damper", - "maxTargetRangeBonus", ship.getModifiedItemAttr("shipBonusGF2") * level) + "maxTargetRangeBonus", ship.getModifiedItemAttr("shipBonusGF2"), skill="Gallente Frigate") diff --git a/eos/effects/shipbonusewremotesensordampeneroptimalbonusgc1.py b/eos/effects/shipbonusewremotesensordampeneroptimalbonusgc1.py index 66af48b64..1a7adcda9 100644 --- a/eos/effects/shipbonusewremotesensordampeneroptimalbonusgc1.py +++ b/eos/effects/shipbonusewremotesensordampeneroptimalbonusgc1.py @@ -4,6 +4,5 @@ # Ship: Celestis type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Gallente Cruiser").level fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Remote Sensor Damper", - "maxRange", ship.getModifiedItemAttr("shipBonusGC") * level) + "maxRange", ship.getModifiedItemAttr("shipBonusGC"), skill="Gallente Cruiser") diff --git a/eos/effects/shipbonusewremotesensordampenerscanresolutionbonusgc2.py b/eos/effects/shipbonusewremotesensordampenerscanresolutionbonusgc2.py index 5c6457faa..59c963ba3 100644 --- a/eos/effects/shipbonusewremotesensordampenerscanresolutionbonusgc2.py +++ b/eos/effects/shipbonusewremotesensordampenerscanresolutionbonusgc2.py @@ -4,6 +4,5 @@ # Variations of ship: Celestis (3 of 3) type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Gallente Cruiser").level fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Remote Sensor Damper", - "scanResolutionBonus", ship.getModifiedItemAttr("shipBonusGC2") * level) + "scanResolutionBonus", ship.getModifiedItemAttr("shipBonusGC2"), skill="Gallente Cruiser") diff --git a/eos/effects/shipbonusewremotesensordampenerscanresolutionbonusgf2.py b/eos/effects/shipbonusewremotesensordampenerscanresolutionbonusgf2.py index 9166bde99..11d937af2 100644 --- a/eos/effects/shipbonusewremotesensordampenerscanresolutionbonusgf2.py +++ b/eos/effects/shipbonusewremotesensordampenerscanresolutionbonusgf2.py @@ -4,6 +4,5 @@ # Variations of ship: Maulus (2 of 2) type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Gallente Frigate").level fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Remote Sensor Damper", - "scanResolutionBonus", ship.getModifiedItemAttr("shipBonusGF2") * level) + "scanResolutionBonus", ship.getModifiedItemAttr("shipBonusGF2"), skill="Gallente Frigate") diff --git a/eos/effects/shipbonusewremotesensordampenerscanresolutionbonusrookie.py b/eos/effects/shipbonusewremotesensordampenerscanresolutionbonusrookie.py index e2adb8aea..2dd755e1f 100644 --- a/eos/effects/shipbonusewremotesensordampenerscanresolutionbonusrookie.py +++ b/eos/effects/shipbonusewremotesensordampenerscanresolutionbonusrookie.py @@ -4,6 +4,5 @@ # Ship: Velator type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Gallente Frigate").level fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Remote Sensor Damper", "scanResolutionBonus", ship.getModifiedItemAttr("rookieDampStrengthBonus")) diff --git a/eos/effects/shipbonusewweapondisruptionrangedisruptionbonusac1.py b/eos/effects/shipbonusewweapondisruptionrangedisruptionbonusac1.py index 937f21538..5cb0b2285 100644 --- a/eos/effects/shipbonusewweapondisruptionrangedisruptionbonusac1.py +++ b/eos/effects/shipbonusewweapondisruptionrangedisruptionbonusac1.py @@ -4,8 +4,7 @@ # Variations of ship: Arbitrator (3 of 3) type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Amarr Cruiser").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Weapon Disruption"), - "maxRangeBonus", ship.getModifiedItemAttr("shipBonusAC") * level) + "maxRangeBonus", ship.getModifiedItemAttr("shipBonusAC"), skill="Amarr Cruiser") fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Weapon Disruption"), - "falloffBonus", ship.getModifiedItemAttr("shipBonusAC") * level) + "falloffBonus", ship.getModifiedItemAttr("shipBonusAC"), skill="Amarr Cruiser") diff --git a/eos/effects/shipbonusewweapondisruptionrangedisruptionbonusaf2.py b/eos/effects/shipbonusewweapondisruptionrangedisruptionbonusaf2.py index dc9887e84..f72ad1a0d 100644 --- a/eos/effects/shipbonusewweapondisruptionrangedisruptionbonusaf2.py +++ b/eos/effects/shipbonusewweapondisruptionrangedisruptionbonusaf2.py @@ -4,8 +4,7 @@ # Variations of ship: Crucifier (2 of 2) type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Amarr Frigate").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Weapon Disruption"), - "maxRangeBonus", ship.getModifiedItemAttr("shipBonus2AF") * level) + "maxRangeBonus", ship.getModifiedItemAttr("shipBonus2AF"), skill="Amarr Frigate") fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Weapon Disruption"), - "falloffBonus", ship.getModifiedItemAttr("shipBonus2AF") * level) + "falloffBonus", ship.getModifiedItemAttr("shipBonus2AF"), skill="Amarr Frigate") diff --git a/eos/effects/shipbonusewweapondisruptiontrackingspeedbonusac1.py b/eos/effects/shipbonusewweapondisruptiontrackingspeedbonusac1.py index 43106d10b..4b7638db9 100644 --- a/eos/effects/shipbonusewweapondisruptiontrackingspeedbonusac1.py +++ b/eos/effects/shipbonusewweapondisruptiontrackingspeedbonusac1.py @@ -4,6 +4,5 @@ # Variations of ship: Arbitrator (3 of 3) type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Amarr Cruiser").level fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Tracking Disruptor", - "trackingSpeedBonus", ship.getModifiedItemAttr("shipBonusAC") * level) + "trackingSpeedBonus", ship.getModifiedItemAttr("shipBonusAC"), skill="Amarr Cruiser") diff --git a/eos/effects/shipbonusewweapondisruptiontrackingspeedbonusaf2.py b/eos/effects/shipbonusewweapondisruptiontrackingspeedbonusaf2.py index 1745e0ce4..cc6eb07cb 100644 --- a/eos/effects/shipbonusewweapondisruptiontrackingspeedbonusaf2.py +++ b/eos/effects/shipbonusewweapondisruptiontrackingspeedbonusaf2.py @@ -4,6 +4,5 @@ # Variations of ship: Crucifier (2 of 2) type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Amarr Frigate").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Weapon Disruption"), - "trackingSpeedBonus", ship.getModifiedItemAttr("shipBonus2AF") * level) + "trackingSpeedBonus", ship.getModifiedItemAttr("shipBonus2AF"), skill="Amarr Frigate") diff --git a/eos/effects/shipbonusexplosiveshieldresistancecb2.py b/eos/effects/shipbonusexplosiveshieldresistancecb2.py index 0a18bb8c8..7932112cc 100644 --- a/eos/effects/shipbonusexplosiveshieldresistancecb2.py +++ b/eos/effects/shipbonusexplosiveshieldresistancecb2.py @@ -6,5 +6,4 @@ # Ship: Scorpion Navy Issue type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Caldari Battleship").level - fit.ship.boostItemAttr("shieldExplosiveDamageResonance", ship.getModifiedItemAttr("shipBonus2CB") * level) + fit.ship.boostItemAttr("shieldExplosiveDamageResonance", ship.getModifiedItemAttr("shipBonus2CB"), skill="Caldari Battleship") diff --git a/eos/effects/shipbonusfrigatesizedlightmissileexplosivedamagemd1.py b/eos/effects/shipbonusfrigatesizedlightmissileexplosivedamagemd1.py index f7d468ec6..d27d30493 100644 --- a/eos/effects/shipbonusfrigatesizedlightmissileexplosivedamagemd1.py +++ b/eos/effects/shipbonusfrigatesizedlightmissileexplosivedamagemd1.py @@ -4,6 +4,5 @@ # Ship: Talwar type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Minmatar Destroyer").level fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Light Missiles"), - "explosiveDamage", ship.getModifiedItemAttr("shipBonusMD1") * level) + "explosiveDamage", ship.getModifiedItemAttr("shipBonusMD1"), skill="Minmatar Destroyer") diff --git a/eos/effects/shipbonusfrigatesizedmissilekineticdamagecd1.py b/eos/effects/shipbonusfrigatesizedmissilekineticdamagecd1.py index 0c3f5e9e4..b1be29908 100644 --- a/eos/effects/shipbonusfrigatesizedmissilekineticdamagecd1.py +++ b/eos/effects/shipbonusfrigatesizedmissilekineticdamagecd1.py @@ -4,6 +4,5 @@ # Ship: Corax type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Caldari Destroyer").level fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Light Missiles"), - "kineticDamage", ship.getModifiedItemAttr("shipBonusCD1") * level) + "kineticDamage", ship.getModifiedItemAttr("shipBonusCD1"), skill="Caldari Destroyer") diff --git a/eos/effects/shipbonusgf1torpedoflighttime.py b/eos/effects/shipbonusgf1torpedoflighttime.py index 35548e384..9ed770b3b 100644 --- a/eos/effects/shipbonusgf1torpedoflighttime.py +++ b/eos/effects/shipbonusgf1torpedoflighttime.py @@ -4,6 +4,5 @@ # Ship: Nemesis type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Gallente Frigate").level fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Torpedoes"), - "explosionDelay", ship.getModifiedItemAttr("shipBonusGF") * level) + "explosionDelay", ship.getModifiedItemAttr("shipBonusGF"), skill="Gallente Frigate") diff --git a/eos/effects/shipbonusgftorpedoexplosionvelocity.py b/eos/effects/shipbonusgftorpedoexplosionvelocity.py index 484bfa543..b653c749e 100644 --- a/eos/effects/shipbonusgftorpedoexplosionvelocity.py +++ b/eos/effects/shipbonusgftorpedoexplosionvelocity.py @@ -4,6 +4,5 @@ # Ship: Nemesis type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Gallente Frigate").level fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Torpedoes"), - "aoeVelocity", ship.getModifiedItemAttr("shipBonusGF") * level) \ No newline at end of file + "aoeVelocity", ship.getModifiedItemAttr("shipBonusGF"), skill="Gallente Frigate") \ No newline at end of file diff --git a/eos/effects/shipbonushamvelocityelitebonusheavygunship1.py b/eos/effects/shipbonushamvelocityelitebonusheavygunship1.py index 8fbe271ef..0b529bf00 100644 --- a/eos/effects/shipbonushamvelocityelitebonusheavygunship1.py +++ b/eos/effects/shipbonushamvelocityelitebonusheavygunship1.py @@ -4,6 +4,5 @@ # Ship: Sacrilege type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Heavy Assault Cruisers").level fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Assault Missiles"), - "maxVelocity", ship.getModifiedItemAttr("eliteBonusHeavyGunship1") * level) + "maxVelocity", ship.getModifiedItemAttr("eliteBonusHeavyGunship1"), skill="Heavy Assault Cruisers") diff --git a/eos/effects/shipbonusheavyassaultmissilealldamagemc2.py b/eos/effects/shipbonusheavyassaultmissilealldamagemc2.py index 5f089797f..4e0334dd1 100644 --- a/eos/effects/shipbonusheavyassaultmissilealldamagemc2.py +++ b/eos/effects/shipbonusheavyassaultmissilealldamagemc2.py @@ -5,7 +5,6 @@ # Ship: Scythe Fleet Issue type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Minmatar Cruiser").level 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") * level) + "{0}Damage".format(damageType), ship.getModifiedItemAttr("shipBonusMC2"), skill="Minmatar Cruiser") diff --git a/eos/effects/shipbonusheavyassaultmissilekineticdamagecbc1.py b/eos/effects/shipbonusheavyassaultmissilekineticdamagecbc1.py index f09d45143..425b3024e 100644 --- a/eos/effects/shipbonusheavyassaultmissilekineticdamagecbc1.py +++ b/eos/effects/shipbonusheavyassaultmissilekineticdamagecbc1.py @@ -5,6 +5,5 @@ # Ship: Nighthawk type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Caldari Battlecruiser").level fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Assault Missiles"), - "kineticDamage", ship.getModifiedItemAttr("shipBonusCBC1") * level) + "kineticDamage", ship.getModifiedItemAttr("shipBonusCBC1"), skill="Caldari Battlecruiser") diff --git a/eos/effects/shipbonusheavyassaultmissilelauncherrofmbc2.py b/eos/effects/shipbonusheavyassaultmissilelauncherrofmbc2.py index f33fea953..dbae3e20f 100644 --- a/eos/effects/shipbonusheavyassaultmissilelauncherrofmbc2.py +++ b/eos/effects/shipbonusheavyassaultmissilelauncherrofmbc2.py @@ -4,6 +4,5 @@ # Variations of ship: Cyclone (2 of 2) type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Minmatar Battlecruiser").level fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Missile Launcher Heavy Assault", - "speed", ship.getModifiedItemAttr("shipBonusMBC2") * level) + "speed", ship.getModifiedItemAttr("shipBonusMBC2"), skill="Minmatar Battlecruiser") diff --git a/eos/effects/shipbonusheavydronearmorhpgc2.py b/eos/effects/shipbonusheavydronearmorhpgc2.py index 55a3a9339..5f9a3e2ad 100644 --- a/eos/effects/shipbonusheavydronearmorhpgc2.py +++ b/eos/effects/shipbonusheavydronearmorhpgc2.py @@ -4,6 +4,5 @@ # Ship: Ishtar type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Gallente Cruiser").level fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Heavy Drone Operation"), - "armorHP", ship.getModifiedItemAttr("shipBonusGC2") * level) + "armorHP", ship.getModifiedItemAttr("shipBonusGC2"), skill="Gallente Cruiser") diff --git a/eos/effects/shipbonusheavydronedamagemultipliergc2.py b/eos/effects/shipbonusheavydronedamagemultipliergc2.py index ac7e9ec08..3932beba3 100644 --- a/eos/effects/shipbonusheavydronedamagemultipliergc2.py +++ b/eos/effects/shipbonusheavydronedamagemultipliergc2.py @@ -4,6 +4,5 @@ # Ship: Ishtar type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Gallente Cruiser").level fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Heavy Drone Operation"), - "damageMultiplier", ship.getModifiedItemAttr("shipBonusGC2") * level) + "damageMultiplier", ship.getModifiedItemAttr("shipBonusGC2"), skill="Gallente Cruiser") diff --git a/eos/effects/shipbonusheavydronehpgc2.py b/eos/effects/shipbonusheavydronehpgc2.py index 6e5a858eb..64ef5aea2 100644 --- a/eos/effects/shipbonusheavydronehpgc2.py +++ b/eos/effects/shipbonusheavydronehpgc2.py @@ -4,6 +4,5 @@ # Ship: Ishtar type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Gallente Cruiser").level fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Heavy Drone Operation"), - "hp", ship.getModifiedItemAttr("shipBonusGC2") * level) + "hp", ship.getModifiedItemAttr("shipBonusGC2"), skill="Gallente Cruiser") diff --git a/eos/effects/shipbonusheavydroneshieldhpgc2.py b/eos/effects/shipbonusheavydroneshieldhpgc2.py index 66e33b8a9..e3155d4d8 100644 --- a/eos/effects/shipbonusheavydroneshieldhpgc2.py +++ b/eos/effects/shipbonusheavydroneshieldhpgc2.py @@ -4,6 +4,5 @@ # Ship: Ishtar type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Gallente Cruiser").level fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Heavy Drone Operation"), - "shieldCapacity", ship.getModifiedItemAttr("shipBonusGC2") * level) + "shieldCapacity", ship.getModifiedItemAttr("shipBonusGC2"), skill="Gallente Cruiser") diff --git a/eos/effects/shipbonusheavydronespeedgc.py b/eos/effects/shipbonusheavydronespeedgc.py index bbc357f51..f31837962 100644 --- a/eos/effects/shipbonusheavydronespeedgc.py +++ b/eos/effects/shipbonusheavydronespeedgc.py @@ -4,6 +4,5 @@ # Ship: Ishtar type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Gallente Cruiser").level fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Heavy Drone Operation"), - "maxVelocity", ship.getModifiedItemAttr("shipBonusGC") * level) + "maxVelocity", ship.getModifiedItemAttr("shipBonusGC"), skill="Gallente Cruiser") diff --git a/eos/effects/shipbonusheavydronetrackinggc.py b/eos/effects/shipbonusheavydronetrackinggc.py index a2576a1c5..aac4f0422 100644 --- a/eos/effects/shipbonusheavydronetrackinggc.py +++ b/eos/effects/shipbonusheavydronetrackinggc.py @@ -4,6 +4,5 @@ # Ship: Ishtar type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Gallente Cruiser").level fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Heavy Drone Operation"), - "trackingSpeed", ship.getModifiedItemAttr("shipBonusGC") * level) + "trackingSpeed", ship.getModifiedItemAttr("shipBonusGC"), skill="Gallente Cruiser") diff --git a/eos/effects/shipbonusheavymissilealldamagemc2.py b/eos/effects/shipbonusheavymissilealldamagemc2.py index ed2309bef..b4b1fbb03 100644 --- a/eos/effects/shipbonusheavymissilealldamagemc2.py +++ b/eos/effects/shipbonusheavymissilealldamagemc2.py @@ -5,7 +5,6 @@ # Ship: Scythe Fleet Issue type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Minmatar Cruiser").level for damageType in ("em", "explosive", "kinetic", "thermal"): fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Missiles"), - "{0}Damage".format(damageType), ship.getModifiedItemAttr("shipBonusMC2") * level) + "{0}Damage".format(damageType), ship.getModifiedItemAttr("shipBonusMC2"), skill="Minmatar Cruiser") diff --git a/eos/effects/shipbonusheavymissileemdmgmb.py b/eos/effects/shipbonusheavymissileemdmgmb.py index 2315471a6..6055232bf 100644 --- a/eos/effects/shipbonusheavymissileemdmgmb.py +++ b/eos/effects/shipbonusheavymissileemdmgmb.py @@ -4,6 +4,5 @@ # Ship: Typhoon Fleet Issue type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Minmatar Battleship").level fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Missiles"), - "emDamage", ship.getModifiedItemAttr("shipBonusMB") * level) + "emDamage", ship.getModifiedItemAttr("shipBonusMB"), skill="Minmatar Battleship") diff --git a/eos/effects/shipbonusheavymissileexplodmgmb.py b/eos/effects/shipbonusheavymissileexplodmgmb.py index d43c470ac..a191d1f46 100644 --- a/eos/effects/shipbonusheavymissileexplodmgmb.py +++ b/eos/effects/shipbonusheavymissileexplodmgmb.py @@ -4,6 +4,5 @@ # Ship: Typhoon Fleet Issue type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Minmatar Battleship").level fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Missiles"), - "explosiveDamage", ship.getModifiedItemAttr("shipBonusMB") * level) + "explosiveDamage", ship.getModifiedItemAttr("shipBonusMB"), skill="Minmatar Battleship") diff --git a/eos/effects/shipbonusheavymissilekineticdamagecbc1.py b/eos/effects/shipbonusheavymissilekineticdamagecbc1.py index 6920869c0..37d20993f 100644 --- a/eos/effects/shipbonusheavymissilekineticdamagecbc1.py +++ b/eos/effects/shipbonusheavymissilekineticdamagecbc1.py @@ -5,6 +5,5 @@ # Ship: Nighthawk type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Caldari Battlecruiser").level fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Missiles"), - "kineticDamage", ship.getModifiedItemAttr("shipBonusCBC1") * level) + "kineticDamage", ship.getModifiedItemAttr("shipBonusCBC1"), skill="Caldari Battlecruiser") diff --git a/eos/effects/shipbonusheavymissilekineticdmgmb.py b/eos/effects/shipbonusheavymissilekineticdmgmb.py index af2567341..507fe97e8 100644 --- a/eos/effects/shipbonusheavymissilekineticdmgmb.py +++ b/eos/effects/shipbonusheavymissilekineticdmgmb.py @@ -4,6 +4,5 @@ # Ship: Typhoon Fleet Issue type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Minmatar Battleship").level fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Missiles"), - "kineticDamage", ship.getModifiedItemAttr("shipBonusMB") * level) + "kineticDamage", ship.getModifiedItemAttr("shipBonusMB"), skill="Minmatar Battleship") diff --git a/eos/effects/shipbonusheavymissilelauncherrofmbc2.py b/eos/effects/shipbonusheavymissilelauncherrofmbc2.py index e238a096d..41d41d1db 100644 --- a/eos/effects/shipbonusheavymissilelauncherrofmbc2.py +++ b/eos/effects/shipbonusheavymissilelauncherrofmbc2.py @@ -4,6 +4,5 @@ # Variations of ship: Cyclone (2 of 2) type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Minmatar Battlecruiser").level fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Missile Launcher Heavy", - "speed", ship.getModifiedItemAttr("shipBonusMBC2") * level) + "speed", ship.getModifiedItemAttr("shipBonusMBC2"), skill="Minmatar Battlecruiser") diff --git a/eos/effects/shipbonusheavymissilethermdmgmb.py b/eos/effects/shipbonusheavymissilethermdmgmb.py index 15120d687..3059a0b34 100644 --- a/eos/effects/shipbonusheavymissilethermdmgmb.py +++ b/eos/effects/shipbonusheavymissilethermdmgmb.py @@ -4,6 +4,5 @@ # Ship: Typhoon Fleet Issue type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Minmatar Battleship").level fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Missiles"), - "thermalDamage", ship.getModifiedItemAttr("shipBonusMB") * level) + "thermalDamage", ship.getModifiedItemAttr("shipBonusMB"), skill="Minmatar Battleship") diff --git a/eos/effects/shipbonushmlemdamageac.py b/eos/effects/shipbonushmlemdamageac.py index a7b0d399b..73e0215ab 100644 --- a/eos/effects/shipbonushmlemdamageac.py +++ b/eos/effects/shipbonushmlemdamageac.py @@ -4,6 +4,5 @@ # Ship: Sacrilege type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Amarr Cruiser").level fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Missiles"), - "emDamage", ship.getModifiedItemAttr("shipBonusAC") * level) + "emDamage", ship.getModifiedItemAttr("shipBonusAC"), skill="Amarr Cruiser") diff --git a/eos/effects/shipbonushmlexplodamageac.py b/eos/effects/shipbonushmlexplodamageac.py index 8f601ea7e..aae93767b 100644 --- a/eos/effects/shipbonushmlexplodamageac.py +++ b/eos/effects/shipbonushmlexplodamageac.py @@ -4,6 +4,5 @@ # Ship: Sacrilege type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Amarr Cruiser").level fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Missiles"), - "explosiveDamage", ship.getModifiedItemAttr("shipBonusAC") * level) + "explosiveDamage", ship.getModifiedItemAttr("shipBonusAC"), skill="Amarr Cruiser") diff --git a/eos/effects/shipbonushmlkineticdamageac.py b/eos/effects/shipbonushmlkineticdamageac.py index d3580ae58..e5caa6f6b 100644 --- a/eos/effects/shipbonushmlkineticdamageac.py +++ b/eos/effects/shipbonushmlkineticdamageac.py @@ -4,6 +4,5 @@ # Ship: Sacrilege type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Amarr Cruiser").level fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Missiles"), - "kineticDamage", ship.getModifiedItemAttr("shipBonusAC") * level) + "kineticDamage", ship.getModifiedItemAttr("shipBonusAC"), skill="Amarr Cruiser") diff --git a/eos/effects/shipbonushmlthermdamageac.py b/eos/effects/shipbonushmlthermdamageac.py index 21a55f39c..0951cbcb2 100644 --- a/eos/effects/shipbonushmlthermdamageac.py +++ b/eos/effects/shipbonushmlthermdamageac.py @@ -4,6 +4,5 @@ # Ship: Sacrilege type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Amarr Cruiser").level fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Missiles"), - "thermalDamage", ship.getModifiedItemAttr("shipBonusAC") * level) + "thermalDamage", ship.getModifiedItemAttr("shipBonusAC"), skill="Amarr Cruiser") diff --git a/eos/effects/shipbonushmlvelocityelitebonusheavygunship1.py b/eos/effects/shipbonushmlvelocityelitebonusheavygunship1.py index 8a3e2d59e..0e77373b2 100644 --- a/eos/effects/shipbonushmlvelocityelitebonusheavygunship1.py +++ b/eos/effects/shipbonushmlvelocityelitebonusheavygunship1.py @@ -4,6 +4,5 @@ # Ship: Sacrilege type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Heavy Assault Cruisers").level fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Missiles"), - "maxVelocity", ship.getModifiedItemAttr("eliteBonusHeavyGunship1") * level) + "maxVelocity", ship.getModifiedItemAttr("eliteBonusHeavyGunship1"), skill="Heavy Assault Cruisers") diff --git a/eos/effects/shipbonushtfalloffgb2.py b/eos/effects/shipbonushtfalloffgb2.py index 449d46d8c..b359b64d8 100644 --- a/eos/effects/shipbonushtfalloffgb2.py +++ b/eos/effects/shipbonushtfalloffgb2.py @@ -4,6 +4,5 @@ # Ship: Kronos type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Gallente Battleship").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Large Hybrid Turret"), - "falloff", ship.getModifiedItemAttr("shipBonusGB2") * level) + "falloff", ship.getModifiedItemAttr("shipBonusGB2"), skill="Gallente Battleship") diff --git a/eos/effects/shipbonushybridoptimalcb.py b/eos/effects/shipbonushybridoptimalcb.py index e0164fa0a..b94cde8d2 100644 --- a/eos/effects/shipbonushybridoptimalcb.py +++ b/eos/effects/shipbonushybridoptimalcb.py @@ -4,6 +4,5 @@ # Ship: Rokh type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Caldari Battleship").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Large Hybrid Turret"), - "maxRange", ship.getModifiedItemAttr("shipBonusCB") * level) + "maxRange", ship.getModifiedItemAttr("shipBonusCB"), skill="Caldari Battleship") diff --git a/eos/effects/shipbonushybridtrackinggf2.py b/eos/effects/shipbonushybridtrackinggf2.py index ccbddc1eb..2f3cb4e10 100644 --- a/eos/effects/shipbonushybridtrackinggf2.py +++ b/eos/effects/shipbonushybridtrackinggf2.py @@ -6,6 +6,5 @@ # Ship: Tristan type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Gallente Frigate").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Hybrid Turret"), - "trackingSpeed", ship.getModifiedItemAttr("shipBonusGF2") * level) + "trackingSpeed", ship.getModifiedItemAttr("shipBonusGF2"), skill="Gallente Frigate") diff --git a/eos/effects/shipbonusiceharvesterdurationore3.py b/eos/effects/shipbonusiceharvesterdurationore3.py index ff0dc08a2..f984510d0 100644 --- a/eos/effects/shipbonusiceharvesterdurationore3.py +++ b/eos/effects/shipbonusiceharvesterdurationore3.py @@ -5,6 +5,5 @@ # Ships from group: Mining Barge (3 of 3) type = "passive" def handler(fit, container, context): - level = fit.character.getSkill("Mining Barge").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Ice Harvesting"), - "duration", container.getModifiedItemAttr("shipBonusORE3") * level) \ No newline at end of file + "duration", container.getModifiedItemAttr("shipBonusORE3"), skill=("Mining Barge")) \ No newline at end of file diff --git a/eos/effects/shipbonuskineticmissiledamagegb2.py b/eos/effects/shipbonuskineticmissiledamagegb2.py index f3f327697..5c47215dd 100644 --- a/eos/effects/shipbonuskineticmissiledamagegb2.py +++ b/eos/effects/shipbonuskineticmissiledamagegb2.py @@ -4,6 +4,5 @@ # Ships named like: Rattlesnake (2 of 2) type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Gallente Battleship").level fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), - "kineticDamage", ship.getModifiedItemAttr("shipBonusGB2") * level) + "kineticDamage", ship.getModifiedItemAttr("shipBonusGB2"), skill="Gallente Battleship") diff --git a/eos/effects/shipbonuskineticmissiledamagegc2.py b/eos/effects/shipbonuskineticmissiledamagegc2.py index 5ca6f40a4..21a2ab998 100644 --- a/eos/effects/shipbonuskineticmissiledamagegc2.py +++ b/eos/effects/shipbonuskineticmissiledamagegc2.py @@ -5,6 +5,5 @@ # Ship: Gila type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Gallente Cruiser").level fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), - "kineticDamage", ship.getModifiedItemAttr("shipBonusGC2") * level) + "kineticDamage", ship.getModifiedItemAttr("shipBonusGC2"), skill="Gallente Cruiser") diff --git a/eos/effects/shipbonuskineticmissiledamagegf.py b/eos/effects/shipbonuskineticmissiledamagegf.py index c656d4746..2b52b828a 100644 --- a/eos/effects/shipbonuskineticmissiledamagegf.py +++ b/eos/effects/shipbonuskineticmissiledamagegf.py @@ -5,6 +5,5 @@ # Ship: Worm type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Gallente Frigate").level fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), - "kineticDamage", ship.getModifiedItemAttr("shipBonusGF") * level) + "kineticDamage", ship.getModifiedItemAttr("shipBonusGF"), skill="Gallente Frigate") diff --git a/eos/effects/shipbonuskineticshieldresistancecb2.py b/eos/effects/shipbonuskineticshieldresistancecb2.py index d7c2c5e5e..00da5e4d7 100644 --- a/eos/effects/shipbonuskineticshieldresistancecb2.py +++ b/eos/effects/shipbonuskineticshieldresistancecb2.py @@ -6,5 +6,4 @@ # Ship: Scorpion Navy Issue type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Caldari Battleship").level - fit.ship.boostItemAttr("shieldKineticDamageResonance", ship.getModifiedItemAttr("shipBonus2CB") * level) + fit.ship.boostItemAttr("shieldKineticDamageResonance", ship.getModifiedItemAttr("shipBonus2CB"), skill="Caldari Battleship") diff --git a/eos/effects/shipbonuslargeenergyturretmaxrangeab.py b/eos/effects/shipbonuslargeenergyturretmaxrangeab.py index 90e39e39a..1d392745a 100644 --- a/eos/effects/shipbonuslargeenergyturretmaxrangeab.py +++ b/eos/effects/shipbonuslargeenergyturretmaxrangeab.py @@ -4,6 +4,5 @@ # Ship: Paladin type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Amarr Battleship").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Large Energy Turret"), - "maxRange", ship.getModifiedItemAttr("shipBonusAB") * level) + "maxRange", ship.getModifiedItemAttr("shipBonusAB"), skill="Amarr Battleship") diff --git a/eos/effects/shipbonuslargeenergyturretmaxrangeab2.py b/eos/effects/shipbonuslargeenergyturretmaxrangeab2.py index 14b92c06b..650571509 100644 --- a/eos/effects/shipbonuslargeenergyturretmaxrangeab2.py +++ b/eos/effects/shipbonuslargeenergyturretmaxrangeab2.py @@ -5,6 +5,5 @@ # Ship: Apocalypse Navy Issue type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Amarr Battleship").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Large Energy Turret"), - "maxRange", ship.getModifiedItemAttr("shipBonusAB2") * level) + "maxRange", ship.getModifiedItemAttr("shipBonusAB2"), skill="Amarr Battleship") diff --git a/eos/effects/shipbonuslargeenergyturrettrackingab.py b/eos/effects/shipbonuslargeenergyturrettrackingab.py index 4e4b5dfb5..1dc627449 100644 --- a/eos/effects/shipbonuslargeenergyturrettrackingab.py +++ b/eos/effects/shipbonuslargeenergyturrettrackingab.py @@ -5,6 +5,5 @@ # Ship: Apocalypse Navy Issue type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Amarr Battleship").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Large Energy Turret"), - "trackingSpeed", ship.getModifiedItemAttr("shipBonusAB") * level) + "trackingSpeed", ship.getModifiedItemAttr("shipBonusAB"), skill="Amarr Battleship") diff --git a/eos/effects/shipbonuslargeenergyweapondamageab2.py b/eos/effects/shipbonuslargeenergyweapondamageab2.py index 4ed3cf92d..af3e9d8ea 100644 --- a/eos/effects/shipbonuslargeenergyweapondamageab2.py +++ b/eos/effects/shipbonuslargeenergyweapondamageab2.py @@ -4,6 +4,5 @@ # Ship: Abaddon type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Amarr Battleship").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Large Energy Turret"), - "damageMultiplier", ship.getModifiedItemAttr("shipBonusAB2") * level) + "damageMultiplier", ship.getModifiedItemAttr("shipBonusAB2"), skill="Amarr Battleship") diff --git a/eos/effects/shipbonuslightdronearmorhpgc2.py b/eos/effects/shipbonuslightdronearmorhpgc2.py index 99c1aa07f..b3db8ca7f 100644 --- a/eos/effects/shipbonuslightdronearmorhpgc2.py +++ b/eos/effects/shipbonuslightdronearmorhpgc2.py @@ -4,6 +4,5 @@ # Ship: Ishtar type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Gallente Cruiser").level fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Light Drone Operation"), - "armorHP", ship.getModifiedItemAttr("shipBonusGC2") * level) \ No newline at end of file + "armorHP", ship.getModifiedItemAttr("shipBonusGC2"), skill="Gallente Cruiser") \ No newline at end of file diff --git a/eos/effects/shipbonuslightdronedamagemultipliergc2.py b/eos/effects/shipbonuslightdronedamagemultipliergc2.py index 104b7f5a1..f06eb81d3 100644 --- a/eos/effects/shipbonuslightdronedamagemultipliergc2.py +++ b/eos/effects/shipbonuslightdronedamagemultipliergc2.py @@ -4,6 +4,5 @@ # Ship: Ishtar type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Gallente Cruiser").level fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Light Drone Operation"), - "damageMultiplier", ship.getModifiedItemAttr("shipBonusGC2") * level) + "damageMultiplier", ship.getModifiedItemAttr("shipBonusGC2"), skill="Gallente Cruiser") diff --git a/eos/effects/shipbonuslightdronehpgc2.py b/eos/effects/shipbonuslightdronehpgc2.py index 7a9328b1e..ec66ebcc8 100644 --- a/eos/effects/shipbonuslightdronehpgc2.py +++ b/eos/effects/shipbonuslightdronehpgc2.py @@ -4,6 +4,5 @@ # Ship: Ishtar type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Gallente Cruiser").level fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Light Drone Operation"), - "hp", ship.getModifiedItemAttr("shipBonusGC2") * level) + "hp", ship.getModifiedItemAttr("shipBonusGC2"), skill="Gallente Cruiser") diff --git a/eos/effects/shipbonuslightdroneshieldhpgc2.py b/eos/effects/shipbonuslightdroneshieldhpgc2.py index d6b6dd492..b46703c5b 100644 --- a/eos/effects/shipbonuslightdroneshieldhpgc2.py +++ b/eos/effects/shipbonuslightdroneshieldhpgc2.py @@ -4,6 +4,5 @@ # Ship: Ishtar type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Gallente Cruiser").level fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Light Drone Operation"), - "shieldCapacity", ship.getModifiedItemAttr("shipBonusGC2") * level) + "shieldCapacity", ship.getModifiedItemAttr("shipBonusGC2"), skill="Gallente Cruiser") diff --git a/eos/effects/shipbonuslightmissilealldamagemc2.py b/eos/effects/shipbonuslightmissilealldamagemc2.py index 43cd3189c..1f12783b5 100644 --- a/eos/effects/shipbonuslightmissilealldamagemc2.py +++ b/eos/effects/shipbonuslightmissilealldamagemc2.py @@ -5,7 +5,6 @@ # Ship: Scythe Fleet Issue type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Minmatar Cruiser").level for damageType in ("em", "explosive", "kinetic", "thermal"): fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Light Missiles"), - "{0}Damage".format(damageType), ship.getModifiedItemAttr("shipBonusMC2") * level) + "{0}Damage".format(damageType), ship.getModifiedItemAttr("shipBonusMC2"), skill="Minmatar Cruiser") diff --git a/eos/effects/shipbonusmediumdronearmorhpgc2.py b/eos/effects/shipbonusmediumdronearmorhpgc2.py index 2439abe96..609e5dfbd 100644 --- a/eos/effects/shipbonusmediumdronearmorhpgc2.py +++ b/eos/effects/shipbonusmediumdronearmorhpgc2.py @@ -4,6 +4,5 @@ # Ship: Ishtar type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Gallente Cruiser").level fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Medium Drone Operation"), - "armorHP", ship.getModifiedItemAttr("shipBonusGC2") * level) + "armorHP", ship.getModifiedItemAttr("shipBonusGC2"), skill="Gallente Cruiser") diff --git a/eos/effects/shipbonusmediumdronedamagemultipliergc2.py b/eos/effects/shipbonusmediumdronedamagemultipliergc2.py index b5d2da3bf..871ec5da9 100644 --- a/eos/effects/shipbonusmediumdronedamagemultipliergc2.py +++ b/eos/effects/shipbonusmediumdronedamagemultipliergc2.py @@ -4,6 +4,5 @@ # Ship: Ishtar type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Gallente Cruiser").level fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Medium Drone Operation"), - "damageMultiplier", ship.getModifiedItemAttr("shipBonusGC2") * level) + "damageMultiplier", ship.getModifiedItemAttr("shipBonusGC2"), skill="Gallente Cruiser") diff --git a/eos/effects/shipbonusmediumdronehpgc2.py b/eos/effects/shipbonusmediumdronehpgc2.py index 74644acb0..376f835a3 100644 --- a/eos/effects/shipbonusmediumdronehpgc2.py +++ b/eos/effects/shipbonusmediumdronehpgc2.py @@ -4,6 +4,5 @@ # Ship: Ishtar type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Gallente Cruiser").level fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Medium Drone Operation"), - "hp", ship.getModifiedItemAttr("shipBonusGC2") * level) + "hp", ship.getModifiedItemAttr("shipBonusGC2"), skill="Gallente Cruiser") diff --git a/eos/effects/shipbonusmediumdroneshieldhpgc2.py b/eos/effects/shipbonusmediumdroneshieldhpgc2.py index 210cc6eb8..a076da901 100644 --- a/eos/effects/shipbonusmediumdroneshieldhpgc2.py +++ b/eos/effects/shipbonusmediumdroneshieldhpgc2.py @@ -4,6 +4,5 @@ # Ship: Ishtar type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Gallente Cruiser").level fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Medium Drone Operation"), - "shieldCapacity", ship.getModifiedItemAttr("shipBonusGC2") * level) + "shieldCapacity", ship.getModifiedItemAttr("shipBonusGC2"), skill="Gallente Cruiser") diff --git a/eos/effects/shipbonusmediumenergyturrettrackingac2.py b/eos/effects/shipbonusmediumenergyturrettrackingac2.py index b9a51a361..27b622b71 100644 --- a/eos/effects/shipbonusmediumenergyturrettrackingac2.py +++ b/eos/effects/shipbonusmediumenergyturrettrackingac2.py @@ -4,6 +4,5 @@ # Ship: Phantasm type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Amarr Cruiser").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Energy Turret"), - "trackingSpeed", ship.getModifiedItemAttr("shipBonusAC2") * level) + "trackingSpeed", ship.getModifiedItemAttr("shipBonusAC2"), skill="Amarr Cruiser") diff --git a/eos/effects/shipbonusmediumhybriddmgcc2.py b/eos/effects/shipbonusmediumhybriddmgcc2.py index 782386f74..ac1b0a566 100644 --- a/eos/effects/shipbonusmediumhybriddmgcc2.py +++ b/eos/effects/shipbonusmediumhybriddmgcc2.py @@ -4,6 +4,5 @@ # Ship: Falcon type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Caldari Cruiser").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Hybrid Turret"), - "damageMultiplier", ship.getModifiedItemAttr("shipBonusCC2") * level) + "damageMultiplier", ship.getModifiedItemAttr("shipBonusCC2"), skill="Caldari Cruiser") diff --git a/eos/effects/shipbonusmetoptimalac2.py b/eos/effects/shipbonusmetoptimalac2.py index 9e3d7579e..18a09ba84 100644 --- a/eos/effects/shipbonusmetoptimalac2.py +++ b/eos/effects/shipbonusmetoptimalac2.py @@ -4,6 +4,5 @@ # Ship: Omen Navy Issue type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Amarr Cruiser").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Energy Turret"), - "maxRange", ship.getModifiedItemAttr("shipBonusAC2") * level) + "maxRange", ship.getModifiedItemAttr("shipBonusAC2"), skill="Amarr Cruiser") diff --git a/eos/effects/shipbonusmf1torpedoexplosionvelocity.py b/eos/effects/shipbonusmf1torpedoexplosionvelocity.py index 3e7ab143b..4ae858dfa 100644 --- a/eos/effects/shipbonusmf1torpedoexplosionvelocity.py +++ b/eos/effects/shipbonusmf1torpedoexplosionvelocity.py @@ -4,6 +4,5 @@ # Ship: Hound type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Minmatar Frigate").level fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Torpedoes"), - "aoeVelocity", ship.getModifiedItemAttr("shipBonusMF") * level) \ No newline at end of file + "aoeVelocity", ship.getModifiedItemAttr("shipBonusMF"), skill="Minmatar Frigate") \ No newline at end of file diff --git a/eos/effects/shipbonusmf1torpedoflighttime.py b/eos/effects/shipbonusmf1torpedoflighttime.py index 8772667ca..10b8500fe 100644 --- a/eos/effects/shipbonusmf1torpedoflighttime.py +++ b/eos/effects/shipbonusmf1torpedoflighttime.py @@ -4,6 +4,5 @@ # Ship: Hound type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Minmatar Frigate").level fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Torpedoes"), - "explosionDelay", ship.getModifiedItemAttr("shipBonusMF") * level) + "explosionDelay", ship.getModifiedItemAttr("shipBonusMF"), skill="Minmatar Frigate") diff --git a/eos/effects/shipbonusmineralbaygi2.py b/eos/effects/shipbonusmineralbaygi2.py index 64466c6b7..7ac219899 100644 --- a/eos/effects/shipbonusmineralbaygi2.py +++ b/eos/effects/shipbonusmineralbaygi2.py @@ -4,5 +4,4 @@ # Ship: Kryos type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Gallente Industrial").level - fit.ship.boostItemAttr("specialMineralHoldCapacity", ship.getModifiedItemAttr("shipBonusGI2") * level) + fit.ship.boostItemAttr("specialMineralHoldCapacity", ship.getModifiedItemAttr("shipBonusGI2"), skill="Gallente Industrial") diff --git a/eos/effects/shipbonusminingdurationore3.py b/eos/effects/shipbonusminingdurationore3.py index f92bc1527..b2c69f664 100644 --- a/eos/effects/shipbonusminingdurationore3.py +++ b/eos/effects/shipbonusminingdurationore3.py @@ -5,6 +5,5 @@ # Ships from group: Mining Barge (3 of 3) type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Mining Barge").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Mining"), - "duration", ship.getModifiedItemAttr("shipBonusORE3") * level) + "duration", ship.getModifiedItemAttr("shipBonusORE3"), skill=("Mining Barge")) diff --git a/eos/effects/shipbonusminingiceharvestingrangeore2.py b/eos/effects/shipbonusminingiceharvestingrangeore2.py index f9f4aac2f..288aeb4e4 100644 --- a/eos/effects/shipbonusminingiceharvestingrangeore2.py +++ b/eos/effects/shipbonusminingiceharvestingrangeore2.py @@ -4,6 +4,5 @@ # Variations of ship: Covetor (2 of 2) type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Mining Barge").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Mining") or mod.item.requiresSkill("Ice Harvesting"), - "maxRange", ship.getModifiedItemAttr("shipBonusORE2") * level) + "maxRange", ship.getModifiedItemAttr("shipBonusORE2"), skill=("Mining Barge")) diff --git a/eos/effects/shipbonusmissileaoevelocitymb2.py b/eos/effects/shipbonusmissileaoevelocitymb2.py index d4d99e088..ba5e38e0c 100644 --- a/eos/effects/shipbonusmissileaoevelocitymb2.py +++ b/eos/effects/shipbonusmissileaoevelocitymb2.py @@ -4,6 +4,5 @@ # Ship: Typhoon type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Minmatar Battleship").level fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Torpedoes"), - "aoeVelocity", ship.getModifiedItemAttr("shipBonusMB2") * level) + "aoeVelocity", ship.getModifiedItemAttr("shipBonusMB2"), skill="Minmatar Battleship") diff --git a/eos/effects/shipbonusmissilevelocityad2.py b/eos/effects/shipbonusmissilevelocityad2.py index 0bbf13ce0..e498e2231 100644 --- a/eos/effects/shipbonusmissilevelocityad2.py +++ b/eos/effects/shipbonusmissilevelocityad2.py @@ -4,6 +4,5 @@ # Ship: Heretic type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Amarr Destroyer").level fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), - "maxVelocity", ship.getModifiedItemAttr("shipBonusAD2") * level) + "maxVelocity", ship.getModifiedItemAttr("shipBonusAD2"), skill="Amarr Destroyer") diff --git a/eos/effects/shipbonusmissilevelocitycc2.py b/eos/effects/shipbonusmissilevelocitycc2.py index 61fef993d..1886163f5 100644 --- a/eos/effects/shipbonusmissilevelocitycc2.py +++ b/eos/effects/shipbonusmissilevelocitycc2.py @@ -4,6 +4,5 @@ # Ship: Cerberus type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Caldari Cruiser").level fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), - "maxVelocity", ship.getModifiedItemAttr("shipBonusCC2") * level) + "maxVelocity", ship.getModifiedItemAttr("shipBonusCC2"), skill="Caldari Cruiser") diff --git a/eos/effects/shipbonusmwdsignatureradiusmd2.py b/eos/effects/shipbonusmwdsignatureradiusmd2.py index adda160ed..5d3ba376e 100644 --- a/eos/effects/shipbonusmwdsignatureradiusmd2.py +++ b/eos/effects/shipbonusmwdsignatureradiusmd2.py @@ -4,6 +4,5 @@ # Ship: Talwar type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Minmatar Destroyer").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("High Speed Maneuvering"), - "signatureRadiusBonus", ship.getModifiedItemAttr("shipBonusMD2") * level) + "signatureRadiusBonus", ship.getModifiedItemAttr("shipBonusMD2"), skill="Minmatar Destroyer") diff --git a/eos/effects/shipbonusnoctissalvagecycle.py b/eos/effects/shipbonusnoctissalvagecycle.py index 8b4ac3e50..dd2780d33 100644 --- a/eos/effects/shipbonusnoctissalvagecycle.py +++ b/eos/effects/shipbonusnoctissalvagecycle.py @@ -4,6 +4,5 @@ # Ship: Noctis type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("ORE Industrial").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Salvaging"), - "duration", ship.getModifiedItemAttr("shipBonusOreIndustrial1") * level) + "duration", ship.getModifiedItemAttr("shipBonusOreIndustrial1"), skill="ORE Industrial") diff --git a/eos/effects/shipbonusnoctistractorcycle.py b/eos/effects/shipbonusnoctistractorcycle.py index 4c83e3cde..8543ccf06 100644 --- a/eos/effects/shipbonusnoctistractorcycle.py +++ b/eos/effects/shipbonusnoctistractorcycle.py @@ -4,6 +4,5 @@ # Ship: Noctis type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("ORE Industrial").level fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Tractor Beam", - "duration", ship.getModifiedItemAttr("shipBonusOreIndustrial1") * level) + "duration", ship.getModifiedItemAttr("shipBonusOreIndustrial1"), skill="ORE Industrial") diff --git a/eos/effects/shipbonusnoctistractorrange.py b/eos/effects/shipbonusnoctistractorrange.py index b6991b8ee..58a8799e0 100644 --- a/eos/effects/shipbonusnoctistractorrange.py +++ b/eos/effects/shipbonusnoctistractorrange.py @@ -4,6 +4,5 @@ # Ship: Noctis type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("ORE Industrial").level fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Tractor Beam", - "maxRange", ship.getModifiedItemAttr("shipBonusOreIndustrial2") * level) + "maxRange", ship.getModifiedItemAttr("shipBonusOreIndustrial2"), skill="ORE Industrial") diff --git a/eos/effects/shipbonusnoctistractorvelocity.py b/eos/effects/shipbonusnoctistractorvelocity.py index bc738b405..bf7030612 100644 --- a/eos/effects/shipbonusnoctistractorvelocity.py +++ b/eos/effects/shipbonusnoctistractorvelocity.py @@ -4,6 +4,5 @@ # Ship: Noctis type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("ORE Industrial").level fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Tractor Beam", - "maxTractorVelocity", ship.getModifiedItemAttr("shipBonusOreIndustrial2") * level) + "maxTractorVelocity", ship.getModifiedItemAttr("shipBonusOreIndustrial2"), skill="ORE Industrial") diff --git a/eos/effects/shipbonusorecapacitygi2.py b/eos/effects/shipbonusorecapacitygi2.py index 0e5b1fad7..b73c40589 100644 --- a/eos/effects/shipbonusorecapacitygi2.py +++ b/eos/effects/shipbonusorecapacitygi2.py @@ -4,5 +4,4 @@ # Ship: Miasmos type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Gallente Industrial").level - fit.ship.boostItemAttr("specialOreHoldCapacity", ship.getModifiedItemAttr("shipBonusGI2") * level) + fit.ship.boostItemAttr("specialOreHoldCapacity", ship.getModifiedItemAttr("shipBonusGI2"), skill="Gallente Industrial") diff --git a/eos/effects/shipbonusorecapshipdronearmorhpandshieldhpandhpbonus.py b/eos/effects/shipbonusorecapshipdronearmorhpandshieldhpandhpbonus.py index 4c79d5f22..c97e7f30f 100644 --- a/eos/effects/shipbonusorecapshipdronearmorhpandshieldhpandhpbonus.py +++ b/eos/effects/shipbonusorecapshipdronearmorhpandshieldhpandhpbonus.py @@ -4,7 +4,6 @@ # Ship: Rorqual type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Capital Industrial Ships").level for type in ("shieldCapacity", "armorHP", "hp"): fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Drones"), - type, ship.getModifiedItemAttr("shipBonusORECapital4") * level) + type, ship.getModifiedItemAttr("shipBonusORECapital4"), skill="Capital Industrial Ships") diff --git a/eos/effects/shipbonusorecapshipdronedmgbonus.py b/eos/effects/shipbonusorecapshipdronedmgbonus.py index f486279ac..5dce4fd88 100644 --- a/eos/effects/shipbonusorecapshipdronedmgbonus.py +++ b/eos/effects/shipbonusorecapshipdronedmgbonus.py @@ -4,6 +4,5 @@ # Ship: Rorqual type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Capital Industrial Ships").level fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Drones"), - "damageMultiplier", ship.getModifiedItemAttr("shipBonusORECapital4") * level) + "damageMultiplier", ship.getModifiedItemAttr("shipBonusORECapital4"), skill="Capital Industrial Ships") diff --git a/eos/effects/shipbonusoreholdore2.py b/eos/effects/shipbonusoreholdore2.py index 2221ef72a..e55e55ea2 100644 --- a/eos/effects/shipbonusoreholdore2.py +++ b/eos/effects/shipbonusoreholdore2.py @@ -4,5 +4,4 @@ # Variations of ship: Retriever (2 of 2) type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Mining Barge").level - fit.ship.boostItemAttr("specialOreHoldCapacity", ship.getModifiedItemAttr("shipBonusORE2") * level) \ No newline at end of file + fit.ship.boostItemAttr("specialOreHoldCapacity", ship.getModifiedItemAttr("shipBonusORE2"), skill=("Mining Barge")) \ No newline at end of file diff --git a/eos/effects/shipbonuspicommoditiesholdgi2.py b/eos/effects/shipbonuspicommoditiesholdgi2.py index 14632a8ea..2b5271576 100644 --- a/eos/effects/shipbonuspicommoditiesholdgi2.py +++ b/eos/effects/shipbonuspicommoditiesholdgi2.py @@ -4,5 +4,4 @@ # Ship: Epithal type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Gallente Industrial").level - fit.ship.boostItemAttr("specialPlanetaryCommoditiesHoldCapacity", ship.getModifiedItemAttr("shipBonusGI2") * level) + fit.ship.boostItemAttr("specialPlanetaryCommoditiesHoldCapacity", ship.getModifiedItemAttr("shipBonusGI2"), skill="Gallente Industrial") diff --git a/eos/effects/shipbonusprojectiledamagembc1.py b/eos/effects/shipbonusprojectiledamagembc1.py index d4ef667fe..0d693b236 100644 --- a/eos/effects/shipbonusprojectiledamagembc1.py +++ b/eos/effects/shipbonusprojectiledamagembc1.py @@ -4,6 +4,5 @@ # Ships named like: Hurricane (2 of 2) type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Minmatar Battlecruiser").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Projectile Turret"), - "damageMultiplier", ship.getModifiedItemAttr("shipBonusMBC1") * level) + "damageMultiplier", ship.getModifiedItemAttr("shipBonusMBC1"), skill="Minmatar Battlecruiser") diff --git a/eos/effects/shipbonusprojectiledamagembc2.py b/eos/effects/shipbonusprojectiledamagembc2.py index c9f3a96d3..8128831f1 100644 --- a/eos/effects/shipbonusprojectiledamagembc2.py +++ b/eos/effects/shipbonusprojectiledamagembc2.py @@ -4,6 +4,5 @@ # Ship: Sleipnir type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Minmatar Battlecruiser").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Projectile Turret"), - "damageMultiplier", ship.getModifiedItemAttr("shipBonusMBC2") * level) + "damageMultiplier", ship.getModifiedItemAttr("shipBonusMBC2"), skill="Minmatar Battlecruiser") diff --git a/eos/effects/shipbonusprojectiletrackingmc2.py b/eos/effects/shipbonusprojectiletrackingmc2.py index 0ed3df37d..579fb1864 100644 --- a/eos/effects/shipbonusprojectiletrackingmc2.py +++ b/eos/effects/shipbonusprojectiletrackingmc2.py @@ -4,6 +4,5 @@ # Ship: Stabber Fleet Issue type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Minmatar Cruiser").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Projectile Turret"), - "trackingSpeed", ship.getModifiedItemAttr("shipBonusMC2") * level) + "trackingSpeed", ship.getModifiedItemAttr("shipBonusMC2"), skill="Minmatar Cruiser") diff --git a/eos/effects/shipbonusptfalloffmb1.py b/eos/effects/shipbonusptfalloffmb1.py index d4ac35b16..b72a45b93 100644 --- a/eos/effects/shipbonusptfalloffmb1.py +++ b/eos/effects/shipbonusptfalloffmb1.py @@ -4,6 +4,5 @@ # Ship: Vargur type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Minmatar Battleship").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Large Projectile Turret"), - "falloff", ship.getModifiedItemAttr("shipBonusMB") * level) + "falloff", ship.getModifiedItemAttr("shipBonusMB"), skill="Minmatar Battleship") diff --git a/eos/effects/shipbonusremotearmorrepairamount2af.py b/eos/effects/shipbonusremotearmorrepairamount2af.py index 9071f7cc8..f63032c9a 100644 --- a/eos/effects/shipbonusremotearmorrepairamount2af.py +++ b/eos/effects/shipbonusremotearmorrepairamount2af.py @@ -4,6 +4,5 @@ # Ship: Inquisitor type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Amarr Frigate").level fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Remote Armor Repairer", - "armorDamageAmount", ship.getModifiedItemAttr("shipBonus2AF") * level) + "armorDamageAmount", ship.getModifiedItemAttr("shipBonus2AF"), skill="Amarr Frigate") diff --git a/eos/effects/shipbonusremotearmorrepairamountac2.py b/eos/effects/shipbonusremotearmorrepairamountac2.py index 2e6e71909..5d90469a3 100644 --- a/eos/effects/shipbonusremotearmorrepairamountac2.py +++ b/eos/effects/shipbonusremotearmorrepairamountac2.py @@ -4,6 +4,5 @@ # Ship: Augoror type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Amarr Cruiser").level fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Remote Armor Repairer", - "armorDamageAmount", ship.getModifiedItemAttr("shipBonusAC2") * level) + "armorDamageAmount", ship.getModifiedItemAttr("shipBonusAC2"), skill="Amarr Cruiser") diff --git a/eos/effects/shipbonusremotearmorrepairamountgc2.py b/eos/effects/shipbonusremotearmorrepairamountgc2.py index 6a8a7f481..fbd04f0b2 100644 --- a/eos/effects/shipbonusremotearmorrepairamountgc2.py +++ b/eos/effects/shipbonusremotearmorrepairamountgc2.py @@ -4,6 +4,5 @@ # Ship: Exequror type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Gallente Cruiser").level fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Remote Armor Repairer", - "armorDamageAmount", ship.getModifiedItemAttr("shipBonusGC2") * level) + "armorDamageAmount", ship.getModifiedItemAttr("shipBonusGC2"), skill="Gallente Cruiser") diff --git a/eos/effects/shipbonusremotearmorrepairamountgf2.py b/eos/effects/shipbonusremotearmorrepairamountgf2.py index a98bab6e5..44c6285a5 100644 --- a/eos/effects/shipbonusremotearmorrepairamountgf2.py +++ b/eos/effects/shipbonusremotearmorrepairamountgf2.py @@ -4,6 +4,5 @@ # Ship: Navitas type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Gallente Frigate").level fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Remote Armor Repairer", - "armorDamageAmount", ship.getModifiedItemAttr("shipBonusGF2") * level) + "armorDamageAmount", ship.getModifiedItemAttr("shipBonusGF2"), skill="Gallente Frigate") diff --git a/eos/effects/shipbonusremotearmorrepaircapneedac1.py b/eos/effects/shipbonusremotearmorrepaircapneedac1.py index 5a8e9e642..d93489454 100644 --- a/eos/effects/shipbonusremotearmorrepaircapneedac1.py +++ b/eos/effects/shipbonusremotearmorrepaircapneedac1.py @@ -4,6 +4,5 @@ # Ship: Augoror type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Amarr Cruiser").level fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Remote Armor Repairer", - "capacitorNeed", ship.getModifiedItemAttr("shipBonusAC") * level) + "capacitorNeed", ship.getModifiedItemAttr("shipBonusAC"), skill="Amarr Cruiser") diff --git a/eos/effects/shipbonusremotearmorrepaircapneedaf.py b/eos/effects/shipbonusremotearmorrepaircapneedaf.py index bf0561e25..924fb5e8b 100644 --- a/eos/effects/shipbonusremotearmorrepaircapneedaf.py +++ b/eos/effects/shipbonusremotearmorrepaircapneedaf.py @@ -4,6 +4,5 @@ # Ship: Inquisitor type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Amarr Frigate").level fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Remote Armor Repairer", - "capacitorNeed", ship.getModifiedItemAttr("shipBonusAF") * level) + "capacitorNeed", ship.getModifiedItemAttr("shipBonusAF"), skill="Amarr Frigate") diff --git a/eos/effects/shipbonusremotearmorrepaircapneedgc1.py b/eos/effects/shipbonusremotearmorrepaircapneedgc1.py index 5102bc945..022e51477 100644 --- a/eos/effects/shipbonusremotearmorrepaircapneedgc1.py +++ b/eos/effects/shipbonusremotearmorrepaircapneedgc1.py @@ -4,6 +4,5 @@ # Ship: Exequror type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Gallente Cruiser").level fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Remote Armor Repairer", - "capacitorNeed", ship.getModifiedItemAttr("shipBonusGC") * level) + "capacitorNeed", ship.getModifiedItemAttr("shipBonusGC"), skill="Gallente Cruiser") diff --git a/eos/effects/shipbonusremotearmorrepaircapneedgf.py b/eos/effects/shipbonusremotearmorrepaircapneedgf.py index 93563edab..6e7bbf8f6 100644 --- a/eos/effects/shipbonusremotearmorrepaircapneedgf.py +++ b/eos/effects/shipbonusremotearmorrepaircapneedgf.py @@ -4,6 +4,5 @@ # Ship: Navitas type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Gallente Frigate").level fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Remote Armor Repairer", - "capacitorNeed", ship.getModifiedItemAttr("shipBonusGF") * level) + "capacitorNeed", ship.getModifiedItemAttr("shipBonusGF"), skill="Gallente Frigate") diff --git a/eos/effects/shipbonusrepairsystemsarmorrepairamountgb2.py b/eos/effects/shipbonusrepairsystemsarmorrepairamountgb2.py index c1b054191..ae83eaa6e 100644 --- a/eos/effects/shipbonusrepairsystemsarmorrepairamountgb2.py +++ b/eos/effects/shipbonusrepairsystemsarmorrepairamountgb2.py @@ -4,6 +4,5 @@ # Ship: Hyperion type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Gallente Battleship").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Repair Systems"), - "armorDamageAmount", ship.getModifiedItemAttr("shipBonusGB2") * level) + "armorDamageAmount", ship.getModifiedItemAttr("shipBonusGB2"), skill="Gallente Battleship") diff --git a/eos/effects/shipbonusrhmlrof2cb.py b/eos/effects/shipbonusrhmlrof2cb.py index bbbc91a77..172c479f9 100644 --- a/eos/effects/shipbonusrhmlrof2cb.py +++ b/eos/effects/shipbonusrhmlrof2cb.py @@ -5,6 +5,5 @@ # Ship: Widow type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Caldari Battleship").level fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Missile Launcher Rapid Heavy", - "speed", ship.getModifiedItemAttr("shipBonus2CB") * level) + "speed", ship.getModifiedItemAttr("shipBonus2CB"), skill="Caldari Battleship") diff --git a/eos/effects/shipbonusrhmlrofcb.py b/eos/effects/shipbonusrhmlrofcb.py index 058aa2b9e..728a0710d 100644 --- a/eos/effects/shipbonusrhmlrofcb.py +++ b/eos/effects/shipbonusrhmlrofcb.py @@ -4,6 +4,5 @@ # Ship: Scorpion Navy Issue type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Caldari Battleship").level fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Missile Launcher Rapid Heavy", - "speed", ship.getModifiedItemAttr("shipBonusCB") * level) + "speed", ship.getModifiedItemAttr("shipBonusCB"), skill="Caldari Battleship") diff --git a/eos/effects/shipbonusrhmlrofmb.py b/eos/effects/shipbonusrhmlrofmb.py index 65213af78..575e39727 100644 --- a/eos/effects/shipbonusrhmlrofmb.py +++ b/eos/effects/shipbonusrhmlrofmb.py @@ -4,6 +4,5 @@ # Ship: Typhoon type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Minmatar Battleship").level fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Missile Launcher Rapid Heavy", - "speed", ship.getModifiedItemAttr("shipBonusMB") * level) + "speed", ship.getModifiedItemAttr("shipBonusMB"), skill="Minmatar Battleship") diff --git a/eos/effects/shipbonussalvagecycleaf.py b/eos/effects/shipbonussalvagecycleaf.py index 252fa183e..9b4f3b372 100644 --- a/eos/effects/shipbonussalvagecycleaf.py +++ b/eos/effects/shipbonussalvagecycleaf.py @@ -4,6 +4,5 @@ # Ship: Magnate type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Amarr Frigate").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Salvaging"), - "duration", ship.getModifiedItemAttr("shipBonusAF") * level) + "duration", ship.getModifiedItemAttr("shipBonusAF"), skill="Amarr Frigate") diff --git a/eos/effects/shipbonussalvagecyclecf.py b/eos/effects/shipbonussalvagecyclecf.py index 7832af2b6..bdf4d4b9d 100644 --- a/eos/effects/shipbonussalvagecyclecf.py +++ b/eos/effects/shipbonussalvagecyclecf.py @@ -4,6 +4,5 @@ # Ship: Heron type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Caldari Frigate").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Salvaging"), - "duration", ship.getModifiedItemAttr("shipBonusCF") * level) + "duration", ship.getModifiedItemAttr("shipBonusCF"), skill="Caldari Frigate") diff --git a/eos/effects/shipbonussalvagecyclegf.py b/eos/effects/shipbonussalvagecyclegf.py index 9e32df3a8..095ea42b8 100644 --- a/eos/effects/shipbonussalvagecyclegf.py +++ b/eos/effects/shipbonussalvagecyclegf.py @@ -4,6 +4,5 @@ # Ship: Imicus type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Amarr Frigate").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Salvaging"), - "duration", ship.getModifiedItemAttr("shipBonusGF") * level) + "duration", ship.getModifiedItemAttr("shipBonusGF"), skill="Amarr Frigate") diff --git a/eos/effects/shipbonussalvagecyclemf.py b/eos/effects/shipbonussalvagecyclemf.py index 6d6158919..f4544c74b 100644 --- a/eos/effects/shipbonussalvagecyclemf.py +++ b/eos/effects/shipbonussalvagecyclemf.py @@ -4,6 +4,5 @@ # Ship: Probe type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Minmatar Frigate").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Salvaging"), - "duration", ship.getModifiedItemAttr("shipBonusMF") * level) + "duration", ship.getModifiedItemAttr("shipBonusMF"), skill="Minmatar Frigate") diff --git a/eos/effects/shipbonusscanprobestrength2af.py b/eos/effects/shipbonusscanprobestrength2af.py index 1be48b032..f1e0c05d9 100644 --- a/eos/effects/shipbonusscanprobestrength2af.py +++ b/eos/effects/shipbonusscanprobestrength2af.py @@ -4,6 +4,5 @@ # Ship: Magnate type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Amarr Frigate").level fit.modules.filteredChargeBoost(lambda mod: mod.charge.group.name == "Scanner Probe", - "baseSensorStrength", ship.getModifiedItemAttr("shipBonus2AF") * level) + "baseSensorStrength", ship.getModifiedItemAttr("shipBonus2AF"), skill="Amarr Frigate") diff --git a/eos/effects/shipbonusscanprobestrengthcf.py b/eos/effects/shipbonusscanprobestrengthcf.py index 7528d4222..06d8c2a59 100644 --- a/eos/effects/shipbonusscanprobestrengthcf.py +++ b/eos/effects/shipbonusscanprobestrengthcf.py @@ -4,6 +4,5 @@ # Ship: Heron type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Caldari Frigate").level fit.modules.filteredChargeBoost(lambda mod: mod.charge.group.name == "Scanner Probe", - "baseSensorStrength", ship.getModifiedItemAttr("shipBonusCF2") * level) \ No newline at end of file + "baseSensorStrength", ship.getModifiedItemAttr("shipBonusCF2"), skill="Caldari Frigate") \ No newline at end of file diff --git a/eos/effects/shipbonusscanprobestrengthgf.py b/eos/effects/shipbonusscanprobestrengthgf.py index 06276bbc1..eed28a084 100644 --- a/eos/effects/shipbonusscanprobestrengthgf.py +++ b/eos/effects/shipbonusscanprobestrengthgf.py @@ -4,6 +4,5 @@ # Ship: Imicus type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Gallente Frigate").level fit.modules.filteredChargeBoost(lambda mod: mod.charge.group.name == "Scanner Probe", - "baseSensorStrength", ship.getModifiedItemAttr("shipBonusGF2") * level) + "baseSensorStrength", ship.getModifiedItemAttr("shipBonusGF2", skill="Gallente Frigate"l) diff --git a/eos/effects/shipbonusscanprobestrengthmf.py b/eos/effects/shipbonusscanprobestrengthmf.py index 6287ba5ac..27375af1b 100644 --- a/eos/effects/shipbonusscanprobestrengthmf.py +++ b/eos/effects/shipbonusscanprobestrengthmf.py @@ -4,6 +4,5 @@ # Ship: Probe type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Minmatar Frigate").level fit.modules.filteredChargeBoost(lambda mod: mod.charge.group.name == "Scanner Probe", - "baseSensorStrength", ship.getModifiedItemAttr("shipBonusMF2") * level) + "baseSensorStrength", ship.getModifiedItemAttr("shipBonusMF2"), skill="Minmatar Frigate") diff --git a/eos/effects/shipbonussentryarmorhpgc3.py b/eos/effects/shipbonussentryarmorhpgc3.py index 80dc34d01..ebf024b2a 100644 --- a/eos/effects/shipbonussentryarmorhpgc3.py +++ b/eos/effects/shipbonussentryarmorhpgc3.py @@ -4,6 +4,5 @@ # Ship: Ishtar type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Gallente Cruiser").level fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Sentry Drone Interfacing"), - "armorHP", ship.getModifiedItemAttr("shipBonusGC3") * level) + "armorHP", ship.getModifiedItemAttr("shipBonusGC3"), skill="Gallente Cruiser") diff --git a/eos/effects/shipbonussentrydamagemultipliergc3.py b/eos/effects/shipbonussentrydamagemultipliergc3.py index 73987a70b..40e9489d4 100644 --- a/eos/effects/shipbonussentrydamagemultipliergc3.py +++ b/eos/effects/shipbonussentrydamagemultipliergc3.py @@ -4,6 +4,5 @@ # Ship: Ishtar type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Gallente Cruiser").level fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Sentry Drone Interfacing"), - "damageMultiplier", ship.getModifiedItemAttr("shipBonusGC3") * level) + "damageMultiplier", ship.getModifiedItemAttr("shipBonusGC3"), skill="Gallente Cruiser") diff --git a/eos/effects/shipbonussentrydroneoptimalrangeelitebonusheavygunship2.py b/eos/effects/shipbonussentrydroneoptimalrangeelitebonusheavygunship2.py index 8cec3fc77..6c5f64edc 100644 --- a/eos/effects/shipbonussentrydroneoptimalrangeelitebonusheavygunship2.py +++ b/eos/effects/shipbonussentrydroneoptimalrangeelitebonusheavygunship2.py @@ -4,6 +4,5 @@ # Ship: Ishtar type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Heavy Assault Cruisers").level fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Sentry Drone Interfacing"), - "maxRange", ship.getModifiedItemAttr("eliteBonusHeavyGunship2") * level) + "maxRange", ship.getModifiedItemAttr("eliteBonusHeavyGunship2"), skill="Heavy Assault Cruisers") diff --git a/eos/effects/shipbonussentrydronetrackingelitebonusheavygunship2.py b/eos/effects/shipbonussentrydronetrackingelitebonusheavygunship2.py index 90a40a056..5e3cad258 100644 --- a/eos/effects/shipbonussentrydronetrackingelitebonusheavygunship2.py +++ b/eos/effects/shipbonussentrydronetrackingelitebonusheavygunship2.py @@ -4,6 +4,5 @@ # Ship: Ishtar type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Heavy Assault Cruisers").level fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Sentry Drone Interfacing"), - "trackingSpeed", ship.getModifiedItemAttr("eliteBonusHeavyGunship2") * level) + "trackingSpeed", ship.getModifiedItemAttr("eliteBonusHeavyGunship2"), skill="Heavy Assault Cruisers") diff --git a/eos/effects/shipbonussentryhpgc3.py b/eos/effects/shipbonussentryhpgc3.py index 633c8267e..4ab87a24e 100644 --- a/eos/effects/shipbonussentryhpgc3.py +++ b/eos/effects/shipbonussentryhpgc3.py @@ -4,6 +4,5 @@ # Ship: Ishtar type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Gallente Cruiser").level fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Sentry Drone Interfacing"), - "hp", ship.getModifiedItemAttr("shipBonusGC3") * level) + "hp", ship.getModifiedItemAttr("shipBonusGC3"), skill="Gallente Cruiser") diff --git a/eos/effects/shipbonussentryshieldhpgc3.py b/eos/effects/shipbonussentryshieldhpgc3.py index 64bb46455..6f968c1e3 100644 --- a/eos/effects/shipbonussentryshieldhpgc3.py +++ b/eos/effects/shipbonussentryshieldhpgc3.py @@ -4,6 +4,5 @@ # Ship: Ishtar type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Gallente Cruiser").level fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Sentry Drone Interfacing"), - "shieldCapacity", ship.getModifiedItemAttr("shipBonusGC3") * level) + "shieldCapacity", ship.getModifiedItemAttr("shipBonusGC3"), skill="Gallente Cruiser") diff --git a/eos/effects/shipbonusshieldboostamountmc2.py b/eos/effects/shipbonusshieldboostamountmc2.py index 0aa75c1a8..97d7eb3ed 100644 --- a/eos/effects/shipbonusshieldboostamountmc2.py +++ b/eos/effects/shipbonusshieldboostamountmc2.py @@ -4,6 +4,5 @@ # Ship: Vagabond type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Minmatar Cruiser").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Operation"), - "shieldBonus", ship.getModifiedItemAttr("shipBonusMC2") * level) + "shieldBonus", ship.getModifiedItemAttr("shipBonusMC2"), skill="Minmatar Cruiser") diff --git a/eos/effects/shipbonusshieldboostci2.py b/eos/effects/shipbonusshieldboostci2.py index f6b211fb7..b4c601146 100644 --- a/eos/effects/shipbonusshieldboostci2.py +++ b/eos/effects/shipbonusshieldboostci2.py @@ -4,6 +4,5 @@ # Ship: Bustard type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Caldari Industrial").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Operation"), - "shieldBonus", ship.getModifiedItemAttr("shipBonusCI2") * level) + "shieldBonus", ship.getModifiedItemAttr("shipBonusCI2"), skill="Caldari Industrial") diff --git a/eos/effects/shipbonusshieldboostermb1a.py b/eos/effects/shipbonusshieldboostermb1a.py index d7e557913..708bb712e 100644 --- a/eos/effects/shipbonusshieldboostermb1a.py +++ b/eos/effects/shipbonusshieldboostermb1a.py @@ -4,6 +4,5 @@ # Ship: Maelstrom type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Minmatar Battleship").level fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Shield Booster", - "shieldBonus", ship.getModifiedItemAttr("shipBonusMB") * level) + "shieldBonus", ship.getModifiedItemAttr("shipBonusMB"), skill="Minmatar Battleship") diff --git a/eos/effects/shipbonusshieldboostmi2.py b/eos/effects/shipbonusshieldboostmi2.py index 0dbd8c669..34325c73a 100644 --- a/eos/effects/shipbonusshieldboostmi2.py +++ b/eos/effects/shipbonusshieldboostmi2.py @@ -4,6 +4,5 @@ # Ship: Mastodon type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Minmatar Industrial").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Operation"), - "shieldBonus", ship.getModifiedItemAttr("shipBonusMI2") * level) + "shieldBonus", ship.getModifiedItemAttr("shipBonusMI2"), skill="Minmatar Industrial") diff --git a/eos/effects/shipbonusshieldcapacityore2.py b/eos/effects/shipbonusshieldcapacityore2.py index e1b10a698..497f29f57 100644 --- a/eos/effects/shipbonusshieldcapacityore2.py +++ b/eos/effects/shipbonusshieldcapacityore2.py @@ -4,5 +4,4 @@ # Variations of ship: Procurer (2 of 2) type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Mining Barge").level - fit.ship.boostItemAttr("shieldCapacity", ship.getModifiedItemAttr("shipBonusORE2") * level) + fit.ship.boostItemAttr("shieldCapacity", ship.getModifiedItemAttr("shipBonusORE2"), skill=("Mining Barge")) diff --git a/eos/effects/shipbonusshieldtransferboostamountcc2.py b/eos/effects/shipbonusshieldtransferboostamountcc2.py index 566d3f3a4..6d26b7cf2 100644 --- a/eos/effects/shipbonusshieldtransferboostamountcc2.py +++ b/eos/effects/shipbonusshieldtransferboostamountcc2.py @@ -4,6 +4,5 @@ # Ship: Osprey type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Caldari Cruiser").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Emission Systems"), - "shieldBonus", ship.getModifiedItemAttr("shipBonusCC2") * level) + "shieldBonus", ship.getModifiedItemAttr("shipBonusCC2"), skill="Caldari Cruiser") diff --git a/eos/effects/shipbonusshieldtransferboostamountcf2.py b/eos/effects/shipbonusshieldtransferboostamountcf2.py index b6dfe9080..8831ac6e8 100644 --- a/eos/effects/shipbonusshieldtransferboostamountcf2.py +++ b/eos/effects/shipbonusshieldtransferboostamountcf2.py @@ -4,6 +4,5 @@ # Ship: Bantam type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Caldari Frigate").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Emission Systems"), - "shieldBonus", ship.getModifiedItemAttr("shipBonusCF2") * level) + "shieldBonus", ship.getModifiedItemAttr("shipBonusCF2"), skill="Caldari Frigate") diff --git a/eos/effects/shipbonusshieldtransferboostamountmc2.py b/eos/effects/shipbonusshieldtransferboostamountmc2.py index 4ea9356c6..e427eaead 100644 --- a/eos/effects/shipbonusshieldtransferboostamountmc2.py +++ b/eos/effects/shipbonusshieldtransferboostamountmc2.py @@ -4,6 +4,5 @@ # Ship: Scythe type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Minmatar Cruiser").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Emission Systems"), - "shieldBonus", ship.getModifiedItemAttr("shipBonusMC2") * level) + "shieldBonus", ship.getModifiedItemAttr("shipBonusMC2"), skill="Minmatar Cruiser") diff --git a/eos/effects/shipbonusshieldtransferboostamountmf2.py b/eos/effects/shipbonusshieldtransferboostamountmf2.py index b6717501c..aeed31fe2 100644 --- a/eos/effects/shipbonusshieldtransferboostamountmf2.py +++ b/eos/effects/shipbonusshieldtransferboostamountmf2.py @@ -4,6 +4,5 @@ # Ship: Burst type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Minmatar Frigate").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Emission Systems"), - "shieldBonus", ship.getModifiedItemAttr("shipBonusMF2") * level) + "shieldBonus", ship.getModifiedItemAttr("shipBonusMF2"), skill="Minmatar Frigate") diff --git a/eos/effects/shipbonusshieldtransfercapneed1.py b/eos/effects/shipbonusshieldtransfercapneed1.py index 74f8a6c98..922d3804f 100644 --- a/eos/effects/shipbonusshieldtransfercapneed1.py +++ b/eos/effects/shipbonusshieldtransfercapneed1.py @@ -4,6 +4,5 @@ # Ship: Osprey type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Caldari Cruiser").level fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Remote Shield Booster", - "capacitorNeed", ship.getModifiedItemAttr("shipBonusCC") * level) + "capacitorNeed", ship.getModifiedItemAttr("shipBonusCC"), skill="Caldari Cruiser") diff --git a/eos/effects/shipbonusshieldtransfercapneedcf.py b/eos/effects/shipbonusshieldtransfercapneedcf.py index 35984a02b..28fbbf8fb 100644 --- a/eos/effects/shipbonusshieldtransfercapneedcf.py +++ b/eos/effects/shipbonusshieldtransfercapneedcf.py @@ -4,6 +4,5 @@ # Ship: Bantam type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Caldari Frigate").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Emission Systems"), - "capacitorNeed", ship.getModifiedItemAttr("shipBonusCF") * level) + "capacitorNeed", ship.getModifiedItemAttr("shipBonusCF"), skill="Caldari Frigate") diff --git a/eos/effects/shipbonusshieldtransfercapneedmc1.py b/eos/effects/shipbonusshieldtransfercapneedmc1.py index 2a8970872..ffab0d6a6 100644 --- a/eos/effects/shipbonusshieldtransfercapneedmc1.py +++ b/eos/effects/shipbonusshieldtransfercapneedmc1.py @@ -4,6 +4,5 @@ # Ship: Scythe type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Minmatar Cruiser").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Emission Systems"), - "capacitorNeed", ship.getModifiedItemAttr("shipBonusMC") * level) + "capacitorNeed", ship.getModifiedItemAttr("shipBonusMC"), skill="Minmatar Cruiser") diff --git a/eos/effects/shipbonusshieldtransfercapneedmf.py b/eos/effects/shipbonusshieldtransfercapneedmf.py index ab223014f..426c8a834 100644 --- a/eos/effects/shipbonusshieldtransfercapneedmf.py +++ b/eos/effects/shipbonusshieldtransfercapneedmf.py @@ -4,6 +4,5 @@ # Ship: Burst type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Minmatar Frigate").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Emission Systems"), - "capacitorNeed", ship.getModifiedItemAttr("shipBonusMF") * level) + "capacitorNeed", ship.getModifiedItemAttr("shipBonusMF"), skill="Minmatar Frigate") diff --git a/eos/effects/shipbonussmallenergyturrettracking2af.py b/eos/effects/shipbonussmallenergyturrettracking2af.py index eb810aae0..502014a92 100644 --- a/eos/effects/shipbonussmallenergyturrettracking2af.py +++ b/eos/effects/shipbonussmallenergyturrettracking2af.py @@ -4,6 +4,5 @@ # Ship: Succubus type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Amarr Frigate").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Energy Turret"), - "trackingSpeed", ship.getModifiedItemAttr("shipBonus2AF") * level) + "trackingSpeed", ship.getModifiedItemAttr("shipBonus2AF"), skill="Amarr Frigate") diff --git a/eos/effects/shipbonussmallmissileexplosionradiuscd2.py b/eos/effects/shipbonussmallmissileexplosionradiuscd2.py index 34e30403c..df0731eaf 100644 --- a/eos/effects/shipbonussmallmissileexplosionradiuscd2.py +++ b/eos/effects/shipbonussmallmissileexplosionradiuscd2.py @@ -4,6 +4,5 @@ # Ship: Flycatcher type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Caldari Destroyer").level fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Rockets") or mod.charge.requiresSkill("Light Missiles"), - "aoeCloudSize", ship.getModifiedItemAttr("shipBonusCD2") * level) + "aoeCloudSize", ship.getModifiedItemAttr("shipBonusCD2"), skill="Caldari Destroyer") diff --git a/eos/effects/shipbonussmallmissileexplosionradiuscf2.py b/eos/effects/shipbonussmallmissileexplosionradiuscf2.py index 9b353b446..f6fb52ef2 100644 --- a/eos/effects/shipbonussmallmissileexplosionradiuscf2.py +++ b/eos/effects/shipbonussmallmissileexplosionradiuscf2.py @@ -4,6 +4,5 @@ # Ship: Crow type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Caldari Frigate").level fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Rockets") or mod.charge.requiresSkill("Light Missiles"), - "aoeCloudSize", ship.getModifiedItemAttr("shipBonusCF2") * level) + "aoeCloudSize", ship.getModifiedItemAttr("shipBonusCF2"), skill="Caldari Frigate") diff --git a/eos/effects/shipbonussptfalloffmf2.py b/eos/effects/shipbonussptfalloffmf2.py index d9b2fb6cd..2d65eb1f6 100644 --- a/eos/effects/shipbonussptfalloffmf2.py +++ b/eos/effects/shipbonussptfalloffmf2.py @@ -4,6 +4,5 @@ # Ship: Rifter type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Minmatar Frigate").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Projectile Turret"), - "falloff", ship.getModifiedItemAttr("shipBonusMF2") * level) + "falloff", ship.getModifiedItemAttr("shipBonusMF2"), skill="Minmatar Frigate") diff --git a/eos/effects/shipbonusstasismf2.py b/eos/effects/shipbonusstasismf2.py index 0a0d2ba1a..4b364d15c 100644 --- a/eos/effects/shipbonusstasismf2.py +++ b/eos/effects/shipbonusstasismf2.py @@ -5,6 +5,5 @@ # Ship: Freki type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Minmatar Frigate").level fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Stasis Web", - "maxRange", ship.getModifiedItemAttr("shipBonusMF2") * level) + "maxRange", ship.getModifiedItemAttr("shipBonusMF2"), skill="Minmatar Frigate") diff --git a/eos/effects/shipbonusstasiswebspeedfactormb.py b/eos/effects/shipbonusstasiswebspeedfactormb.py index 5af3f586d..9d4a0aa86 100644 --- a/eos/effects/shipbonusstasiswebspeedfactormb.py +++ b/eos/effects/shipbonusstasiswebspeedfactormb.py @@ -4,6 +4,5 @@ # Ship: Vindicator type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Minmatar Battleship").level fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Stasis Web", - "speedFactor", ship.getModifiedItemAttr("shipBonusMB") * level) + "speedFactor", ship.getModifiedItemAttr("shipBonusMB"), skill="Minmatar Battleship") diff --git a/eos/effects/shipbonusstrategiccruiseramarrheatdamage.py b/eos/effects/shipbonusstrategiccruiseramarrheatdamage.py index 9a7aad8d0..084d27cd7 100644 --- a/eos/effects/shipbonusstrategiccruiseramarrheatdamage.py +++ b/eos/effects/shipbonusstrategiccruiseramarrheatdamage.py @@ -4,6 +4,5 @@ # Ship: Legion type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Amarr Strategic Cruiser").level fit.modules.filteredItemBoost(lambda mod: True, "heatDamage", - ship.getModifiedItemAttr("shipBonusStrategicCruiserAmarr") * level) + ship.getModifiedItemAttr("shipBonusStrategicCruiserAmarr"), skill="Amarr Strategic Cruiser") diff --git a/eos/effects/shipbonusstrategiccruisercaldariheatdamage.py b/eos/effects/shipbonusstrategiccruisercaldariheatdamage.py index e634fa26f..30e53b90b 100644 --- a/eos/effects/shipbonusstrategiccruisercaldariheatdamage.py +++ b/eos/effects/shipbonusstrategiccruisercaldariheatdamage.py @@ -4,6 +4,5 @@ # Ship: Tengu type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Caldari Strategic Cruiser").level fit.modules.filteredItemBoost(lambda mod: True, "heatDamage", - ship.getModifiedItemAttr("shipBonusStrategicCruiserCaldari") * level) + ship.getModifiedItemAttr("shipBonusStrategicCruiserCaldari"), skill="Caldari Strategic Cruiser") diff --git a/eos/effects/shipbonusstrategiccruisergallenteheatdamage.py b/eos/effects/shipbonusstrategiccruisergallenteheatdamage.py index 2426761d0..71ad1a2e6 100644 --- a/eos/effects/shipbonusstrategiccruisergallenteheatdamage.py +++ b/eos/effects/shipbonusstrategiccruisergallenteheatdamage.py @@ -4,6 +4,5 @@ # Ship: Proteus type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Gallente Strategic Cruiser").level fit.modules.filteredItemBoost(lambda mod: True, "heatDamage", - ship.getModifiedItemAttr("shipBonusStrategicCruiserGallente") * level) + ship.getModifiedItemAttr("shipBonusStrategicCruiserGallente"), skill="Gallente Strategic Cruiser") diff --git a/eos/effects/shipbonusstrategiccruiserminmatarheatdamage.py b/eos/effects/shipbonusstrategiccruiserminmatarheatdamage.py index 244ef2939..a53f4c61d 100644 --- a/eos/effects/shipbonusstrategiccruiserminmatarheatdamage.py +++ b/eos/effects/shipbonusstrategiccruiserminmatarheatdamage.py @@ -4,6 +4,5 @@ # Ship: Loki type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Minmatar Strategic Cruiser").level fit.modules.filteredItemBoost(lambda mod: True, "heatDamage", - ship.getModifiedItemAttr("shipBonusStrategicCruiserMinmatar") * level) + ship.getModifiedItemAttr("shipBonusStrategicCruiserMinmatar"), skill="Minmatar Strategic Cruiser") diff --git a/eos/effects/shipbonussurveyprobeexplosiondelayskillsurveycovertops3.py b/eos/effects/shipbonussurveyprobeexplosiondelayskillsurveycovertops3.py index 7e965e7c0..2e1ede706 100644 --- a/eos/effects/shipbonussurveyprobeexplosiondelayskillsurveycovertops3.py +++ b/eos/effects/shipbonussurveyprobeexplosiondelayskillsurveycovertops3.py @@ -4,6 +4,5 @@ # Ships from group: Covert Ops (4 of 5) type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Covert Ops").level fit.modules.filteredChargeBoost(lambda mod: mod.charge.group.name == "Survey Probe", - "explosionDelay", ship.getModifiedItemAttr("eliteBonusCoverOps3") * level) + "explosionDelay", ship.getModifiedItemAttr("eliteBonusCoverOps3"), skill="Covert Ops") diff --git a/eos/effects/shipbonustargetpainteroptimalmf1.py b/eos/effects/shipbonustargetpainteroptimalmf1.py index c0d1e2ec6..f45fe8a1d 100644 --- a/eos/effects/shipbonustargetpainteroptimalmf1.py +++ b/eos/effects/shipbonustargetpainteroptimalmf1.py @@ -4,6 +4,5 @@ # Variations of ship: Vigil (2 of 2) type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Minmatar Frigate").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Target Painting"), - "maxRange", ship.getModifiedItemAttr("shipBonusMF") * level) + "maxRange", ship.getModifiedItemAttr("shipBonusMF"), skill="Minmatar Frigate") diff --git a/eos/effects/shipbonustdoptimalbonusaf1.py b/eos/effects/shipbonustdoptimalbonusaf1.py index 51dcf1e23..5903beac5 100644 --- a/eos/effects/shipbonustdoptimalbonusaf1.py +++ b/eos/effects/shipbonustdoptimalbonusaf1.py @@ -4,6 +4,5 @@ # Ship: Crucifier type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Amarr Frigate").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Weapon Disruption"), - "maxRange", ship.getModifiedItemAttr("shipBonusAF") * level) + "maxRange", ship.getModifiedItemAttr("shipBonusAF"), skill="Amarr Frigate") diff --git a/eos/effects/shipbonusthermalmissiledamagegb2.py b/eos/effects/shipbonusthermalmissiledamagegb2.py index 67438e173..fc08b37db 100644 --- a/eos/effects/shipbonusthermalmissiledamagegb2.py +++ b/eos/effects/shipbonusthermalmissiledamagegb2.py @@ -4,6 +4,5 @@ # Ships named like: Rattlesnake (2 of 2) type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Gallente Battleship").level fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), - "thermalDamage", ship.getModifiedItemAttr("shipBonusGB2") * level) + "thermalDamage", ship.getModifiedItemAttr("shipBonusGB2"), skill="Gallente Battleship") diff --git a/eos/effects/shipbonusthermalmissiledamagegc2.py b/eos/effects/shipbonusthermalmissiledamagegc2.py index 19fefc9c7..8f1c23eb7 100644 --- a/eos/effects/shipbonusthermalmissiledamagegc2.py +++ b/eos/effects/shipbonusthermalmissiledamagegc2.py @@ -6,6 +6,5 @@ type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Gallente Cruiser").level fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), - "thermalDamage", ship.getModifiedItemAttr("shipBonusGC2") * level) + "thermalDamage", ship.getModifiedItemAttr("shipBonusGC2"), skill="Gallente Cruiser") diff --git a/eos/effects/shipbonusthermalmissiledamagegf.py b/eos/effects/shipbonusthermalmissiledamagegf.py index 025971260..903dd9804 100644 --- a/eos/effects/shipbonusthermalmissiledamagegf.py +++ b/eos/effects/shipbonusthermalmissiledamagegf.py @@ -5,6 +5,5 @@ # Ship: Worm type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Gallente Frigate").level fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), - "thermalDamage", ship.getModifiedItemAttr("shipBonusGF") * level) + "thermalDamage", ship.getModifiedItemAttr("shipBonusGF"), skill="Gallente Frigate") diff --git a/eos/effects/shipbonusthermicshieldresistancecb2.py b/eos/effects/shipbonusthermicshieldresistancecb2.py index 522f69ded..0819cd08e 100644 --- a/eos/effects/shipbonusthermicshieldresistancecb2.py +++ b/eos/effects/shipbonusthermicshieldresistancecb2.py @@ -6,5 +6,4 @@ # Ship: Scorpion Navy Issue type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Caldari Battleship").level - fit.ship.boostItemAttr("shieldThermalDamageResonance", ship.getModifiedItemAttr("shipBonus2CB") * level) + fit.ship.boostItemAttr("shieldThermalDamageResonance", ship.getModifiedItemAttr("shipBonus2CB"), skill="Caldari Battleship") diff --git a/eos/effects/shipbonustorpedomissileemdmgmb.py b/eos/effects/shipbonustorpedomissileemdmgmb.py index c44d32b1e..6659b52d2 100644 --- a/eos/effects/shipbonustorpedomissileemdmgmb.py +++ b/eos/effects/shipbonustorpedomissileemdmgmb.py @@ -4,6 +4,5 @@ # Ship: Typhoon Fleet Issue type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Minmatar Battleship").level fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Torpedoes"), - "emDamage", ship.getModifiedItemAttr("shipBonusMB") * level) + "emDamage", ship.getModifiedItemAttr("shipBonusMB"), skill="Minmatar Battleship") diff --git a/eos/effects/shipbonustorpedomissileexplodmgmb.py b/eos/effects/shipbonustorpedomissileexplodmgmb.py index e7342fecd..284046faa 100644 --- a/eos/effects/shipbonustorpedomissileexplodmgmb.py +++ b/eos/effects/shipbonustorpedomissileexplodmgmb.py @@ -4,6 +4,5 @@ # Ship: Typhoon Fleet Issue type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Minmatar Battleship").level fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Torpedoes"), - "explosiveDamage", ship.getModifiedItemAttr("shipBonusMB") * level) + "explosiveDamage", ship.getModifiedItemAttr("shipBonusMB"), skill="Minmatar Battleship") diff --git a/eos/effects/shipbonustorpedomissilekineticdmgmb.py b/eos/effects/shipbonustorpedomissilekineticdmgmb.py index fd7b9c01b..f13096e49 100644 --- a/eos/effects/shipbonustorpedomissilekineticdmgmb.py +++ b/eos/effects/shipbonustorpedomissilekineticdmgmb.py @@ -4,6 +4,5 @@ # Ship: Typhoon Fleet Issue type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Minmatar Battleship").level fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Torpedoes"), - "kineticDamage", ship.getModifiedItemAttr("shipBonusMB") * level) + "kineticDamage", ship.getModifiedItemAttr("shipBonusMB"), skill="Minmatar Battleship") diff --git a/eos/effects/shipbonustorpedomissilethermdmgmb.py b/eos/effects/shipbonustorpedomissilethermdmgmb.py index 4b0eec998..693f6ee7a 100644 --- a/eos/effects/shipbonustorpedomissilethermdmgmb.py +++ b/eos/effects/shipbonustorpedomissilethermdmgmb.py @@ -4,6 +4,5 @@ # Ship: Typhoon Fleet Issue type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Minmatar Battleship").level fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Torpedoes"), - "thermalDamage", ship.getModifiedItemAttr("shipBonusMB") * level) + "thermalDamage", ship.getModifiedItemAttr("shipBonusMB"), skill="Minmatar Battleship") diff --git a/eos/effects/shipbonustorpedorofmb.py b/eos/effects/shipbonustorpedorofmb.py index a67a55fa4..3234d5a2a 100644 --- a/eos/effects/shipbonustorpedorofmb.py +++ b/eos/effects/shipbonustorpedorofmb.py @@ -4,6 +4,5 @@ # Ship: Typhoon type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Minmatar Battleship").level fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Missile Launcher Torpedo", - "speed", ship.getModifiedItemAttr("shipBonusMB") * level) + "speed", ship.getModifiedItemAttr("shipBonusMB"), skill="Minmatar Battleship") diff --git a/eos/effects/shipbonustorpedovelocity2af.py b/eos/effects/shipbonustorpedovelocity2af.py index 2d6ff35d8..7f0bc64ac 100644 --- a/eos/effects/shipbonustorpedovelocity2af.py +++ b/eos/effects/shipbonustorpedovelocity2af.py @@ -4,6 +4,5 @@ # Ship: Purifier type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Amarr Frigate").level fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Torpedoes"), - "maxVelocity", ship.getModifiedItemAttr("shipBonus2AF") * level) + "maxVelocity", ship.getModifiedItemAttr("shipBonus2AF"), skill="Amarr Frigate") diff --git a/eos/effects/shipbonustorpedovelocitycf2.py b/eos/effects/shipbonustorpedovelocitycf2.py index f08aeafe3..374186aa2 100644 --- a/eos/effects/shipbonustorpedovelocitycf2.py +++ b/eos/effects/shipbonustorpedovelocitycf2.py @@ -4,6 +4,5 @@ # Ship: Manticore type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Caldari Frigate").level fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Torpedoes"), - "maxVelocity", ship.getModifiedItemAttr("shipBonusCF2") * level) + "maxVelocity", ship.getModifiedItemAttr("shipBonusCF2"), skill="Caldari Frigate") diff --git a/eos/effects/shipbonustorpedovelocitygf2.py b/eos/effects/shipbonustorpedovelocitygf2.py index cc2b176be..91a13f1fa 100644 --- a/eos/effects/shipbonustorpedovelocitygf2.py +++ b/eos/effects/shipbonustorpedovelocitygf2.py @@ -4,6 +4,5 @@ # Ship: Nemesis type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Gallente Frigate").level fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Torpedoes"), - "maxVelocity", ship.getModifiedItemAttr("shipBonusGF2") * level) + "maxVelocity", ship.getModifiedItemAttr("shipBonusGF2"), skill="Gallente Frigate") diff --git a/eos/effects/shipbonustorpedovelocitymf2.py b/eos/effects/shipbonustorpedovelocitymf2.py index 48f4c7f16..e74cb86bf 100644 --- a/eos/effects/shipbonustorpedovelocitymf2.py +++ b/eos/effects/shipbonustorpedovelocitymf2.py @@ -4,6 +4,5 @@ # Ship: Hound type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Minmatar Frigate").level fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Torpedoes"), - "maxVelocity", ship.getModifiedItemAttr("shipBonusMF2") * level) + "maxVelocity", ship.getModifiedItemAttr("shipBonusMF2"), skill="Minmatar Frigate") diff --git a/eos/effects/shipbonusvelocityci.py b/eos/effects/shipbonusvelocityci.py index d1124fcc2..ed272f31a 100644 --- a/eos/effects/shipbonusvelocityci.py +++ b/eos/effects/shipbonusvelocityci.py @@ -5,5 +5,4 @@ # Ship: Crane type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Caldari Industrial").level - fit.ship.boostItemAttr("maxVelocity", ship.getModifiedItemAttr("shipBonusCI") * level) + fit.ship.boostItemAttr("maxVelocity", ship.getModifiedItemAttr("shipBonusCI"), skill="Caldari Industrial") diff --git a/eos/effects/shipbonusvelocitygi.py b/eos/effects/shipbonusvelocitygi.py index 2895f6bc1..5e06833d1 100644 --- a/eos/effects/shipbonusvelocitygi.py +++ b/eos/effects/shipbonusvelocitygi.py @@ -8,11 +8,10 @@ # Ship: Viator type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Gallente Industrial").level # TODO: investigate if we can live without such ifs or hardcoding # Viator doesn't have GI bonus if "shipBonusGI" in fit.ship.item.attributes: bonusAttr = "shipBonusGI" else: bonusAttr = "shipBonusGI2" - fit.ship.boostItemAttr("maxVelocity", ship.getModifiedItemAttr(bonusAttr) * level) + fit.ship.boostItemAttr("maxVelocity", ship.getModifiedItemAttr(bonusAttr), skill="Gallente Industrial") diff --git a/eos/effects/shipbonuswarpscramblemaxrangegb.py b/eos/effects/shipbonuswarpscramblemaxrangegb.py index 69cd0a1aa..36586ab3c 100644 --- a/eos/effects/shipbonuswarpscramblemaxrangegb.py +++ b/eos/effects/shipbonuswarpscramblemaxrangegb.py @@ -4,6 +4,5 @@ # Ship: Barghest type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Gallente Battleship").level fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Warp Scrambler", - "maxRange", ship.getModifiedItemAttr("shipBonusGB") * level) + "maxRange", ship.getModifiedItemAttr("shipBonusGB"), skill="Gallente Battleship") diff --git a/eos/effects/shipbonuswarpscramblermaxrangegc2.py b/eos/effects/shipbonuswarpscramblermaxrangegc2.py index 343e86938..34df40cdb 100644 --- a/eos/effects/shipbonuswarpscramblermaxrangegc2.py +++ b/eos/effects/shipbonuswarpscramblermaxrangegc2.py @@ -5,6 +5,5 @@ # Ship: Orthrus type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Gallente Cruiser").level fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Warp Scrambler", - "maxRange", ship.getModifiedItemAttr("shipBonusGC2") * level) + "maxRange", ship.getModifiedItemAttr("shipBonusGC2"), skill="Gallente Cruiser") diff --git a/eos/effects/shipbonuswarpscramblermaxrangegf2.py b/eos/effects/shipbonuswarpscramblermaxrangegf2.py index a89f21102..9587eee65 100644 --- a/eos/effects/shipbonuswarpscramblermaxrangegf2.py +++ b/eos/effects/shipbonuswarpscramblermaxrangegf2.py @@ -5,6 +5,5 @@ # Ship: Utu type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Gallente Frigate").level fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Warp Scrambler", - "maxRange", ship.getModifiedItemAttr("shipBonusGF2") * level) + "maxRange", ship.getModifiedItemAttr("shipBonusGF2"), skill="Gallente Frigate") diff --git a/eos/effects/shipcapneedbonusab.py b/eos/effects/shipcapneedbonusab.py index 505ce2745..696b60ec4 100644 --- a/eos/effects/shipcapneedbonusab.py +++ b/eos/effects/shipcapneedbonusab.py @@ -5,6 +5,5 @@ # Ship: Apocalypse Imperial Issue type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Amarr Battleship").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Large Energy Turret"), - "capacitorNeed", ship.getModifiedItemAttr("shipBonusAB") * level) + "capacitorNeed", ship.getModifiedItemAttr("shipBonusAB"), skill="Amarr Battleship") diff --git a/eos/effects/shipcaprecharge2af.py b/eos/effects/shipcaprecharge2af.py index 93b74089f..436742c4f 100644 --- a/eos/effects/shipcaprecharge2af.py +++ b/eos/effects/shipcaprecharge2af.py @@ -4,5 +4,4 @@ # Ship: Anathema type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Amarr Frigate").level - fit.ship.boostItemAttr("rechargeRate", ship.getModifiedItemAttr("shipBonus2AF") * level) + fit.ship.boostItemAttr("rechargeRate", ship.getModifiedItemAttr("shipBonus2AF"), skill="Amarr Frigate") diff --git a/eos/effects/shipcargobonusai.py b/eos/effects/shipcargobonusai.py index a9a627a7f..d035e20d8 100644 --- a/eos/effects/shipcargobonusai.py +++ b/eos/effects/shipcargobonusai.py @@ -5,5 +5,4 @@ # Ship: Bestower type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Amarr Industrial").level - fit.ship.boostItemAttr("capacity", ship.getModifiedItemAttr("shipBonusAI") * level) + fit.ship.boostItemAttr("capacity", ship.getModifiedItemAttr("shipBonusAI"), skill="Amarr Industrial") diff --git a/eos/effects/shipcommandbonuseffectivemultiplierorecapital2.py b/eos/effects/shipcommandbonuseffectivemultiplierorecapital2.py index 85891e7e6..9a4de1129 100644 --- a/eos/effects/shipcommandbonuseffectivemultiplierorecapital2.py +++ b/eos/effects/shipcommandbonuseffectivemultiplierorecapital2.py @@ -5,5 +5,4 @@ type = "passive" def handler(fit, ship, context): if fit.extraAttributes["siege"]: - level = fit.character.getSkill("Capital Industrial Ships").level - fit.ship.increaseItemAttr("commandBonusEffective", ship.getModifiedItemAttr("shipBonusORECapital2") * level) + fit.ship.increaseItemAttr("commandBonusEffective", ship.getModifiedItemAttr("shipBonusORECapital2"), skill="Capital Industrial Ships") diff --git a/eos/effects/shipconsumptionquantitybonusindustrialreconfigurationorecapital1.py b/eos/effects/shipconsumptionquantitybonusindustrialreconfigurationorecapital1.py index 2010769b5..8d85bebf5 100644 --- a/eos/effects/shipconsumptionquantitybonusindustrialreconfigurationorecapital1.py +++ b/eos/effects/shipconsumptionquantitybonusindustrialreconfigurationorecapital1.py @@ -4,6 +4,5 @@ # Ship: Rorqual type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Capital Industrial Ships").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Industrial Reconfiguration"), - "consumptionQuantity", ship.getModifiedItemAttr("shipBonusORECapital1") * level) + "consumptionQuantity", ship.getModifiedItemAttr("shipBonusORECapital1"), skill="Capital Industrial Ships") diff --git a/eos/effects/shipcruiseandsiegelauncherrofbonus2cb.py b/eos/effects/shipcruiseandsiegelauncherrofbonus2cb.py index 74110f351..9faf7b6a4 100644 --- a/eos/effects/shipcruiseandsiegelauncherrofbonus2cb.py +++ b/eos/effects/shipcruiseandsiegelauncherrofbonus2cb.py @@ -4,7 +4,6 @@ # Ship: Widow type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Caldari Battleship").level affectedGroups = ("Missile Launcher Cruise", "Missile Launcher Torpedo") fit.modules.filteredItemBoost(lambda mod: mod.item.group.name in affectedGroups, - "speed", ship.getModifiedItemAttr("shipBonus2CB") * level) + "speed", ship.getModifiedItemAttr("shipBonus2CB"), skill="Caldari Battleship") diff --git a/eos/effects/shipcruiseandtorpedovelocitybonuscb3.py b/eos/effects/shipcruiseandtorpedovelocitybonuscb3.py index 2978381b9..e932a7a61 100644 --- a/eos/effects/shipcruiseandtorpedovelocitybonuscb3.py +++ b/eos/effects/shipcruiseandtorpedovelocitybonuscb3.py @@ -5,6 +5,5 @@ # Ship: Widow type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Caldari Battleship").level fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Cruise Missiles") or mod.charge.requiresSkill("Torpedoes"), - "maxVelocity", ship.getModifiedItemAttr("shipBonusCB3") * level) + "maxVelocity", ship.getModifiedItemAttr("shipBonusCB3"), skill="Caldari Battleship") diff --git a/eos/effects/shipcruiselauncherrofbonus2cb.py b/eos/effects/shipcruiselauncherrofbonus2cb.py index 555657a25..874ce2cc1 100644 --- a/eos/effects/shipcruiselauncherrofbonus2cb.py +++ b/eos/effects/shipcruiselauncherrofbonus2cb.py @@ -5,6 +5,5 @@ # Ship: Raven State Issue type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Caldari Battleship").level fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Missile Launcher Cruise", - "speed", ship.getModifiedItemAttr("shipBonus2CB") * level) + "speed", ship.getModifiedItemAttr("shipBonus2CB"), skill="Caldari Battleship") diff --git a/eos/effects/shipcruisemissileaoecloudsize1cb.py b/eos/effects/shipcruisemissileaoecloudsize1cb.py index aff3717f7..55123d328 100644 --- a/eos/effects/shipcruisemissileaoecloudsize1cb.py +++ b/eos/effects/shipcruisemissileaoecloudsize1cb.py @@ -4,6 +4,5 @@ # Ship: Raven Navy Issue type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Caldari Battleship").level fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Cruise Missiles"), - "aoeCloudSize", ship.getModifiedItemAttr("shipBonusCB") * level) + "aoeCloudSize", ship.getModifiedItemAttr("shipBonusCB"), skill="Caldari Battleship") diff --git a/eos/effects/shipcruisemissilerofcb.py b/eos/effects/shipcruisemissilerofcb.py index 7f847724a..181825801 100644 --- a/eos/effects/shipcruisemissilerofcb.py +++ b/eos/effects/shipcruisemissilerofcb.py @@ -4,6 +4,5 @@ # Ship: Scorpion Navy Issue type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Caldari Battleship").level fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Missile Launcher Cruise", - "speed", ship.getModifiedItemAttr("shipBonusCB") * level) + "speed", ship.getModifiedItemAttr("shipBonusCB"), skill="Caldari Battleship") diff --git a/eos/effects/shipcruisemissilevelocitybonuscb3.py b/eos/effects/shipcruisemissilevelocitybonuscb3.py index faa6bbb63..7d7819cb8 100644 --- a/eos/effects/shipcruisemissilevelocitybonuscb3.py +++ b/eos/effects/shipcruisemissilevelocitybonuscb3.py @@ -4,6 +4,5 @@ # Variations of ship: Raven (3 of 4) type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Caldari Battleship").level fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Cruise Missiles"), - "maxVelocity", ship.getModifiedItemAttr("shipBonusCB3") * level) + "maxVelocity", ship.getModifiedItemAttr("shipBonusCB3"), skill="Caldari Battleship") diff --git a/eos/effects/shipdronescoutthermaldamagegf2.py b/eos/effects/shipdronescoutthermaldamagegf2.py index f709b17d3..85266c809 100644 --- a/eos/effects/shipdronescoutthermaldamagegf2.py +++ b/eos/effects/shipdronescoutthermaldamagegf2.py @@ -4,6 +4,5 @@ # Ship: Helios type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Gallente Frigate").level fit.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Drone Avionics"), - "thermalDamage", ship.getModifiedItemAttr("shipBonusGF2") * level) + "thermalDamage", ship.getModifiedItemAttr("shipBonusGF2"), skill="Gallente Frigate") diff --git a/eos/effects/shipdronesmaxgc2.py b/eos/effects/shipdronesmaxgc2.py index 5e6ab940f..7ae2e2f58 100644 --- a/eos/effects/shipdronesmaxgc2.py +++ b/eos/effects/shipdronesmaxgc2.py @@ -4,6 +4,4 @@ # Ship: Guardian-Vexor type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Gallente Cruiser").level - amount = ship.getModifiedItemAttr("shipBonusGC2") - fit.extraAttributes.increase("maxActiveDrones", amount * level) + fit.extraAttributes.increase("maxActiveDrones", ship.getModifiedItemAttr("shipBonusGC2"), skill="Gallente Cruiser") diff --git a/eos/effects/shipecmscanstrengthbonuscf.py b/eos/effects/shipecmscanstrengthbonuscf.py index af5d60143..06735bcb1 100644 --- a/eos/effects/shipecmscanstrengthbonuscf.py +++ b/eos/effects/shipecmscanstrengthbonuscf.py @@ -4,8 +4,7 @@ # Variations of ship: Griffin (2 of 2) type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Caldari Frigate").level 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") * level) + ship.getModifiedItemAttr("shipBonusCF"), skill="Caldari Frigate") diff --git a/eos/effects/shipenergydrainamountaf1.py b/eos/effects/shipenergydrainamountaf1.py index f35bcc318..67f97345c 100644 --- a/eos/effects/shipenergydrainamountaf1.py +++ b/eos/effects/shipenergydrainamountaf1.py @@ -5,6 +5,5 @@ # Ship: Sentinel type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Amarr Frigate").level fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Vampire", - "powerTransferAmount", ship.getModifiedItemAttr("shipBonusAF") * level) + "powerTransferAmount", ship.getModifiedItemAttr("shipBonusAF"), skill="Amarr Frigate") diff --git a/eos/effects/shipenergyneutralizerrangebonusac.py b/eos/effects/shipenergyneutralizerrangebonusac.py index dd46ad2d5..2d5b8767f 100644 --- a/eos/effects/shipenergyneutralizerrangebonusac.py +++ b/eos/effects/shipenergyneutralizerrangebonusac.py @@ -4,6 +4,5 @@ # Ship: Vangel type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Amarr Cruiser").level fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Destabilizer", - "energyDestabilizationRange", ship.getModifiedItemAttr("shipBonusAC") * level) + "energyDestabilizationRange", ship.getModifiedItemAttr("shipBonusAC"), skill="Amarr Cruiser") diff --git a/eos/effects/shipenergyneutralizerrangebonusaf2.py b/eos/effects/shipenergyneutralizerrangebonusaf2.py index 8b809121a..fb5e5a88b 100644 --- a/eos/effects/shipenergyneutralizerrangebonusaf2.py +++ b/eos/effects/shipenergyneutralizerrangebonusaf2.py @@ -4,6 +4,5 @@ # Ship: Malice type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Amarr Frigate").level fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Destabilizer", - "energyDestabilizationRange", ship.getModifiedItemAttr("shipBonus2AF") * level) + "energyDestabilizationRange", ship.getModifiedItemAttr("shipBonus2AF"), skill="Amarr Frigate") diff --git a/eos/effects/shipenergyneutralizertransferamountbonusab.py b/eos/effects/shipenergyneutralizertransferamountbonusab.py index fb392e4db..b3b69c078 100644 --- a/eos/effects/shipenergyneutralizertransferamountbonusab.py +++ b/eos/effects/shipenergyneutralizertransferamountbonusab.py @@ -4,6 +4,5 @@ # Ship: Bhaalgorn type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Amarr Battleship").level fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Destabilizer", - "energyDestabilizationAmount", ship.getModifiedItemAttr("shipBonusAB") * level) + "energyDestabilizationAmount", ship.getModifiedItemAttr("shipBonusAB"), skill="Amarr Battleship") diff --git a/eos/effects/shipenergyneutralizertransferamountbonusac.py b/eos/effects/shipenergyneutralizertransferamountbonusac.py index c323ac19a..436ef71e7 100644 --- a/eos/effects/shipenergyneutralizertransferamountbonusac.py +++ b/eos/effects/shipenergyneutralizertransferamountbonusac.py @@ -5,6 +5,5 @@ # Ship: Vangel type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Amarr Cruiser").level fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Destabilizer", - "energyDestabilizationAmount", ship.getModifiedItemAttr("shipBonusAC") * level) + "energyDestabilizationAmount", ship.getModifiedItemAttr("shipBonusAC"), skill="Amarr Cruiser") diff --git a/eos/effects/shipenergyneutralizertransferamountbonusaf.py b/eos/effects/shipenergyneutralizertransferamountbonusaf.py index 5ef1fb985..88e0f7bd3 100644 --- a/eos/effects/shipenergyneutralizertransferamountbonusaf.py +++ b/eos/effects/shipenergyneutralizertransferamountbonusaf.py @@ -5,6 +5,5 @@ # Ship: Sentinel type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Amarr Frigate").level fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Destabilizer", - "energyDestabilizationAmount", ship.getModifiedItemAttr("shipBonusAF") * level) + "energyDestabilizationAmount", ship.getModifiedItemAttr("shipBonusAF"), skill="Amarr Frigate") diff --git a/eos/effects/shipenergyneutralizertransferamountbonusaf2.py b/eos/effects/shipenergyneutralizertransferamountbonusaf2.py index 42f31ac3f..ee16f8188 100644 --- a/eos/effects/shipenergyneutralizertransferamountbonusaf2.py +++ b/eos/effects/shipenergyneutralizertransferamountbonusaf2.py @@ -4,6 +4,5 @@ # Ship: Malice type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Amarr Frigate").level fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Destabilizer", - "energyDestabilizationAmount", ship.getModifiedItemAttr("shipBonus2AF") * level) + "energyDestabilizationAmount", ship.getModifiedItemAttr("shipBonus2AF"), skill="Amarr Frigate") diff --git a/eos/effects/shipenergytcapneedbonusaf.py b/eos/effects/shipenergytcapneedbonusaf.py index 26b56682d..7050d843f 100644 --- a/eos/effects/shipenergytcapneedbonusaf.py +++ b/eos/effects/shipenergytcapneedbonusaf.py @@ -9,6 +9,5 @@ # Ship: Tormentor type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Amarr Frigate").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Energy Turret"), - "capacitorNeed", ship.getModifiedItemAttr("shipBonus2AF") * level) + "capacitorNeed", ship.getModifiedItemAttr("shipBonus2AF"), skill="Amarr Frigate") diff --git a/eos/effects/shipenergytrackingabc1.py b/eos/effects/shipenergytrackingabc1.py index 3db187d13..3384bdee5 100644 --- a/eos/effects/shipenergytrackingabc1.py +++ b/eos/effects/shipenergytrackingabc1.py @@ -5,6 +5,5 @@ type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Amarr Battlecruiser").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Energy Turret"), - "trackingSpeed", ship.getModifiedItemAttr("shipBonusABC1") * level) + "trackingSpeed", ship.getModifiedItemAttr("shipBonusABC1"), skill="Amarr Battlecruiser") diff --git a/eos/effects/shipenergytransferrange1.py b/eos/effects/shipenergytransferrange1.py index 734955d14..193af0dbb 100644 --- a/eos/effects/shipenergytransferrange1.py +++ b/eos/effects/shipenergytransferrange1.py @@ -4,6 +4,5 @@ # Ship: Guardian type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Amarr Cruiser").level fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Remote Capacitor Transmitter", - "powerTransferRange", ship.getModifiedItemAttr("shipBonusAC") * level) + "powerTransferRange", ship.getModifiedItemAttr("shipBonusAC"), skill="Amarr Cruiser") diff --git a/eos/effects/shipenergytransferrange2.py b/eos/effects/shipenergytransferrange2.py index dbf8de23e..adac10fcc 100644 --- a/eos/effects/shipenergytransferrange2.py +++ b/eos/effects/shipenergytransferrange2.py @@ -5,6 +5,5 @@ # Ship: Etana type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Caldari Cruiser").level fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Remote Capacitor Transmitter", - "powerTransferRange", ship.getModifiedItemAttr("shipBonusCC2") * level) + "powerTransferRange", ship.getModifiedItemAttr("shipBonusCC2"), skill="Caldari Cruiser") diff --git a/eos/effects/shipenergyvampireamountbonusfixedaf2.py b/eos/effects/shipenergyvampireamountbonusfixedaf2.py index e17492dea..0e76b07c9 100644 --- a/eos/effects/shipenergyvampireamountbonusfixedaf2.py +++ b/eos/effects/shipenergyvampireamountbonusfixedaf2.py @@ -4,6 +4,5 @@ # Ship: Malice type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Amarr Frigate").level fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Vampire", - "powerTransferAmount", ship.getModifiedItemAttr("shipBonus2AF") * level) + "powerTransferAmount", ship.getModifiedItemAttr("shipBonus2AF"), skill="Amarr Frigate") diff --git a/eos/effects/shipenergyvampirerangebonusfixedac.py b/eos/effects/shipenergyvampirerangebonusfixedac.py index 6005f479d..b2cf784b8 100644 --- a/eos/effects/shipenergyvampirerangebonusfixedac.py +++ b/eos/effects/shipenergyvampirerangebonusfixedac.py @@ -4,6 +4,5 @@ # Ship: Vangel type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Amarr Cruiser").level fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Vampire", - "powerTransferRange", ship.getModifiedItemAttr("shipBonusAC") * level) + "powerTransferRange", ship.getModifiedItemAttr("shipBonusAC"), skill="Amarr Cruiser") diff --git a/eos/effects/shipenergyvampirerangebonusfixedaf2.py b/eos/effects/shipenergyvampirerangebonusfixedaf2.py index 50276d7ec..5a794654f 100644 --- a/eos/effects/shipenergyvampirerangebonusfixedaf2.py +++ b/eos/effects/shipenergyvampirerangebonusfixedaf2.py @@ -4,6 +4,5 @@ # Ship: Malice type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Amarr Frigate").level fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Vampire", - "powerTransferRange", ship.getModifiedItemAttr("shipBonus2AF") * level) + "powerTransferRange", ship.getModifiedItemAttr("shipBonus2AF"), skill="Amarr Frigate") diff --git a/eos/effects/shipenergyvampiretransferamountbonusab.py b/eos/effects/shipenergyvampiretransferamountbonusab.py index 0610dadfd..dbeb39356 100644 --- a/eos/effects/shipenergyvampiretransferamountbonusab.py +++ b/eos/effects/shipenergyvampiretransferamountbonusab.py @@ -4,6 +4,5 @@ # Ship: Bhaalgorn type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Amarr Battleship").level fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Vampire", - "powerTransferAmount", ship.getModifiedItemAttr("shipBonusAB") * level) + "powerTransferAmount", ship.getModifiedItemAttr("shipBonusAB"), skill="Amarr Battleship") diff --git a/eos/effects/shipenergyvampiretransferamountbonusac.py b/eos/effects/shipenergyvampiretransferamountbonusac.py index 82ab91dca..f8932bc65 100644 --- a/eos/effects/shipenergyvampiretransferamountbonusac.py +++ b/eos/effects/shipenergyvampiretransferamountbonusac.py @@ -5,6 +5,5 @@ # Ship: Vangel type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Amarr Cruiser").level fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Vampire", - "powerTransferAmount", ship.getModifiedItemAttr("shipBonusAC") * level) + "powerTransferAmount", ship.getModifiedItemAttr("shipBonusAC"), skill="Amarr Cruiser") diff --git a/eos/effects/shipetdamageaf.py b/eos/effects/shipetdamageaf.py index 93c1986b0..74dded640 100644 --- a/eos/effects/shipetdamageaf.py +++ b/eos/effects/shipetdamageaf.py @@ -5,6 +5,5 @@ # Ship: Imperial Navy Slicer type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Amarr Frigate").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Energy Turret"), - "damageMultiplier", ship.getModifiedItemAttr("shipBonusAF") * level) \ No newline at end of file + "damageMultiplier", ship.getModifiedItemAttr("shipBonusAF"), skill="Amarr Frigate") \ No newline at end of file diff --git a/eos/effects/shipetoptimalrange2af.py b/eos/effects/shipetoptimalrange2af.py index 70d005a00..593ee452f 100644 --- a/eos/effects/shipetoptimalrange2af.py +++ b/eos/effects/shipetoptimalrange2af.py @@ -4,6 +4,5 @@ # Ship: Imperial Navy Slicer type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Amarr Frigate").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Energy Turret"), - "maxRange", ship.getModifiedItemAttr("shipBonus2AF") * level) \ No newline at end of file + "maxRange", ship.getModifiedItemAttr("shipBonus2AF"), skill="Amarr Frigate") \ No newline at end of file diff --git a/eos/effects/shipetspeedbonusab2.py b/eos/effects/shipetspeedbonusab2.py index 5bc33e5c7..ccec8f55f 100644 --- a/eos/effects/shipetspeedbonusab2.py +++ b/eos/effects/shipetspeedbonusab2.py @@ -4,6 +4,5 @@ # Variations of ship: Armageddon (3 of 5) type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Amarr Battleship").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Large Energy Turret"), - "speed", ship.getModifiedItemAttr("shipBonusAB2") * level) \ No newline at end of file + "speed", ship.getModifiedItemAttr("shipBonusAB2"), skill="Amarr Battleship") \ No newline at end of file diff --git a/eos/effects/shipfalloffbonusgf.py b/eos/effects/shipfalloffbonusgf.py index dfab75b3f..177b5695e 100644 --- a/eos/effects/shipfalloffbonusgf.py +++ b/eos/effects/shipfalloffbonusgf.py @@ -5,6 +5,5 @@ # Ship: Daredevil type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Gallente Frigate").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Hybrid Turret"), - "falloff", ship.getModifiedItemAttr("shipBonusGF2") * level) + "falloff", ship.getModifiedItemAttr("shipBonusGF2"), skill="Gallente Frigate") diff --git a/eos/effects/shipfalloffbonusmf.py b/eos/effects/shipfalloffbonusmf.py index ad51dfd62..25be55819 100644 --- a/eos/effects/shipfalloffbonusmf.py +++ b/eos/effects/shipfalloffbonusmf.py @@ -5,6 +5,5 @@ # Ship: Dramiel type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Minmatar Frigate").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Projectile Turret"), - "falloff", ship.getModifiedItemAttr("shipBonusMF") * level) + "falloff", ship.getModifiedItemAttr("shipBonusMF"), skill="Minmatar Frigate") diff --git a/eos/effects/shipgchyieldbonusorefrig2.py b/eos/effects/shipgchyieldbonusorefrig2.py index 31ce02973..d25ffdec2 100644 --- a/eos/effects/shipgchyieldbonusorefrig2.py +++ b/eos/effects/shipgchyieldbonusorefrig2.py @@ -4,6 +4,5 @@ # Variations of ship: Venture (2 of 2) type = "passive" def handler(fit, module, context): - level = fit.character.getSkill("Mining Frigate").level fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Gas Cloud Harvester", - "duration", module.getModifiedItemAttr("shipBonusOREfrig2") * level) + "duration", module.getModifiedItemAttr("shipBonusOREfrig2"), skill="Mining Frigate") diff --git a/eos/effects/shipheatdamageamarrtacticaldestroyer3.py b/eos/effects/shipheatdamageamarrtacticaldestroyer3.py index b8fb82149..2a758f92b 100644 --- a/eos/effects/shipheatdamageamarrtacticaldestroyer3.py +++ b/eos/effects/shipheatdamageamarrtacticaldestroyer3.py @@ -4,6 +4,5 @@ # Ship: Confessor type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Amarr Tactical Destroyer").level fit.modules.filteredItemBoost(lambda mod: True, "heatDamage", - ship.getModifiedItemAttr("shipBonusTacticalDestroyerAmarr3") * level) + ship.getModifiedItemAttr("shipBonusTacticalDestroyerAmarr3"), skill="Amarr Tactical Destroyer") diff --git a/eos/effects/shipheatdamagecaldaritacticaldestroyer3.py b/eos/effects/shipheatdamagecaldaritacticaldestroyer3.py index 16ae36618..488035544 100644 --- a/eos/effects/shipheatdamagecaldaritacticaldestroyer3.py +++ b/eos/effects/shipheatdamagecaldaritacticaldestroyer3.py @@ -4,6 +4,5 @@ # Ship: Jackdaw type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Caldari Tactical Destroyer").level fit.modules.filteredItemBoost(lambda mod: True, "heatDamage", - ship.getModifiedItemAttr("shipBonusTacticalDestroyerCaldari3") * level) + ship.getModifiedItemAttr("shipBonusTacticalDestroyerCaldari3"), skill="Caldari Tactical Destroyer") diff --git a/eos/effects/shipheatdamagegallentetacticaldestroyer3.py b/eos/effects/shipheatdamagegallentetacticaldestroyer3.py index 9d09f8dc6..7bbad6ac3 100644 --- a/eos/effects/shipheatdamagegallentetacticaldestroyer3.py +++ b/eos/effects/shipheatdamagegallentetacticaldestroyer3.py @@ -4,6 +4,5 @@ # Ship: Hecate type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Gallente Tactical Destroyer").level fit.modules.filteredItemBoost(lambda mod: True, "heatDamage", - ship.getModifiedItemAttr("shipBonusTacticalDestroyerGallente3") * level) + ship.getModifiedItemAttr("shipBonusTacticalDestroyerGallente3"), skill="Gallente Tactical Destroyer") diff --git a/eos/effects/shipheatdamageminmatartacticaldestroyer3.py b/eos/effects/shipheatdamageminmatartacticaldestroyer3.py index 13607c1fa..53ef8c983 100644 --- a/eos/effects/shipheatdamageminmatartacticaldestroyer3.py +++ b/eos/effects/shipheatdamageminmatartacticaldestroyer3.py @@ -4,6 +4,5 @@ # Ship: Svipul type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Minmatar Tactical Destroyer").level fit.modules.filteredItemBoost(lambda mod: True, "heatDamage", - ship.getModifiedItemAttr("shipBonusTacticalDestroyerMinmatar3") * level) + ship.getModifiedItemAttr("shipBonusTacticalDestroyerMinmatar3"), skill="Minmatar Tactical Destroyer") diff --git a/eos/effects/shipheavyassaultmissileaoecloudsizecbc1.py b/eos/effects/shipheavyassaultmissileaoecloudsizecbc1.py index f61f726e5..43b6fa99c 100644 --- a/eos/effects/shipheavyassaultmissileaoecloudsizecbc1.py +++ b/eos/effects/shipheavyassaultmissileaoecloudsizecbc1.py @@ -4,6 +4,5 @@ # Ship: Drake Navy Issue type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Caldari Battlecruiser").level fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Assault Missiles"), - "aoeCloudSize", ship.getModifiedItemAttr("shipBonusCBC1") * level) + "aoeCloudSize", ship.getModifiedItemAttr("shipBonusCBC1"), skill="Caldari Battlecruiser") diff --git a/eos/effects/shipheavyassaultmissileaoecloudsizecc2.py b/eos/effects/shipheavyassaultmissileaoecloudsizecc2.py index 9eb7c2b32..be654846f 100644 --- a/eos/effects/shipheavyassaultmissileaoecloudsizecc2.py +++ b/eos/effects/shipheavyassaultmissileaoecloudsizecc2.py @@ -4,6 +4,5 @@ # Ship: Caracal Navy Issue type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Caldari Cruiser").level fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Assault Missiles"), - "aoeCloudSize", ship.getModifiedItemAttr("shipBonusCC2") * level) + "aoeCloudSize", ship.getModifiedItemAttr("shipBonusCC2"), skill="Caldari Cruiser") diff --git a/eos/effects/shipheavyassaultmissileemandexpandkinandthmdmgac1.py b/eos/effects/shipheavyassaultmissileemandexpandkinandthmdmgac1.py index e57a4fc31..9b722170d 100644 --- a/eos/effects/shipheavyassaultmissileemandexpandkinandthmdmgac1.py +++ b/eos/effects/shipheavyassaultmissileemandexpandkinandthmdmgac1.py @@ -4,8 +4,7 @@ # Ship: Sacrilege type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Amarr Cruiser").level 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") * level) + "{0}Damage".format(damageType), ship.getModifiedItemAttr("shipBonusAC"), skill="Amarr Cruiser") diff --git a/eos/effects/shipheavyassaultmissilevelocitycbc2.py b/eos/effects/shipheavyassaultmissilevelocitycbc2.py index 6dc30f383..9c93a602d 100644 --- a/eos/effects/shipheavyassaultmissilevelocitycbc2.py +++ b/eos/effects/shipheavyassaultmissilevelocitycbc2.py @@ -4,6 +4,5 @@ # Ship: Drake Navy Issue type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Caldari Battlecruiser").level fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Assault Missiles"), - "maxVelocity", ship.getModifiedItemAttr("shipBonusCBC2") * level) + "maxVelocity", ship.getModifiedItemAttr("shipBonusCBC2"), skill="Caldari Battlecruiser") diff --git a/eos/effects/shipheavymissileaoecloudsizecbc1.py b/eos/effects/shipheavymissileaoecloudsizecbc1.py index 61054cc0f..b752147db 100644 --- a/eos/effects/shipheavymissileaoecloudsizecbc1.py +++ b/eos/effects/shipheavymissileaoecloudsizecbc1.py @@ -4,6 +4,5 @@ # Ship: Drake Navy Issue type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Caldari Battlecruiser").level fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Missiles"), - "aoeCloudSize", ship.getModifiedItemAttr("shipBonusCBC1") * level) + "aoeCloudSize", ship.getModifiedItemAttr("shipBonusCBC1"), skill="Caldari Battlecruiser") diff --git a/eos/effects/shipheavymissileaoecloudsizecc2.py b/eos/effects/shipheavymissileaoecloudsizecc2.py index 1a144cc9e..d9e4f36e5 100644 --- a/eos/effects/shipheavymissileaoecloudsizecc2.py +++ b/eos/effects/shipheavymissileaoecloudsizecc2.py @@ -4,6 +4,5 @@ # Ship: Caracal Navy Issue type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Caldari Cruiser").level fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Missiles"), - "aoeCloudSize", ship.getModifiedItemAttr("shipBonusCC2") * level) + "aoeCloudSize", ship.getModifiedItemAttr("shipBonusCC2"), skill="Caldari Cruiser") diff --git a/eos/effects/shipheavymissilevelocitycbc2.py b/eos/effects/shipheavymissilevelocitycbc2.py index 313c8428a..04e5963b6 100644 --- a/eos/effects/shipheavymissilevelocitycbc2.py +++ b/eos/effects/shipheavymissilevelocitycbc2.py @@ -4,6 +4,5 @@ # Ship: Drake Navy Issue type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Caldari Battlecruiser").level fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Missiles"), - "maxVelocity", ship.getModifiedItemAttr("shipBonusCBC2") * level) + "maxVelocity", ship.getModifiedItemAttr("shipBonusCBC2"), skill="Caldari Battlecruiser") diff --git a/eos/effects/shiphrangebonuscc.py b/eos/effects/shiphrangebonuscc.py index 499fcdbe7..bf9572d39 100644 --- a/eos/effects/shiphrangebonuscc.py +++ b/eos/effects/shiphrangebonuscc.py @@ -4,6 +4,5 @@ # Ship: Eagle type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Caldari Cruiser").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Hybrid Turret"), - "maxRange", ship.getModifiedItemAttr("shipBonusCC") * level) + "maxRange", ship.getModifiedItemAttr("shipBonusCC"), skill="Caldari Cruiser") diff --git a/eos/effects/shiphtdamagebonuscc.py b/eos/effects/shiphtdamagebonuscc.py index 4a7f21d37..4c315d558 100644 --- a/eos/effects/shiphtdamagebonuscc.py +++ b/eos/effects/shiphtdamagebonuscc.py @@ -4,6 +4,5 @@ # Ship: Moa type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Caldari Cruiser").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Hybrid Turret"), - "damageMultiplier", ship.getModifiedItemAttr("shipBonusCC") * level) + "damageMultiplier", ship.getModifiedItemAttr("shipBonusCC"), skill="Caldari Cruiser") diff --git a/eos/effects/shiphtdmgbonusfixedgc.py b/eos/effects/shiphtdmgbonusfixedgc.py index 1058c3329..1268a1938 100644 --- a/eos/effects/shiphtdmgbonusfixedgc.py +++ b/eos/effects/shiphtdmgbonusfixedgc.py @@ -10,6 +10,5 @@ # Ship: Vexor type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Gallente Cruiser").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Hybrid Turret"), - "damageMultiplier", ship.getModifiedItemAttr("shipBonusGC") * level) + "damageMultiplier", ship.getModifiedItemAttr("shipBonusGC"), skill="Gallente Cruiser") diff --git a/eos/effects/shiphtdmgbonusgb.py b/eos/effects/shiphtdmgbonusgb.py index 6f0e392fd..3921d7ea2 100644 --- a/eos/effects/shiphtdmgbonusgb.py +++ b/eos/effects/shiphtdmgbonusgb.py @@ -8,6 +8,5 @@ # Ship: Sin type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Gallente Battleship").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Large Hybrid Turret"), - "damageMultiplier", ship.getModifiedItemAttr("shipBonusGB") * level) + "damageMultiplier", ship.getModifiedItemAttr("shipBonusGB"), skill="Gallente Battleship") diff --git a/eos/effects/shiphttrackingbonusgb.py b/eos/effects/shiphttrackingbonusgb.py index 48be01487..fdc2fd40d 100644 --- a/eos/effects/shiphttrackingbonusgb.py +++ b/eos/effects/shiphttrackingbonusgb.py @@ -4,6 +4,5 @@ # Ship: Vindicator type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Gallente Battleship").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Large Hybrid Turret"), - "trackingSpeed", ship.getModifiedItemAttr("shipBonusGB") * level) + "trackingSpeed", ship.getModifiedItemAttr("shipBonusGB"), skill="Gallente Battleship") diff --git a/eos/effects/shiphttrackingbonusgb2.py b/eos/effects/shiphttrackingbonusgb2.py index 9369ff662..183f69931 100644 --- a/eos/effects/shiphttrackingbonusgb2.py +++ b/eos/effects/shiphttrackingbonusgb2.py @@ -4,6 +4,5 @@ # Ships named like: Megathron (3 of 3) type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Gallente Battleship").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Large Hybrid Turret"), - "trackingSpeed", ship.getModifiedItemAttr("shipBonusGB2") * level) + "trackingSpeed", ship.getModifiedItemAttr("shipBonusGB2"), skill="Gallente Battleship") diff --git a/eos/effects/shiphturretfalloffbonusgc.py b/eos/effects/shiphturretfalloffbonusgc.py index 267c8f024..836c1a921 100644 --- a/eos/effects/shiphturretfalloffbonusgc.py +++ b/eos/effects/shiphturretfalloffbonusgc.py @@ -4,6 +4,5 @@ # Ship: Vigilant type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Gallente Cruiser").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Hybrid Turret"), - "falloff", ship.getModifiedItemAttr("shipBonusGC") * level) + "falloff", ship.getModifiedItemAttr("shipBonusGC"), skill="Gallente Cruiser") diff --git a/eos/effects/shiphybriddamagebonuscbc2.py b/eos/effects/shiphybriddamagebonuscbc2.py index 050209649..8bdc20cba 100644 --- a/eos/effects/shiphybriddamagebonuscbc2.py +++ b/eos/effects/shiphybriddamagebonuscbc2.py @@ -4,6 +4,5 @@ # Ship: Naga type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Caldari Battlecruiser").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Large Hybrid Turret"), - "damageMultiplier", ship.getModifiedItemAttr("shipBonusCBC2") * level) + "damageMultiplier", ship.getModifiedItemAttr("shipBonusCBC2"), skill="Caldari Battlecruiser") diff --git a/eos/effects/shiphybriddamagebonuscf.py b/eos/effects/shiphybriddamagebonuscf.py index 5a2c7d0ee..6c514a895 100644 --- a/eos/effects/shiphybriddamagebonuscf.py +++ b/eos/effects/shiphybriddamagebonuscf.py @@ -4,6 +4,5 @@ # Ship: Raptor type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Caldari Frigate").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Hybrid Turret"), - "damageMultiplier", ship.getModifiedItemAttr("shipBonusCF") * level) \ No newline at end of file + "damageMultiplier", ship.getModifiedItemAttr("shipBonusCF"), skill="Caldari Frigate") \ No newline at end of file diff --git a/eos/effects/shiphybriddamagebonuscf2.py b/eos/effects/shiphybriddamagebonuscf2.py index 7d7d71480..89354e197 100644 --- a/eos/effects/shiphybriddamagebonuscf2.py +++ b/eos/effects/shiphybriddamagebonuscf2.py @@ -4,6 +4,5 @@ # Ship: Merlin type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Caldari Frigate").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Hybrid Turret"), - "damageMultiplier", ship.getModifiedItemAttr("shipBonusCF2") * level) + "damageMultiplier", ship.getModifiedItemAttr("shipBonusCF2"), skill="Caldari Frigate") diff --git a/eos/effects/shiphybriddamagebonusgbc2.py b/eos/effects/shiphybriddamagebonusgbc2.py index 78c103094..9745804a8 100644 --- a/eos/effects/shiphybriddamagebonusgbc2.py +++ b/eos/effects/shiphybriddamagebonusgbc2.py @@ -4,6 +4,5 @@ # Ship: Talos type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Gallente Battlecruiser").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Large Hybrid Turret"), - "damageMultiplier", ship.getModifiedItemAttr("shipBonusGBC2") * level) + "damageMultiplier", ship.getModifiedItemAttr("shipBonusGBC2"), skill="Gallente Battlecruiser") diff --git a/eos/effects/shiphybriddmg1gbc1.py b/eos/effects/shiphybriddmg1gbc1.py index cc8a9638f..71be2a3e8 100644 --- a/eos/effects/shiphybriddmg1gbc1.py +++ b/eos/effects/shiphybriddmg1gbc1.py @@ -4,6 +4,5 @@ # Variations of ship: Brutix (3 of 3) type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Gallente Battlecruiser").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Hybrid Turret"), - "damageMultiplier", ship.getModifiedItemAttr("shipBonusGBC1") * level) + "damageMultiplier", ship.getModifiedItemAttr("shipBonusGBC1"), skill="Gallente Battlecruiser") diff --git a/eos/effects/shiphybridfalloff1gd1.py b/eos/effects/shiphybridfalloff1gd1.py index e9527f2d2..c81bc6a0f 100644 --- a/eos/effects/shiphybridfalloff1gd1.py +++ b/eos/effects/shiphybridfalloff1gd1.py @@ -4,6 +4,5 @@ # Ship: Catalyst type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Gallente Destroyer").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Hybrid Turret"), - "falloff", ship.getModifiedItemAttr("shipBonusGD1") * level) + "falloff", ship.getModifiedItemAttr("shipBonusGD1"), skill="Gallente Destroyer") diff --git a/eos/effects/shiphybridoptimal1cbc1.py b/eos/effects/shiphybridoptimal1cbc1.py index 637caf6f3..54bec4ce6 100644 --- a/eos/effects/shiphybridoptimal1cbc1.py +++ b/eos/effects/shiphybridoptimal1cbc1.py @@ -4,6 +4,5 @@ # Variations of ship: Ferox (2 of 2) type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Caldari Battlecruiser").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Hybrid Turret"), - "maxRange", ship.getModifiedItemAttr("shipBonusCBC1") * level) + "maxRange", ship.getModifiedItemAttr("shipBonusCBC1"), skill="Caldari Battlecruiser") diff --git a/eos/effects/shiphybridoptimalgd1.py b/eos/effects/shiphybridoptimalgd1.py index bca92505f..3ba0cb846 100644 --- a/eos/effects/shiphybridoptimalgd1.py +++ b/eos/effects/shiphybridoptimalgd1.py @@ -4,6 +4,5 @@ # Ship: Eris type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Gallente Destroyer").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Hybrid Turret"), - "maxRange", ship.getModifiedItemAttr("shipBonusGD1") * level) + "maxRange", ship.getModifiedItemAttr("shipBonusGD1"), skill="Gallente Destroyer") diff --git a/eos/effects/shiphybridrange1cd1.py b/eos/effects/shiphybridrange1cd1.py index 9da623c19..fc6588175 100644 --- a/eos/effects/shiphybridrange1cd1.py +++ b/eos/effects/shiphybridrange1cd1.py @@ -4,6 +4,5 @@ # Ship: Cormorant type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Caldari Destroyer").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Hybrid Turret"), - "maxRange", ship.getModifiedItemAttr("shipBonusCD1") * level) + "maxRange", ship.getModifiedItemAttr("shipBonusCD1"), skill="Caldari Destroyer") diff --git a/eos/effects/shiphybridrangebonuscbc1.py b/eos/effects/shiphybridrangebonuscbc1.py index a6b3285e8..36bce0282 100644 --- a/eos/effects/shiphybridrangebonuscbc1.py +++ b/eos/effects/shiphybridrangebonuscbc1.py @@ -4,6 +4,5 @@ # Ship: Naga type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Caldari Battlecruiser").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Large Hybrid Turret"), - "maxRange", ship.getModifiedItemAttr("shipBonusCBC1") * level) + "maxRange", ship.getModifiedItemAttr("shipBonusCBC1"), skill="Caldari Battlecruiser") diff --git a/eos/effects/shiphybridrangebonuscf2.py b/eos/effects/shiphybridrangebonuscf2.py index 5b3deb2cd..2823c2a65 100644 --- a/eos/effects/shiphybridrangebonuscf2.py +++ b/eos/effects/shiphybridrangebonuscf2.py @@ -5,6 +5,5 @@ # Ship: Raptor type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Caldari Frigate").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Hybrid Turret"), - "maxRange", ship.getModifiedItemAttr("shipBonusCF2") * level) \ No newline at end of file + "maxRange", ship.getModifiedItemAttr("shipBonusCF2"), skill="Caldari Frigate") \ No newline at end of file diff --git a/eos/effects/shiphybridtracking1gd2.py b/eos/effects/shiphybridtracking1gd2.py index 99172650b..0bd5a3fac 100644 --- a/eos/effects/shiphybridtracking1gd2.py +++ b/eos/effects/shiphybridtracking1gd2.py @@ -5,6 +5,5 @@ # Ship: Algos type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Gallente Destroyer").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Hybrid Turret"), - "trackingSpeed", ship.getModifiedItemAttr("shipBonusGD2") * level) + "trackingSpeed", ship.getModifiedItemAttr("shipBonusGD2"), skill="Gallente Destroyer") diff --git a/eos/effects/shiphybridtrackingcd2.py b/eos/effects/shiphybridtrackingcd2.py index 33a20d282..151686d6d 100644 --- a/eos/effects/shiphybridtrackingcd2.py +++ b/eos/effects/shiphybridtrackingcd2.py @@ -4,6 +4,5 @@ # Ship: Cormorant type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Caldari Destroyer").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Hybrid Turret"), - "trackingSpeed", ship.getModifiedItemAttr("shipBonusCD2") * level) + "trackingSpeed", ship.getModifiedItemAttr("shipBonusCD2"), skill="Caldari Destroyer") diff --git a/eos/effects/shiphybridtrackinggbc2.py b/eos/effects/shiphybridtrackinggbc2.py index 27ceb0ec5..3dd329916 100644 --- a/eos/effects/shiphybridtrackinggbc2.py +++ b/eos/effects/shiphybridtrackinggbc2.py @@ -4,6 +4,5 @@ # Ship: Brutix Navy Issue type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Gallente Battlecruiser").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Hybrid Turret"), - "trackingSpeed", ship.getModifiedItemAttr("shipBonusGBC2") * level) + "trackingSpeed", ship.getModifiedItemAttr("shipBonusGBC2"), skill="Gallente Battlecruiser") diff --git a/eos/effects/shiphybridtrackinggc.py b/eos/effects/shiphybridtrackinggc.py index 02215246a..53dddd898 100644 --- a/eos/effects/shiphybridtrackinggc.py +++ b/eos/effects/shiphybridtrackinggc.py @@ -5,6 +5,5 @@ # Ship: Phobos type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Gallente Cruiser").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Hybrid Turret"), - "trackingSpeed", ship.getModifiedItemAttr("shipBonusGC") * level) + "trackingSpeed", ship.getModifiedItemAttr("shipBonusGC"), skill="Gallente Cruiser") diff --git a/eos/effects/shiphybridtrackinggc2.py b/eos/effects/shiphybridtrackinggc2.py index 6832d023a..b90f1fa22 100644 --- a/eos/effects/shiphybridtrackinggc2.py +++ b/eos/effects/shiphybridtrackinggc2.py @@ -4,6 +4,5 @@ # Ship: Thorax type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Gallente Cruiser").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Hybrid Turret"), - "trackingSpeed", ship.getModifiedItemAttr("shipBonusGC2") * level) + "trackingSpeed", ship.getModifiedItemAttr("shipBonusGC2"), skill="Gallente Cruiser") diff --git a/eos/effects/shiphybridturretrofbonusgc2.py b/eos/effects/shiphybridturretrofbonusgc2.py index c23549bd4..f05666255 100644 --- a/eos/effects/shiphybridturretrofbonusgc2.py +++ b/eos/effects/shiphybridturretrofbonusgc2.py @@ -5,6 +5,5 @@ # Ship: Phobos type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Gallente Cruiser").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Hybrid Turret"), - "speed", ship.getModifiedItemAttr("shipBonusGC2") * level) + "speed", ship.getModifiedItemAttr("shipBonusGC2"), skill="Gallente Cruiser") diff --git a/eos/effects/shiplargehybridtrackingbonusgbc1.py b/eos/effects/shiplargehybridtrackingbonusgbc1.py index a513810bd..0a6349db2 100644 --- a/eos/effects/shiplargehybridtrackingbonusgbc1.py +++ b/eos/effects/shiplargehybridtrackingbonusgbc1.py @@ -4,6 +4,5 @@ # Ship: Talos type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Gallente Battlecruiser").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Large Hybrid Turret"), - "trackingSpeed", ship.getModifiedItemAttr("shipBonusGBC1") * level) + "trackingSpeed", ship.getModifiedItemAttr("shipBonusGBC1"), skill="Gallente Battlecruiser") diff --git a/eos/effects/shiplargehybridturretrofgb.py b/eos/effects/shiplargehybridturretrofgb.py index dbc8a25b7..cbd73aca3 100644 --- a/eos/effects/shiplargehybridturretrofgb.py +++ b/eos/effects/shiplargehybridturretrofgb.py @@ -5,6 +5,5 @@ # Ship: Megathron Navy Issue type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Gallente Battleship").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Large Hybrid Turret"), - "speed", ship.getModifiedItemAttr("shipBonusGB") * level) + "speed", ship.getModifiedItemAttr("shipBonusGB"), skill="Gallente Battleship") diff --git a/eos/effects/shiplargelasercapabc1.py b/eos/effects/shiplargelasercapabc1.py index a5c09064d..5f25cc664 100644 --- a/eos/effects/shiplargelasercapabc1.py +++ b/eos/effects/shiplargelasercapabc1.py @@ -4,6 +4,5 @@ # Ship: Oracle type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Amarr Battlecruiser").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Large Energy Turret"), - "capacitorNeed", ship.getModifiedItemAttr("shipBonusABC1") * level) + "capacitorNeed", ship.getModifiedItemAttr("shipBonusABC1"), skill="Amarr Battlecruiser") diff --git a/eos/effects/shiplargelaserdamagebonusabc2.py b/eos/effects/shiplargelaserdamagebonusabc2.py index e43e55a24..97f8a00ab 100644 --- a/eos/effects/shiplargelaserdamagebonusabc2.py +++ b/eos/effects/shiplargelaserdamagebonusabc2.py @@ -4,6 +4,5 @@ # Ship: Oracle type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Amarr Battlecruiser").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Large Energy Turret"), - "damageMultiplier", ship.getModifiedItemAttr("shipBonusABC2") * level) + "damageMultiplier", ship.getModifiedItemAttr("shipBonusABC2"), skill="Amarr Battlecruiser") diff --git a/eos/effects/shiplasercap1abc2.py b/eos/effects/shiplasercap1abc2.py index eab6fde05..4041e972d 100644 --- a/eos/effects/shiplasercap1abc2.py +++ b/eos/effects/shiplasercap1abc2.py @@ -4,6 +4,5 @@ # Ship: Absolution type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Amarr Battlecruiser").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Energy Turret"), - "capacitorNeed", ship.getModifiedItemAttr("shipBonusABC2") * level) + "capacitorNeed", ship.getModifiedItemAttr("shipBonusABC2"), skill="Amarr Battlecruiser") diff --git a/eos/effects/shiplasercapabc1.py b/eos/effects/shiplasercapabc1.py index 3ab321dab..a6bbcc175 100644 --- a/eos/effects/shiplasercapabc1.py +++ b/eos/effects/shiplasercapabc1.py @@ -4,6 +4,5 @@ # Ship: Harbinger type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Amarr Battlecruiser").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Energy Turret"), - "capacitorNeed", ship.getModifiedItemAttr("shipBonusABC1") * level) + "capacitorNeed", ship.getModifiedItemAttr("shipBonusABC1"), skill="Amarr Battlecruiser") diff --git a/eos/effects/shiplasercapneed2ad1.py b/eos/effects/shiplasercapneed2ad1.py index bfbcb83ff..749a631d7 100644 --- a/eos/effects/shiplasercapneed2ad1.py +++ b/eos/effects/shiplasercapneed2ad1.py @@ -4,6 +4,5 @@ # Ship: Coercer type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Amarr Destroyer").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Energy Turret"), - "capacitorNeed", ship.getModifiedItemAttr("shipBonusAD1") * level) + "capacitorNeed", ship.getModifiedItemAttr("shipBonusAD1"), skill="Amarr Destroyer") diff --git a/eos/effects/shiplaserdamagebonusabc2.py b/eos/effects/shiplaserdamagebonusabc2.py index c7f96cf8e..5fadbd604 100644 --- a/eos/effects/shiplaserdamagebonusabc2.py +++ b/eos/effects/shiplaserdamagebonusabc2.py @@ -4,6 +4,5 @@ # Ships named like: Harbinger (2 of 2) type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Amarr Battlecruiser").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Energy Turret"), - "damageMultiplier", ship.getModifiedItemAttr("shipBonusABC2") * level) + "damageMultiplier", ship.getModifiedItemAttr("shipBonusABC2"), skill="Amarr Battlecruiser") diff --git a/eos/effects/shiplaserrofac2.py b/eos/effects/shiplaserrofac2.py index f0e115d4b..c5b18f010 100644 --- a/eos/effects/shiplaserrofac2.py +++ b/eos/effects/shiplaserrofac2.py @@ -5,6 +5,5 @@ # Ship: Zealot type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Amarr Cruiser").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Energy Turret"), - "speed", ship.getModifiedItemAttr("shipBonusAC2") * level) + "speed", ship.getModifiedItemAttr("shipBonusAC2"), skill="Amarr Cruiser") diff --git a/eos/effects/shiplasertracking2ad2.py b/eos/effects/shiplasertracking2ad2.py index 079517875..6d751cfda 100644 --- a/eos/effects/shiplasertracking2ad2.py +++ b/eos/effects/shiplasertracking2ad2.py @@ -4,6 +4,5 @@ # Ship: Coercer type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Amarr Destroyer").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Energy Turret"), - "trackingSpeed", ship.getModifiedItemAttr("shipBonusAD2") * level) + "trackingSpeed", ship.getModifiedItemAttr("shipBonusAD2"), skill="Amarr Destroyer") diff --git a/eos/effects/shipmetcdamagebonusac.py b/eos/effects/shipmetcdamagebonusac.py index 9ef3dacd1..7e0a51252 100644 --- a/eos/effects/shipmetcdamagebonusac.py +++ b/eos/effects/shipmetcdamagebonusac.py @@ -6,6 +6,5 @@ # Ship: Omen Navy Issue type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Amarr Cruiser").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Energy Turret"), - "damageMultiplier", ship.getModifiedItemAttr("shipBonusAC") * level) + "damageMultiplier", ship.getModifiedItemAttr("shipBonusAC"), skill="Amarr Cruiser") diff --git a/eos/effects/shipmetdamagebonusac2.py b/eos/effects/shipmetdamagebonusac2.py index 8d01df52d..9e356bfb0 100644 --- a/eos/effects/shipmetdamagebonusac2.py +++ b/eos/effects/shipmetdamagebonusac2.py @@ -4,6 +4,5 @@ # Ship: Devoter type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Amarr Cruiser").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Energy Turret"), - "damageMultiplier", ship.getModifiedItemAttr("shipBonusAC2") * level) + "damageMultiplier", ship.getModifiedItemAttr("shipBonusAC2"), skill="Amarr Cruiser") diff --git a/eos/effects/shipminingbonusorefrig1.py b/eos/effects/shipminingbonusorefrig1.py index 04410024b..be5c5c9a4 100644 --- a/eos/effects/shipminingbonusorefrig1.py +++ b/eos/effects/shipminingbonusorefrig1.py @@ -4,6 +4,5 @@ # Variations of ship: Venture (2 of 2) type = "passive" def handler(fit, module, context): - level = fit.character.getSkill("Mining Frigate").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Mining"), - "miningAmount", module.getModifiedItemAttr("shipBonusOREfrig1") * level) + "miningAmount", module.getModifiedItemAttr("shipBonusOREfrig1"), skill="Mining Frigate") diff --git a/eos/effects/shipmissileassaultmissilevelocitybonuscc2.py b/eos/effects/shipmissileassaultmissilevelocitybonuscc2.py index 9130d300e..f384e3b83 100644 --- a/eos/effects/shipmissileassaultmissilevelocitybonuscc2.py +++ b/eos/effects/shipmissileassaultmissilevelocitybonuscc2.py @@ -5,6 +5,5 @@ # Ship: Osprey Navy Issue type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Caldari Cruiser").level fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Assault Missiles"), - "maxVelocity", ship.getModifiedItemAttr("shipBonusCC2") * level) + "maxVelocity", ship.getModifiedItemAttr("shipBonusCC2"), skill="Caldari Cruiser") diff --git a/eos/effects/shipmissileemdamagecb.py b/eos/effects/shipmissileemdamagecb.py index 8321522e5..43869cffa 100644 --- a/eos/effects/shipmissileemdamagecb.py +++ b/eos/effects/shipmissileemdamagecb.py @@ -4,6 +4,5 @@ # Ship: Barghest type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Caldari Battleship").level fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), - "emDamage", ship.getModifiedItemAttr("shipBonusCB") * level) + "emDamage", ship.getModifiedItemAttr("shipBonusCB"), skill="Caldari Battleship") diff --git a/eos/effects/shipmissileemdamagecc.py b/eos/effects/shipmissileemdamagecc.py index 2c9944742..484ed5b38 100644 --- a/eos/effects/shipmissileemdamagecc.py +++ b/eos/effects/shipmissileemdamagecc.py @@ -5,6 +5,5 @@ # Ship: Osprey Navy Issue type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Caldari Cruiser").level fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), - "emDamage", ship.getModifiedItemAttr("shipBonusCC") * level) + "emDamage", ship.getModifiedItemAttr("shipBonusCC"), skill="Caldari Cruiser") diff --git a/eos/effects/shipmissileemdamagecf2.py b/eos/effects/shipmissileemdamagecf2.py index ce22b70d6..ec0ae1f7e 100644 --- a/eos/effects/shipmissileemdamagecf2.py +++ b/eos/effects/shipmissileemdamagecf2.py @@ -5,6 +5,5 @@ # Ship: Garmur type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Caldari Frigate").level fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), - "emDamage", ship.getModifiedItemAttr("shipBonusCF2") * level) + "emDamage", ship.getModifiedItemAttr("shipBonusCF2"), skill="Caldari Frigate") diff --git a/eos/effects/shipmissileexpdamagecc.py b/eos/effects/shipmissileexpdamagecc.py index c2d8059d9..1e0a584c6 100644 --- a/eos/effects/shipmissileexpdamagecc.py +++ b/eos/effects/shipmissileexpdamagecc.py @@ -5,6 +5,5 @@ # Ship: Osprey Navy Issue type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Caldari Cruiser").level fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), - "explosiveDamage", ship.getModifiedItemAttr("shipBonusCC") * level) + "explosiveDamage", ship.getModifiedItemAttr("shipBonusCC"), skill="Caldari Cruiser") diff --git a/eos/effects/shipmissileexplodamagecb.py b/eos/effects/shipmissileexplodamagecb.py index b7d44311d..73deda312 100644 --- a/eos/effects/shipmissileexplodamagecb.py +++ b/eos/effects/shipmissileexplodamagecb.py @@ -4,6 +4,5 @@ # Ship: Barghest type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Caldari Battleship").level fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), - "explosiveDamage", ship.getModifiedItemAttr("shipBonusCB") * level) + "explosiveDamage", ship.getModifiedItemAttr("shipBonusCB"), skill="Caldari Battleship") diff --git a/eos/effects/shipmissileexplosivedamagecf2.py b/eos/effects/shipmissileexplosivedamagecf2.py index 52023a325..df6dad456 100644 --- a/eos/effects/shipmissileexplosivedamagecf2.py +++ b/eos/effects/shipmissileexplosivedamagecf2.py @@ -5,6 +5,5 @@ # Ship: Garmur type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Caldari Frigate").level fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), - "explosiveDamage", ship.getModifiedItemAttr("shipBonusCF2") * level) + "explosiveDamage", ship.getModifiedItemAttr("shipBonusCF2"), skill="Caldari Frigate") diff --git a/eos/effects/shipmissileheavyassaultvelocityabc2.py b/eos/effects/shipmissileheavyassaultvelocityabc2.py index 96ecc0e8b..39eb421b1 100644 --- a/eos/effects/shipmissileheavyassaultvelocityabc2.py +++ b/eos/effects/shipmissileheavyassaultvelocityabc2.py @@ -4,6 +4,5 @@ # Ship: Damnation type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Amarr Battlecruiser").level fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Assault Missiles"), - "maxVelocity", ship.getModifiedItemAttr("shipBonusABC2") * level) + "maxVelocity", ship.getModifiedItemAttr("shipBonusABC2"), skill="Amarr Battlecruiser") diff --git a/eos/effects/shipmissileheavyvelocityabc2.py b/eos/effects/shipmissileheavyvelocityabc2.py index a6fe4eca5..2a6d1cd08 100644 --- a/eos/effects/shipmissileheavyvelocityabc2.py +++ b/eos/effects/shipmissileheavyvelocityabc2.py @@ -4,6 +4,5 @@ # Ship: Damnation type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Amarr Battlecruiser").level fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Missiles"), - "maxVelocity", ship.getModifiedItemAttr("shipBonusABC2") * level) + "maxVelocity", ship.getModifiedItemAttr("shipBonusABC2"), skill="Amarr Battlecruiser") diff --git a/eos/effects/shipmissileheavyvelocitybonuscc2.py b/eos/effects/shipmissileheavyvelocitybonuscc2.py index 7e6646950..23a0d49c2 100644 --- a/eos/effects/shipmissileheavyvelocitybonuscc2.py +++ b/eos/effects/shipmissileheavyvelocitybonuscc2.py @@ -5,6 +5,5 @@ # Ship: Osprey Navy Issue type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Caldari Cruiser").level fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Missiles"), - "maxVelocity", ship.getModifiedItemAttr("shipBonusCC2") * level) + "maxVelocity", ship.getModifiedItemAttr("shipBonusCC2"), skill="Caldari Cruiser") diff --git a/eos/effects/shipmissilekindamagecb.py b/eos/effects/shipmissilekindamagecb.py index 84a8cd62c..49b58f307 100644 --- a/eos/effects/shipmissilekindamagecb.py +++ b/eos/effects/shipmissilekindamagecb.py @@ -4,6 +4,5 @@ # Ship: Barghest type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Caldari Battleship").level fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), - "kineticDamage", ship.getModifiedItemAttr("shipBonusCB") * level) + "kineticDamage", ship.getModifiedItemAttr("shipBonusCB"), skill="Caldari Battleship") diff --git a/eos/effects/shipmissilekindamagecc2.py b/eos/effects/shipmissilekindamagecc2.py index 97ff60cc1..54b623dd7 100644 --- a/eos/effects/shipmissilekindamagecc2.py +++ b/eos/effects/shipmissilekindamagecc2.py @@ -5,6 +5,5 @@ # Ship: Rook type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Caldari Cruiser").level fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), - "kineticDamage", ship.getModifiedItemAttr("shipBonusCC2") * level) + "kineticDamage", ship.getModifiedItemAttr("shipBonusCC2"), skill="Caldari Cruiser") diff --git a/eos/effects/shipmissilekineticdamagecc.py b/eos/effects/shipmissilekineticdamagecc.py index 4c9a0a837..c0b145770 100644 --- a/eos/effects/shipmissilekineticdamagecc.py +++ b/eos/effects/shipmissilekineticdamagecc.py @@ -6,6 +6,5 @@ # Ship: Orthrus type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Caldari Cruiser").level fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), - "kineticDamage", ship.getModifiedItemAttr("shipBonusCC") * level) + "kineticDamage", ship.getModifiedItemAttr("shipBonusCC"), skill="Caldari Cruiser") diff --git a/eos/effects/shipmissilekineticdamagecf.py b/eos/effects/shipmissilekineticdamagecf.py index 0db4681f0..89b625b1e 100644 --- a/eos/effects/shipmissilekineticdamagecf.py +++ b/eos/effects/shipmissilekineticdamagecf.py @@ -7,6 +7,5 @@ # Ship: Hawk type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Caldari Frigate").level fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), - "kineticDamage", ship.getModifiedItemAttr("shipBonusCF") * level) + "kineticDamage", ship.getModifiedItemAttr("shipBonusCF"), skill="Caldari Frigate") diff --git a/eos/effects/shipmissilekineticdamagecf2.py b/eos/effects/shipmissilekineticdamagecf2.py index 48fae4f42..c5a2c0f0a 100644 --- a/eos/effects/shipmissilekineticdamagecf2.py +++ b/eos/effects/shipmissilekineticdamagecf2.py @@ -4,6 +4,5 @@ # Ship: Garmur type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Caldari Frigate").level fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), - "kineticDamage", ship.getModifiedItemAttr("shipBonusCF2") * level) + "kineticDamage", ship.getModifiedItemAttr("shipBonusCF2"), skill="Caldari Frigate") diff --git a/eos/effects/shipmissilelauncherrofad1fixed.py b/eos/effects/shipmissilelauncherrofad1fixed.py index fa26f38eb..7c28cce64 100644 --- a/eos/effects/shipmissilelauncherrofad1fixed.py +++ b/eos/effects/shipmissilelauncherrofad1fixed.py @@ -4,6 +4,5 @@ # Ship: Heretic type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Amarr Destroyer").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Missile Launcher Operation"), - "speed", ship.getModifiedItemAttr("shipBonusAD1") * level) \ No newline at end of file + "speed", ship.getModifiedItemAttr("shipBonusAD1"), skill="Amarr Destroyer") \ No newline at end of file diff --git a/eos/effects/shipmissilelauncherrofcc2.py b/eos/effects/shipmissilelauncherrofcc2.py index 8cab36a7e..a73513db6 100644 --- a/eos/effects/shipmissilelauncherrofcc2.py +++ b/eos/effects/shipmissilelauncherrofcc2.py @@ -4,6 +4,5 @@ # Ship: Onyx type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Caldari Cruiser").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Missile Launcher Operation"), - "speed", ship.getModifiedItemAttr("shipBonusCC2") * level) + "speed", ship.getModifiedItemAttr("shipBonusCC2"), skill="Caldari Cruiser") diff --git a/eos/effects/shipmissilelauncherspeedbonusmc2.py b/eos/effects/shipmissilelauncherspeedbonusmc2.py index f756fe9c7..93c9bb262 100644 --- a/eos/effects/shipmissilelauncherspeedbonusmc2.py +++ b/eos/effects/shipmissilelauncherspeedbonusmc2.py @@ -4,7 +4,6 @@ # Ship: Bellicose type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Minmatar Cruiser").level 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") * level) + "speed", ship.getModifiedItemAttr("shipBonusMC2"), skill="Minmatar Cruiser") diff --git a/eos/effects/shipmissilelightvelocitybonuscc2.py b/eos/effects/shipmissilelightvelocitybonuscc2.py index 9dbf6392f..5c746a81d 100644 --- a/eos/effects/shipmissilelightvelocitybonuscc2.py +++ b/eos/effects/shipmissilelightvelocitybonuscc2.py @@ -5,6 +5,5 @@ # Ship: Osprey Navy Issue type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Caldari Cruiser").level fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Light Missiles"), - "maxVelocity", ship.getModifiedItemAttr("shipBonusCC2") * level) + "maxVelocity", ship.getModifiedItemAttr("shipBonusCC2"), skill="Caldari Cruiser") diff --git a/eos/effects/shipmissilelightvelocitybonuscf2.py b/eos/effects/shipmissilelightvelocitybonuscf2.py index ae89b5642..a94e057c4 100644 --- a/eos/effects/shipmissilelightvelocitybonuscf2.py +++ b/eos/effects/shipmissilelightvelocitybonuscf2.py @@ -4,6 +4,5 @@ # Ship: Caldari Navy Hookbill type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Caldari Frigate").level fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Light Missiles"), - "maxVelocity", ship.getModifiedItemAttr("shipBonusCF2") * level) + "maxVelocity", ship.getModifiedItemAttr("shipBonusCF2"), skill="Caldari Frigate") diff --git a/eos/effects/shipmissilereloadtimecaldaritacticaldestroyer2.py b/eos/effects/shipmissilereloadtimecaldaritacticaldestroyer2.py index 25ad3540e..f135240bf 100644 --- a/eos/effects/shipmissilereloadtimecaldaritacticaldestroyer2.py +++ b/eos/effects/shipmissilereloadtimecaldaritacticaldestroyer2.py @@ -4,6 +4,5 @@ # Ship: Jackdaw type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Caldari Tactical Destroyer").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Missile Launcher Operation"), - "reloadTime", ship.getModifiedItemAttr("shipBonusTacticalDestroyerCaldari2") * level) + "reloadTime", ship.getModifiedItemAttr("shipBonusTacticalDestroyerCaldari2"), skill="Caldari Tactical Destroyer") diff --git a/eos/effects/shipmissilerocketvelocitybonuscf2.py b/eos/effects/shipmissilerocketvelocitybonuscf2.py index b55513b0a..a51d7c5eb 100644 --- a/eos/effects/shipmissilerocketvelocitybonuscf2.py +++ b/eos/effects/shipmissilerocketvelocitybonuscf2.py @@ -4,6 +4,5 @@ # Ship: Caldari Navy Hookbill type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Caldari Frigate").level fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Rockets"), - "maxVelocity", ship.getModifiedItemAttr("shipBonusCF2") * level) + "maxVelocity", ship.getModifiedItemAttr("shipBonusCF2"), skill="Caldari Frigate") diff --git a/eos/effects/shipmissilerofcaldaritacticaldestroyer1.py b/eos/effects/shipmissilerofcaldaritacticaldestroyer1.py index 1dd592339..9bb6ba979 100644 --- a/eos/effects/shipmissilerofcaldaritacticaldestroyer1.py +++ b/eos/effects/shipmissilerofcaldaritacticaldestroyer1.py @@ -4,8 +4,7 @@ # Ship: Jackdaw type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Caldari Tactical Destroyer").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Missile Launcher Operation"), - "speed", ship.getModifiedItemAttr("shipBonusTacticalDestroyerCaldari1") * level) + "speed", ship.getModifiedItemAttr("shipBonusTacticalDestroyerCaldari1"), skill="Caldari Tactical Destroyer") diff --git a/eos/effects/shipmissilerofcc.py b/eos/effects/shipmissilerofcc.py index 0a4f50bca..933fe04ac 100644 --- a/eos/effects/shipmissilerofcc.py +++ b/eos/effects/shipmissilerofcc.py @@ -4,7 +4,6 @@ # Ships named like: Caracal (2 of 2) type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Caldari Cruiser").level 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") * level) + "speed", ship.getModifiedItemAttr("shipBonusCC"), skill="Caldari Cruiser") diff --git a/eos/effects/shipmissilerofmf2.py b/eos/effects/shipmissilerofmf2.py index 89e821016..04ac24d59 100644 --- a/eos/effects/shipmissilerofmf2.py +++ b/eos/effects/shipmissilerofmf2.py @@ -4,8 +4,7 @@ # Ship: Breacher type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Minmatar Frigate").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Missile Launcher Operation"), - "speed", ship.getModifiedItemAttr("shipBonusMF2") * level) + "speed", ship.getModifiedItemAttr("shipBonusMF2"), skill="Minmatar Frigate") diff --git a/eos/effects/shipmissilespeedbonusaf.py b/eos/effects/shipmissilespeedbonusaf.py index 301c9c12d..39dfb807f 100644 --- a/eos/effects/shipmissilespeedbonusaf.py +++ b/eos/effects/shipmissilespeedbonusaf.py @@ -4,6 +4,5 @@ # Ship: Vengeance type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Amarr Frigate").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Missile Launcher Operation"), - "speed", ship.getModifiedItemAttr("shipBonus2AF") * level) + "speed", ship.getModifiedItemAttr("shipBonus2AF"), skill="Amarr Frigate") diff --git a/eos/effects/shipmissilespeedbonuscf.py b/eos/effects/shipmissilespeedbonuscf.py index 8e8b8956d..5351d8045 100644 --- a/eos/effects/shipmissilespeedbonuscf.py +++ b/eos/effects/shipmissilespeedbonuscf.py @@ -5,6 +5,5 @@ # Ship: Hawk type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Caldari Frigate").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Missile Launcher Operation"), - "speed", ship.getModifiedItemAttr("shipBonusCF2") * level) + "speed", ship.getModifiedItemAttr("shipBonusCF2"), skill="Caldari Frigate") diff --git a/eos/effects/shipmissilethermaldamagecf2.py b/eos/effects/shipmissilethermaldamagecf2.py index c3d61aada..60480c2e8 100644 --- a/eos/effects/shipmissilethermaldamagecf2.py +++ b/eos/effects/shipmissilethermaldamagecf2.py @@ -5,6 +5,5 @@ # Ship: Garmur type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Caldari Frigate").level fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), - "thermalDamage", ship.getModifiedItemAttr("shipBonusCF2") * level) + "thermalDamage", ship.getModifiedItemAttr("shipBonusCF2"), skill="Caldari Frigate") diff --git a/eos/effects/shipmissilethermdamagecb.py b/eos/effects/shipmissilethermdamagecb.py index 9fcb29854..6a6dde8b8 100644 --- a/eos/effects/shipmissilethermdamagecb.py +++ b/eos/effects/shipmissilethermdamagecb.py @@ -4,6 +4,5 @@ # Ship: Barghest type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Caldari Battleship").level fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), - "thermalDamage", ship.getModifiedItemAttr("shipBonusCB") * level) + "thermalDamage", ship.getModifiedItemAttr("shipBonusCB"), skill="Caldari Battleship") diff --git a/eos/effects/shipmissilethermdamagecc.py b/eos/effects/shipmissilethermdamagecc.py index 15d646de4..6bef70ccf 100644 --- a/eos/effects/shipmissilethermdamagecc.py +++ b/eos/effects/shipmissilethermdamagecc.py @@ -5,6 +5,5 @@ # Ship: Osprey Navy Issue type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Caldari Cruiser").level fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), - "thermalDamage", ship.getModifiedItemAttr("shipBonusCC") * level) + "thermalDamage", ship.getModifiedItemAttr("shipBonusCC"), skill="Caldari Cruiser") diff --git a/eos/effects/shipmissilevelocitycd1.py b/eos/effects/shipmissilevelocitycd1.py index 657594224..545668606 100644 --- a/eos/effects/shipmissilevelocitycd1.py +++ b/eos/effects/shipmissilevelocitycd1.py @@ -4,6 +4,5 @@ # Ship: Flycatcher type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Caldari Destroyer").level fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), - "maxVelocity", ship.getModifiedItemAttr("shipBonusCD1") * level) + "maxVelocity", ship.getModifiedItemAttr("shipBonusCD1"), skill="Caldari Destroyer") diff --git a/eos/effects/shipmissilevelocitycf.py b/eos/effects/shipmissilevelocitycf.py index cd726cc18..33ec0887f 100644 --- a/eos/effects/shipmissilevelocitycf.py +++ b/eos/effects/shipmissilevelocitycf.py @@ -5,6 +5,5 @@ # Ship: Kestrel type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Caldari Frigate").level fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), - "maxVelocity", ship.getModifiedItemAttr("shipBonusCF") * level) + "maxVelocity", ship.getModifiedItemAttr("shipBonusCF"), skill="Caldari Frigate") diff --git a/eos/effects/shippdmgbonusmf.py b/eos/effects/shippdmgbonusmf.py index a77ffba3c..b9f221871 100644 --- a/eos/effects/shippdmgbonusmf.py +++ b/eos/effects/shippdmgbonusmf.py @@ -8,6 +8,5 @@ # Ship: Republic Fleet Firetail type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Minmatar Frigate").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Projectile Turret"), - "damageMultiplier", ship.getModifiedItemAttr("shipBonusMF") * level) + "damageMultiplier", ship.getModifiedItemAttr("shipBonusMF"), skill="Minmatar Frigate") diff --git a/eos/effects/shipprojectiledamagemd1.py b/eos/effects/shipprojectiledamagemd1.py index e28d5424d..3aca825cd 100644 --- a/eos/effects/shipprojectiledamagemd1.py +++ b/eos/effects/shipprojectiledamagemd1.py @@ -4,6 +4,5 @@ # Variations of ship: Thrasher (2 of 2) type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Minmatar Destroyer").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Projectile Turret"), - "damageMultiplier", ship.getModifiedItemAttr("shipBonusMD1") * level) + "damageMultiplier", ship.getModifiedItemAttr("shipBonusMD1"), skill="Minmatar Destroyer") diff --git a/eos/effects/shipprojectiledmgmc.py b/eos/effects/shipprojectiledmgmc.py index bb33f7f64..843de102e 100644 --- a/eos/effects/shipprojectiledmgmc.py +++ b/eos/effects/shipprojectiledmgmc.py @@ -4,6 +4,5 @@ # Ship: Mimir type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Minmatar Cruiser").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Projectile Turret"), - "damageMultiplier", ship.getModifiedItemAttr("shipBonusMC") * level) + "damageMultiplier", ship.getModifiedItemAttr("shipBonusMC"), skill="Minmatar Cruiser") diff --git a/eos/effects/shipprojectiledmgmc2.py b/eos/effects/shipprojectiledmgmc2.py index 5a540a679..d12ee574b 100644 --- a/eos/effects/shipprojectiledmgmc2.py +++ b/eos/effects/shipprojectiledmgmc2.py @@ -6,6 +6,5 @@ # Ship: Moracha type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Minmatar Cruiser").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Projectile Turret"), - "damageMultiplier", ship.getModifiedItemAttr("shipBonusMC2") * level) + "damageMultiplier", ship.getModifiedItemAttr("shipBonusMC2"), skill="Minmatar Cruiser") diff --git a/eos/effects/shipprojectilefalloffbonusmbc2.py b/eos/effects/shipprojectilefalloffbonusmbc2.py index 3a7c04d3c..ba1715a21 100644 --- a/eos/effects/shipprojectilefalloffbonusmbc2.py +++ b/eos/effects/shipprojectilefalloffbonusmbc2.py @@ -4,6 +4,5 @@ # Ship: Tornado type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Minmatar Battlecruiser").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Large Projectile Turret"), - "falloff", ship.getModifiedItemAttr("shipBonusMBC2") * level) + "falloff", ship.getModifiedItemAttr("shipBonusMBC2"), skill="Minmatar Battlecruiser") diff --git a/eos/effects/shipprojectileoptimalbonusemf2.py b/eos/effects/shipprojectileoptimalbonusemf2.py index 966f79905..fe1aa2fbf 100644 --- a/eos/effects/shipprojectileoptimalbonusemf2.py +++ b/eos/effects/shipprojectileoptimalbonusemf2.py @@ -4,6 +4,5 @@ # Ship: Cheetah type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Minmatar Frigate").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Projectile Turret"), - "maxRange", ship.getModifiedItemAttr("shipBonusMF2") * level) + "maxRange", ship.getModifiedItemAttr("shipBonusMF2"), skill="Minmatar Frigate") diff --git a/eos/effects/shipprojectilerof1mbc2.py b/eos/effects/shipprojectilerof1mbc2.py index b2aa9fe14..77a329adb 100644 --- a/eos/effects/shipprojectilerof1mbc2.py +++ b/eos/effects/shipprojectilerof1mbc2.py @@ -4,6 +4,5 @@ # Ships named like: Hurricane (2 of 2) type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Minmatar Battlecruiser").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Projectile Turret"), - "speed", ship.getModifiedItemAttr("shipBonusMBC2") * level) + "speed", ship.getModifiedItemAttr("shipBonusMBC2"), skill="Minmatar Battlecruiser") diff --git a/eos/effects/shipprojectilerofbonusmbc1.py b/eos/effects/shipprojectilerofbonusmbc1.py index c3bb2e75f..bdac0bc58 100644 --- a/eos/effects/shipprojectilerofbonusmbc1.py +++ b/eos/effects/shipprojectilerofbonusmbc1.py @@ -4,6 +4,5 @@ # Ship: Tornado type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Minmatar Battlecruiser").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Large Projectile Turret"), - "speed", ship.getModifiedItemAttr("shipBonusMBC1") * level) + "speed", ship.getModifiedItemAttr("shipBonusMBC1"), skill="Minmatar Battlecruiser") diff --git a/eos/effects/shipprojectiletracking1md2.py b/eos/effects/shipprojectiletracking1md2.py index a550bedb8..8ccf42bd8 100644 --- a/eos/effects/shipprojectiletracking1md2.py +++ b/eos/effects/shipprojectiletracking1md2.py @@ -4,6 +4,5 @@ # Variations of ship: Thrasher (2 of 2) type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Minmatar Destroyer").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Projectile Turret"), - "trackingSpeed", ship.getModifiedItemAttr("shipBonusMD2") * level) + "trackingSpeed", ship.getModifiedItemAttr("shipBonusMD2"), skill="Minmatar Destroyer") diff --git a/eos/effects/shipprojectiletrackinggf.py b/eos/effects/shipprojectiletrackinggf.py index a14b87068..0085c314a 100644 --- a/eos/effects/shipprojectiletrackinggf.py +++ b/eos/effects/shipprojectiletrackinggf.py @@ -5,6 +5,5 @@ # Ship: Dramiel type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Gallente Frigate").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Projectile Turret"), - "trackingSpeed", ship.getModifiedItemAttr("shipBonusGF") * level) + "trackingSpeed", ship.getModifiedItemAttr("shipBonusGF"), skill="Gallente Frigate") diff --git a/eos/effects/shipprojectiletrackingmf2.py b/eos/effects/shipprojectiletrackingmf2.py index 170ffd24f..03dc39d2e 100644 --- a/eos/effects/shipprojectiletrackingmf2.py +++ b/eos/effects/shipprojectiletrackingmf2.py @@ -7,6 +7,5 @@ # Ship: Wolf type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Minmatar Frigate").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Projectile Turret"), - "trackingSpeed", ship.getModifiedItemAttr("shipBonusMF2") * level) + "trackingSpeed", ship.getModifiedItemAttr("shipBonusMF2"), skill="Minmatar Frigate") diff --git a/eos/effects/shipptdmgbonusmb.py b/eos/effects/shipptdmgbonusmb.py index 19d3c5744..bfd3d4028 100644 --- a/eos/effects/shipptdmgbonusmb.py +++ b/eos/effects/shipptdmgbonusmb.py @@ -6,6 +6,5 @@ # Ship: Panther type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Minmatar Battleship").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Large Projectile Turret"), - "damageMultiplier", ship.getModifiedItemAttr("shipBonusMB") * level) + "damageMultiplier", ship.getModifiedItemAttr("shipBonusMB"), skill="Minmatar Battleship") diff --git a/eos/effects/shipptspeedbonusmb2.py b/eos/effects/shipptspeedbonusmb2.py index 1e17e1b24..c403ee452 100644 --- a/eos/effects/shipptspeedbonusmb2.py +++ b/eos/effects/shipptspeedbonusmb2.py @@ -7,6 +7,5 @@ # Ship: Typhoon Fleet Issue type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Minmatar Battleship").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Large Projectile Turret"), - "speed", ship.getModifiedItemAttr("shipBonusMB2") * level) + "speed", ship.getModifiedItemAttr("shipBonusMB2"), skill="Minmatar Battleship") diff --git a/eos/effects/shippturretfalloffbonusgb.py b/eos/effects/shippturretfalloffbonusgb.py index 4286e1bd6..2ee55dd4d 100644 --- a/eos/effects/shippturretfalloffbonusgb.py +++ b/eos/effects/shippturretfalloffbonusgb.py @@ -4,6 +4,5 @@ # Ship: Machariel type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Gallente Battleship").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Large Projectile Turret"), - "falloff", ship.getModifiedItemAttr("shipBonusGB") * level) + "falloff", ship.getModifiedItemAttr("shipBonusGB"), skill="Gallente Battleship") diff --git a/eos/effects/shippturretfalloffbonusgc.py b/eos/effects/shippturretfalloffbonusgc.py index 71f9d9817..315df7bf3 100644 --- a/eos/effects/shippturretfalloffbonusgc.py +++ b/eos/effects/shippturretfalloffbonusgc.py @@ -5,6 +5,5 @@ # Ship: Moracha type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Gallente Cruiser").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Projectile Turret"), - "falloff", ship.getModifiedItemAttr("shipBonusGC") * level) + "falloff", ship.getModifiedItemAttr("shipBonusGC"), skill="Gallente Cruiser") diff --git a/eos/effects/shippturretfalloffbonusmc2.py b/eos/effects/shippturretfalloffbonusmc2.py index 41f753c92..390742d77 100644 --- a/eos/effects/shippturretfalloffbonusmc2.py +++ b/eos/effects/shippturretfalloffbonusmc2.py @@ -4,6 +4,5 @@ # Ship: Stabber type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Minmatar Cruiser").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Projectile Turret"), - "falloff", ship.getModifiedItemAttr("shipBonusMC2") * level) + "falloff", ship.getModifiedItemAttr("shipBonusMC2"), skill="Minmatar Cruiser") diff --git a/eos/effects/shippturretspeedbonusmc.py b/eos/effects/shippturretspeedbonusmc.py index 51e9e5041..608073c62 100644 --- a/eos/effects/shippturretspeedbonusmc.py +++ b/eos/effects/shippturretspeedbonusmc.py @@ -7,6 +7,5 @@ # Ship: Scythe Fleet Issue type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Minmatar Cruiser").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Projectile Turret"), - "speed", ship.getModifiedItemAttr("shipBonusMC") * level) + "speed", ship.getModifiedItemAttr("shipBonusMC"), skill="Minmatar Cruiser") diff --git a/eos/effects/shipremotearmorrange1.py b/eos/effects/shipremotearmorrange1.py index a9aa3dffd..6db4e683e 100644 --- a/eos/effects/shipremotearmorrange1.py +++ b/eos/effects/shipremotearmorrange1.py @@ -4,6 +4,5 @@ # Ship: Oneiros type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Gallente Cruiser").level fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Remote Armor Repairer", - "maxRange", ship.getModifiedItemAttr("shipBonusGC") * level) \ No newline at end of file + "maxRange", ship.getModifiedItemAttr("shipBonusGC"), skill="Gallente Cruiser") \ No newline at end of file diff --git a/eos/effects/shipremotearmorrange2.py b/eos/effects/shipremotearmorrange2.py index 27a51951f..457cd5134 100644 --- a/eos/effects/shipremotearmorrange2.py +++ b/eos/effects/shipremotearmorrange2.py @@ -4,6 +4,5 @@ # Ship: Guardian type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Amarr Cruiser").level fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Remote Armor Repairer", - "maxRange", ship.getModifiedItemAttr("shipBonusAC2") * level) + "maxRange", ship.getModifiedItemAttr("shipBonusAC2"), skill="Amarr Cruiser") diff --git a/eos/effects/shipremotesensordampenercapneedgf.py b/eos/effects/shipremotesensordampenercapneedgf.py index a0b2ac333..ee23bcadb 100644 --- a/eos/effects/shipremotesensordampenercapneedgf.py +++ b/eos/effects/shipremotesensordampenercapneedgf.py @@ -4,6 +4,5 @@ # Variations of ship: Maulus (2 of 2) type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Gallente Frigate").level fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Remote Sensor Damper", - "capacitorNeed", ship.getModifiedItemAttr("shipBonusGF") * level) + "capacitorNeed", ship.getModifiedItemAttr("shipBonusGF"), skill="Gallente Frigate") diff --git a/eos/effects/shiprocketemdmgaf.py b/eos/effects/shiprocketemdmgaf.py index 585ed1074..4e2cf3ff7 100644 --- a/eos/effects/shiprocketemdmgaf.py +++ b/eos/effects/shiprocketemdmgaf.py @@ -5,6 +5,5 @@ # Ship: Vengeance type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Amarr Frigate").level fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Rockets"), - "emDamage", ship.getModifiedItemAttr("shipBonusAF") * level) + "emDamage", ship.getModifiedItemAttr("shipBonusAF"), skill="Amarr Frigate") diff --git a/eos/effects/shiprocketexplosivedmgaf.py b/eos/effects/shiprocketexplosivedmgaf.py index 30f96ac55..94c1b5bae 100644 --- a/eos/effects/shiprocketexplosivedmgaf.py +++ b/eos/effects/shiprocketexplosivedmgaf.py @@ -5,6 +5,5 @@ # Ship: Vengeance type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Amarr Frigate").level fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Rockets"), - "explosiveDamage", ship.getModifiedItemAttr("shipBonusAF") * level) + "explosiveDamage", ship.getModifiedItemAttr("shipBonusAF"), skill="Amarr Frigate") diff --git a/eos/effects/shiprocketexplosivedmgmd1.py b/eos/effects/shiprocketexplosivedmgmd1.py index 064b01bc3..d2ee8f419 100644 --- a/eos/effects/shiprocketexplosivedmgmd1.py +++ b/eos/effects/shiprocketexplosivedmgmd1.py @@ -4,6 +4,5 @@ # Ship: Talwar type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Minmatar Destroyer").level fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Rockets"), - "explosiveDamage", ship.getModifiedItemAttr("shipBonusMD1") * level) + "explosiveDamage", ship.getModifiedItemAttr("shipBonusMD1"), skill="Minmatar Destroyer") diff --git a/eos/effects/shiprocketkineticdmgaf.py b/eos/effects/shiprocketkineticdmgaf.py index c1607ed1a..5198af656 100644 --- a/eos/effects/shiprocketkineticdmgaf.py +++ b/eos/effects/shiprocketkineticdmgaf.py @@ -5,6 +5,5 @@ # Ship: Vengeance type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Amarr Frigate").level fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Rockets"), - "kineticDamage", ship.getModifiedItemAttr("shipBonusAF") * level) + "kineticDamage", ship.getModifiedItemAttr("shipBonusAF"), skill="Amarr Frigate") diff --git a/eos/effects/shiprocketkineticdmgcd1.py b/eos/effects/shiprocketkineticdmgcd1.py index 60a46ece9..9e34cee8f 100644 --- a/eos/effects/shiprocketkineticdmgcd1.py +++ b/eos/effects/shiprocketkineticdmgcd1.py @@ -4,6 +4,5 @@ # Ship: Corax type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Caldari Destroyer").level fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Rockets"), - "kineticDamage", ship.getModifiedItemAttr("shipBonusCD1") * level) + "kineticDamage", ship.getModifiedItemAttr("shipBonusCD1"), skill="Caldari Destroyer") diff --git a/eos/effects/shiprocketrofbonusaf2.py b/eos/effects/shiprocketrofbonusaf2.py index a8e7ff760..3f4ebc575 100644 --- a/eos/effects/shiprocketrofbonusaf2.py +++ b/eos/effects/shiprocketrofbonusaf2.py @@ -4,6 +4,5 @@ # Ship: Malediction type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Amarr Frigate").level fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Missile Launcher Rocket", - "speed", ship.getModifiedItemAttr("shipBonus2AF") * level) + "speed", ship.getModifiedItemAttr("shipBonus2AF"), skill="Amarr Frigate") diff --git a/eos/effects/shiprocketthermaldmgaf.py b/eos/effects/shiprocketthermaldmgaf.py index 005cf9a92..a524f2a43 100644 --- a/eos/effects/shiprocketthermaldmgaf.py +++ b/eos/effects/shiprocketthermaldmgaf.py @@ -5,6 +5,5 @@ # Ship: Vengeance type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Amarr Frigate").level fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Rockets"), - "thermalDamage", ship.getModifiedItemAttr("shipBonusAF") * level) + "thermalDamage", ship.getModifiedItemAttr("shipBonusAF"), skill="Amarr Frigate") diff --git a/eos/effects/shipsetcapneedamarrtacticaldestroyer2.py b/eos/effects/shipsetcapneedamarrtacticaldestroyer2.py index 4f015f818..1efdfc0d0 100644 --- a/eos/effects/shipsetcapneedamarrtacticaldestroyer2.py +++ b/eos/effects/shipsetcapneedamarrtacticaldestroyer2.py @@ -4,6 +4,5 @@ # Ship: Confessor type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Amarr Tactical Destroyer").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Energy Turret"), - "capacitorNeed", ship.getModifiedItemAttr("shipBonusTacticalDestroyerAmarr2") * level) + "capacitorNeed", ship.getModifiedItemAttr("shipBonusTacticalDestroyerAmarr2"), skill="Amarr Tactical Destroyer") diff --git a/eos/effects/shipsetdamageamarrtacticaldestroyer1.py b/eos/effects/shipsetdamageamarrtacticaldestroyer1.py index a959549d3..61ce24b4f 100644 --- a/eos/effects/shipsetdamageamarrtacticaldestroyer1.py +++ b/eos/effects/shipsetdamageamarrtacticaldestroyer1.py @@ -4,6 +4,5 @@ # Ship: Confessor type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Amarr Tactical Destroyer").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Energy Turret"), - "damageMultiplier", ship.getModifiedItemAttr("shipBonusTacticalDestroyerAmarr1") * level) + "damageMultiplier", ship.getModifiedItemAttr("shipBonusTacticalDestroyerAmarr1"), skill="Amarr Tactical Destroyer") diff --git a/eos/effects/shipsetdmgbonus2af.py b/eos/effects/shipsetdmgbonus2af.py index 5557c9280..ae0159b62 100644 --- a/eos/effects/shipsetdmgbonus2af.py +++ b/eos/effects/shipsetdmgbonus2af.py @@ -4,6 +4,5 @@ # Ship: Punisher type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Amarr Frigate").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Energy Turret"), - "damageMultiplier", ship.getModifiedItemAttr("shipBonus2AF") * level) + "damageMultiplier", ship.getModifiedItemAttr("shipBonus2AF"), skill="Amarr Frigate") diff --git a/eos/effects/shipsetdmgbonusaf.py b/eos/effects/shipsetdmgbonusaf.py index e1c1724cd..920aae96c 100644 --- a/eos/effects/shipsetdmgbonusaf.py +++ b/eos/effects/shipsetdmgbonusaf.py @@ -7,6 +7,5 @@ # Ship: Tormentor type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Amarr Frigate").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Energy Turret"), - "damageMultiplier", ship.getModifiedItemAttr("shipBonusAF") * level) + "damageMultiplier", ship.getModifiedItemAttr("shipBonusAF"), skill="Amarr Frigate") diff --git a/eos/effects/shipsettrackingbonusaf.py b/eos/effects/shipsettrackingbonusaf.py index 68383f198..3d5f3e671 100644 --- a/eos/effects/shipsettrackingbonusaf.py +++ b/eos/effects/shipsettrackingbonusaf.py @@ -4,6 +4,5 @@ # Ship: Retribution type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Amarr Frigate").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Energy Turret"), - "trackingSpeed", ship.getModifiedItemAttr("shipBonusAF") * level) + "trackingSpeed", ship.getModifiedItemAttr("shipBonusAF"), skill="Amarr Frigate") diff --git a/eos/effects/shipshieldboost1mbc1.py b/eos/effects/shipshieldboost1mbc1.py index 45d610477..22f5ccf36 100644 --- a/eos/effects/shipshieldboost1mbc1.py +++ b/eos/effects/shipshieldboost1mbc1.py @@ -5,6 +5,5 @@ # Ship: Sleipnir type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Minmatar Battlecruiser").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Operation"), - "shieldBonus", ship.getModifiedItemAttr("shipBonusMBC1") * level) + "shieldBonus", ship.getModifiedItemAttr("shipBonusMBC1"), skill="Minmatar Battlecruiser") diff --git a/eos/effects/shipshieldboostmf.py b/eos/effects/shipshieldboostmf.py index ee53862f3..3eac982bb 100644 --- a/eos/effects/shipshieldboostmf.py +++ b/eos/effects/shipshieldboostmf.py @@ -4,6 +4,5 @@ # Ship: Breacher type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Minmatar Frigate").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Operation"), - "shieldBonus", ship.getModifiedItemAttr("shipBonusMF") * level) + "shieldBonus", ship.getModifiedItemAttr("shipBonusMF"), skill="Minmatar Frigate") diff --git a/eos/effects/shipshieldemresistance1cbc2.py b/eos/effects/shipshieldemresistance1cbc2.py index 3c5db21a4..7bd2ae888 100644 --- a/eos/effects/shipshieldemresistance1cbc2.py +++ b/eos/effects/shipshieldemresistance1cbc2.py @@ -6,5 +6,4 @@ # Ship: Nighthawk type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Caldari Battlecruiser").level - fit.ship.boostItemAttr("shieldEmDamageResonance", ship.getModifiedItemAttr("shipBonusCBC2") * level) + fit.ship.boostItemAttr("shieldEmDamageResonance", ship.getModifiedItemAttr("shipBonusCBC2"), skill="Caldari Battlecruiser") diff --git a/eos/effects/shipshieldemresistancecc2.py b/eos/effects/shipshieldemresistancecc2.py index 4d5f640dd..13fc8fef3 100644 --- a/eos/effects/shipshieldemresistancecc2.py +++ b/eos/effects/shipshieldemresistancecc2.py @@ -4,5 +4,4 @@ # Variations of ship: Moa (3 of 4) type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Caldari Cruiser").level - fit.ship.boostItemAttr("shieldEmDamageResonance", ship.getModifiedItemAttr("shipBonusCC2") * level) + fit.ship.boostItemAttr("shieldEmDamageResonance", ship.getModifiedItemAttr("shipBonusCC2"), skill="Caldari Cruiser") diff --git a/eos/effects/shipshieldemresistancecf2.py b/eos/effects/shipshieldemresistancecf2.py index 250bfe02c..9fd39ede5 100644 --- a/eos/effects/shipshieldemresistancecf2.py +++ b/eos/effects/shipshieldemresistancecf2.py @@ -6,5 +6,4 @@ # Ship: Whiptail type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Caldari Frigate").level - fit.ship.boostItemAttr("shieldEmDamageResonance", ship.getModifiedItemAttr("shipBonusCF") * level) + fit.ship.boostItemAttr("shieldEmDamageResonance", ship.getModifiedItemAttr("shipBonusCF"), skill="Caldari Frigate") diff --git a/eos/effects/shipshieldexplosiveresistance1cbc2.py b/eos/effects/shipshieldexplosiveresistance1cbc2.py index 2c394026f..59ce3938b 100644 --- a/eos/effects/shipshieldexplosiveresistance1cbc2.py +++ b/eos/effects/shipshieldexplosiveresistance1cbc2.py @@ -6,5 +6,4 @@ # Ship: Nighthawk type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Caldari Battlecruiser").level - fit.ship.boostItemAttr("shieldExplosiveDamageResonance", ship.getModifiedItemAttr("shipBonusCBC2") * level) + fit.ship.boostItemAttr("shieldExplosiveDamageResonance", ship.getModifiedItemAttr("shipBonusCBC2"), skill="Caldari Battlecruiser") diff --git a/eos/effects/shipshieldexplosiveresistancecc2.py b/eos/effects/shipshieldexplosiveresistancecc2.py index 4f2a117b3..e40a36269 100644 --- a/eos/effects/shipshieldexplosiveresistancecc2.py +++ b/eos/effects/shipshieldexplosiveresistancecc2.py @@ -4,5 +4,4 @@ # Variations of ship: Moa (3 of 4) type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Caldari Cruiser").level - fit.ship.boostItemAttr("shieldExplosiveDamageResonance", ship.getModifiedItemAttr("shipBonusCC2") * level) + fit.ship.boostItemAttr("shieldExplosiveDamageResonance", ship.getModifiedItemAttr("shipBonusCC2"), skill="Caldari Cruiser") diff --git a/eos/effects/shipshieldexplosiveresistancecf2.py b/eos/effects/shipshieldexplosiveresistancecf2.py index e6e65956f..d71caf7c9 100644 --- a/eos/effects/shipshieldexplosiveresistancecf2.py +++ b/eos/effects/shipshieldexplosiveresistancecf2.py @@ -6,5 +6,4 @@ # Ship: Whiptail type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Caldari Frigate").level - fit.ship.boostItemAttr("shieldExplosiveDamageResonance", ship.getModifiedItemAttr("shipBonusCF") * level) + fit.ship.boostItemAttr("shieldExplosiveDamageResonance", ship.getModifiedItemAttr("shipBonusCF"), skill="Caldari Frigate") diff --git a/eos/effects/shipshieldkineticresistance1cbc2.py b/eos/effects/shipshieldkineticresistance1cbc2.py index dc4bb30af..68572bf63 100644 --- a/eos/effects/shipshieldkineticresistance1cbc2.py +++ b/eos/effects/shipshieldkineticresistance1cbc2.py @@ -6,5 +6,4 @@ # Ship: Nighthawk type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Caldari Battlecruiser").level - fit.ship.boostItemAttr("shieldKineticDamageResonance", ship.getModifiedItemAttr("shipBonusCBC2") * level) + fit.ship.boostItemAttr("shieldKineticDamageResonance", ship.getModifiedItemAttr("shipBonusCBC2"), skill="Caldari Battlecruiser") diff --git a/eos/effects/shipshieldkineticresistancecc2.py b/eos/effects/shipshieldkineticresistancecc2.py index c64f38df8..ee429305f 100644 --- a/eos/effects/shipshieldkineticresistancecc2.py +++ b/eos/effects/shipshieldkineticresistancecc2.py @@ -4,5 +4,4 @@ # Variations of ship: Moa (3 of 4) type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Caldari Cruiser").level - fit.ship.boostItemAttr("shieldKineticDamageResonance", ship.getModifiedItemAttr("shipBonusCC2") * level) + fit.ship.boostItemAttr("shieldKineticDamageResonance", ship.getModifiedItemAttr("shipBonusCC2"), skill="Caldari Cruiser") diff --git a/eos/effects/shipshieldkineticresistancecf2.py b/eos/effects/shipshieldkineticresistancecf2.py index 3f38bcd0a..efbdbb184 100644 --- a/eos/effects/shipshieldkineticresistancecf2.py +++ b/eos/effects/shipshieldkineticresistancecf2.py @@ -6,5 +6,4 @@ # Ship: Whiptail type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Caldari Frigate").level - fit.ship.boostItemAttr("shieldKineticDamageResonance", ship.getModifiedItemAttr("shipBonusCF") * level) + fit.ship.boostItemAttr("shieldKineticDamageResonance", ship.getModifiedItemAttr("shipBonusCF"), skill="Caldari Frigate") diff --git a/eos/effects/shipshieldthermalresistance1cbc2.py b/eos/effects/shipshieldthermalresistance1cbc2.py index 0e4f2fc78..417b3aeac 100644 --- a/eos/effects/shipshieldthermalresistance1cbc2.py +++ b/eos/effects/shipshieldthermalresistance1cbc2.py @@ -6,5 +6,4 @@ # Ship: Nighthawk type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Caldari Battlecruiser").level - fit.ship.boostItemAttr("shieldThermalDamageResonance", ship.getModifiedItemAttr("shipBonusCBC2") * level) + fit.ship.boostItemAttr("shieldThermalDamageResonance", ship.getModifiedItemAttr("shipBonusCBC2"), skill="Caldari Battlecruiser") diff --git a/eos/effects/shipshieldthermalresistancecc2.py b/eos/effects/shipshieldthermalresistancecc2.py index 85156dda0..c84d5007a 100644 --- a/eos/effects/shipshieldthermalresistancecc2.py +++ b/eos/effects/shipshieldthermalresistancecc2.py @@ -4,5 +4,4 @@ # Variations of ship: Moa (3 of 4) type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Caldari Cruiser").level - fit.ship.boostItemAttr("shieldThermalDamageResonance", ship.getModifiedItemAttr("shipBonusCC2") * level) + fit.ship.boostItemAttr("shieldThermalDamageResonance", ship.getModifiedItemAttr("shipBonusCC2"), skill="Caldari Cruiser") diff --git a/eos/effects/shipshieldthermalresistancecf2.py b/eos/effects/shipshieldthermalresistancecf2.py index ae271d8e3..df75d3e00 100644 --- a/eos/effects/shipshieldthermalresistancecf2.py +++ b/eos/effects/shipshieldthermalresistancecf2.py @@ -6,5 +6,4 @@ # Ship: Whiptail type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Caldari Frigate").level - fit.ship.boostItemAttr("shieldThermalDamageResonance", ship.getModifiedItemAttr("shipBonusCF") * level) + fit.ship.boostItemAttr("shieldThermalDamageResonance", ship.getModifiedItemAttr("shipBonusCF"), skill="Caldari Frigate") diff --git a/eos/effects/shipshieldtransferrange1.py b/eos/effects/shipshieldtransferrange1.py index 77ab67b1e..aee106097 100644 --- a/eos/effects/shipshieldtransferrange1.py +++ b/eos/effects/shipshieldtransferrange1.py @@ -5,6 +5,5 @@ # Ship: Etana type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Caldari Cruiser").level fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Remote Shield Booster", - "shieldTransferRange", ship.getModifiedItemAttr("shipBonusCC") * level) + "shieldTransferRange", ship.getModifiedItemAttr("shipBonusCC"), skill="Caldari Cruiser") diff --git a/eos/effects/shipshieldtransferrange2.py b/eos/effects/shipshieldtransferrange2.py index efeb6691d..9246c9005 100644 --- a/eos/effects/shipshieldtransferrange2.py +++ b/eos/effects/shipshieldtransferrange2.py @@ -4,6 +4,5 @@ # Ship: Scimitar type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Minmatar Cruiser").level fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Remote Shield Booster", - "shieldTransferRange", ship.getModifiedItemAttr("shipBonusMC2") * level) + "shieldTransferRange", ship.getModifiedItemAttr("shipBonusMC2"), skill="Minmatar Cruiser") diff --git a/eos/effects/shipshtdmgbonusgf.py b/eos/effects/shipshtdmgbonusgf.py index 21412605f..d5bd3f266 100644 --- a/eos/effects/shipshtdmgbonusgf.py +++ b/eos/effects/shipshtdmgbonusgf.py @@ -8,6 +8,5 @@ # Ship: Taranis type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Gallente Frigate").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Hybrid Turret"), - "damageMultiplier", ship.getModifiedItemAttr("shipBonusGF") * level) + "damageMultiplier", ship.getModifiedItemAttr("shipBonusGF"), skill="Gallente Frigate") diff --git a/eos/effects/shipshtoptimalbonusgf.py b/eos/effects/shipshtoptimalbonusgf.py index 6c674c970..0a64f25d8 100644 --- a/eos/effects/shipshtoptimalbonusgf.py +++ b/eos/effects/shipshtoptimalbonusgf.py @@ -4,6 +4,5 @@ # Ship: Ares type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Gallente Frigate").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Hybrid Turret"), - "maxRange", ship.getModifiedItemAttr("shipBonusGF") * level) + "maxRange", ship.getModifiedItemAttr("shipBonusGF"), skill="Gallente Frigate") diff --git a/eos/effects/shipshtrofgallentetacticaldestroyer1.py b/eos/effects/shipshtrofgallentetacticaldestroyer1.py index 3d288c289..989706ef0 100644 --- a/eos/effects/shipshtrofgallentetacticaldestroyer1.py +++ b/eos/effects/shipshtrofgallentetacticaldestroyer1.py @@ -4,6 +4,5 @@ # Ship: Hecate type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Gallente Tactical Destroyer").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Hybrid Turret"), - "speed", ship.getModifiedItemAttr("shipBonusTacticalDestroyerGallente1") * level) + "speed", ship.getModifiedItemAttr("shipBonusTacticalDestroyerGallente1"), skill="Gallente Tactical Destroyer") diff --git a/eos/effects/shipshttrackinggallentetacticaldestroyer2.py b/eos/effects/shipshttrackinggallentetacticaldestroyer2.py index a2d6a612c..b78f3e29f 100644 --- a/eos/effects/shipshttrackinggallentetacticaldestroyer2.py +++ b/eos/effects/shipshttrackinggallentetacticaldestroyer2.py @@ -4,6 +4,5 @@ # Ship: Hecate type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Gallente Tactical Destroyer").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Hybrid Turret"), - "trackingSpeed", ship.getModifiedItemAttr("shipBonusTacticalDestroyerGallente2") * level) + "trackingSpeed", ship.getModifiedItemAttr("shipBonusTacticalDestroyerGallente2"), skill="Gallente Tactical Destroyer") diff --git a/eos/effects/shipsiegelauncherrofbonus2cb.py b/eos/effects/shipsiegelauncherrofbonus2cb.py index 7f4eb514a..a3a4a2123 100644 --- a/eos/effects/shipsiegelauncherrofbonus2cb.py +++ b/eos/effects/shipsiegelauncherrofbonus2cb.py @@ -5,6 +5,5 @@ # Ship: Raven State Issue type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Caldari Battleship").level fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Missile Launcher Torpedo", - "speed", ship.getModifiedItemAttr("shipBonus2CB") * level) + "speed", ship.getModifiedItemAttr("shipBonus2CB"), skill="Caldari Battleship") diff --git a/eos/effects/shipsmallmissileemdmgcf2.py b/eos/effects/shipsmallmissileemdmgcf2.py index 38b2cd0e8..224482c50 100644 --- a/eos/effects/shipsmallmissileemdmgcf2.py +++ b/eos/effects/shipsmallmissileemdmgcf2.py @@ -4,6 +4,5 @@ # Ship: Kestrel type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Caldari Frigate").level fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Rockets") or mod.charge.requiresSkill("Light Missiles"), - "emDamage", ship.getModifiedItemAttr("shipBonusCF2") * level) + "emDamage", ship.getModifiedItemAttr("shipBonusCF2"), skill="Caldari Frigate") diff --git a/eos/effects/shipsmallmissileexpdmgcf2.py b/eos/effects/shipsmallmissileexpdmgcf2.py index 978b6da06..8fb0c32f3 100644 --- a/eos/effects/shipsmallmissileexpdmgcf2.py +++ b/eos/effects/shipsmallmissileexpdmgcf2.py @@ -4,6 +4,5 @@ # Ship: Kestrel type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Caldari Frigate").level fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Rockets") or mod.charge.requiresSkill("Light Missiles"), - "explosiveDamage", ship.getModifiedItemAttr("shipBonusCF2") * level) + "explosiveDamage", ship.getModifiedItemAttr("shipBonusCF2"), skill="Caldari Frigate") diff --git a/eos/effects/shipsmallmissilekindmgcf2.py b/eos/effects/shipsmallmissilekindmgcf2.py index 63237ba53..946429934 100644 --- a/eos/effects/shipsmallmissilekindmgcf2.py +++ b/eos/effects/shipsmallmissilekindmgcf2.py @@ -4,6 +4,5 @@ # Ship: Kestrel type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Caldari Frigate").level fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Rockets") or mod.charge.requiresSkill("Light Missiles"), - "kineticDamage", ship.getModifiedItemAttr("shipBonusCF2") * level) + "kineticDamage", ship.getModifiedItemAttr("shipBonusCF2"), skill="Caldari Frigate") diff --git a/eos/effects/shipsmallmissilethermdmgcf2.py b/eos/effects/shipsmallmissilethermdmgcf2.py index a22928868..d768a0adb 100644 --- a/eos/effects/shipsmallmissilethermdmgcf2.py +++ b/eos/effects/shipsmallmissilethermdmgcf2.py @@ -4,6 +4,5 @@ # Ship: Kestrel type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Caldari Frigate").level fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Rockets") or mod.charge.requiresSkill("Light Missiles"), - "thermalDamage", ship.getModifiedItemAttr("shipBonusCF2") * level) + "thermalDamage", ship.getModifiedItemAttr("shipBonusCF2"), skill="Caldari Frigate") diff --git a/eos/effects/shipsptdamageminmatartacticaldestroyer1.py b/eos/effects/shipsptdamageminmatartacticaldestroyer1.py index 349767adf..6d6f26a27 100644 --- a/eos/effects/shipsptdamageminmatartacticaldestroyer1.py +++ b/eos/effects/shipsptdamageminmatartacticaldestroyer1.py @@ -4,6 +4,5 @@ # Ship: Svipul type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Minmatar Tactical Destroyer").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Projectile Turret"), - "damageMultiplier", ship.getModifiedItemAttr("shipBonusTacticalDestroyerMinmatar1") * level) + "damageMultiplier", ship.getModifiedItemAttr("shipBonusTacticalDestroyerMinmatar1"), skill="Minmatar Tactical Destroyer") diff --git a/eos/effects/shipsptoptimalbonusmf.py b/eos/effects/shipsptoptimalbonusmf.py index 7b56b98c6..66d544a58 100644 --- a/eos/effects/shipsptoptimalbonusmf.py +++ b/eos/effects/shipsptoptimalbonusmf.py @@ -4,6 +4,5 @@ # Ship: Chremoas type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Minmatar Frigate").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Projectile Turret"), - "maxRange", ship.getModifiedItemAttr("shipBonusMF") * level) + "maxRange", ship.getModifiedItemAttr("shipBonusMF"), skill="Minmatar Frigate") diff --git a/eos/effects/shipsptoptimalminmatartacticaldestroyer2.py b/eos/effects/shipsptoptimalminmatartacticaldestroyer2.py index da0ff3d12..9eae30565 100644 --- a/eos/effects/shipsptoptimalminmatartacticaldestroyer2.py +++ b/eos/effects/shipsptoptimalminmatartacticaldestroyer2.py @@ -4,6 +4,5 @@ # Ship: Svipul type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Minmatar Tactical Destroyer").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Projectile Turret"), - "maxRange", ship.getModifiedItemAttr("shipBonusTacticalDestroyerMinmatar2") * level) + "maxRange", ship.getModifiedItemAttr("shipBonusTacticalDestroyerMinmatar2"), skill="Minmatar Tactical Destroyer") diff --git a/eos/effects/shipstasiswebrangebonusmb.py b/eos/effects/shipstasiswebrangebonusmb.py index 3a0c4d64c..d1f250b1a 100644 --- a/eos/effects/shipstasiswebrangebonusmb.py +++ b/eos/effects/shipstasiswebrangebonusmb.py @@ -4,6 +4,5 @@ # Ship: Bhaalgorn type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Minmatar Battleship").level fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Stasis Web", - "maxRange", ship.getModifiedItemAttr("shipBonusMB") * level) + "maxRange", ship.getModifiedItemAttr("shipBonusMB"), skill="Minmatar Battleship") diff --git a/eos/effects/shipstasiswebrangebonusmc2.py b/eos/effects/shipstasiswebrangebonusmc2.py index cd7fafa56..059a9dc7c 100644 --- a/eos/effects/shipstasiswebrangebonusmc2.py +++ b/eos/effects/shipstasiswebrangebonusmc2.py @@ -4,6 +4,5 @@ # Ship: Ashimmu type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Minmatar Cruiser").level fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Stasis Web", - "maxRange", ship.getModifiedItemAttr("shipBonusMC2") * level) + "maxRange", ship.getModifiedItemAttr("shipBonusMC2"), skill="Minmatar Cruiser") diff --git a/eos/effects/shipstasiswebstrengthbonusmc2.py b/eos/effects/shipstasiswebstrengthbonusmc2.py index 52fae86aa..a52165853 100644 --- a/eos/effects/shipstasiswebstrengthbonusmc2.py +++ b/eos/effects/shipstasiswebstrengthbonusmc2.py @@ -4,6 +4,5 @@ # Ship: Vigilant type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Minmatar Cruiser").level fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Stasis Web", - "speedFactor", ship.getModifiedItemAttr("shipBonusMC2") * level) + "speedFactor", ship.getModifiedItemAttr("shipBonusMC2"), skill="Minmatar Cruiser") diff --git a/eos/effects/shipstasiswebstrengthbonusmf2.py b/eos/effects/shipstasiswebstrengthbonusmf2.py index e09d93e06..fc1185cf1 100644 --- a/eos/effects/shipstasiswebstrengthbonusmf2.py +++ b/eos/effects/shipstasiswebstrengthbonusmf2.py @@ -4,6 +4,5 @@ # Ship: Daredevil type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Minmatar Frigate").level fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Stasis Web", - "speedFactor", ship.getModifiedItemAttr("shipBonusMF2") * level) + "speedFactor", ship.getModifiedItemAttr("shipBonusMF2"), skill="Minmatar Frigate") diff --git a/eos/effects/shiptcapneedbonusac.py b/eos/effects/shiptcapneedbonusac.py index 2f6dbc21d..8bece86f4 100644 --- a/eos/effects/shiptcapneedbonusac.py +++ b/eos/effects/shiptcapneedbonusac.py @@ -6,6 +6,5 @@ # Ship: Zealot type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Amarr Cruiser").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Energy Turret"), - "capacitorNeed", ship.getModifiedItemAttr("shipBonusAC") * level) + "capacitorNeed", ship.getModifiedItemAttr("shipBonusAC"), skill="Amarr Cruiser") diff --git a/eos/effects/shiptorpedoaoecloudsize1cb.py b/eos/effects/shiptorpedoaoecloudsize1cb.py index e894754e6..b079f5663 100644 --- a/eos/effects/shiptorpedoaoecloudsize1cb.py +++ b/eos/effects/shiptorpedoaoecloudsize1cb.py @@ -4,6 +4,5 @@ # Ship: Raven Navy Issue type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Caldari Battleship").level fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Torpedoes"), - "aoeCloudSize", ship.getModifiedItemAttr("shipBonusCB") * level) + "aoeCloudSize", ship.getModifiedItemAttr("shipBonusCB"), skill="Caldari Battleship") diff --git a/eos/effects/shiptorpedorofcb.py b/eos/effects/shiptorpedorofcb.py index 373bbff59..86d0e30e3 100644 --- a/eos/effects/shiptorpedorofcb.py +++ b/eos/effects/shiptorpedorofcb.py @@ -4,6 +4,5 @@ # Ship: Scorpion Navy Issue type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Caldari Battleship").level fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Missile Launcher Torpedo", - "speed", ship.getModifiedItemAttr("shipBonusCB") * level) + "speed", ship.getModifiedItemAttr("shipBonusCB"), skill="Caldari Battleship") diff --git a/eos/effects/shiptorpedosvelocitybonuscb3.py b/eos/effects/shiptorpedosvelocitybonuscb3.py index 227b32093..6c4f582a5 100644 --- a/eos/effects/shiptorpedosvelocitybonuscb3.py +++ b/eos/effects/shiptorpedosvelocitybonuscb3.py @@ -4,6 +4,5 @@ # Variations of ship: Raven (3 of 4) type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Caldari Battleship").level fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Torpedoes"), - "maxVelocity", ship.getModifiedItemAttr("shipBonusCB3") * level) + "maxVelocity", ship.getModifiedItemAttr("shipBonusCB3"), skill="Caldari Battleship") diff --git a/eos/effects/shiptrackingbonusab.py b/eos/effects/shiptrackingbonusab.py index 37ace999b..25368aff4 100644 --- a/eos/effects/shiptrackingbonusab.py +++ b/eos/effects/shiptrackingbonusab.py @@ -4,6 +4,5 @@ # Ship: Nightmare type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Amarr Battleship").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Large Energy Turret"), - "trackingSpeed", ship.getModifiedItemAttr("shipBonusAB2") * level) + "trackingSpeed", ship.getModifiedItemAttr("shipBonusAB2"), skill="Amarr Battleship") diff --git a/eos/effects/shiptrackinglinkrange1fixed.py b/eos/effects/shiptrackinglinkrange1fixed.py index 1d5e4825b..be139ea71 100644 --- a/eos/effects/shiptrackinglinkrange1fixed.py +++ b/eos/effects/shiptrackinglinkrange1fixed.py @@ -4,6 +4,5 @@ # Ship: Scimitar type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Minmatar Cruiser").level fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Remote Tracking Computer", - "maxRange", ship.getModifiedItemAttr("shipBonusMC") * level) + "maxRange", ship.getModifiedItemAttr("shipBonusMC"), skill="Minmatar Cruiser") diff --git a/eos/effects/shiptrackinglinkrange2group.py b/eos/effects/shiptrackinglinkrange2group.py index 2c77ee435..537d0d46e 100644 --- a/eos/effects/shiptrackinglinkrange2group.py +++ b/eos/effects/shiptrackinglinkrange2group.py @@ -4,6 +4,5 @@ # Ship: Oneiros type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Gallente Cruiser").level fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Remote Tracking Computer", - "maxRange", ship.getModifiedItemAttr("shipBonusGC2") * level) + "maxRange", ship.getModifiedItemAttr("shipBonusGC2"), skill="Gallente Cruiser") diff --git a/eos/effects/shipvelocitybonusai.py b/eos/effects/shipvelocitybonusai.py index 5e8c3a4e0..b9f5257d9 100644 --- a/eos/effects/shipvelocitybonusai.py +++ b/eos/effects/shipvelocitybonusai.py @@ -5,5 +5,4 @@ # Ship: Prorator type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Amarr Industrial").level - fit.ship.boostItemAttr("maxVelocity", ship.getModifiedItemAttr("shipBonusAI") * level) + fit.ship.boostItemAttr("maxVelocity", ship.getModifiedItemAttr("shipBonusAI"), skill="Amarr Industrial") diff --git a/eos/effects/shipvelocitybonusmi.py b/eos/effects/shipvelocitybonusmi.py index a1bd2a747..a29a8295d 100644 --- a/eos/effects/shipvelocitybonusmi.py +++ b/eos/effects/shipvelocitybonusmi.py @@ -6,5 +6,4 @@ # Ship: Prowler type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Minmatar Industrial").level - fit.ship.boostItemAttr("maxVelocity", ship.getModifiedItemAttr("shipBonusMI") * level) + fit.ship.boostItemAttr("maxVelocity", ship.getModifiedItemAttr("shipBonusMI"), skill="Minmatar Industrial") diff --git a/eos/effects/subsystembonusamarrdefensive2remotearmorrepairamount.py b/eos/effects/subsystembonusamarrdefensive2remotearmorrepairamount.py index 4e35ca545..f14c08301 100644 --- a/eos/effects/subsystembonusamarrdefensive2remotearmorrepairamount.py +++ b/eos/effects/subsystembonusamarrdefensive2remotearmorrepairamount.py @@ -4,6 +4,5 @@ # Subsystem: Legion Defensive - Adaptive Augmenter type = "passive" def handler(fit, module, context): - level = fit.character.getSkill("Amarr Defensive Systems").level fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Remote Armor Repairer", - "armorDamageAmount", module.getModifiedItemAttr("subsystemBonusAmarrDefensive2") * level) + "armorDamageAmount", module.getModifiedItemAttr("subsystemBonusAmarrDefensive2"), skill="Amarr Defensive Systems") diff --git a/eos/effects/subsystembonusamarrdefensivearmoredwarfare.py b/eos/effects/subsystembonusamarrdefensivearmoredwarfare.py index f4c01db82..b58cf7521 100644 --- a/eos/effects/subsystembonusamarrdefensivearmoredwarfare.py +++ b/eos/effects/subsystembonusamarrdefensivearmoredwarfare.py @@ -4,6 +4,5 @@ # Subsystem: Legion Defensive - Warfare Processor type = "passive" def handler(fit, module, context): - level = fit.character.getSkill("Amarr Defensive Systems").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Armored Warfare Specialist"), - "commandBonus", module.getModifiedItemAttr("subsystemBonusAmarrDefensive") * level) + "commandBonus", module.getModifiedItemAttr("subsystemBonusAmarrDefensive"), skill="Amarr Defensive Systems") diff --git a/eos/effects/subsystembonusamarrdefensivearmorhp.py b/eos/effects/subsystembonusamarrdefensivearmorhp.py index a8b05d4a9..73eb74a9e 100644 --- a/eos/effects/subsystembonusamarrdefensivearmorhp.py +++ b/eos/effects/subsystembonusamarrdefensivearmorhp.py @@ -4,5 +4,4 @@ # Subsystem: Legion Defensive - Augmented Plating type = "passive" def handler(fit, module, context): - level = fit.character.getSkill("Amarr Defensive Systems").level - fit.ship.boostItemAttr("armorHP", module.getModifiedItemAttr("subsystemBonusAmarrDefensive") * level) + fit.ship.boostItemAttr("armorHP", module.getModifiedItemAttr("subsystemBonusAmarrDefensive"), skill="Amarr Defensive Systems") diff --git a/eos/effects/subsystembonusamarrdefensivearmorrepairamount.py b/eos/effects/subsystembonusamarrdefensivearmorrepairamount.py index c87828802..79b4176b1 100644 --- a/eos/effects/subsystembonusamarrdefensivearmorrepairamount.py +++ b/eos/effects/subsystembonusamarrdefensivearmorrepairamount.py @@ -4,6 +4,5 @@ # Subsystem: Legion Defensive - Nanobot Injector type = "passive" def handler(fit, module, context): - level = fit.character.getSkill("Amarr Defensive Systems").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Repair Systems"), - "armorDamageAmount", module.getModifiedItemAttr("subsystemBonusAmarrDefensive") * level) + "armorDamageAmount", module.getModifiedItemAttr("subsystemBonusAmarrDefensive"), skill="Amarr Defensive Systems") diff --git a/eos/effects/subsystembonusamarrdefensivearmorresistance.py b/eos/effects/subsystembonusamarrdefensivearmorresistance.py index 2be7ffa8c..d032065e3 100644 --- a/eos/effects/subsystembonusamarrdefensivearmorresistance.py +++ b/eos/effects/subsystembonusamarrdefensivearmorresistance.py @@ -4,6 +4,5 @@ # Subsystem: Legion Defensive - Adaptive Augmenter type = "passive" def handler(fit, module, context): - level = fit.character.getSkill("Amarr Defensive Systems").level for type in ("Em", "Explosive", "Kinetic", "Thermal"): - fit.ship.boostItemAttr("armor{0}DamageResonance".format(type), module.getModifiedItemAttr("subsystemBonusAmarrDefensive") * level) + fit.ship.boostItemAttr("armor{0}DamageResonance".format(type), module.getModifiedItemAttr("subsystemBonusAmarrDefensive"), skill="Amarr Defensive Systems") diff --git a/eos/effects/subsystembonusamarrdefensiveinformationwarfare.py b/eos/effects/subsystembonusamarrdefensiveinformationwarfare.py index c3e11dd1a..0abc92cee 100644 --- a/eos/effects/subsystembonusamarrdefensiveinformationwarfare.py +++ b/eos/effects/subsystembonusamarrdefensiveinformationwarfare.py @@ -4,6 +4,5 @@ # Subsystem: Legion Defensive - Warfare Processor type = "passive" def handler(fit, module, context): - level = fit.character.getSkill("Amarr Defensive Systems").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Information Warfare Specialist"), - "commandBonus", module.getModifiedItemAttr("subsystemBonusAmarrDefensive") * level) + "commandBonus", module.getModifiedItemAttr("subsystemBonusAmarrDefensive"), skill="Amarr Defensive Systems") diff --git a/eos/effects/subsystembonusamarrdefensiveinformationwarfarehidden.py b/eos/effects/subsystembonusamarrdefensiveinformationwarfarehidden.py index 95dfef68d..c41e0ee70 100644 --- a/eos/effects/subsystembonusamarrdefensiveinformationwarfarehidden.py +++ b/eos/effects/subsystembonusamarrdefensiveinformationwarfarehidden.py @@ -4,6 +4,5 @@ # Subsystem: Legion Defensive - Warfare Processor type = "passive" def handler(fit, module, context): - level = fit.character.getSkill("Amarr Defensive Systems").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Information Warfare Specialist"), - "commandBonusHidden", module.getModifiedItemAttr("subsystemBonusAmarrDefensive") * level) + "commandBonusHidden", module.getModifiedItemAttr("subsystemBonusAmarrDefensive"), skill="Amarr Defensive Systems") diff --git a/eos/effects/subsystembonusamarrdefensiveskirmishwarfare.py b/eos/effects/subsystembonusamarrdefensiveskirmishwarfare.py index 436f6b83b..7ba436d07 100644 --- a/eos/effects/subsystembonusamarrdefensiveskirmishwarfare.py +++ b/eos/effects/subsystembonusamarrdefensiveskirmishwarfare.py @@ -4,6 +4,5 @@ # Subsystem: Legion Defensive - Warfare Processor type = "passive" def handler(fit, module, context): - level = fit.character.getSkill("Amarr Defensive Systems").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Skirmish Warfare Specialist"), - "commandBonus", module.getModifiedItemAttr("subsystemBonusAmarrDefensive") * level) + "commandBonus", module.getModifiedItemAttr("subsystemBonusAmarrDefensive"), skill="Amarr Defensive Systems") diff --git a/eos/effects/subsystembonusamarrelectronic2maxtargetingrange.py b/eos/effects/subsystembonusamarrelectronic2maxtargetingrange.py index 6da2ffd67..d27d3e8da 100644 --- a/eos/effects/subsystembonusamarrelectronic2maxtargetingrange.py +++ b/eos/effects/subsystembonusamarrelectronic2maxtargetingrange.py @@ -4,5 +4,4 @@ # Subsystem: Legion Electronics - Dissolution Sequencer type = "passive" def handler(fit, module, context): - level = fit.character.getSkill("Amarr Electronic Systems").level - fit.ship.boostItemAttr("maxTargetRange", module.getModifiedItemAttr("subsystemBonusAmarrElectronic2") * level) + fit.ship.boostItemAttr("maxTargetRange", module.getModifiedItemAttr("subsystemBonusAmarrElectronic2"), skill="Amarr Electronic Systems") diff --git a/eos/effects/subsystembonusamarrelectronic2scanresolution.py b/eos/effects/subsystembonusamarrelectronic2scanresolution.py index c82a03509..781e98f49 100644 --- a/eos/effects/subsystembonusamarrelectronic2scanresolution.py +++ b/eos/effects/subsystembonusamarrelectronic2scanresolution.py @@ -4,5 +4,4 @@ # Subsystem: Legion Electronics - Tactical Targeting Network type = "passive" def handler(fit, module, context): - level = fit.character.getSkill("Amarr Electronic Systems").level - fit.ship.boostItemAttr("scanResolution", module.getModifiedItemAttr("subsystemBonusAmarrElectronic2") * level) + fit.ship.boostItemAttr("scanResolution", module.getModifiedItemAttr("subsystemBonusAmarrElectronic2"), skill="Amarr Electronic Systems") diff --git a/eos/effects/subsystembonusamarrelectronic2tractorbeamrange.py b/eos/effects/subsystembonusamarrelectronic2tractorbeamrange.py index c3bc06182..becc360d4 100644 --- a/eos/effects/subsystembonusamarrelectronic2tractorbeamrange.py +++ b/eos/effects/subsystembonusamarrelectronic2tractorbeamrange.py @@ -4,6 +4,5 @@ # Subsystem: Legion Electronics - Emergent Locus Analyzer type = "passive" def handler(fit, module, context): - level = fit.character.getSkill("Amarr Electronic Systems").level fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Tractor Beam", - "maxRange", module.getModifiedItemAttr("subsystemBonusAmarrElectronic2") * level) + "maxRange", module.getModifiedItemAttr("subsystemBonusAmarrElectronic2"), skill="Amarr Electronic Systems") diff --git a/eos/effects/subsystembonusamarrelectronic2tractorbeamvelocity.py b/eos/effects/subsystembonusamarrelectronic2tractorbeamvelocity.py index ae030cd20..5b2e8e97c 100644 --- a/eos/effects/subsystembonusamarrelectronic2tractorbeamvelocity.py +++ b/eos/effects/subsystembonusamarrelectronic2tractorbeamvelocity.py @@ -4,6 +4,5 @@ # Subsystem: Legion Electronics - Emergent Locus Analyzer type = "passive" def handler(fit, module, context): - level = fit.character.getSkill("Amarr Electronic Systems").level fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Tractor Beam", - "maxTractorVelocity", module.getModifiedItemAttr("subsystemBonusAmarrElectronic2") * level) + "maxTractorVelocity", module.getModifiedItemAttr("subsystemBonusAmarrElectronic2"), skill="Amarr Electronic Systems") diff --git a/eos/effects/subsystembonusamarrelectronicenergydestabilizeramount.py b/eos/effects/subsystembonusamarrelectronicenergydestabilizeramount.py index 60584c791..9cb8a1ace 100644 --- a/eos/effects/subsystembonusamarrelectronicenergydestabilizeramount.py +++ b/eos/effects/subsystembonusamarrelectronicenergydestabilizeramount.py @@ -4,6 +4,5 @@ # Subsystem: Legion Electronics - Energy Parasitic Complex type = "passive" def handler(fit, module, context): - level = fit.character.getSkill("Amarr Electronic Systems").level fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Destabilizer", - "energyDestabilizationAmount", module.getModifiedItemAttr("subsystemBonusAmarrElectronic") * level) + "energyDestabilizationAmount", module.getModifiedItemAttr("subsystemBonusAmarrElectronic"), skill="Amarr Electronic Systems") diff --git a/eos/effects/subsystembonusamarrelectronicenergyvampireamount.py b/eos/effects/subsystembonusamarrelectronicenergyvampireamount.py index 62af65629..2eb6990b4 100644 --- a/eos/effects/subsystembonusamarrelectronicenergyvampireamount.py +++ b/eos/effects/subsystembonusamarrelectronicenergyvampireamount.py @@ -4,6 +4,5 @@ # Subsystem: Legion Electronics - Energy Parasitic Complex type = "passive" def handler(fit, module, context): - level = fit.character.getSkill("Amarr Electronic Systems").level fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Vampire", - "powerTransferAmount", module.getModifiedItemAttr("subsystemBonusAmarrElectronic") * level) + "powerTransferAmount", module.getModifiedItemAttr("subsystemBonusAmarrElectronic"), skill="Amarr Electronic Systems") diff --git a/eos/effects/subsystembonusamarrelectronicscanprobestrength.py b/eos/effects/subsystembonusamarrelectronicscanprobestrength.py index 0c53658d9..4d3c514a8 100644 --- a/eos/effects/subsystembonusamarrelectronicscanprobestrength.py +++ b/eos/effects/subsystembonusamarrelectronicscanprobestrength.py @@ -4,6 +4,5 @@ # Subsystem: Legion Electronics - Emergent Locus Analyzer type = "passive" def handler(fit, module, context): - level = fit.character.getSkill("Amarr Electronic Systems").level fit.modules.filteredChargeBoost(lambda mod: mod.charge.group.name == "Scanner Probe", - "baseSensorStrength", module.getModifiedItemAttr("subsystemBonusAmarrElectronic") * level) + "baseSensorStrength", module.getModifiedItemAttr("subsystemBonusAmarrElectronic"), skill="Amarr Electronic Systems") diff --git a/eos/effects/subsystembonusamarrelectronicscanstrengthradar.py b/eos/effects/subsystembonusamarrelectronicscanstrengthradar.py index 3e3d31224..1f5b85ce0 100644 --- a/eos/effects/subsystembonusamarrelectronicscanstrengthradar.py +++ b/eos/effects/subsystembonusamarrelectronicscanstrengthradar.py @@ -4,5 +4,4 @@ # Subsystem: Legion Electronics - Dissolution Sequencer type = "passive" def handler(fit, module, context): - level = fit.character.getSkill("Amarr Electronic Systems").level - fit.ship.boostItemAttr("scanRadarStrength", module.getModifiedItemAttr("subsystemBonusAmarrElectronic") * level) + fit.ship.boostItemAttr("scanRadarStrength", module.getModifiedItemAttr("subsystemBonusAmarrElectronic"), skill="Amarr Electronic Systems") diff --git a/eos/effects/subsystembonusamarrengineeringcapacitorcapacity.py b/eos/effects/subsystembonusamarrengineeringcapacitorcapacity.py index 9d4e59b75..574478596 100644 --- a/eos/effects/subsystembonusamarrengineeringcapacitorcapacity.py +++ b/eos/effects/subsystembonusamarrengineeringcapacitorcapacity.py @@ -4,5 +4,4 @@ # Subsystem: Legion Engineering - Augmented Capacitor Reservoir type = "passive" def handler(fit, module, context): - level = fit.character.getSkill("Amarr Engineering Systems").level - fit.ship.boostItemAttr("capacitorCapacity", module.getModifiedItemAttr("subsystemBonusAmarrEngineering") * level) + fit.ship.boostItemAttr("capacitorCapacity", module.getModifiedItemAttr("subsystemBonusAmarrEngineering"), skill="Amarr Engineering Systems") diff --git a/eos/effects/subsystembonusamarrengineeringcapacitorrecharge.py b/eos/effects/subsystembonusamarrengineeringcapacitorrecharge.py index e2b047a4f..ff816724a 100644 --- a/eos/effects/subsystembonusamarrengineeringcapacitorrecharge.py +++ b/eos/effects/subsystembonusamarrengineeringcapacitorrecharge.py @@ -4,5 +4,4 @@ # Subsystem: Legion Engineering - Capacitor Regeneration Matrix type = "passive" def handler(fit, module, context): - level = fit.character.getSkill("Amarr Engineering Systems").level - fit.ship.boostItemAttr("rechargeRate", module.getModifiedItemAttr("subsystemBonusAmarrEngineering") * level) + fit.ship.boostItemAttr("rechargeRate", module.getModifiedItemAttr("subsystemBonusAmarrEngineering"), skill="Amarr Engineering Systems") diff --git a/eos/effects/subsystembonusamarrengineeringheatdamagereduction.py b/eos/effects/subsystembonusamarrengineeringheatdamagereduction.py index fe919163e..bc77e22d1 100644 --- a/eos/effects/subsystembonusamarrengineeringheatdamagereduction.py +++ b/eos/effects/subsystembonusamarrengineeringheatdamagereduction.py @@ -4,6 +4,5 @@ # Subsystem: Legion Engineering - Supplemental Coolant Injector type = "passive" def handler(fit, module, context): - level = fit.character.getSkill("Amarr Engineering Systems").level fit.modules.filteredItemBoost(lambda mod: True, "heatDamage", - module.getModifiedItemAttr("subsystemBonusAmarrEngineering") * level) + module.getModifiedItemAttr("subsystemBonusAmarrEngineering"), skill="Amarr Engineering Systems") diff --git a/eos/effects/subsystembonusamarrengineeringpoweroutput.py b/eos/effects/subsystembonusamarrengineeringpoweroutput.py index dc7dac302..5640abcf6 100644 --- a/eos/effects/subsystembonusamarrengineeringpoweroutput.py +++ b/eos/effects/subsystembonusamarrengineeringpoweroutput.py @@ -4,5 +4,4 @@ # Subsystem: Legion Engineering - Power Core Multiplier type = "passive" def handler(fit, module, context): - level = fit.character.getSkill("Amarr Engineering Systems").level - fit.ship.boostItemAttr("powerOutput", module.getModifiedItemAttr("subsystemBonusAmarrEngineering") * level) + fit.ship.boostItemAttr("powerOutput", module.getModifiedItemAttr("subsystemBonusAmarrEngineering"), skill="Amarr Engineering Systems") diff --git a/eos/effects/subsystembonusamarroffensive2energyweaponcapacitorneed.py b/eos/effects/subsystembonusamarroffensive2energyweaponcapacitorneed.py index 6ac707da3..2f06ecf2a 100644 --- a/eos/effects/subsystembonusamarroffensive2energyweaponcapacitorneed.py +++ b/eos/effects/subsystembonusamarroffensive2energyweaponcapacitorneed.py @@ -5,6 +5,5 @@ # Subsystem: Legion Offensive - Liquid Crystal Magnifiers type = "passive" def handler(fit, module, context): - level = fit.character.getSkill("Amarr Offensive Systems").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Energy Turret"), - "capacitorNeed", module.getModifiedItemAttr("subsystemBonusAmarrOffensive2") * level) + "capacitorNeed", module.getModifiedItemAttr("subsystemBonusAmarrOffensive2"), skill="Amarr Offensive Systems") diff --git a/eos/effects/subsystembonusamarroffensive2hamemdamage.py b/eos/effects/subsystembonusamarroffensive2hamemdamage.py index b6ee1e739..8178a10a1 100644 --- a/eos/effects/subsystembonusamarroffensive2hamemdamage.py +++ b/eos/effects/subsystembonusamarroffensive2hamemdamage.py @@ -4,6 +4,5 @@ # Subsystem: Legion Offensive - Assault Optimization type = "passive" def handler(fit, module, context): - level = fit.character.getSkill("Amarr Offensive Systems").level fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Assault Missiles"), - "emDamage", module.getModifiedItemAttr("subsystemBonusAmarrOffensive2") * level) + "emDamage", module.getModifiedItemAttr("subsystemBonusAmarrOffensive2"), skill="Amarr Offensive Systems") diff --git a/eos/effects/subsystembonusamarroffensive2hamexplosivedamage.py b/eos/effects/subsystembonusamarroffensive2hamexplosivedamage.py index cbcd51356..f06ee21e8 100644 --- a/eos/effects/subsystembonusamarroffensive2hamexplosivedamage.py +++ b/eos/effects/subsystembonusamarroffensive2hamexplosivedamage.py @@ -4,6 +4,5 @@ # Subsystem: Legion Offensive - Assault Optimization type = "passive" def handler(fit, module, context): - level = fit.character.getSkill("Amarr Offensive Systems").level fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Assault Missiles"), - "explosiveDamage", module.getModifiedItemAttr("subsystemBonusAmarrOffensive2") * level) + "explosiveDamage", module.getModifiedItemAttr("subsystemBonusAmarrOffensive2"), skill="Amarr Offensive Systems") diff --git a/eos/effects/subsystembonusamarroffensive2hamkineticdamage.py b/eos/effects/subsystembonusamarroffensive2hamkineticdamage.py index 8151ba8fe..1fb68f0c8 100644 --- a/eos/effects/subsystembonusamarroffensive2hamkineticdamage.py +++ b/eos/effects/subsystembonusamarroffensive2hamkineticdamage.py @@ -4,6 +4,5 @@ # Subsystem: Legion Offensive - Assault Optimization type = "passive" def handler(fit, module, context): - level = fit.character.getSkill("Amarr Offensive Systems").level fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Assault Missiles"), - "kineticDamage", module.getModifiedItemAttr("subsystemBonusAmarrOffensive2") * level) + "kineticDamage", module.getModifiedItemAttr("subsystemBonusAmarrOffensive2"), skill="Amarr Offensive Systems") diff --git a/eos/effects/subsystembonusamarroffensive2hamthermaldamage.py b/eos/effects/subsystembonusamarroffensive2hamthermaldamage.py index cdb09670b..a8d181181 100644 --- a/eos/effects/subsystembonusamarroffensive2hamthermaldamage.py +++ b/eos/effects/subsystembonusamarroffensive2hamthermaldamage.py @@ -4,6 +4,5 @@ # Subsystem: Legion Offensive - Assault Optimization type = "passive" def handler(fit, module, context): - level = fit.character.getSkill("Amarr Offensive Systems").level fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Assault Missiles"), - "thermalDamage", module.getModifiedItemAttr("subsystemBonusAmarrOffensive2") * level) + "thermalDamage", module.getModifiedItemAttr("subsystemBonusAmarrOffensive2"), skill="Amarr Offensive Systems") diff --git a/eos/effects/subsystembonusamarroffensive3dronehp.py b/eos/effects/subsystembonusamarroffensive3dronehp.py index 5bea48e8a..9ca93b374 100644 --- a/eos/effects/subsystembonusamarroffensive3dronehp.py +++ b/eos/effects/subsystembonusamarroffensive3dronehp.py @@ -4,7 +4,6 @@ # Subsystem: Legion Offensive - Drone Synthesis Projector type = "passive" def handler(fit, module, context): - level = fit.character.getSkill("Amarr Offensive Systems").level for layer in ("shieldCapacity", "armorHP", "hp"): fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Drones"), layer, - module.getModifiedItemAttr("subsystemBonusAmarrOffensive3") * level) + module.getModifiedItemAttr("subsystemBonusAmarrOffensive3"), skill="Amarr Offensive Systems") diff --git a/eos/effects/subsystembonusamarroffensive3energyweaponmaxrange.py b/eos/effects/subsystembonusamarroffensive3energyweaponmaxrange.py index dacb9bbac..80546ed46 100644 --- a/eos/effects/subsystembonusamarroffensive3energyweaponmaxrange.py +++ b/eos/effects/subsystembonusamarroffensive3energyweaponmaxrange.py @@ -4,6 +4,5 @@ # Subsystem: Legion Offensive - Liquid Crystal Magnifiers type = "passive" def handler(fit, module, context): - level = fit.character.getSkill("Amarr Offensive Systems").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Energy Turret"), - "maxRange", module.getModifiedItemAttr("subsystemBonusAmarrOffensive3") * level) + "maxRange", module.getModifiedItemAttr("subsystemBonusAmarrOffensive3"), skill="Amarr Offensive Systems") diff --git a/eos/effects/subsystembonusamarroffensiveassaultmissilelauncherrof.py b/eos/effects/subsystembonusamarroffensiveassaultmissilelauncherrof.py index cf7ba1d6e..bd48e2863 100644 --- a/eos/effects/subsystembonusamarroffensiveassaultmissilelauncherrof.py +++ b/eos/effects/subsystembonusamarroffensiveassaultmissilelauncherrof.py @@ -4,6 +4,5 @@ # Subsystem: Legion Offensive - Assault Optimization type = "passive" def handler(fit, module, context): - level = fit.character.getSkill("Amarr Offensive Systems").level fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Missile Launcher Rapid Light", - "speed", module.getModifiedItemAttr("subsystemBonusAmarrOffensive") * level) + "speed", module.getModifiedItemAttr("subsystemBonusAmarrOffensive"), skill="Amarr Offensive Systems") diff --git a/eos/effects/subsystembonusamarroffensivedronedamagemultiplier.py b/eos/effects/subsystembonusamarroffensivedronedamagemultiplier.py index 44f87f420..8891c8e23 100644 --- a/eos/effects/subsystembonusamarroffensivedronedamagemultiplier.py +++ b/eos/effects/subsystembonusamarroffensivedronedamagemultiplier.py @@ -4,6 +4,5 @@ # Subsystem: Legion Offensive - Drone Synthesis Projector type = "passive" def handler(fit, module, context): - level = fit.character.getSkill("Amarr Offensive Systems").level fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Drones"), - "damageMultiplier", module.getModifiedItemAttr("subsystemBonusAmarrOffensive") * level) + "damageMultiplier", module.getModifiedItemAttr("subsystemBonusAmarrOffensive"), skill="Amarr Offensive Systems") diff --git a/eos/effects/subsystembonusamarroffensiveenergyweaponcapacitorneed.py b/eos/effects/subsystembonusamarroffensiveenergyweaponcapacitorneed.py index dbba31e6f..09b73187f 100644 --- a/eos/effects/subsystembonusamarroffensiveenergyweaponcapacitorneed.py +++ b/eos/effects/subsystembonusamarroffensiveenergyweaponcapacitorneed.py @@ -4,6 +4,5 @@ # Subsystem: Legion Offensive - Covert Reconfiguration type = "passive" def handler(fit, module, context): - level = fit.character.getSkill("Amarr Offensive Systems").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Energy Turret"), - "capacitorNeed", module.getModifiedItemAttr("subsystemBonusAmarrOffensive") * level) + "capacitorNeed", module.getModifiedItemAttr("subsystemBonusAmarrOffensive"), skill="Amarr Offensive Systems") diff --git a/eos/effects/subsystembonusamarroffensiveenergyweapondamagemultiplier.py b/eos/effects/subsystembonusamarroffensiveenergyweapondamagemultiplier.py index e4caa3a79..07dddee5a 100644 --- a/eos/effects/subsystembonusamarroffensiveenergyweapondamagemultiplier.py +++ b/eos/effects/subsystembonusamarroffensiveenergyweapondamagemultiplier.py @@ -4,6 +4,5 @@ # Subsystem: Legion Offensive - Liquid Crystal Magnifiers type = "passive" def handler(fit, module, context): - level = fit.character.getSkill("Amarr Offensive Systems").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Energy Turret"), - "damageMultiplier", module.getModifiedItemAttr("subsystemBonusAmarrOffensive") * level) + "damageMultiplier", module.getModifiedItemAttr("subsystemBonusAmarrOffensive"), skill="Amarr Offensive Systems") diff --git a/eos/effects/subsystembonusamarroffensiveheavyassaultmissilelauncherrof.py b/eos/effects/subsystembonusamarroffensiveheavyassaultmissilelauncherrof.py index 42770acf0..00ffeca45 100644 --- a/eos/effects/subsystembonusamarroffensiveheavyassaultmissilelauncherrof.py +++ b/eos/effects/subsystembonusamarroffensiveheavyassaultmissilelauncherrof.py @@ -4,6 +4,5 @@ # Subsystem: Legion Offensive - Assault Optimization type = "passive" def handler(fit, module, context): - level = fit.character.getSkill("Amarr Offensive Systems").level fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Missile Launcher Heavy Assault", - "speed", module.getModifiedItemAttr("subsystemBonusAmarrOffensive") * level) + "speed", module.getModifiedItemAttr("subsystemBonusAmarrOffensive"), skill="Amarr Offensive Systems") diff --git a/eos/effects/subsystembonusamarroffensiveheavymissilelauncherrof.py b/eos/effects/subsystembonusamarroffensiveheavymissilelauncherrof.py index 2cf12d688..5feee607c 100644 --- a/eos/effects/subsystembonusamarroffensiveheavymissilelauncherrof.py +++ b/eos/effects/subsystembonusamarroffensiveheavymissilelauncherrof.py @@ -4,6 +4,5 @@ # Subsystem: Legion Offensive - Assault Optimization type = "passive" def handler(fit, module, context): - level = fit.character.getSkill("Amarr Offensive Systems").level fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Missile Launcher Heavy", - "speed", module.getModifiedItemAttr("subsystemBonusAmarrOffensive") * level) + "speed", module.getModifiedItemAttr("subsystemBonusAmarrOffensive"), skill="Amarr Offensive Systems") diff --git a/eos/effects/subsystembonusamarrpropulsionafterburnerspeedfactor.py b/eos/effects/subsystembonusamarrpropulsionafterburnerspeedfactor.py index be1b1a924..ac4e70057 100644 --- a/eos/effects/subsystembonusamarrpropulsionafterburnerspeedfactor.py +++ b/eos/effects/subsystembonusamarrpropulsionafterburnerspeedfactor.py @@ -4,6 +4,5 @@ # Subsystem: Legion Propulsion - Fuel Catalyst type = "passive" def handler(fit, module, context): - level = fit.character.getSkill("Amarr Propulsion Systems").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Afterburner"), - "speedFactor", module.getModifiedItemAttr("subsystemBonusAmarrPropulsion") * level) + "speedFactor", module.getModifiedItemAttr("subsystemBonusAmarrPropulsion"), skill="Amarr Propulsion Systems") diff --git a/eos/effects/subsystembonusamarrpropulsionagility.py b/eos/effects/subsystembonusamarrpropulsionagility.py index 600bf2fb5..a2d9dfd56 100644 --- a/eos/effects/subsystembonusamarrpropulsionagility.py +++ b/eos/effects/subsystembonusamarrpropulsionagility.py @@ -4,5 +4,4 @@ # Subsystem: Legion Propulsion - Interdiction Nullifier type = "passive" def handler(fit, module, context): - level = fit.character.getSkill("Amarr Propulsion Systems").level - fit.ship.boostItemAttr("agility", module.getModifiedItemAttr("subsystemBonusAmarrPropulsion") * level) + fit.ship.boostItemAttr("agility", module.getModifiedItemAttr("subsystemBonusAmarrPropulsion"), skill="Amarr Propulsion Systems") diff --git a/eos/effects/subsystembonusamarrpropulsionmaxvelocity.py b/eos/effects/subsystembonusamarrpropulsionmaxvelocity.py index aad0ab4ff..05b68be1e 100644 --- a/eos/effects/subsystembonusamarrpropulsionmaxvelocity.py +++ b/eos/effects/subsystembonusamarrpropulsionmaxvelocity.py @@ -4,5 +4,4 @@ # Subsystem: Legion Propulsion - Chassis Optimization type = "passive" def handler(fit, module, context): - level = fit.character.getSkill("Amarr Propulsion Systems").level - fit.ship.boostItemAttr("maxVelocity", module.getModifiedItemAttr("subsystemBonusAmarrPropulsion") * level) + fit.ship.boostItemAttr("maxVelocity", module.getModifiedItemAttr("subsystemBonusAmarrPropulsion"), skill="Amarr Propulsion Systems") diff --git a/eos/effects/subsystembonusamarrpropulsionmwdpenalty.py b/eos/effects/subsystembonusamarrpropulsionmwdpenalty.py index cca129fd2..2276cff1d 100644 --- a/eos/effects/subsystembonusamarrpropulsionmwdpenalty.py +++ b/eos/effects/subsystembonusamarrpropulsionmwdpenalty.py @@ -4,6 +4,5 @@ # Subsystem: Legion Propulsion - Wake Limiter type = "passive" def handler(fit, module, context): - level = fit.character.getSkill("Amarr Propulsion Systems").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("High Speed Maneuvering"), - "signatureRadiusBonus", module.getModifiedItemAttr("subsystemBonusAmarrPropulsion") * level) + "signatureRadiusBonus", module.getModifiedItemAttr("subsystemBonusAmarrPropulsion"), skill="Amarr Propulsion Systems") diff --git a/eos/effects/subsystembonuscaldaridefensive2remoteshieldtransporteramount.py b/eos/effects/subsystembonuscaldaridefensive2remoteshieldtransporteramount.py index 0c1a7461d..e55064df9 100644 --- a/eos/effects/subsystembonuscaldaridefensive2remoteshieldtransporteramount.py +++ b/eos/effects/subsystembonuscaldaridefensive2remoteshieldtransporteramount.py @@ -4,6 +4,5 @@ # Subsystem: Tengu Defensive - Adaptive Shielding type = "passive" def handler(fit, module, context): - level = fit.character.getSkill("Caldari Defensive Systems").level fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Remote Shield Booster", - "shieldBonus", module.getModifiedItemAttr("subsystemBonusCaldariDefensive2") * level) + "shieldBonus", module.getModifiedItemAttr("subsystemBonusCaldariDefensive2"), skill="Caldari Defensive Systems") diff --git a/eos/effects/subsystembonuscaldaridefensiveinformationwarfare.py b/eos/effects/subsystembonuscaldaridefensiveinformationwarfare.py index 167ef9b95..227405494 100644 --- a/eos/effects/subsystembonuscaldaridefensiveinformationwarfare.py +++ b/eos/effects/subsystembonuscaldaridefensiveinformationwarfare.py @@ -4,6 +4,5 @@ # Subsystem: Tengu Defensive - Warfare Processor type = "passive" def handler(fit, module, context): - level = fit.character.getSkill("Caldari Defensive Systems").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Information Warfare Specialist"), - "commandBonus", module.getModifiedItemAttr("subsystemBonusCaldariDefensive") * level) + "commandBonus", module.getModifiedItemAttr("subsystemBonusCaldariDefensive"), skill="Caldari Defensive Systems") diff --git a/eos/effects/subsystembonuscaldaridefensiveinformationwarfarehidden.py b/eos/effects/subsystembonuscaldaridefensiveinformationwarfarehidden.py index e652bab7a..36ba1f089 100644 --- a/eos/effects/subsystembonuscaldaridefensiveinformationwarfarehidden.py +++ b/eos/effects/subsystembonuscaldaridefensiveinformationwarfarehidden.py @@ -4,6 +4,5 @@ # Subsystem: Tengu Defensive - Warfare Processor type = "passive" def handler(fit, module, context): - level = fit.character.getSkill("Caldari Defensive Systems").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Information Warfare Specialist"), - "commandBonusHidden", module.getModifiedItemAttr("subsystemBonusCaldariDefensive") * level) + "commandBonusHidden", module.getModifiedItemAttr("subsystemBonusCaldariDefensive"), skill="Caldari Defensive Systems") diff --git a/eos/effects/subsystembonuscaldaridefensiveshieldboostamount.py b/eos/effects/subsystembonuscaldaridefensiveshieldboostamount.py index 40d343b0a..69edfb54d 100644 --- a/eos/effects/subsystembonuscaldaridefensiveshieldboostamount.py +++ b/eos/effects/subsystembonuscaldaridefensiveshieldboostamount.py @@ -4,6 +4,5 @@ # Subsystem: Tengu Defensive - Amplification Node type = "passive" def handler(fit, module, context): - level = fit.character.getSkill("Caldari Defensive Systems").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Operation"), - "shieldBonus", module.getModifiedItemAttr("subsystemBonusCaldariDefensive") * level) + "shieldBonus", module.getModifiedItemAttr("subsystemBonusCaldariDefensive"), skill="Caldari Defensive Systems") diff --git a/eos/effects/subsystembonuscaldaridefensiveshieldhp.py b/eos/effects/subsystembonuscaldaridefensiveshieldhp.py index d0c44f8fd..a1596527d 100644 --- a/eos/effects/subsystembonuscaldaridefensiveshieldhp.py +++ b/eos/effects/subsystembonuscaldaridefensiveshieldhp.py @@ -4,5 +4,4 @@ # Subsystem: Tengu Defensive - Supplemental Screening type = "passive" def handler(fit, module, context): - level = fit.character.getSkill("Caldari Defensive Systems").level - fit.ship.boostItemAttr("shieldCapacity", module.getModifiedItemAttr("subsystemBonusCaldariDefensive") * level) + fit.ship.boostItemAttr("shieldCapacity", module.getModifiedItemAttr("subsystemBonusCaldariDefensive"), skill="Caldari Defensive Systems") diff --git a/eos/effects/subsystembonuscaldaridefensiveshieldrechargerate.py b/eos/effects/subsystembonuscaldaridefensiveshieldrechargerate.py index 7c63b3a27..791898df7 100644 --- a/eos/effects/subsystembonuscaldaridefensiveshieldrechargerate.py +++ b/eos/effects/subsystembonuscaldaridefensiveshieldrechargerate.py @@ -4,5 +4,4 @@ # Subsystem: Tengu Defensive - Supplemental Screening type = "passive" def handler(fit, module, context): - level = fit.character.getSkill("Caldari Defensive Systems").level - fit.ship.boostItemAttr("shieldRechargeRate", module.getModifiedItemAttr("subsystemBonusCaldariDefensive2") * level) + fit.ship.boostItemAttr("shieldRechargeRate", module.getModifiedItemAttr("subsystemBonusCaldariDefensive2"), skill="Caldari Defensive Systems") diff --git a/eos/effects/subsystembonuscaldaridefensiveshieldresistance.py b/eos/effects/subsystembonuscaldaridefensiveshieldresistance.py index e3b2755e3..5b010063a 100644 --- a/eos/effects/subsystembonuscaldaridefensiveshieldresistance.py +++ b/eos/effects/subsystembonuscaldaridefensiveshieldresistance.py @@ -4,6 +4,5 @@ # Subsystem: Tengu Defensive - Adaptive Shielding type = "passive" def handler(fit, module, context): - level = fit.character.getSkill("Caldari Defensive Systems").level for type in ("Em", "Explosive", "Kinetic", "Thermal"): - fit.ship.boostItemAttr("shield{0}DamageResonance".format(type), module.getModifiedItemAttr("subsystemBonusCaldariDefensive") * level) + fit.ship.boostItemAttr("shield{0}DamageResonance".format(type), module.getModifiedItemAttr("subsystemBonusCaldariDefensive"), skill="Caldari Defensive Systems") diff --git a/eos/effects/subsystembonuscaldaridefensivesiegewarfare.py b/eos/effects/subsystembonuscaldaridefensivesiegewarfare.py index 04b6534b9..83bd125dc 100644 --- a/eos/effects/subsystembonuscaldaridefensivesiegewarfare.py +++ b/eos/effects/subsystembonuscaldaridefensivesiegewarfare.py @@ -4,6 +4,5 @@ # Subsystem: Tengu Defensive - Warfare Processor type = "passive" def handler(fit, module, context): - level = fit.character.getSkill("Caldari Defensive Systems").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Siege Warfare Specialist"), - "commandBonus", module.getModifiedItemAttr("subsystemBonusCaldariDefensive") * level) + "commandBonus", module.getModifiedItemAttr("subsystemBonusCaldariDefensive"), skill="Caldari Defensive Systems") diff --git a/eos/effects/subsystembonuscaldaridefensiveskirmishwarfare.py b/eos/effects/subsystembonuscaldaridefensiveskirmishwarfare.py index 08bebeaa6..f6cc7baa2 100644 --- a/eos/effects/subsystembonuscaldaridefensiveskirmishwarfare.py +++ b/eos/effects/subsystembonuscaldaridefensiveskirmishwarfare.py @@ -4,6 +4,5 @@ # Subsystem: Tengu Defensive - Warfare Processor type = "passive" def handler(fit, module, context): - level = fit.character.getSkill("Caldari Defensive Systems").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Skirmish Warfare Specialist"), - "commandBonus", module.getModifiedItemAttr("subsystemBonusCaldariDefensive") * level) + "commandBonus", module.getModifiedItemAttr("subsystemBonusCaldariDefensive"), skill="Caldari Defensive Systems") diff --git a/eos/effects/subsystembonuscaldarielectronic2maxtargetingrange.py b/eos/effects/subsystembonuscaldarielectronic2maxtargetingrange.py index 097ae851a..bd6a0ff8f 100644 --- a/eos/effects/subsystembonuscaldarielectronic2maxtargetingrange.py +++ b/eos/effects/subsystembonuscaldarielectronic2maxtargetingrange.py @@ -4,5 +4,4 @@ # Subsystem: Tengu Electronics - Dissolution Sequencer type = "passive" def handler(fit, module, context): - level = fit.character.getSkill("Caldari Electronic Systems").level - fit.ship.boostItemAttr("maxTargetRange", module.getModifiedItemAttr("subsystemBonusCaldariElectronic2") * level) + fit.ship.boostItemAttr("maxTargetRange", module.getModifiedItemAttr("subsystemBonusCaldariElectronic2"), skill="Caldari Electronic Systems") diff --git a/eos/effects/subsystembonuscaldarielectronic2tractorbeamrange.py b/eos/effects/subsystembonuscaldarielectronic2tractorbeamrange.py index 24be988d2..0f34eae81 100644 --- a/eos/effects/subsystembonuscaldarielectronic2tractorbeamrange.py +++ b/eos/effects/subsystembonuscaldarielectronic2tractorbeamrange.py @@ -4,6 +4,5 @@ # Subsystem: Tengu Electronics - Emergent Locus Analyzer type = "passive" def handler(fit, module, context): - level = fit.character.getSkill("Caldari Electronic Systems").level fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Tractor Beam", - "maxRange", module.getModifiedItemAttr("subsystemBonusCaldariElectronic2") * level) + "maxRange", module.getModifiedItemAttr("subsystemBonusCaldariElectronic2"), skill="Caldari Electronic Systems") diff --git a/eos/effects/subsystembonuscaldarielectronic2tractorbeamvelocity.py b/eos/effects/subsystembonuscaldarielectronic2tractorbeamvelocity.py index 3f94e256a..225e6ddb0 100644 --- a/eos/effects/subsystembonuscaldarielectronic2tractorbeamvelocity.py +++ b/eos/effects/subsystembonuscaldarielectronic2tractorbeamvelocity.py @@ -4,6 +4,5 @@ # Subsystem: Tengu Electronics - Emergent Locus Analyzer type = "passive" def handler(fit, module, context): - level = fit.character.getSkill("Caldari Electronic Systems").level fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Tractor Beam", - "maxTractorVelocity", module.getModifiedItemAttr("subsystemBonusCaldariElectronic2") * level) + "maxTractorVelocity", module.getModifiedItemAttr("subsystemBonusCaldariElectronic2"), skill="Caldari Electronic Systems") diff --git a/eos/effects/subsystembonuscaldarielectroniccpu.py b/eos/effects/subsystembonuscaldarielectroniccpu.py index 08d67fd26..69c355603 100644 --- a/eos/effects/subsystembonuscaldarielectroniccpu.py +++ b/eos/effects/subsystembonuscaldarielectroniccpu.py @@ -4,5 +4,4 @@ # Subsystem: Tengu Electronics - CPU Efficiency Gate type = "passive" def handler(fit, module, context): - level = fit.character.getSkill("Caldari Electronic Systems").level - fit.ship.boostItemAttr("cpuOutput", module.getModifiedItemAttr("subsystemBonusCaldariElectronic") * level) + fit.ship.boostItemAttr("cpuOutput", module.getModifiedItemAttr("subsystemBonusCaldariElectronic"), skill="Caldari Electronic Systems") diff --git a/eos/effects/subsystembonuscaldarielectronicecmrange.py b/eos/effects/subsystembonuscaldarielectronicecmrange.py index fa8f6bf63..768edca0a 100644 --- a/eos/effects/subsystembonuscaldarielectronicecmrange.py +++ b/eos/effects/subsystembonuscaldarielectronicecmrange.py @@ -4,6 +4,5 @@ # Subsystem: Tengu Electronics - Obfuscation Manifold type = "passive" def handler(fit, module, context): - level = fit.character.getSkill("Caldari Electronic Systems").level fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "ECM", - "maxRange", module.getModifiedItemAttr("subsystemBonusCaldariElectronic") * level) + "maxRange", module.getModifiedItemAttr("subsystemBonusCaldariElectronic"), skill="Caldari Electronic Systems") diff --git a/eos/effects/subsystembonuscaldarielectronicscanprobestrength.py b/eos/effects/subsystembonuscaldarielectronicscanprobestrength.py index 4947da2f3..5e7ce9b7d 100644 --- a/eos/effects/subsystembonuscaldarielectronicscanprobestrength.py +++ b/eos/effects/subsystembonuscaldarielectronicscanprobestrength.py @@ -4,6 +4,5 @@ # Subsystem: Tengu Electronics - Emergent Locus Analyzer type = "passive" def handler(fit, module, context): - level = fit.character.getSkill("Caldari Electronic Systems").level fit.modules.filteredChargeBoost(lambda mod: mod.charge.group.name == "Scanner Probe", - "baseSensorStrength", module.getModifiedItemAttr("subsystemBonusCaldariElectronic") * level) + "baseSensorStrength", module.getModifiedItemAttr("subsystemBonusCaldariElectronic"), skill="Caldari Electronic Systems") diff --git a/eos/effects/subsystembonuscaldarielectronicscanstrengthgravimetric.py b/eos/effects/subsystembonuscaldarielectronicscanstrengthgravimetric.py index 280788e01..a6f0ba498 100644 --- a/eos/effects/subsystembonuscaldarielectronicscanstrengthgravimetric.py +++ b/eos/effects/subsystembonuscaldarielectronicscanstrengthgravimetric.py @@ -4,5 +4,4 @@ # Subsystem: Tengu Electronics - Dissolution Sequencer type = "passive" def handler(fit, module, context): - level = fit.character.getSkill("Caldari Electronic Systems").level - fit.ship.boostItemAttr("scanGravimetricStrength", module.getModifiedItemAttr("subsystemBonusCaldariElectronic") * level) + fit.ship.boostItemAttr("scanGravimetricStrength", module.getModifiedItemAttr("subsystemBonusCaldariElectronic"), skill="Caldari Electronic Systems") diff --git a/eos/effects/subsystembonuscaldariengineeringcapacitorcapacity.py b/eos/effects/subsystembonuscaldariengineeringcapacitorcapacity.py index 0e287748d..7d8aa2baf 100644 --- a/eos/effects/subsystembonuscaldariengineeringcapacitorcapacity.py +++ b/eos/effects/subsystembonuscaldariengineeringcapacitorcapacity.py @@ -4,5 +4,4 @@ # Subsystem: Tengu Engineering - Augmented Capacitor Reservoir type = "passive" def handler(fit, module, context): - level = fit.character.getSkill("Caldari Engineering Systems").level - fit.ship.boostItemAttr("capacitorCapacity", module.getModifiedItemAttr("subsystemBonusCaldariEngineering") * level) + fit.ship.boostItemAttr("capacitorCapacity", module.getModifiedItemAttr("subsystemBonusCaldariEngineering"), skill="Caldari Engineering Systems") diff --git a/eos/effects/subsystembonuscaldariengineeringcapacitorrecharge.py b/eos/effects/subsystembonuscaldariengineeringcapacitorrecharge.py index 62c538c3f..fd4a3737a 100644 --- a/eos/effects/subsystembonuscaldariengineeringcapacitorrecharge.py +++ b/eos/effects/subsystembonuscaldariengineeringcapacitorrecharge.py @@ -4,5 +4,4 @@ # Subsystem: Tengu Engineering - Capacitor Regeneration Matrix type = "passive" def handler(fit, module, context): - level = fit.character.getSkill("Caldari Engineering Systems").level - fit.ship.boostItemAttr("rechargeRate", module.getModifiedItemAttr("subsystemBonusCaldariEngineering") * level) + fit.ship.boostItemAttr("rechargeRate", module.getModifiedItemAttr("subsystemBonusCaldariEngineering"), skill="Caldari Engineering Systems") diff --git a/eos/effects/subsystembonuscaldariengineeringheatdamagereduction.py b/eos/effects/subsystembonuscaldariengineeringheatdamagereduction.py index 0206c45ac..e694e066d 100644 --- a/eos/effects/subsystembonuscaldariengineeringheatdamagereduction.py +++ b/eos/effects/subsystembonuscaldariengineeringheatdamagereduction.py @@ -4,6 +4,5 @@ # Subsystem: Tengu Engineering - Supplemental Coolant Injector type = "passive" def handler(fit, module, context): - level = fit.character.getSkill("Caldari Engineering Systems").level fit.modules.filteredItemBoost(lambda mod: True, "heatDamage", - module.getModifiedItemAttr("subsystemBonusCaldariEngineering") * level) + module.getModifiedItemAttr("subsystemBonusCaldariEngineering"), skill="Caldari Engineering Systems") diff --git a/eos/effects/subsystembonuscaldariengineeringpoweroutput.py b/eos/effects/subsystembonuscaldariengineeringpoweroutput.py index 829e13eea..1f21a67a4 100644 --- a/eos/effects/subsystembonuscaldariengineeringpoweroutput.py +++ b/eos/effects/subsystembonuscaldariengineeringpoweroutput.py @@ -4,5 +4,4 @@ # Subsystem: Tengu Engineering - Power Core Multiplier type = "passive" def handler(fit, module, context): - level = fit.character.getSkill("Caldari Engineering Systems").level - fit.ship.boostItemAttr("powerOutput", module.getModifiedItemAttr("subsystemBonusCaldariEngineering") * level) + fit.ship.boostItemAttr("powerOutput", module.getModifiedItemAttr("subsystemBonusCaldariEngineering"), skill="Caldari Engineering Systems") diff --git a/eos/effects/subsystembonuscaldarioffensive2hybridweapondamagemultiplier.py b/eos/effects/subsystembonuscaldarioffensive2hybridweapondamagemultiplier.py index 64bfb9361..ac961adc7 100644 --- a/eos/effects/subsystembonuscaldarioffensive2hybridweapondamagemultiplier.py +++ b/eos/effects/subsystembonuscaldarioffensive2hybridweapondamagemultiplier.py @@ -4,6 +4,5 @@ # Subsystem: Tengu Offensive - Magnetic Infusion Basin type = "passive" def handler(fit, module, context): - level = fit.character.getSkill("Caldari Offensive Systems").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Hybrid Turret"), - "damageMultiplier", module.getModifiedItemAttr("subsystemBonusCaldariOffensive2") * level) + "damageMultiplier", module.getModifiedItemAttr("subsystemBonusCaldariOffensive2"), skill="Caldari Offensive Systems") diff --git a/eos/effects/subsystembonuscaldarioffensive2missilelauncherkineticdamage.py b/eos/effects/subsystembonuscaldarioffensive2missilelauncherkineticdamage.py index efd2a4210..1065c574c 100644 --- a/eos/effects/subsystembonuscaldarioffensive2missilelauncherkineticdamage.py +++ b/eos/effects/subsystembonuscaldarioffensive2missilelauncherkineticdamage.py @@ -4,6 +4,5 @@ # Subsystem: Tengu Offensive - Accelerated Ejection Bay type = "passive" def handler(fit, module, context): - level = fit.character.getSkill("Caldari Offensive Systems").level fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), - "kineticDamage", module.getModifiedItemAttr("subsystemBonusCaldariOffensive2") * level) + "kineticDamage", module.getModifiedItemAttr("subsystemBonusCaldariOffensive2"), skill="Caldari Offensive Systems") diff --git a/eos/effects/subsystembonuscaldarioffensive3ewstrengthgrav.py b/eos/effects/subsystembonuscaldarioffensive3ewstrengthgrav.py index 061d1cbb1..94afe30ad 100644 --- a/eos/effects/subsystembonuscaldarioffensive3ewstrengthgrav.py +++ b/eos/effects/subsystembonuscaldarioffensive3ewstrengthgrav.py @@ -4,6 +4,5 @@ # Subsystem: Tengu Offensive - Rifling Launcher Pattern type = "passive" def handler(fit, module, context): - level = fit.character.getSkill("Caldari Offensive Systems").level fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "ECM", - "scanGravimetricStrengthBonus", module.getModifiedItemAttr("subsystemBonusCaldariOffensive3") * level) + "scanGravimetricStrengthBonus", module.getModifiedItemAttr("subsystemBonusCaldariOffensive3"), skill="Caldari Offensive Systems") diff --git a/eos/effects/subsystembonuscaldarioffensive3ewstrengthladar.py b/eos/effects/subsystembonuscaldarioffensive3ewstrengthladar.py index 84fe1935e..658b65193 100644 --- a/eos/effects/subsystembonuscaldarioffensive3ewstrengthladar.py +++ b/eos/effects/subsystembonuscaldarioffensive3ewstrengthladar.py @@ -4,6 +4,5 @@ # Subsystem: Tengu Offensive - Rifling Launcher Pattern type = "passive" def handler(fit, module, context): - level = fit.character.getSkill("Caldari Offensive Systems").level fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "ECM", - "scanLadarStrengthBonus", module.getModifiedItemAttr("subsystemBonusCaldariOffensive3") * level) + "scanLadarStrengthBonus", module.getModifiedItemAttr("subsystemBonusCaldariOffensive3"), skill="Caldari Offensive Systems") diff --git a/eos/effects/subsystembonuscaldarioffensive3ewstrengthmagn.py b/eos/effects/subsystembonuscaldarioffensive3ewstrengthmagn.py index 71393c101..6ffa0dc1e 100644 --- a/eos/effects/subsystembonuscaldarioffensive3ewstrengthmagn.py +++ b/eos/effects/subsystembonuscaldarioffensive3ewstrengthmagn.py @@ -4,6 +4,5 @@ # Subsystem: Tengu Offensive - Rifling Launcher Pattern type = "passive" def handler(fit, module, context): - level = fit.character.getSkill("Caldari Offensive Systems").level fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "ECM", - "scanMagnetometricStrengthBonus", module.getModifiedItemAttr("subsystemBonusCaldariOffensive3") * level) + "scanMagnetometricStrengthBonus", module.getModifiedItemAttr("subsystemBonusCaldariOffensive3"), skill="Caldari Offensive Systems") diff --git a/eos/effects/subsystembonuscaldarioffensive3ewstrengthradar.py b/eos/effects/subsystembonuscaldarioffensive3ewstrengthradar.py index dbd89c640..d985751d6 100644 --- a/eos/effects/subsystembonuscaldarioffensive3ewstrengthradar.py +++ b/eos/effects/subsystembonuscaldarioffensive3ewstrengthradar.py @@ -4,6 +4,5 @@ # Subsystem: Tengu Offensive - Rifling Launcher Pattern type = "passive" def handler(fit, module, context): - level = fit.character.getSkill("Caldari Offensive Systems").level fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "ECM", - "scanRadarStrengthBonus", module.getModifiedItemAttr("subsystemBonusCaldariOffensive3") * level) + "scanRadarStrengthBonus", module.getModifiedItemAttr("subsystemBonusCaldariOffensive3"), skill="Caldari Offensive Systems") diff --git a/eos/effects/subsystembonuscaldarioffensive3heavyassaultmissilevelocity.py b/eos/effects/subsystembonuscaldarioffensive3heavyassaultmissilevelocity.py index a692a8edb..5593d5474 100644 --- a/eos/effects/subsystembonuscaldarioffensive3heavyassaultmissilevelocity.py +++ b/eos/effects/subsystembonuscaldarioffensive3heavyassaultmissilevelocity.py @@ -4,6 +4,5 @@ # Subsystem: Tengu Offensive - Accelerated Ejection Bay type = "passive" def handler(fit, module, context): - level = fit.character.getSkill("Caldari Offensive Systems").level fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Assault Missiles"), - "maxVelocity", module.getModifiedItemAttr("subsystemBonusCaldariOffensive3") * level) + "maxVelocity", module.getModifiedItemAttr("subsystemBonusCaldariOffensive3"), skill="Caldari Offensive Systems") diff --git a/eos/effects/subsystembonuscaldarioffensive3heavymissilevelocity.py b/eos/effects/subsystembonuscaldarioffensive3heavymissilevelocity.py index b9e8663c8..3476f6cd0 100644 --- a/eos/effects/subsystembonuscaldarioffensive3heavymissilevelocity.py +++ b/eos/effects/subsystembonuscaldarioffensive3heavymissilevelocity.py @@ -4,6 +4,5 @@ # Subsystem: Tengu Offensive - Accelerated Ejection Bay type = "passive" def handler(fit, module, context): - level = fit.character.getSkill("Caldari Offensive Systems").level fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Missiles"), - "maxVelocity", module.getModifiedItemAttr("subsystemBonusCaldariOffensive3") * level) + "maxVelocity", module.getModifiedItemAttr("subsystemBonusCaldariOffensive3"), skill="Caldari Offensive Systems") diff --git a/eos/effects/subsystembonuscaldarioffensiveassaultmissilelauncherrof.py b/eos/effects/subsystembonuscaldarioffensiveassaultmissilelauncherrof.py index cb4a21c1d..cf89e487f 100644 --- a/eos/effects/subsystembonuscaldarioffensiveassaultmissilelauncherrof.py +++ b/eos/effects/subsystembonuscaldarioffensiveassaultmissilelauncherrof.py @@ -4,6 +4,5 @@ # Variations of subsystem: Tengu Offensive - Accelerated Ejection Bay (3 of 4) type = "passive" def handler(fit, module, context): - level = fit.character.getSkill("Caldari Offensive Systems").level fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Missile Launcher Rapid Light", - "speed", module.getModifiedItemAttr("subsystemBonusCaldariOffensive") * level) + "speed", module.getModifiedItemAttr("subsystemBonusCaldariOffensive"), skill="Caldari Offensive Systems") diff --git a/eos/effects/subsystembonuscaldarioffensiveheavyassaultmissilelauncherrof.py b/eos/effects/subsystembonuscaldarioffensiveheavyassaultmissilelauncherrof.py index ba2bf17c2..c45494607 100644 --- a/eos/effects/subsystembonuscaldarioffensiveheavyassaultmissilelauncherrof.py +++ b/eos/effects/subsystembonuscaldarioffensiveheavyassaultmissilelauncherrof.py @@ -4,6 +4,5 @@ # Variations of subsystem: Tengu Offensive - Accelerated Ejection Bay (3 of 4) type = "passive" def handler(fit, module, context): - level = fit.character.getSkill("Caldari Offensive Systems").level fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Missile Launcher Heavy Assault", - "speed", module.getModifiedItemAttr("subsystemBonusCaldariOffensive") * level) + "speed", module.getModifiedItemAttr("subsystemBonusCaldariOffensive"), skill="Caldari Offensive Systems") diff --git a/eos/effects/subsystembonuscaldarioffensiveheavymissilelauncherrof.py b/eos/effects/subsystembonuscaldarioffensiveheavymissilelauncherrof.py index 1a66f96e7..79fde47fb 100644 --- a/eos/effects/subsystembonuscaldarioffensiveheavymissilelauncherrof.py +++ b/eos/effects/subsystembonuscaldarioffensiveheavymissilelauncherrof.py @@ -4,6 +4,5 @@ # Variations of subsystem: Tengu Offensive - Accelerated Ejection Bay (3 of 4) type = "passive" def handler(fit, module, context): - level = fit.character.getSkill("Caldari Offensive Systems").level fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Missile Launcher Heavy", - "speed", module.getModifiedItemAttr("subsystemBonusCaldariOffensive") * level) + "speed", module.getModifiedItemAttr("subsystemBonusCaldariOffensive"), skill="Caldari Offensive Systems") diff --git a/eos/effects/subsystembonuscaldarioffensivehybridweaponmaxrange.py b/eos/effects/subsystembonuscaldarioffensivehybridweaponmaxrange.py index 17755eaf1..6d3f59b73 100644 --- a/eos/effects/subsystembonuscaldarioffensivehybridweaponmaxrange.py +++ b/eos/effects/subsystembonuscaldarioffensivehybridweaponmaxrange.py @@ -4,6 +4,5 @@ # Subsystem: Tengu Offensive - Magnetic Infusion Basin type = "passive" def handler(fit, module, context): - level = fit.character.getSkill("Caldari Offensive Systems").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Hybrid Turret"), - "maxRange", module.getModifiedItemAttr("subsystemBonusCaldariOffensive") * level) + "maxRange", module.getModifiedItemAttr("subsystemBonusCaldariOffensive"), skill="Caldari Offensive Systems") diff --git a/eos/effects/subsystembonuscaldaripropulsion2warpcapacitor2.py b/eos/effects/subsystembonuscaldaripropulsion2warpcapacitor2.py index 96d1ab836..b9d9f76b9 100644 --- a/eos/effects/subsystembonuscaldaripropulsion2warpcapacitor2.py +++ b/eos/effects/subsystembonuscaldaripropulsion2warpcapacitor2.py @@ -4,5 +4,4 @@ # Subsystem: Tengu Propulsion - Gravitational Capacitor type = "passive" def handler(fit, module, context): - level = fit.character.getSkill("Caldari Propulsion Systems").level - fit.ship.boostItemAttr("warpCapacitorNeed", module.getModifiedItemAttr("subsystemBonusCaldariPropulsion2") * level) + fit.ship.boostItemAttr("warpCapacitorNeed", module.getModifiedItemAttr("subsystemBonusCaldariPropulsion2"), skill="Caldari Propulsion Systems") diff --git a/eos/effects/subsystembonuscaldaripropulsionafterburnerspeedfactor.py b/eos/effects/subsystembonuscaldaripropulsionafterburnerspeedfactor.py index 10a1c2193..d30dc62a5 100644 --- a/eos/effects/subsystembonuscaldaripropulsionafterburnerspeedfactor.py +++ b/eos/effects/subsystembonuscaldaripropulsionafterburnerspeedfactor.py @@ -4,6 +4,5 @@ # Subsystem: Tengu Propulsion - Fuel Catalyst type = "passive" def handler(fit, module, context): - level = fit.character.getSkill("Caldari Propulsion Systems").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Afterburner"), - "speedFactor", module.getModifiedItemAttr("subsystemBonusCaldariPropulsion") * level) + "speedFactor", module.getModifiedItemAttr("subsystemBonusCaldariPropulsion"), skill="Caldari Propulsion Systems") diff --git a/eos/effects/subsystembonuscaldaripropulsionagility.py b/eos/effects/subsystembonuscaldaripropulsionagility.py index ca70e8418..29c2b72f7 100644 --- a/eos/effects/subsystembonuscaldaripropulsionagility.py +++ b/eos/effects/subsystembonuscaldaripropulsionagility.py @@ -5,5 +5,4 @@ # Subsystem: Tengu Propulsion - Interdiction Nullifier type = "passive" def handler(fit, module, context): - level = fit.character.getSkill("Caldari Propulsion Systems").level - fit.ship.boostItemAttr("agility", module.getModifiedItemAttr("subsystemBonusCaldariPropulsion") * level) + fit.ship.boostItemAttr("agility", module.getModifiedItemAttr("subsystemBonusCaldariPropulsion"), skill="Caldari Propulsion Systems") diff --git a/eos/effects/subsystembonuscaldaripropulsionwarpspeed.py b/eos/effects/subsystembonuscaldaripropulsionwarpspeed.py index 6e57fa4f0..0d7ee884a 100644 --- a/eos/effects/subsystembonuscaldaripropulsionwarpspeed.py +++ b/eos/effects/subsystembonuscaldaripropulsionwarpspeed.py @@ -4,5 +4,4 @@ # Subsystem: Tengu Propulsion - Gravitational Capacitor type = "passive" def handler(fit, module, context): - level = fit.character.getSkill("Caldari Propulsion Systems").level - fit.ship.boostItemAttr("baseWarpSpeed", module.getModifiedItemAttr("subsystemBonusCaldariPropulsion") * level) + fit.ship.boostItemAttr("baseWarpSpeed", module.getModifiedItemAttr("subsystemBonusCaldariPropulsion"), skill="Caldari Propulsion Systems") diff --git a/eos/effects/subsystembonusgallentedefensive2remotearmorrepairamount.py b/eos/effects/subsystembonusgallentedefensive2remotearmorrepairamount.py index 78d75f96b..9a8a14678 100644 --- a/eos/effects/subsystembonusgallentedefensive2remotearmorrepairamount.py +++ b/eos/effects/subsystembonusgallentedefensive2remotearmorrepairamount.py @@ -4,6 +4,5 @@ # Subsystem: Proteus Defensive - Adaptive Augmenter type = "passive" def handler(fit, module, context): - level = fit.character.getSkill("Gallente Defensive Systems").level fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Remote Armor Repairer", - "armorDamageAmount", module.getModifiedItemAttr("subsystemBonusGallenteDefensive2") * level) + "armorDamageAmount", module.getModifiedItemAttr("subsystemBonusGallenteDefensive2"), skill="Gallente Defensive Systems") diff --git a/eos/effects/subsystembonusgallentedefensivearmoredwarfare.py b/eos/effects/subsystembonusgallentedefensivearmoredwarfare.py index 5086c5329..d48c4da75 100644 --- a/eos/effects/subsystembonusgallentedefensivearmoredwarfare.py +++ b/eos/effects/subsystembonusgallentedefensivearmoredwarfare.py @@ -4,6 +4,5 @@ # Subsystem: Proteus Defensive - Warfare Processor type = "passive" def handler(fit, module, context): - level = fit.character.getSkill("Gallente Defensive Systems").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Armored Warfare Specialist"), - "commandBonus", module.getModifiedItemAttr("subsystemBonusGallenteDefensive") * level) + "commandBonus", module.getModifiedItemAttr("subsystemBonusGallenteDefensive"), skill="Gallente Defensive Systems") diff --git a/eos/effects/subsystembonusgallentedefensivearmorhp.py b/eos/effects/subsystembonusgallentedefensivearmorhp.py index 6ac0616d5..431669617 100644 --- a/eos/effects/subsystembonusgallentedefensivearmorhp.py +++ b/eos/effects/subsystembonusgallentedefensivearmorhp.py @@ -4,5 +4,4 @@ # Subsystem: Proteus Defensive - Augmented Plating type = "passive" def handler(fit, module, context): - level = fit.character.getSkill("Gallente Defensive Systems").level - fit.ship.boostItemAttr("armorHP", module.getModifiedItemAttr("subsystemBonusGallenteDefensive") * level) + fit.ship.boostItemAttr("armorHP", module.getModifiedItemAttr("subsystemBonusGallenteDefensive"), skill="Gallente Defensive Systems") diff --git a/eos/effects/subsystembonusgallentedefensivearmorrepairamount.py b/eos/effects/subsystembonusgallentedefensivearmorrepairamount.py index 2426afd7a..c3110e4e5 100644 --- a/eos/effects/subsystembonusgallentedefensivearmorrepairamount.py +++ b/eos/effects/subsystembonusgallentedefensivearmorrepairamount.py @@ -4,6 +4,5 @@ # Subsystem: Proteus Defensive - Nanobot Injector type = "passive" def handler(fit, module, context): - level = fit.character.getSkill("Gallente Defensive Systems").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Repair Systems"), - "armorDamageAmount", module.getModifiedItemAttr("subsystemBonusGallenteDefensive") * level) + "armorDamageAmount", module.getModifiedItemAttr("subsystemBonusGallenteDefensive"), skill="Gallente Defensive Systems") diff --git a/eos/effects/subsystembonusgallentedefensivearmorresistance.py b/eos/effects/subsystembonusgallentedefensivearmorresistance.py index 878532071..2b7809ae3 100644 --- a/eos/effects/subsystembonusgallentedefensivearmorresistance.py +++ b/eos/effects/subsystembonusgallentedefensivearmorresistance.py @@ -4,7 +4,6 @@ # Subsystem: Proteus Defensive - Adaptive Augmenter type = "passive" def handler(fit, module, context): - level = fit.character.getSkill("Gallente Defensive Systems").level for type in ("Em", "Explosive", "Kinetic", "Thermal"): fit.ship.boostItemAttr("armor{0}DamageResonance".format(type), - module.getModifiedItemAttr("subsystemBonusGallenteDefensive") * level) + module.getModifiedItemAttr("subsystemBonusGallenteDefensive"), skill="Gallente Defensive Systems") diff --git a/eos/effects/subsystembonusgallentedefensiveinformationwarfare.py b/eos/effects/subsystembonusgallentedefensiveinformationwarfare.py index 6c9be98d1..d6086d313 100644 --- a/eos/effects/subsystembonusgallentedefensiveinformationwarfare.py +++ b/eos/effects/subsystembonusgallentedefensiveinformationwarfare.py @@ -4,6 +4,5 @@ # Subsystem: Proteus Defensive - Warfare Processor type = "passive" def handler(fit, module, context): - level = fit.character.getSkill("Gallente Defensive Systems").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Information Warfare Specialist"), - "commandBonus", module.getModifiedItemAttr("subsystemBonusGallenteDefensive") * level) + "commandBonus", module.getModifiedItemAttr("subsystemBonusGallenteDefensive"), skill="Gallente Defensive Systems") diff --git a/eos/effects/subsystembonusgallentedefensiveinformationwarfarehidden.py b/eos/effects/subsystembonusgallentedefensiveinformationwarfarehidden.py index 454d3b7f3..adbf1a301 100644 --- a/eos/effects/subsystembonusgallentedefensiveinformationwarfarehidden.py +++ b/eos/effects/subsystembonusgallentedefensiveinformationwarfarehidden.py @@ -4,6 +4,5 @@ # Subsystem: Proteus Defensive - Warfare Processor type = "passive" def handler(fit, module, context): - level = fit.character.getSkill("Gallente Defensive Systems").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Information Warfare Specialist"), - "commandBonusHidden", module.getModifiedItemAttr("subsystemBonusGallenteDefensive") * level) + "commandBonusHidden", module.getModifiedItemAttr("subsystemBonusGallenteDefensive"), skill="Gallente Defensive Systems") diff --git a/eos/effects/subsystembonusgallentedefensiveskirmishwarfare.py b/eos/effects/subsystembonusgallentedefensiveskirmishwarfare.py index 9b060a972..c52715708 100644 --- a/eos/effects/subsystembonusgallentedefensiveskirmishwarfare.py +++ b/eos/effects/subsystembonusgallentedefensiveskirmishwarfare.py @@ -4,6 +4,5 @@ # Subsystem: Proteus Defensive - Warfare Processor type = "passive" def handler(fit, module, context): - level = fit.character.getSkill("Gallente Defensive Systems").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Skirmish Warfare Specialist"), - "commandBonus", module.getModifiedItemAttr("subsystemBonusGallenteDefensive") * level) + "commandBonus", module.getModifiedItemAttr("subsystemBonusGallenteDefensive"), skill="Gallente Defensive Systems") diff --git a/eos/effects/subsystembonusgallenteelectronic2maxtargetingrange.py b/eos/effects/subsystembonusgallenteelectronic2maxtargetingrange.py index 12d154a38..7da45acd2 100644 --- a/eos/effects/subsystembonusgallenteelectronic2maxtargetingrange.py +++ b/eos/effects/subsystembonusgallenteelectronic2maxtargetingrange.py @@ -4,5 +4,4 @@ # Subsystem: Proteus Electronics - Dissolution Sequencer type = "passive" def handler(fit, module, context): - level = fit.character.getSkill("Gallente Electronic Systems").level - fit.ship.boostItemAttr("maxTargetRange", module.getModifiedItemAttr("subsystemBonusGallenteElectronic2") * level) + fit.ship.boostItemAttr("maxTargetRange", module.getModifiedItemAttr("subsystemBonusGallenteElectronic2"), skill="Gallente Electronic Systems") diff --git a/eos/effects/subsystembonusgallenteelectronic2tractorbeamrange.py b/eos/effects/subsystembonusgallenteelectronic2tractorbeamrange.py index 98298ca12..8dfab20d7 100644 --- a/eos/effects/subsystembonusgallenteelectronic2tractorbeamrange.py +++ b/eos/effects/subsystembonusgallenteelectronic2tractorbeamrange.py @@ -4,6 +4,5 @@ # Subsystem: Proteus Electronics - Emergent Locus Analyzer type = "passive" def handler(fit, module, context): - level = fit.character.getSkill("Gallente Electronic Systems").level fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Tractor Beam", - "maxRange", module.getModifiedItemAttr("subsystemBonusGallenteElectronic2") * level) + "maxRange", module.getModifiedItemAttr("subsystemBonusGallenteElectronic2"), skill="Gallente Electronic Systems") diff --git a/eos/effects/subsystembonusgallenteelectronic2tractorbeamvelocity.py b/eos/effects/subsystembonusgallenteelectronic2tractorbeamvelocity.py index c85d0372f..6ca9ea250 100644 --- a/eos/effects/subsystembonusgallenteelectronic2tractorbeamvelocity.py +++ b/eos/effects/subsystembonusgallenteelectronic2tractorbeamvelocity.py @@ -4,6 +4,5 @@ # Subsystem: Proteus Electronics - Emergent Locus Analyzer type = "passive" def handler(fit, module, context): - level = fit.character.getSkill("Gallente Electronic Systems").level fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Tractor Beam", - "maxTractorVelocity", module.getModifiedItemAttr("subsystemBonusGallenteElectronic2") * level) + "maxTractorVelocity", module.getModifiedItemAttr("subsystemBonusGallenteElectronic2"), skill="Gallente Electronic Systems") diff --git a/eos/effects/subsystembonusgallenteelectroniccpu.py b/eos/effects/subsystembonusgallenteelectroniccpu.py index c48a7dea8..9eac793a5 100644 --- a/eos/effects/subsystembonusgallenteelectroniccpu.py +++ b/eos/effects/subsystembonusgallenteelectroniccpu.py @@ -4,5 +4,4 @@ # Subsystem: Proteus Electronics - CPU Efficiency Gate type = "passive" def handler(fit, module, context): - level = fit.character.getSkill("Gallente Electronic Systems").level - fit.ship.boostItemAttr("cpuOutput", module.getModifiedItemAttr("subsystemBonusGallenteElectronic") * level) + fit.ship.boostItemAttr("cpuOutput", module.getModifiedItemAttr("subsystemBonusGallenteElectronic"), skill="Gallente Electronic Systems") diff --git a/eos/effects/subsystembonusgallenteelectronicscanprobestrength.py b/eos/effects/subsystembonusgallenteelectronicscanprobestrength.py index 7a4193a59..3a4bd3292 100644 --- a/eos/effects/subsystembonusgallenteelectronicscanprobestrength.py +++ b/eos/effects/subsystembonusgallenteelectronicscanprobestrength.py @@ -4,6 +4,5 @@ # Subsystem: Proteus Electronics - Emergent Locus Analyzer type = "passive" def handler(fit, module, context): - level = fit.character.getSkill("Gallente Electronic Systems").level fit.modules.filteredChargeBoost(lambda mod: mod.charge.group.name == "Scanner Probe", - "baseSensorStrength", module.getModifiedItemAttr("subsystemBonusGallenteElectronic") * level) + "baseSensorStrength", module.getModifiedItemAttr("subsystemBonusGallenteElectronic"), skill="Gallente Electronic Systems") diff --git a/eos/effects/subsystembonusgallenteelectronicscanstrengthmagnetometric.py b/eos/effects/subsystembonusgallenteelectronicscanstrengthmagnetometric.py index de2bc404d..8c371cc8f 100644 --- a/eos/effects/subsystembonusgallenteelectronicscanstrengthmagnetometric.py +++ b/eos/effects/subsystembonusgallenteelectronicscanstrengthmagnetometric.py @@ -4,5 +4,4 @@ # Subsystem: Proteus Electronics - Dissolution Sequencer type = "passive" def handler(fit, module, context): - level = fit.character.getSkill("Gallente Electronic Systems").level - fit.ship.boostItemAttr("scanMagnetometricStrength", module.getModifiedItemAttr("subsystemBonusGallenteElectronic") * level) + fit.ship.boostItemAttr("scanMagnetometricStrength", module.getModifiedItemAttr("subsystemBonusGallenteElectronic"), skill="Gallente Electronic Systems") diff --git a/eos/effects/subsystembonusgallenteelectronicwarpscramblerange.py b/eos/effects/subsystembonusgallenteelectronicwarpscramblerange.py index 9c975d0c3..9947ef45d 100644 --- a/eos/effects/subsystembonusgallenteelectronicwarpscramblerange.py +++ b/eos/effects/subsystembonusgallenteelectronicwarpscramblerange.py @@ -4,6 +4,5 @@ # Subsystem: Proteus Electronics - Friction Extension Processor type = "passive" def handler(fit, module, context): - level = fit.character.getSkill("Gallente Electronic Systems").level fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Warp Scrambler", - "maxRange", module.getModifiedItemAttr("subsystemBonusGallenteElectronic") * level) + "maxRange", module.getModifiedItemAttr("subsystemBonusGallenteElectronic"), skill="Gallente Electronic Systems") diff --git a/eos/effects/subsystembonusgallenteengineering2dronemwd.py b/eos/effects/subsystembonusgallenteengineering2dronemwd.py index 619c6e669..17777c1b5 100644 --- a/eos/effects/subsystembonusgallenteengineering2dronemwd.py +++ b/eos/effects/subsystembonusgallenteengineering2dronemwd.py @@ -4,6 +4,5 @@ # Subsystem: Proteus Engineering - Augmented Capacitor Reservoir type = "passive" def handler(fit, module, context): - level = fit.character.getSkill("Gallente Engineering Systems").level fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Drones"), "maxVelocity", - module.getModifiedItemAttr("subsystemBonusGallenteEngineering2") * level) + module.getModifiedItemAttr("subsystemBonusGallenteEngineering2"), skill="Gallente Engineering Systems") diff --git a/eos/effects/subsystembonusgallenteengineeringcapacitorrecharge.py b/eos/effects/subsystembonusgallenteengineeringcapacitorrecharge.py index 2a237c9a9..f33801005 100644 --- a/eos/effects/subsystembonusgallenteengineeringcapacitorrecharge.py +++ b/eos/effects/subsystembonusgallenteengineeringcapacitorrecharge.py @@ -4,5 +4,4 @@ # Subsystem: Proteus Engineering - Capacitor Regeneration Matrix type = "passive" def handler(fit, module, context): - level = fit.character.getSkill("Gallente Engineering Systems").level - fit.ship.boostItemAttr("rechargeRate", module.getModifiedItemAttr("subsystemBonusGallenteEngineering") * level) + fit.ship.boostItemAttr("rechargeRate", module.getModifiedItemAttr("subsystemBonusGallenteEngineering"), skill="Gallente Engineering Systems") diff --git a/eos/effects/subsystembonusgallenteengineeringdronehp.py b/eos/effects/subsystembonusgallenteengineeringdronehp.py index 84411417b..2de1c3b93 100644 --- a/eos/effects/subsystembonusgallenteengineeringdronehp.py +++ b/eos/effects/subsystembonusgallenteengineeringdronehp.py @@ -4,7 +4,6 @@ # Subsystem: Proteus Engineering - Augmented Capacitor Reservoir type = "passive" def handler(fit, module, context): - level = fit.character.getSkill("Gallente Engineering Systems").level for layer in ("shieldCapacity", "armorHP", "hp"): fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Drones"), layer, - module.getModifiedItemAttr("subsystemBonusGallenteEngineering") * level) + module.getModifiedItemAttr("subsystemBonusGallenteEngineering"), skill="Gallente Engineering Systems") diff --git a/eos/effects/subsystembonusgallenteengineeringheatdamagereduction.py b/eos/effects/subsystembonusgallenteengineeringheatdamagereduction.py index f1de87cb5..0d0e98896 100644 --- a/eos/effects/subsystembonusgallenteengineeringheatdamagereduction.py +++ b/eos/effects/subsystembonusgallenteengineeringheatdamagereduction.py @@ -4,6 +4,5 @@ # Subsystem: Proteus Engineering - Supplemental Coolant Injector type = "passive" def handler(fit, module, context): - level = fit.character.getSkill("Gallente Engineering Systems").level fit.modules.filteredItemBoost(lambda mod: True, "heatDamage", - module.getModifiedItemAttr("subsystemBonusGallenteEngineering") * level) + module.getModifiedItemAttr("subsystemBonusGallenteEngineering"), skill="Gallente Engineering Systems") diff --git a/eos/effects/subsystembonusgallenteengineeringpoweroutput.py b/eos/effects/subsystembonusgallenteengineeringpoweroutput.py index ea1e0d49f..7deea9d0c 100644 --- a/eos/effects/subsystembonusgallenteengineeringpoweroutput.py +++ b/eos/effects/subsystembonusgallenteengineeringpoweroutput.py @@ -4,5 +4,4 @@ # Subsystem: Proteus Engineering - Power Core Multiplier type = "passive" def handler(fit, module, context): - level = fit.character.getSkill("Gallente Engineering Systems").level - fit.ship.boostItemAttr("powerOutput", module.getModifiedItemAttr("subsystemBonusGallenteEngineering") * level) + fit.ship.boostItemAttr("powerOutput", module.getModifiedItemAttr("subsystemBonusGallenteEngineering"), skill="Gallente Engineering Systems") diff --git a/eos/effects/subsystembonusgallenteoffensive2hybridweapondamagemultiplier.py b/eos/effects/subsystembonusgallenteoffensive2hybridweapondamagemultiplier.py index 979db919d..370857030 100644 --- a/eos/effects/subsystembonusgallenteoffensive2hybridweapondamagemultiplier.py +++ b/eos/effects/subsystembonusgallenteoffensive2hybridweapondamagemultiplier.py @@ -4,6 +4,5 @@ # Variations of subsystem: Proteus Offensive - Dissonic Encoding Platform (3 of 4) type = "passive" def handler(fit, module, context): - level = fit.character.getSkill("Gallente Offensive Systems").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Hybrid Turret"), - "damageMultiplier", module.getModifiedItemAttr("subsystemBonusGallenteOffensive2") * level) + "damageMultiplier", module.getModifiedItemAttr("subsystemBonusGallenteOffensive2"), skill="Gallente Offensive Systems") diff --git a/eos/effects/subsystembonusgallenteoffensive3dronedamagemultiplier.py b/eos/effects/subsystembonusgallenteoffensive3dronedamagemultiplier.py index dcace9300..05d7f77c3 100644 --- a/eos/effects/subsystembonusgallenteoffensive3dronedamagemultiplier.py +++ b/eos/effects/subsystembonusgallenteoffensive3dronedamagemultiplier.py @@ -4,6 +4,5 @@ # Subsystem: Proteus Offensive - Drone Synthesis Projector type = "passive" def handler(fit, module, context): - level = fit.character.getSkill("Gallente Offensive Systems").level fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Drones"), - "damageMultiplier", module.getModifiedItemAttr("subsystemBonusGallenteOffensive3") * level) + "damageMultiplier", module.getModifiedItemAttr("subsystemBonusGallenteOffensive3"), skill="Gallente Offensive Systems") diff --git a/eos/effects/subsystembonusgallenteoffensive3turrettracking.py b/eos/effects/subsystembonusgallenteoffensive3turrettracking.py index 3b288fe9b..20fc3544e 100644 --- a/eos/effects/subsystembonusgallenteoffensive3turrettracking.py +++ b/eos/effects/subsystembonusgallenteoffensive3turrettracking.py @@ -4,6 +4,5 @@ # Subsystem: Proteus Offensive - Dissonic Encoding Platform type = "passive" def handler(fit, module, context): - level = fit.character.getSkill("Gallente Offensive Systems").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Hybrid Turret"), - "trackingSpeed", module.getModifiedItemAttr("subsystemBonusGallenteOffensive3") * level) + "trackingSpeed", module.getModifiedItemAttr("subsystemBonusGallenteOffensive3"), skill="Gallente Offensive Systems") diff --git a/eos/effects/subsystembonusgallenteoffensivedronehp.py b/eos/effects/subsystembonusgallenteoffensivedronehp.py index d8d7ad9e3..8fd52fbed 100644 --- a/eos/effects/subsystembonusgallenteoffensivedronehp.py +++ b/eos/effects/subsystembonusgallenteoffensivedronehp.py @@ -4,7 +4,6 @@ # Subsystem: Proteus Offensive - Drone Synthesis Projector type = "passive" def handler(fit, module, context): - level = fit.character.getSkill("Gallente Offensive Systems").level for layer in ("shieldCapacity", "armorHP", "hp"): fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Drones"), layer, - module.getModifiedItemAttr("subsystemBonusGallenteOffensive") * level) + module.getModifiedItemAttr("subsystemBonusGallenteOffensive"), skill="Gallente Offensive Systems") diff --git a/eos/effects/subsystembonusgallenteoffensivehybridweapondamagemultiplier.py b/eos/effects/subsystembonusgallenteoffensivehybridweapondamagemultiplier.py index 2a8971246..be39a23e0 100644 --- a/eos/effects/subsystembonusgallenteoffensivehybridweapondamagemultiplier.py +++ b/eos/effects/subsystembonusgallenteoffensivehybridweapondamagemultiplier.py @@ -4,6 +4,5 @@ # Subsystem: Proteus Offensive - Covert Reconfiguration type = "passive" def handler(fit, module, context): - level = fit.character.getSkill("Gallente Offensive Systems").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Hybrid Turret"), - "damageMultiplier", module.getModifiedItemAttr("subsystemBonusGallenteOffensive") * level) + "damageMultiplier", module.getModifiedItemAttr("subsystemBonusGallenteOffensive"), skill="Gallente Offensive Systems") diff --git a/eos/effects/subsystembonusgallenteoffensivehybridweaponfalloff.py b/eos/effects/subsystembonusgallenteoffensivehybridweaponfalloff.py index a3f041f3c..e75bbe686 100644 --- a/eos/effects/subsystembonusgallenteoffensivehybridweaponfalloff.py +++ b/eos/effects/subsystembonusgallenteoffensivehybridweaponfalloff.py @@ -5,6 +5,5 @@ # Subsystem: Proteus Offensive - Hybrid Propulsion Armature type = "passive" def handler(fit, module, context): - level = fit.character.getSkill("Gallente Offensive Systems").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Hybrid Turret"), - "falloff", module.getModifiedItemAttr("subsystemBonusGallenteOffensive") * level) + "falloff", module.getModifiedItemAttr("subsystemBonusGallenteOffensive"), skill="Gallente Offensive Systems") diff --git a/eos/effects/subsystembonusgallentepropulsion2warpcapacitor.py b/eos/effects/subsystembonusgallentepropulsion2warpcapacitor.py index ba950a3f4..ecb625ece 100644 --- a/eos/effects/subsystembonusgallentepropulsion2warpcapacitor.py +++ b/eos/effects/subsystembonusgallentepropulsion2warpcapacitor.py @@ -4,5 +4,4 @@ # Subsystem: Proteus Propulsion - Gravitational Capacitor type = "passive" def handler(fit, module, context): - level = fit.character.getSkill("Gallente Propulsion Systems").level - fit.ship.boostItemAttr("warpCapacitorNeed", module.getModifiedItemAttr("subsystemBonusGallentePropulsion2") * level) + fit.ship.boostItemAttr("warpCapacitorNeed", module.getModifiedItemAttr("subsystemBonusGallentePropulsion2"), skill="Gallente Propulsion Systems") diff --git a/eos/effects/subsystembonusgallentepropulsionabmwdcapneed.py b/eos/effects/subsystembonusgallentepropulsionabmwdcapneed.py index d349bce67..7c8955146 100644 --- a/eos/effects/subsystembonusgallentepropulsionabmwdcapneed.py +++ b/eos/effects/subsystembonusgallentepropulsionabmwdcapneed.py @@ -4,6 +4,5 @@ # Subsystem: Proteus Propulsion - Localized Injectors type = "passive" def handler(fit, module, context): - level = fit.character.getSkill("Gallente Propulsion Systems").level fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Propulsion Module", - "capacitorNeed", module.getModifiedItemAttr("subsystemBonusGallentePropulsion") * level) + "capacitorNeed", module.getModifiedItemAttr("subsystemBonusGallentePropulsion"), skill="Gallente Propulsion Systems") diff --git a/eos/effects/subsystembonusgallentepropulsionagility.py b/eos/effects/subsystembonusgallentepropulsionagility.py index ad03ac4c7..bb3716244 100644 --- a/eos/effects/subsystembonusgallentepropulsionagility.py +++ b/eos/effects/subsystembonusgallentepropulsionagility.py @@ -4,5 +4,4 @@ # Subsystem: Proteus Propulsion - Interdiction Nullifier type = "passive" def handler(fit, module, context): - level = fit.character.getSkill("Gallente Propulsion Systems").level - fit.ship.boostItemAttr("agility", module.getModifiedItemAttr("subsystemBonusGallentePropulsion") * level) + fit.ship.boostItemAttr("agility", module.getModifiedItemAttr("subsystemBonusGallentePropulsion"), skill="Gallente Propulsion Systems") diff --git a/eos/effects/subsystembonusgallentepropulsionmwdpenalty.py b/eos/effects/subsystembonusgallentepropulsionmwdpenalty.py index 544286e40..ec8701f98 100644 --- a/eos/effects/subsystembonusgallentepropulsionmwdpenalty.py +++ b/eos/effects/subsystembonusgallentepropulsionmwdpenalty.py @@ -4,6 +4,5 @@ # Subsystem: Proteus Propulsion - Wake Limiter type = "passive" def handler(fit, module, context): - level = fit.character.getSkill("Gallente Propulsion Systems").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("High Speed Maneuvering"), - "signatureRadiusBonus", module.getModifiedItemAttr("subsystemBonusGallentePropulsion") * level) + "signatureRadiusBonus", module.getModifiedItemAttr("subsystemBonusGallentePropulsion"), skill="Gallente Propulsion Systems") diff --git a/eos/effects/subsystembonusgallentepropulsionwarpspeed.py b/eos/effects/subsystembonusgallentepropulsionwarpspeed.py index d4b08f224..53bcf1d00 100644 --- a/eos/effects/subsystembonusgallentepropulsionwarpspeed.py +++ b/eos/effects/subsystembonusgallentepropulsionwarpspeed.py @@ -4,5 +4,4 @@ # Subsystem: Proteus Propulsion - Gravitational Capacitor type = "passive" def handler(fit, module, context): - level = fit.character.getSkill("Gallente Propulsion Systems").level - fit.ship.boostItemAttr("baseWarpSpeed", module.getModifiedItemAttr("subsystemBonusGallentePropulsion") * level) + fit.ship.boostItemAttr("baseWarpSpeed", module.getModifiedItemAttr("subsystemBonusGallentePropulsion"), skill="Gallente Propulsion Systems") diff --git a/eos/effects/subsystembonusminmatardefensive2remoteshieldtransporteramount.py b/eos/effects/subsystembonusminmatardefensive2remoteshieldtransporteramount.py index 34fb57335..1e5d2c069 100644 --- a/eos/effects/subsystembonusminmatardefensive2remoteshieldtransporteramount.py +++ b/eos/effects/subsystembonusminmatardefensive2remoteshieldtransporteramount.py @@ -4,6 +4,5 @@ # Subsystem: Loki Defensive - Adaptive Shielding type = "passive" def handler(fit, module, context): - level = fit.character.getSkill("Minmatar Defensive Systems").level fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Remote Shield Booster", - "shieldBonus", module.getModifiedItemAttr("subsystemBonusMinmatarDefensive2") * level) + "shieldBonus", module.getModifiedItemAttr("subsystemBonusMinmatarDefensive2"), skill="Minmatar Defensive Systems") diff --git a/eos/effects/subsystembonusminmatardefensivearmoredwarfare.py b/eos/effects/subsystembonusminmatardefensivearmoredwarfare.py index a25ee7054..373b7607f 100644 --- a/eos/effects/subsystembonusminmatardefensivearmoredwarfare.py +++ b/eos/effects/subsystembonusminmatardefensivearmoredwarfare.py @@ -4,6 +4,5 @@ # Subsystem: Loki Defensive - Warfare Processor type = "passive" def handler(fit, module, context): - level = fit.character.getSkill("Minmatar Defensive Systems").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Armored Warfare Specialist"), - "commandBonus", module.getModifiedItemAttr("subsystemBonusMinmatarDefensive") * level) + "commandBonus", module.getModifiedItemAttr("subsystemBonusMinmatarDefensive"), skill="Minmatar Defensive Systems") diff --git a/eos/effects/subsystembonusminmatardefensivearmorresistance.py b/eos/effects/subsystembonusminmatardefensivearmorresistance.py index 01a7915da..3fac3a9a3 100644 --- a/eos/effects/subsystembonusminmatardefensivearmorresistance.py +++ b/eos/effects/subsystembonusminmatardefensivearmorresistance.py @@ -4,7 +4,6 @@ # Subsystem: Loki Defensive - Adaptive Augmenter type = "passive" def handler(fit, module, context): - level = fit.character.getSkill("Minmatar Defensive Systems").level for type in ("Em", "Explosive", "Kinetic", "Thermal"): fit.ship.boostItemAttr("armor{0}DamageResonance".format(type), - module.getModifiedItemAttr("subsystemBonusMinmatarDefensive") * level) + module.getModifiedItemAttr("subsystemBonusMinmatarDefensive"), skill="Minmatar Defensive Systems") diff --git a/eos/effects/subsystembonusminmatardefensiveshieldresistance.py b/eos/effects/subsystembonusminmatardefensiveshieldresistance.py index 0a79b6db0..30d5ec983 100644 --- a/eos/effects/subsystembonusminmatardefensiveshieldresistance.py +++ b/eos/effects/subsystembonusminmatardefensiveshieldresistance.py @@ -4,6 +4,5 @@ # Subsystem: Loki Defensive - Adaptive Shielding type = "passive" def handler(fit, module, context): - level = fit.character.getSkill("Minmatar Defensive Systems").level for type in ("Em", "Explosive", "Kinetic", "Thermal"): - fit.ship.boostItemAttr("shield{0}DamageResonance".format(type), module.getModifiedItemAttr("subsystemBonusMinmatarDefensive") * level) + fit.ship.boostItemAttr("shield{0}DamageResonance".format(type), module.getModifiedItemAttr("subsystemBonusMinmatarDefensive"), skill="Minmatar Defensive Systems") diff --git a/eos/effects/subsystembonusminmatardefensivesiegewarfare.py b/eos/effects/subsystembonusminmatardefensivesiegewarfare.py index caca517ab..0690fde43 100644 --- a/eos/effects/subsystembonusminmatardefensivesiegewarfare.py +++ b/eos/effects/subsystembonusminmatardefensivesiegewarfare.py @@ -4,6 +4,5 @@ # Subsystem: Loki Defensive - Warfare Processor type = "passive" def handler(fit, module, context): - level = fit.character.getSkill("Minmatar Defensive Systems").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Siege Warfare Specialist"), - "commandBonus", module.getModifiedItemAttr("subsystemBonusMinmatarDefensive") * level) + "commandBonus", module.getModifiedItemAttr("subsystemBonusMinmatarDefensive"), skill="Minmatar Defensive Systems") diff --git a/eos/effects/subsystembonusminmatardefensivesignatureradius.py b/eos/effects/subsystembonusminmatardefensivesignatureradius.py index c9c7dbc21..d4731e8b8 100644 --- a/eos/effects/subsystembonusminmatardefensivesignatureradius.py +++ b/eos/effects/subsystembonusminmatardefensivesignatureradius.py @@ -4,5 +4,4 @@ # Subsystem: Loki Defensive - Amplification Node type = "passive" def handler(fit, module, context): - level = fit.character.getSkill("Minmatar Defensive Systems").level - fit.ship.boostItemAttr("signatureRadius", module.getModifiedItemAttr("subsystemBonusMinmatarDefensive") * level) + fit.ship.boostItemAttr("signatureRadius", module.getModifiedItemAttr("subsystemBonusMinmatarDefensive"), skill="Minmatar Defensive Systems") diff --git a/eos/effects/subsystembonusminmatardefensiveskirmishwarfare.py b/eos/effects/subsystembonusminmatardefensiveskirmishwarfare.py index 4163ecabb..f21b39842 100644 --- a/eos/effects/subsystembonusminmatardefensiveskirmishwarfare.py +++ b/eos/effects/subsystembonusminmatardefensiveskirmishwarfare.py @@ -4,6 +4,5 @@ # Subsystem: Loki Defensive - Warfare Processor type = "passive" def handler(fit, module, context): - level = fit.character.getSkill("Minmatar Defensive Systems").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Skirmish Warfare Specialist"), - "commandBonus", module.getModifiedItemAttr("subsystemBonusMinmatarDefensive") * level) + "commandBonus", module.getModifiedItemAttr("subsystemBonusMinmatarDefensive"), skill="Minmatar Defensive Systems") diff --git a/eos/effects/subsystembonusminmatarelectronic2maxtargetingrange.py b/eos/effects/subsystembonusminmatarelectronic2maxtargetingrange.py index bbac66437..fe4986a7c 100644 --- a/eos/effects/subsystembonusminmatarelectronic2maxtargetingrange.py +++ b/eos/effects/subsystembonusminmatarelectronic2maxtargetingrange.py @@ -4,5 +4,4 @@ # Subsystem: Loki Electronics - Dissolution Sequencer type = "passive" def handler(fit, module, context): - level = fit.character.getSkill("Minmatar Electronic Systems").level - fit.ship.boostItemAttr("maxTargetRange", module.getModifiedItemAttr("subsystemBonusMinmatarElectronic2") * level) + fit.ship.boostItemAttr("maxTargetRange", module.getModifiedItemAttr("subsystemBonusMinmatarElectronic2"), skill="Minmatar Electronic Systems") diff --git a/eos/effects/subsystembonusminmatarelectronic2scanresolution.py b/eos/effects/subsystembonusminmatarelectronic2scanresolution.py index d2afaf275..94a58f4e3 100644 --- a/eos/effects/subsystembonusminmatarelectronic2scanresolution.py +++ b/eos/effects/subsystembonusminmatarelectronic2scanresolution.py @@ -4,5 +4,4 @@ # Subsystem: Loki Electronics - Tactical Targeting Network type = "passive" def handler(fit, module, context): - level = fit.character.getSkill("Minmatar Electronic Systems").level - fit.ship.boostItemAttr("scanResolution", module.getModifiedItemAttr("subsystemBonusMinmatarElectronic2") * level) + fit.ship.boostItemAttr("scanResolution", module.getModifiedItemAttr("subsystemBonusMinmatarElectronic2"), skill="Minmatar Electronic Systems") diff --git a/eos/effects/subsystembonusminmatarelectronic2tractorbeamrange.py b/eos/effects/subsystembonusminmatarelectronic2tractorbeamrange.py index de12f49b5..17a8867f2 100644 --- a/eos/effects/subsystembonusminmatarelectronic2tractorbeamrange.py +++ b/eos/effects/subsystembonusminmatarelectronic2tractorbeamrange.py @@ -4,6 +4,5 @@ # Subsystem: Loki Electronics - Emergent Locus Analyzer type = "passive" def handler(fit, module, context): - level = fit.character.getSkill("Minmatar Electronic Systems").level fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Tractor Beam", - "maxRange", module.getModifiedItemAttr("subsystemBonusMinmatarElectronic2") * level) + "maxRange", module.getModifiedItemAttr("subsystemBonusMinmatarElectronic2"), skill="Minmatar Electronic Systems") diff --git a/eos/effects/subsystembonusminmatarelectronic2tractorbeamvelocity.py b/eos/effects/subsystembonusminmatarelectronic2tractorbeamvelocity.py index 4158877cf..4e7eefc04 100644 --- a/eos/effects/subsystembonusminmatarelectronic2tractorbeamvelocity.py +++ b/eos/effects/subsystembonusminmatarelectronic2tractorbeamvelocity.py @@ -4,6 +4,5 @@ # Subsystem: Loki Electronics - Emergent Locus Analyzer type = "passive" def handler(fit, module, context): - level = fit.character.getSkill("Minmatar Electronic Systems").level fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Tractor Beam", - "maxTractorVelocity", module.getModifiedItemAttr("subsystemBonusMinmatarElectronic2") * level) + "maxTractorVelocity", module.getModifiedItemAttr("subsystemBonusMinmatarElectronic2"), skill="Minmatar Electronic Systems") diff --git a/eos/effects/subsystembonusminmatarelectronicscanprobestrength.py b/eos/effects/subsystembonusminmatarelectronicscanprobestrength.py index 67c151166..b9f91387b 100644 --- a/eos/effects/subsystembonusminmatarelectronicscanprobestrength.py +++ b/eos/effects/subsystembonusminmatarelectronicscanprobestrength.py @@ -4,6 +4,5 @@ # Subsystem: Loki Electronics - Emergent Locus Analyzer type = "passive" def handler(fit, module, context): - level = fit.character.getSkill("Minmatar Electronic Systems").level fit.modules.filteredChargeBoost(lambda mod: mod.charge.group.name == "Scanner Probe", - "baseSensorStrength", module.getModifiedItemAttr("subsystemBonusMinmatarElectronic") * level) + "baseSensorStrength", module.getModifiedItemAttr("subsystemBonusMinmatarElectronic"), skill="Minmatar Electronic Systems") diff --git a/eos/effects/subsystembonusminmatarelectronicscanstrengthladar.py b/eos/effects/subsystembonusminmatarelectronicscanstrengthladar.py index 806dd4e32..407ebef13 100644 --- a/eos/effects/subsystembonusminmatarelectronicscanstrengthladar.py +++ b/eos/effects/subsystembonusminmatarelectronicscanstrengthladar.py @@ -4,5 +4,4 @@ # Subsystem: Loki Electronics - Dissolution Sequencer type = "passive" def handler(fit, module, context): - level = fit.character.getSkill("Minmatar Electronic Systems").level - fit.ship.boostItemAttr("scanLadarStrength", module.getModifiedItemAttr("subsystemBonusMinmatarElectronic") * level) + fit.ship.boostItemAttr("scanLadarStrength", module.getModifiedItemAttr("subsystemBonusMinmatarElectronic"), skill="Minmatar Electronic Systems") diff --git a/eos/effects/subsystembonusminmatarelectronicstasiswebifierrange.py b/eos/effects/subsystembonusminmatarelectronicstasiswebifierrange.py index b540f90ef..e0eb629c8 100644 --- a/eos/effects/subsystembonusminmatarelectronicstasiswebifierrange.py +++ b/eos/effects/subsystembonusminmatarelectronicstasiswebifierrange.py @@ -4,6 +4,5 @@ # Subsystem: Loki Electronics - Immobility Drivers type = "passive" def handler(fit, module, context): - level = fit.character.getSkill("Minmatar Electronic Systems").level fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Stasis Web", - "maxRange", module.getModifiedItemAttr("subsystemBonusMinmatarElectronic") * level) + "maxRange", module.getModifiedItemAttr("subsystemBonusMinmatarElectronic"), skill="Minmatar Electronic Systems") diff --git a/eos/effects/subsystembonusminmatarengineeringcapacitorcapacity.py b/eos/effects/subsystembonusminmatarengineeringcapacitorcapacity.py index b24d0530f..7302b9149 100644 --- a/eos/effects/subsystembonusminmatarengineeringcapacitorcapacity.py +++ b/eos/effects/subsystembonusminmatarengineeringcapacitorcapacity.py @@ -4,5 +4,4 @@ # Subsystem: Loki Engineering - Augmented Capacitor Reservoir type = "passive" def handler(fit, module, context): - level = fit.character.getSkill("Minmatar Engineering Systems").level - fit.ship.boostItemAttr("capacitorCapacity", module.getModifiedItemAttr("subsystemBonusMinmatarEngineering") * level) + fit.ship.boostItemAttr("capacitorCapacity", module.getModifiedItemAttr("subsystemBonusMinmatarEngineering"), skill="Minmatar Engineering Systems") diff --git a/eos/effects/subsystembonusminmatarengineeringcapacitorrecharge.py b/eos/effects/subsystembonusminmatarengineeringcapacitorrecharge.py index 62b417eaf..231e7b86e 100644 --- a/eos/effects/subsystembonusminmatarengineeringcapacitorrecharge.py +++ b/eos/effects/subsystembonusminmatarengineeringcapacitorrecharge.py @@ -4,5 +4,4 @@ # Subsystem: Loki Engineering - Capacitor Regeneration Matrix type = "passive" def handler(fit, module, context): - level = fit.character.getSkill("Minmatar Engineering Systems").level - fit.ship.boostItemAttr("rechargeRate", module.getModifiedItemAttr("subsystemBonusMinmatarEngineering") * level) + fit.ship.boostItemAttr("rechargeRate", module.getModifiedItemAttr("subsystemBonusMinmatarEngineering"), skill="Minmatar Engineering Systems") diff --git a/eos/effects/subsystembonusminmatarengineeringheatdamagereduction.py b/eos/effects/subsystembonusminmatarengineeringheatdamagereduction.py index ce54dee49..d66dcc378 100644 --- a/eos/effects/subsystembonusminmatarengineeringheatdamagereduction.py +++ b/eos/effects/subsystembonusminmatarengineeringheatdamagereduction.py @@ -4,6 +4,5 @@ # Subsystem: Loki Engineering - Supplemental Coolant Injector type = "passive" def handler(fit, module, context): - level = fit.character.getSkill("Minmatar Engineering Systems").level fit.modules.filteredItemBoost(lambda mod: True, "heatDamage", - module.getModifiedItemAttr("subsystemBonusMinmatarEngineering") * level) + module.getModifiedItemAttr("subsystemBonusMinmatarEngineering"), skill="Minmatar Engineering Systems") diff --git a/eos/effects/subsystembonusminmatarengineeringpoweroutput.py b/eos/effects/subsystembonusminmatarengineeringpoweroutput.py index 938e567cd..b54d6413d 100644 --- a/eos/effects/subsystembonusminmatarengineeringpoweroutput.py +++ b/eos/effects/subsystembonusminmatarengineeringpoweroutput.py @@ -4,5 +4,4 @@ # Subsystem: Loki Engineering - Power Core Multiplier type = "passive" def handler(fit, module, context): - level = fit.character.getSkill("Minmatar Engineering Systems").level - fit.ship.boostItemAttr("powerOutput", module.getModifiedItemAttr("subsystemBonusMinmatarEngineering") * level) + fit.ship.boostItemAttr("powerOutput", module.getModifiedItemAttr("subsystemBonusMinmatarEngineering"), skill="Minmatar Engineering Systems") diff --git a/eos/effects/subsystembonusminmataroffensive2projectileweapondamagemultiplier.py b/eos/effects/subsystembonusminmataroffensive2projectileweapondamagemultiplier.py index ff2c8f296..468ec4906 100644 --- a/eos/effects/subsystembonusminmataroffensive2projectileweapondamagemultiplier.py +++ b/eos/effects/subsystembonusminmataroffensive2projectileweapondamagemultiplier.py @@ -4,6 +4,5 @@ # Subsystem: Loki Offensive - Turret Concurrence Registry type = "passive" def handler(fit, module, context): - level = fit.character.getSkill("Minmatar Offensive Systems").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Projectile Turret"), - "damageMultiplier", module.getModifiedItemAttr("subsystemBonusMinmatarOffensive2") * level) + "damageMultiplier", module.getModifiedItemAttr("subsystemBonusMinmatarOffensive2"), skill="Minmatar Offensive Systems") diff --git a/eos/effects/subsystembonusminmataroffensive2projectileweaponrof.py b/eos/effects/subsystembonusminmataroffensive2projectileweaponrof.py index 8c0b3ef22..fcae6bbf8 100644 --- a/eos/effects/subsystembonusminmataroffensive2projectileweaponrof.py +++ b/eos/effects/subsystembonusminmataroffensive2projectileweaponrof.py @@ -5,6 +5,5 @@ # Subsystem: Loki Offensive - Projectile Scoping Array type = "passive" def handler(fit, module, context): - level = fit.character.getSkill("Minmatar Offensive Systems").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Projectile Turret"), - "speed", module.getModifiedItemAttr("subsystemBonusMinmatarOffensive2") * level) + "speed", module.getModifiedItemAttr("subsystemBonusMinmatarOffensive2"), skill="Minmatar Offensive Systems") diff --git a/eos/effects/subsystembonusminmataroffensive3turrettracking.py b/eos/effects/subsystembonusminmataroffensive3turrettracking.py index c9a52aa22..5a3a693f2 100644 --- a/eos/effects/subsystembonusminmataroffensive3turrettracking.py +++ b/eos/effects/subsystembonusminmataroffensive3turrettracking.py @@ -4,6 +4,5 @@ # Subsystem: Loki Offensive - Turret Concurrence Registry type = "passive" def handler(fit, module, context): - level = fit.character.getSkill("Minmatar Offensive Systems").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Projectile Turret"), - "trackingSpeed", module.getModifiedItemAttr("subsystemBonusMinmatarOffensive3") * level) + "trackingSpeed", module.getModifiedItemAttr("subsystemBonusMinmatarOffensive3"), skill="Minmatar Offensive Systems") diff --git a/eos/effects/subsystembonusminmataroffensiveassaultmissilelauncherrof.py b/eos/effects/subsystembonusminmataroffensiveassaultmissilelauncherrof.py index 7822fb3b8..2b42b19a0 100644 --- a/eos/effects/subsystembonusminmataroffensiveassaultmissilelauncherrof.py +++ b/eos/effects/subsystembonusminmataroffensiveassaultmissilelauncherrof.py @@ -4,6 +4,5 @@ # Subsystem: Loki Offensive - Hardpoint Efficiency Configuration type = "passive" def handler(fit, module, context): - level = fit.character.getSkill("Minmatar Offensive Systems").level fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Missile Launcher Rapid Light", - "speed", module.getModifiedItemAttr("subsystemBonusMinmatarOffensive") * level) + "speed", module.getModifiedItemAttr("subsystemBonusMinmatarOffensive"), skill="Minmatar Offensive Systems") diff --git a/eos/effects/subsystembonusminmataroffensiveheavyassaultmissilelauncherrof.py b/eos/effects/subsystembonusminmataroffensiveheavyassaultmissilelauncherrof.py index f258a8076..ed45887c3 100644 --- a/eos/effects/subsystembonusminmataroffensiveheavyassaultmissilelauncherrof.py +++ b/eos/effects/subsystembonusminmataroffensiveheavyassaultmissilelauncherrof.py @@ -4,6 +4,5 @@ # Subsystem: Loki Offensive - Hardpoint Efficiency Configuration type = "passive" def handler(fit, module, context): - level = fit.character.getSkill("Minmatar Offensive Systems").level fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Missile Launcher Heavy Assault", - "speed", module.getModifiedItemAttr("subsystemBonusMinmatarOffensive") * level) + "speed", module.getModifiedItemAttr("subsystemBonusMinmatarOffensive"), skill="Minmatar Offensive Systems") diff --git a/eos/effects/subsystembonusminmataroffensiveheavymissilelauncherrof.py b/eos/effects/subsystembonusminmataroffensiveheavymissilelauncherrof.py index 4ca177fdc..e9c64b241 100644 --- a/eos/effects/subsystembonusminmataroffensiveheavymissilelauncherrof.py +++ b/eos/effects/subsystembonusminmataroffensiveheavymissilelauncherrof.py @@ -4,6 +4,5 @@ # Subsystem: Loki Offensive - Hardpoint Efficiency Configuration type = "passive" def handler(fit, module, context): - level = fit.character.getSkill("Minmatar Offensive Systems").level fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Missile Launcher Heavy", - "speed", module.getModifiedItemAttr("subsystemBonusMinmatarOffensive") * level) + "speed", module.getModifiedItemAttr("subsystemBonusMinmatarOffensive"), skill="Minmatar Offensive Systems") diff --git a/eos/effects/subsystembonusminmataroffensiveprojectileweaponfalloff.py b/eos/effects/subsystembonusminmataroffensiveprojectileweaponfalloff.py index de2cd630d..636023d12 100644 --- a/eos/effects/subsystembonusminmataroffensiveprojectileweaponfalloff.py +++ b/eos/effects/subsystembonusminmataroffensiveprojectileweaponfalloff.py @@ -4,6 +4,5 @@ # Subsystem: Loki Offensive - Projectile Scoping Array type = "passive" def handler(fit, module, context): - level = fit.character.getSkill("Minmatar Offensive Systems").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Projectile Turret"), - "falloff", module.getModifiedItemAttr("subsystemBonusMinmatarOffensive") * level) + "falloff", module.getModifiedItemAttr("subsystemBonusMinmatarOffensive"), skill="Minmatar Offensive Systems") diff --git a/eos/effects/subsystembonusminmataroffensiveprojectileweaponmaxrange.py b/eos/effects/subsystembonusminmataroffensiveprojectileweaponmaxrange.py index aac4c2ce1..d90ff14f2 100644 --- a/eos/effects/subsystembonusminmataroffensiveprojectileweaponmaxrange.py +++ b/eos/effects/subsystembonusminmataroffensiveprojectileweaponmaxrange.py @@ -4,6 +4,5 @@ # Subsystem: Loki Offensive - Turret Concurrence Registry type = "passive" def handler(fit, module, context): - level = fit.character.getSkill("Minmatar Offensive Systems").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Projectile Turret"), - "maxRange", module.getModifiedItemAttr("subsystemBonusMinmatarOffensive") * level) + "maxRange", module.getModifiedItemAttr("subsystemBonusMinmatarOffensive"), skill="Minmatar Offensive Systems") diff --git a/eos/effects/subsystembonusminmataroffensiveprojectileweaponrof.py b/eos/effects/subsystembonusminmataroffensiveprojectileweaponrof.py index 7340be4f8..d7ec0fc3d 100644 --- a/eos/effects/subsystembonusminmataroffensiveprojectileweaponrof.py +++ b/eos/effects/subsystembonusminmataroffensiveprojectileweaponrof.py @@ -4,6 +4,5 @@ # Subsystem: Loki Offensive - Covert Reconfiguration type = "passive" def handler(fit, module, context): - level = fit.character.getSkill("Minmatar Offensive Systems").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Projectile Turret"), - "speed", module.getModifiedItemAttr("subsystemBonusMinmatarOffensive") * level) + "speed", module.getModifiedItemAttr("subsystemBonusMinmatarOffensive"), skill="Minmatar Offensive Systems") diff --git a/eos/effects/subsystembonusminmatarpropulsionafterburnerspeedfactor.py b/eos/effects/subsystembonusminmatarpropulsionafterburnerspeedfactor.py index f057ed7a1..da593a70f 100644 --- a/eos/effects/subsystembonusminmatarpropulsionafterburnerspeedfactor.py +++ b/eos/effects/subsystembonusminmatarpropulsionafterburnerspeedfactor.py @@ -4,6 +4,5 @@ # Subsystem: Loki Propulsion - Fuel Catalyst type = "passive" def handler(fit, module, context): - level = fit.character.getSkill("Minmatar Propulsion Systems").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Afterburner"), - "speedFactor", module.getModifiedItemAttr("subsystemBonusMinmatarPropulsion") * level) + "speedFactor", module.getModifiedItemAttr("subsystemBonusMinmatarPropulsion"), skill="Minmatar Propulsion Systems") diff --git a/eos/effects/subsystembonusminmatarpropulsionagility.py b/eos/effects/subsystembonusminmatarpropulsionagility.py index f315a01bf..347692df7 100644 --- a/eos/effects/subsystembonusminmatarpropulsionagility.py +++ b/eos/effects/subsystembonusminmatarpropulsionagility.py @@ -5,5 +5,4 @@ # Subsystem: Loki Propulsion - Interdiction Nullifier type = "passive" def handler(fit, module, context): - level = fit.character.getSkill("Minmatar Propulsion Systems").level - fit.ship.boostItemAttr("agility", module.getModifiedItemAttr("subsystemBonusMinmatarPropulsion") * level) + fit.ship.boostItemAttr("agility", module.getModifiedItemAttr("subsystemBonusMinmatarPropulsion"), skill="Minmatar Propulsion Systems") diff --git a/eos/effects/subsystembonusminmatarpropulsionmaxvelocity.py b/eos/effects/subsystembonusminmatarpropulsionmaxvelocity.py index 666e6e90b..a43ce9df8 100644 --- a/eos/effects/subsystembonusminmatarpropulsionmaxvelocity.py +++ b/eos/effects/subsystembonusminmatarpropulsionmaxvelocity.py @@ -4,5 +4,4 @@ # Subsystem: Loki Propulsion - Chassis Optimization type = "passive" def handler(fit, module, context): - level = fit.character.getSkill("Minmatar Propulsion Systems").level - fit.ship.boostItemAttr("maxVelocity", module.getModifiedItemAttr("subsystemBonusMinmatarPropulsion") * level) + fit.ship.boostItemAttr("maxVelocity", module.getModifiedItemAttr("subsystemBonusMinmatarPropulsion"), skill="Minmatar Propulsion Systems") diff --git a/eos/effects/titanamarrlaserdmg3.py b/eos/effects/titanamarrlaserdmg3.py index fa4338a1e..f265306e3 100644 --- a/eos/effects/titanamarrlaserdmg3.py +++ b/eos/effects/titanamarrlaserdmg3.py @@ -4,6 +4,5 @@ # Ship: Avatar type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Amarr Titan").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capital Energy Turret"), - "damageMultiplier", ship.getModifiedItemAttr("titanAmarrBonus3") * level) + "damageMultiplier", ship.getModifiedItemAttr("titanAmarrBonus3"), skill="Amarr Titan") diff --git a/eos/effects/titanamarrleadershipmoduleamount4.py b/eos/effects/titanamarrleadershipmoduleamount4.py index 2df94d628..71fd41811 100644 --- a/eos/effects/titanamarrleadershipmoduleamount4.py +++ b/eos/effects/titanamarrleadershipmoduleamount4.py @@ -4,6 +4,5 @@ # Ship: Avatar type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Amarr Titan").level fit.modules.filteredItemIncrease(lambda mod: mod.item.group.name == "Gang Coordinator", - "maxGroupActive", ship.getModifiedItemAttr("titanAmarrBonus4") * level) + "maxGroupActive", ship.getModifiedItemAttr("titanAmarrBonus4"), skill="Amarr Titan") diff --git a/eos/effects/titancaldarileadershipmoduleamount4.py b/eos/effects/titancaldarileadershipmoduleamount4.py index 1ef52b78f..73df23284 100644 --- a/eos/effects/titancaldarileadershipmoduleamount4.py +++ b/eos/effects/titancaldarileadershipmoduleamount4.py @@ -4,6 +4,5 @@ # Ship: Leviathan type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Caldari Titan").level fit.modules.filteredItemIncrease(lambda mod: mod.item.group.name == "Gang Coordinator", - "maxGroupActive", ship.getModifiedItemAttr("titanCaldariBonus4") * level) + "maxGroupActive", ship.getModifiedItemAttr("titanCaldariBonus4"), skill="Caldari Titan") diff --git a/eos/effects/titancaldarimissilekineticdmg2.py b/eos/effects/titancaldarimissilekineticdmg2.py index 23e6697e3..9757dea92 100644 --- a/eos/effects/titancaldarimissilekineticdmg2.py +++ b/eos/effects/titancaldarimissilekineticdmg2.py @@ -4,7 +4,6 @@ # Ship: Leviathan type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Caldari Titan").level groups = ("Citadel Torpedo", "Citadel Cruise") fit.modules.filteredChargeBoost(lambda mod: mod.charge.group.name in groups, - "kineticDamage", ship.getModifiedItemAttr("shipBonusCT1") * level) + "kineticDamage", ship.getModifiedItemAttr("shipBonusCT1"), skill="Caldari Titan") diff --git a/eos/effects/titangallentehybriddamage1.py b/eos/effects/titangallentehybriddamage1.py index bd1a20848..cb53fe710 100644 --- a/eos/effects/titangallentehybriddamage1.py +++ b/eos/effects/titangallentehybriddamage1.py @@ -4,6 +4,5 @@ # Ship: Erebus type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Gallente Titan").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capital Hybrid Turret"), - "damageMultiplier", ship.getModifiedItemAttr("titanGallenteBonus1") * level) + "damageMultiplier", ship.getModifiedItemAttr("titanGallenteBonus1"), skill="Gallente Titan") diff --git a/eos/effects/titangallenteleadershipmoduleamount4.py b/eos/effects/titangallenteleadershipmoduleamount4.py index 0c904d7a3..f78c15661 100644 --- a/eos/effects/titangallenteleadershipmoduleamount4.py +++ b/eos/effects/titangallenteleadershipmoduleamount4.py @@ -4,6 +4,5 @@ # Ship: Erebus type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Gallente Titan").level fit.modules.filteredItemIncrease(lambda mod: mod.item.group.name == "Gang Coordinator", - "maxGroupActive", ship.getModifiedItemAttr("titanGallenteBonus4") * level) + "maxGroupActive", ship.getModifiedItemAttr("titanGallenteBonus4"), skill="Gallente Titan") diff --git a/eos/effects/titanminmatarleadershipmoduleamount4.py b/eos/effects/titanminmatarleadershipmoduleamount4.py index f6f75c217..e955fb060 100644 --- a/eos/effects/titanminmatarleadershipmoduleamount4.py +++ b/eos/effects/titanminmatarleadershipmoduleamount4.py @@ -4,6 +4,5 @@ # Ship: Ragnarok type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Minmatar Titan").level fit.modules.filteredItemIncrease(lambda mod: mod.item.group.name == "Gang Coordinator", - "maxGroupActive", ship.getModifiedItemAttr("titanMinmatarBonus4") * level) + "maxGroupActive", ship.getModifiedItemAttr("titanMinmatarBonus4"), skill="Minmatar Titan") diff --git a/eos/effects/titanminmatarprojectiledmg3.py b/eos/effects/titanminmatarprojectiledmg3.py index 4e18f9ce3..568ffd866 100644 --- a/eos/effects/titanminmatarprojectiledmg3.py +++ b/eos/effects/titanminmatarprojectiledmg3.py @@ -4,6 +4,5 @@ # Ship: Ragnarok type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Minmatar Titan").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capital Projectile Turret"), - "damageMultiplier", ship.getModifiedItemAttr("titanMinmatarBonus3") * level) + "damageMultiplier", ship.getModifiedItemAttr("titanMinmatarBonus3"), skill="Minmatar Titan") diff --git a/eos/effects/zcolinorcacargobonus.py b/eos/effects/zcolinorcacargobonus.py index bcd8cbde1..ba78fadec 100644 --- a/eos/effects/zcolinorcacargobonus.py +++ b/eos/effects/zcolinorcacargobonus.py @@ -4,5 +4,4 @@ # Ship: Orca type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Industrial Command Ships").level - fit.ship.boostItemAttr("capacity", ship.getModifiedItemAttr("shipOrcaCargoBonusOrca1") * level) + fit.ship.boostItemAttr("capacity", ship.getModifiedItemAttr("shipOrcaCargoBonusOrca1"), skill="Industrial Command Ships") diff --git a/eos/effects/zcolinorcaforemanmodbonus.py b/eos/effects/zcolinorcaforemanmodbonus.py index ad483b8fb..9c536a9a0 100644 --- a/eos/effects/zcolinorcaforemanmodbonus.py +++ b/eos/effects/zcolinorcaforemanmodbonus.py @@ -4,6 +4,5 @@ # Ship: Orca type = "passive" def handler(fit, ship, context): - level = fit.character.getSkill("Industrial Command Ships").level fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Mining Director"), - "commandBonus", ship.getModifiedItemAttr("shipOrcaForemanBonus") * level) + "commandBonus", ship.getModifiedItemAttr("shipOrcaForemanBonus"), skill="Industrial Command Ships") diff --git a/eos/modifiedAttributeDict.py b/eos/modifiedAttributeDict.py index 79d871ce5..b1212a4d9 100644 --- a/eos/modifiedAttributeDict.py +++ b/eos/modifiedAttributeDict.py @@ -202,6 +202,18 @@ class ModifiedAttributeDict(collections.MutableMapping): return val + def __handleSkill(self, skillName): + """ + Since ship skill bonuses do not directly modify the attributes, it does + not register as an affector (instead, the ship itself is the affector). + To fix this, we pass the skill which ends up here, where we register it + with the fit and thus get the correct affector. Returns skill level to + be used to modify modifier. See GH issue #101 + """ + skill = self.fit.character.getSkill(skillName) + self.fit.register(skill) + return skill.level + def getAfflictions(self, key): return self.__affectedBy[key] if key in self.__affectedBy else {} @@ -233,10 +245,13 @@ class ModifiedAttributeDict(collections.MutableMapping): self.__placehold(attributeName) self.__afflict(attributeName, "=", value, value != self.getOriginal(attributeName)) - def increase(self, attributeName, increase, position="pre"): + def increase(self, attributeName, increase, position="pre", skill=None): """Increase value of given attribute by given number""" # Increases applied before multiplications and after them are # written in separate maps + if skill: + increase *= self.__handleSkill(skill) + if position == "pre": tbl = self.__preIncreases elif position == "post": @@ -249,10 +264,13 @@ class ModifiedAttributeDict(collections.MutableMapping): self.__placehold(attributeName) self.__afflict(attributeName, "+", increase, increase != 0) - def multiply(self, attributeName, multiplier, stackingPenalties=False, penaltyGroup="default"): + def multiply(self, attributeName, multiplier, stackingPenalties=False, penaltyGroup="default", skill=None): """Multiply value of given attribute by given factor""" # If we're asked to do stacking penalized multiplication, append values # to per penalty group lists + if skill: + multiplier *= self.__handleSkill(skill) + if stackingPenalties: if not attributeName in self.__penalizedMultipliers: self.__penalizedMultipliers[attributeName] = {} @@ -268,9 +286,11 @@ class ModifiedAttributeDict(collections.MutableMapping): self.__placehold(attributeName) self.__afflict(attributeName, "%s*" % ("s" if stackingPenalties else ""), multiplier, multiplier != 1) - def boost(self, attributeName, boostFactor, *args, **kwargs): + def boost(self, attributeName, boostFactor, skill=None, *args, **kwargs): """Boost value by some percentage""" # We just transform percentage boost into multiplication factor + if skill: + boostFactor *= self.__handleSkill(skill) self.multiply(attributeName, 1 + boostFactor / 100.0, *args, **kwargs) def force(self, attributeName, value): diff --git a/gui/builtinContextMenus/__init__.py b/gui/builtinContextMenus/__init__.py index 7ce9ed894..46ce451f6 100644 --- a/gui/builtinContextMenus/__init__.py +++ b/gui/builtinContextMenus/__init__.py @@ -14,7 +14,7 @@ __all__ = [ "whProjector", "cargo", "shipJump", - #"changeAffectingSkills", + "changeAffectingSkills", "tacticalMode", "targetResists", "priceClear" From f17d015ebe97ee29c3fd2664a20a165d0686ca50 Mon Sep 17 00:00:00 2001 From: blitzmann Date: Sun, 19 Jul 2015 15:02:50 -0400 Subject: [PATCH 35/53] Fix having multiple skills in skill list (happens when multiple attributes are modified) --- gui/builtinContextMenus/changeAffectingSkills.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gui/builtinContextMenus/changeAffectingSkills.py b/gui/builtinContextMenus/changeAffectingSkills.py index cfffddaff..be3de356d 100644 --- a/gui/builtinContextMenus/changeAffectingSkills.py +++ b/gui/builtinContextMenus/changeAffectingSkills.py @@ -32,7 +32,7 @@ class ChangeAffectingSkills(ContextMenu): self.stuff = selection[0] cont = self.stuff.itemModifiedAttributes - self.skills = [] + skills = set() for attrName in cont.iterAfflictions(): if cont[attrName] == 0: @@ -44,9 +44,9 @@ class ChangeAffectingSkills(ContextMenu): if not isinstance(afflictor, Skill): continue - self.skills.append(afflictor) - self.skills.sort(key=lambda x: x.item.name) + skills.add(afflictor) + self.skills = sorted(skills, key=lambda x: x.item.name) return len(self.skills) > 0 def getText(self, itmContext, selection): From ac08b1b2642045ff83ea56414fdcbb48d18dce7d Mon Sep 17 00:00:00 2001 From: blitzmann Date: Sun, 19 Jul 2015 15:16:29 -0400 Subject: [PATCH 36/53] Add check for current skill level --- gui/builtinContextMenus/changeAffectingSkills.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gui/builtinContextMenus/changeAffectingSkills.py b/gui/builtinContextMenus/changeAffectingSkills.py index be3de356d..d3ce262a1 100644 --- a/gui/builtinContextMenus/changeAffectingSkills.py +++ b/gui/builtinContextMenus/changeAffectingSkills.py @@ -81,7 +81,8 @@ class ChangeAffectingSkills(ContextMenu): for i in xrange(-1, 6): levelItem = self.addSkill(rootMenu if msw else grandSub, skill, i) grandSub.AppendItem(levelItem) - #@ todo: add check to current level. Need to fix #109 first + if skill.level == i: + levelItem.Check(True) sub.AppendItem(skillItem) return sub From 90c883da67a872dd7b44c5d8dbf0e96f295dd8f9 Mon Sep 17 00:00:00 2001 From: blitzmann Date: Sun, 19 Jul 2015 15:51:03 -0400 Subject: [PATCH 37/53] Fix some syntax errors. --- eos/effects/caldarishipewcapacitorneedcc.py | 2 +- eos/effects/shipbonusscanprobestrengthgf.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/eos/effects/caldarishipewcapacitorneedcc.py b/eos/effects/caldarishipewcapacitorneedcc.py index d0c1f9108..9224e2728 100644 --- a/eos/effects/caldarishipewcapacitorneedcc.py +++ b/eos/effects/caldarishipewcapacitorneedcc.py @@ -7,4 +7,4 @@ type = "passive" def handler(fit, ship, context): fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "ECM", - "capacitorNeed", ship.getModifiedItemAttr("shipBonusCC", skill="Caldari Cruiser") + "capacitorNeed", ship.getModifiedItemAttr("shipBonusCC"), skill="Caldari Cruiser") diff --git a/eos/effects/shipbonusscanprobestrengthgf.py b/eos/effects/shipbonusscanprobestrengthgf.py index eed28a084..0d419793b 100644 --- a/eos/effects/shipbonusscanprobestrengthgf.py +++ b/eos/effects/shipbonusscanprobestrengthgf.py @@ -5,4 +5,4 @@ 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"l) + "baseSensorStrength", ship.getModifiedItemAttr("shipBonusGF2"), skill="Gallente Frigate") From 182104a0102d53ce9c0899e2bf6e67f6c369cbf1 Mon Sep 17 00:00:00 2001 From: blitzmann Date: Sun, 19 Jul 2015 16:20:42 -0400 Subject: [PATCH 38/53] Fix #109 --- eos/saveddata/character.py | 20 +++++++++---------- .../changeAffectingSkills.py | 2 +- service/character.py | 1 - 3 files changed, 11 insertions(+), 12 deletions(-) diff --git a/eos/saveddata/character.py b/eos/saveddata/character.py index 3efb5b75e..ef4b22053 100644 --- a/eos/saveddata/character.py +++ b/eos/saveddata/character.py @@ -204,23 +204,24 @@ class Skill(HandledItem): self.itemID = item.ID if not isinstance(item, int) else item self.__level = level if learned else None self.commandBonus = 0 - self.learned = learned self.build(ro) @reconstructor def init(self): self.build(False) - self.learned = self.__level is not None self.__item = None def build(self, ro): self.__ro = ro self.__suppressed = False + @property + def learned(self): + return self.__level is not None + @property def level(self): - if not self.learned: return 0 - else: return self.__level or 0 + return self.__level or 0 @level.setter def level(self, level): @@ -231,7 +232,6 @@ class Skill(HandledItem): raise ReadOnlyException() self.__level = level - self.learned = True @property def item(self): @@ -255,11 +255,11 @@ class Skill(HandledItem): return for effect in item.effects.itervalues(): - if effect.runTime == runTime and effect.isType("passive"): - try: - effect.handler(fit, self, ("skill",)) - except AttributeError: - continue + if effect.runTime == runTime and effect.isType("passive"): + try: + effect.handler(fit, self, ("skill",)) + except AttributeError: + continue def clear(self): self.__suppressed = False diff --git a/gui/builtinContextMenus/changeAffectingSkills.py b/gui/builtinContextMenus/changeAffectingSkills.py index d3ce262a1..fc28ca124 100644 --- a/gui/builtinContextMenus/changeAffectingSkills.py +++ b/gui/builtinContextMenus/changeAffectingSkills.py @@ -81,7 +81,7 @@ class ChangeAffectingSkills(ContextMenu): for i in xrange(-1, 6): levelItem = self.addSkill(rootMenu if msw else grandSub, skill, i) grandSub.AppendItem(levelItem) - if skill.level == i: + if (not skill.learned and i == -1) or (skill.learned and skill.level == i): levelItem.Check(True) sub.AppendItem(skillItem) diff --git a/service/character.py b/service/character.py index b6b3e4e1e..1f2c78900 100644 --- a/service/character.py +++ b/service/character.py @@ -302,7 +302,6 @@ class Character(object): char = eos.db.getCharacter(charID) skill = char.getSkill(skillID) if isinstance(level, basestring) or level > 5 or level < 0: - skill.learned = False skill.level = None else: skill.level = level From b32f76cfdec1dcf393c75b3b2001c9d6fb2c7d4e Mon Sep 17 00:00:00 2001 From: blitzmann Date: Sun, 19 Jul 2015 16:39:07 -0400 Subject: [PATCH 39/53] Show affecting skills for charges as well --- gui/builtinContextMenus/changeAffectingSkills.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gui/builtinContextMenus/changeAffectingSkills.py b/gui/builtinContextMenus/changeAffectingSkills.py index fc28ca124..32530bdb6 100644 --- a/gui/builtinContextMenus/changeAffectingSkills.py +++ b/gui/builtinContextMenus/changeAffectingSkills.py @@ -12,7 +12,7 @@ class ChangeAffectingSkills(ContextMenu): self.mainFrame = gui.mainFrame.MainFrame.getInstance() def display(self, srcContext, selection): - if self.mainFrame.getActiveFit() is None or srcContext not in ("fittingModule", "fittingShip"): + if self.mainFrame.getActiveFit() is None or srcContext not in ("fittingModule", "fittingCharge", "fittingShip"): return False self.sChar = service.Character.getInstance() From 0a1f32405376ae62dce878d371c2ffa73eeb8514 Mon Sep 17 00:00:00 2001 From: blitzmann Date: Tue, 21 Jul 2015 12:27:46 -0400 Subject: [PATCH 40/53] Fix Advanced Spaceship Command skill and resists for Occator --- eos/effects/eliteindustrialarmorresists2.py | 1 + eos/effects/shipadvancedspaceshipcommandagilitybonus.py | 4 +++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/eos/effects/eliteindustrialarmorresists2.py b/eos/effects/eliteindustrialarmorresists2.py index e7b309177..a2fd87a86 100644 --- a/eos/effects/eliteindustrialarmorresists2.py +++ b/eos/effects/eliteindustrialarmorresists2.py @@ -5,5 +5,6 @@ # Ship: Occator 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") diff --git a/eos/effects/shipadvancedspaceshipcommandagilitybonus.py b/eos/effects/shipadvancedspaceshipcommandagilitybonus.py index a9eab85dd..081daa2f7 100644 --- a/eos/effects/shipadvancedspaceshipcommandagilitybonus.py +++ b/eos/effects/shipadvancedspaceshipcommandagilitybonus.py @@ -4,4 +4,6 @@ # Items from market group: Ships > Capital Ships (27 of 28) type = "passive" def handler(fit, ship, context): - fit.ship.boostItemAttr("agility", skill.getModifiedItemAttr("agilityBonus"), skill="Advanced Spaceship Command") + skillName = "Advanced Spaceship Command" + skill = fit.character.getSkill(skillName) + fit.ship.boostItemAttr("agility", skill.getModifiedItemAttr("agilityBonus"), skill=skillName) From 17733d5951c95e39a995e3c89f47eb31c674904e Mon Sep 17 00:00:00 2001 From: blitzmann Date: Wed, 22 Jul 2015 13:00:35 -0400 Subject: [PATCH 41/53] Added missing tactical mode calculations... whoops --- eos/saveddata/fit.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eos/saveddata/fit.py b/eos/saveddata/fit.py index 4f9f3e867..f26049e2d 100644 --- a/eos/saveddata/fit.py +++ b/eos/saveddata/fit.py @@ -487,7 +487,7 @@ class Fit(object): if not projected: # if not a projected fit, add a couple of more things - c = chain(c, self.projectedDrones, self.projectedModules) + c = chain(c, (self.mode,), self.projectedDrones, self.projectedModules) # We calculate gang bonuses first so that projected fits get them if self.gangBoosts is not None: From cd0b0eada071d4939c9752536e1e25f1dc54e57c Mon Sep 17 00:00:00 2001 From: blitzmann Date: Wed, 22 Jul 2015 13:12:57 -0400 Subject: [PATCH 42/53] Fix graphing --- gui/builtinViewColumns/baseName.py | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/gui/builtinViewColumns/baseName.py b/gui/builtinViewColumns/baseName.py index cf9222414..97b992337 100644 --- a/gui/builtinViewColumns/baseName.py +++ b/gui/builtinViewColumns/baseName.py @@ -18,9 +18,7 @@ # along with pyfa. If not, see . #=============================================================================== -from gui import builtinViewColumns from gui.viewColumn import ViewColumn -from gui import bitmapLoader import gui.mainFrame import wx @@ -31,10 +29,12 @@ class BaseName(ViewColumn): name = "Base Name" def __init__(self, fittingView, params): ViewColumn.__init__(self, fittingView) + self.mainFrame = gui.mainFrame.MainFrame.getInstance() self.columnText = "Name" self.shipImage = fittingView.imageList.GetImageIndex("ship_small", "icons") self.mask = wx.LIST_MASK_TEXT + self.projectedView = isinstance(fittingView, gui.projectedView.ProjectedView) def getText(self, stuff): if isinstance(stuff, Drone): @@ -42,8 +42,12 @@ class BaseName(ViewColumn): elif isinstance(stuff, Cargo): return "%dx %s" % (stuff.amount, stuff.item.name) elif isinstance(stuff, Fit): - fitID = self.mainFrame.getActiveFit() - return "%dx %s (%s)" % (stuff.getProjectionInfo(fitID).amount, stuff.name, stuff.ship.item.name) + if self.projectedView: + # we need a little more information for the projected view + fitID = self.mainFrame.getActiveFit() + return "%dx %s (%s)" % (stuff.getProjectionInfo(fitID).amount, stuff.name, stuff.ship.item.name) + else: + return "%s (%s)" % (stuff.name, stuff.ship.item.name) elif isinstance(stuff, Rack): if service.Fit.getInstance().serviceFittingOptions["rackLabels"]: if stuff.slot == Slot.MODE: From 5a4f526b2baa24ee3e82cdf78032f8a37b8b4b2f Mon Sep 17 00:00:00 2001 From: blitzmann Date: Wed, 22 Jul 2015 14:27:44 -0400 Subject: [PATCH 43/53] Fix fit copying --- eos/saveddata/fit.py | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/eos/saveddata/fit.py b/eos/saveddata/fit.py index f26049e2d..a669f99ea 100644 --- a/eos/saveddata/fit.py +++ b/eos/saveddata/fit.py @@ -83,6 +83,10 @@ class Fit(object): try: self.__ship = Ship(item) + # @todo extra attributes is now useless, however it set to be + # the same as ship attributes for ease (so we don't have to + # change all instances in source). Remove this at some point + self.extraAttributes = self.__ship.itemModifiedAttributes except ValueError: logger.error("Item (id: %d) is not a Ship", self.shipID) return @@ -119,7 +123,6 @@ class Fit(object): self.boostsFits = set() self.gangBoosts = None self.ecmProjectedStr = 1 - self.extraAttributes = self.ship.itemModifiedAttributes @property def targetResists(self): @@ -172,8 +175,11 @@ class Fit(object): def ship(self, ship): self.__ship = ship self.shipID = ship.item.ID if ship is not None else None - # set mode of new ship - self.mode = self.ship.validateModeItem(None) if ship is not None else None + if ship is not None: + # set mode of new ship + self.mode = self.ship.validateModeItem(None) if ship is not None else None + # set fit attributes the same as ship + self.extraAttributes = self.ship.itemModifiedAttributes @property def drones(self): From 9de3600d7f3764baa622e428064be3bda27088b6 Mon Sep 17 00:00:00 2001 From: blitzmann Date: Thu, 23 Jul 2015 01:32:48 -0400 Subject: [PATCH 44/53] Fix self-boosting --- eos/saveddata/fit.py | 23 ++++++----------------- service/fit.py | 2 +- 2 files changed, 7 insertions(+), 18 deletions(-) diff --git a/eos/saveddata/fit.py b/eos/saveddata/fit.py index a669f99ea..d2de8dfc1 100644 --- a/eos/saveddata/fit.py +++ b/eos/saveddata/fit.py @@ -393,7 +393,7 @@ class Fit(object): return self.__origin def __calculateGangBoosts(self, runTime): - logger.debug("Applying gang boosts in `%s` runtime for %s", runTime, self) + logger.debug("Applying gang boosts in `%s` runtime for %s", runTime, repr(self)) for name, info in self.gangBoosts.iteritems(): # Unpack all data required to run effect properly effect, thing = info[1] @@ -418,7 +418,7 @@ class Fit(object): def calculateModifiedAttributes(self, targetFit=None, withBoosters=False, dirtyStorage=None): timer = Timer('Fit: {}, {}'.format(self.ID, self.name), logger) - logger.debug("Starting fit calculation on: %s", repr(self)) + logger.debug("Starting fit calculation on: %s, withBoosters: %s", repr(self), withBoosters) shadow = False if targetFit: @@ -436,23 +436,12 @@ class Fit(object): # not want to save this fit to the database, so simply remove it eos.db.saveddata_session.delete(self) - refreshBoosts = False - if withBoosters is True: - refreshBoosts = True - if dirtyStorage is not None and self.ID in dirtyStorage: - refreshBoosts = True - if dirtyStorage is not None: - dirtyStorage.update(self.boostsFits) - if self.fleet is not None and refreshBoosts is True: + if self.fleet is not None and withBoosters is True: logger.debug("Fleet is set, gathering gang boosts") - self.gangBoosts = self.fleet.recalculateLinear(withBoosters=withBoosters, dirtyStorage=dirtyStorage) + self.gangBoosts = self.fleet.recalculateLinear(withBoosters=withBoosters) + timer.checkpoint("Done calculating gang boosts for %s"%repr(self)) elif self.fleet is None: self.gangBoosts = None - if dirtyStorage is not None: - try: - dirtyStorage.remove(self.ID) - except KeyError: - pass # If we're not explicitly asked to project fit onto something, # set self as target fit @@ -476,7 +465,7 @@ class Fit(object): # projection have modifying stuff applied, such as gang boosts and other # local modules that may help if self.__calculated and not projected: - logger.debug("Fit has already been calculated and is not projected, returning") + logger.debug("Fit has already been calculated and is not projected, returning: %s", repr(self)) return # Mark fit as calculated diff --git a/service/fit.py b/service/fit.py index 2ac93e4ee..e848b45d7 100644 --- a/service/fit.py +++ b/service/fit.py @@ -946,4 +946,4 @@ class Fit(object): if fit.factorReload is not self.serviceFittingOptions["useGlobalForceReload"]: fit.factorReload = self.serviceFittingOptions["useGlobalForceReload"] fit.clear() - fit.calculateModifiedAttributes(withBoosters=withBoosters, dirtyStorage=self.dirtyFitIDs) + fit.calculateModifiedAttributes(withBoosters=withBoosters) From 8c19a956e01d83af146d2f94ac28181dd263c246 Mon Sep 17 00:00:00 2001 From: DarkPhoenix Date: Thu, 23 Jul 2015 20:32:40 +0300 Subject: [PATCH 45/53] Strip ICC color profile data Fixes #337 --- scripts/icons_update.py | 7 +++++-- scripts/renders_update.py | 7 +++++-- staticdata/icons/icon01_08.png | Bin 3285 -> 665 bytes staticdata/icons/icon02_11.png | Bin 3298 -> 678 bytes staticdata/icons/icon105_46.png | Bin 3413 -> 793 bytes staticdata/icons/icon105_47.png | Bin 3307 -> 687 bytes staticdata/icons/icon105_48.png | Bin 3427 -> 807 bytes staticdata/icons/icon105_49.png | Bin 3380 -> 760 bytes staticdata/icons/icon107_1.png | Bin 3325 -> 705 bytes staticdata/icons/icon107_2.png | Bin 3388 -> 768 bytes staticdata/icons/icon107_3.png | Bin 3469 -> 849 bytes staticdata/icons/icon108_1.png | Bin 3328 -> 708 bytes staticdata/icons/icon108_10.png | Bin 3332 -> 712 bytes staticdata/icons/icon108_11.png | Bin 3334 -> 714 bytes staticdata/icons/icon108_12.png | Bin 3337 -> 717 bytes staticdata/icons/icon108_13.png | Bin 3339 -> 719 bytes staticdata/icons/icon108_14.png | Bin 3299 -> 679 bytes staticdata/icons/icon108_15.png | Bin 3298 -> 678 bytes staticdata/icons/icon108_16.png | Bin 3265 -> 645 bytes staticdata/icons/icon108_17.png | Bin 3293 -> 673 bytes staticdata/icons/icon108_18.png | Bin 3364 -> 744 bytes staticdata/icons/icon108_19.png | Bin 3356 -> 736 bytes staticdata/icons/icon108_2.png | Bin 3318 -> 698 bytes staticdata/icons/icon108_20.png | Bin 3356 -> 736 bytes staticdata/icons/icon108_21.png | Bin 3363 -> 743 bytes staticdata/icons/icon108_3.png | Bin 3327 -> 707 bytes staticdata/icons/icon108_4.png | Bin 3331 -> 711 bytes staticdata/icons/icon108_5.png | Bin 3266 -> 646 bytes staticdata/icons/icon108_6.png | Bin 3272 -> 652 bytes staticdata/icons/icon108_64_22.png | Bin 3329 -> 709 bytes staticdata/icons/icon108_7.png | Bin 3269 -> 649 bytes staticdata/icons/icon108_8.png | Bin 3272 -> 652 bytes staticdata/icons/icon113_64_1.png | Bin 3491 -> 871 bytes staticdata/icons/icon113_64_2.png | Bin 3480 -> 860 bytes staticdata/icons/icon113_64_3.png | Bin 3479 -> 859 bytes staticdata/icons/icon118_64_7.png | Bin 3117 -> 497 bytes staticdata/icons/icon119_1.png | Bin 3142 -> 522 bytes staticdata/icons/icon1337_21.png | Bin 3526 -> 905 bytes staticdata/icons/icon1337_22.png | Bin 3237 -> 616 bytes staticdata/icons/icon34_16.png | Bin 3358 -> 738 bytes staticdata/icons/iconIcon_64px_Fireworks.png | Bin 3588 -> 968 bytes staticdata/icons/iconMarketIcon_16px_Amarr.png | Bin 3222 -> 602 bytes .../icons/iconMarketIcon_16px_Caldari.png | Bin 3082 -> 462 bytes .../icons/iconMarketIcon_16px_Gallente.png | Bin 3350 -> 730 bytes .../icons/iconMarketIcon_16px_Minmatar.png | Bin 3258 -> 638 bytes staticdata/icons/iconremote_hull_repairer.png | Bin 3369 -> 748 bytes 46 files changed, 10 insertions(+), 4 deletions(-) diff --git a/scripts/icons_update.py b/scripts/icons_update.py index c152f55be..0cf73f2b7 100644 --- a/scripts/icons_update.py +++ b/scripts/icons_update.py @@ -209,6 +209,9 @@ def get_icon_file(request): img.thumbnail(ICON_SIZE, Image.ANTIALIAS) else: img = Image.open(fullpath) + # Strip all additional image info (mostly for ICC color + # profiles, see issue #337) + img.info = {} return img @@ -235,7 +238,7 @@ if toupdate: continue fullname = 'icon{}.png'.format(fname) fullpath = os.path.join(icons_dir, fullname) - icon.save(fullpath, 'PNG') + icon.save(fullpath, 'png') if missing: print(' {} icons are missing in export:'.format(len(missing))) for fname in sorted(missing): @@ -251,7 +254,7 @@ if toadd: continue fullname = 'icon{}.png'.format(fname) fullpath = os.path.join(icons_dir, fullname) - icon.save(fullpath, 'PNG') + icon.save(fullpath, 'png') if missing: print(' {} icons are missing in export:'.format(len(missing))) for fname in sorted(missing): diff --git a/scripts/renders_update.py b/scripts/renders_update.py index dfe88e448..5ddf39b90 100644 --- a/scripts/renders_update.py +++ b/scripts/renders_update.py @@ -80,6 +80,9 @@ def get_render(type_id): if img.size != RENDER_SIZE: img = crop_image(img) img.thumbnail(RENDER_SIZE, Image.ANTIALIAS) + # Strip all additional image info (mostly for ICC color + # profiles, see issue #337) + img.info = {} return img @@ -99,7 +102,7 @@ if toupdate: render = get_render(type_id) fname = '{}.png'.format(type_id) fullpath = os.path.join(icons_dir, fname) - render.save(fullpath, 'PNG') + render.save(fullpath, 'png') if missing: print(' {} renders are missing in export:'.format(len(missing))) for type_id in sorted(missing): @@ -113,7 +116,7 @@ if toadd: render = get_render(type_id) fname = '{}.png'.format(type_id) fullpath = os.path.join(icons_dir, fname) - render.save(fullpath, 'PNG') + render.save(fullpath, 'png') if missing: print(' {} renders are missing in export:'.format(len(missing))) for type_id in sorted(missing): diff --git a/staticdata/icons/icon01_08.png b/staticdata/icons/icon01_08.png index acfee9db36d79c0fdb36683919a885c58d522211..c50a2e99c54d8f25dd9950ddfa2ce2e019cb0cd1 100644 GIT binary patch delta 11 ScmcaAIg@pQ^5%H1G9~~Tego71 delta 2649 zcmV-f3a0g$1=SglBYz4oX+uL$Nkc;*P;zf(X>4Tx0C=38mUmQC*A|D*y?1({%`g-x zL+`x}AiX!K(nMjH8DJ;_4l^{dA)*2iMMMM@L4qO%jD{kyB8r88V8I@cAfUux6j4!m zGqP56<>kGXm){>}eQTe+_dRFteb%}Fki7l5ymVL!fHa0IH;uf5=ydS^Nt%_x7l_gXiP(b8$z+MR zP{gU(f()^JM#R+k6fwgnG4n+S6tTRR6BpU=v(F+si6{c}T{8k*B#$jdxfFg<9uYy1K41c2aeX;$OUwSIQ_o0dBB}pL2uro2q&dxUGa#+UVg8rfZ>F_u7)%T3W z>Ha7W-JO%b6s8L3;<~ZYQ`3cfdS(Wb#i1Mhd5HgU;9sA^Focu9;d6MRh;Y%Aae0ZN zcJtU=0e?50N9XeXQxpGT*q^jG*CJ6GJ^^a1F_0Rd0_4{|fT9oq5_3Sb1O3rAe|$I) zzq|<5iN(49Ea=~}!e!zmlbiTC&MhR2&Jyyo7Wc%@5}*MANCGNQ04hKO=mH~P4s3uu za0VX07X*SZ5Cv8N7DxhVfDf`kKG+C~Knd6Zc7KCvPzxGB6KDY^KnFMtE`ZD6I=BID zg9l&)jDzQ32D}0D5CmZ%GDLwCAXP{UGJwn>2IL5NK>kn&6a~dWi4YGGLix}ps01p9 zs-Zfl3Hly71zmuyLW9sfXcU@)euv(}2uy;hurjO-o4^d%1@?o(;FWM9yc*7f3*qf> z6@Oe0AA{TB3-ERLHar49hi4Ih5D^-ph8Q6X#0?2VqLBoIkE}zAkxHZUgRb+ zf=natP#6>iMMoK->`~sR5fTnEjYm%z4ZpW(+fn#bOn( z23QAdAeM<0V2iMOvB$9IutV5!>{}cWr;0PjdE%mRJX`^;5_c4L7B_^Oz|G^O@LG5~ zd?22U&&8MF8}MED0sJ_Ao*+%oAvh4i2+4$vgepP{;S%8?;T4fcR43XJgNaLeh59VbXchJ<=;OnXFBACP$M6>atgt3H= z1Y2UgM2$qd#E`@bNxY<%q>JP#$vnwQ$&-=;lG9RnDQzh?DW=pqsT!$MQo~ZS(iCYk z=|Jf;=~C&V(pRM?Ww0{ZG9EH)nSVl=Loyd-#wZ9ygW^VEQ8rN;D3>VXR18&z>O)PY zmQcT=_ETqMWn?X7!)0@1Yh=&Jj?fUAHqD2YN-LwCpxvRpms6H=k>kj1lWUP1lADuX zBJV8EkuR2SmA@_jUV*OQp^&1mQ=voQks?Y_UoluQTk(M6CB^9_)Ft*ySbs~3mz-E~ zUkO&yR|-*DqjX5APiadVy&)LYdbX%I9R8VMQ|8r>Q*nyQ)sn)#Z| zn)kKvS`4iutvy=3T65Yu+J6z+TeLg0Cw1g?e01`3nspxPl69SQSL@d6-qOS9G4xXO z_UqlyhxM)Wlk{u!2Mk~XYXh#qeuF_nw4tpb&#>Nb*ob80Vw7dnY&2?2Gxj$wFzzsZ zVWMdgZL-s(*W{C_m1(MJgXse^88ctA0<$i&-_7;SS>`q7w=BpOo_`kWEjle;S{hh# zEDu=TwW3%BSZ%TDw)$voW6ig2v7WNgw28CXXEV&8GJ+VTj4QTiTUXolwx@01*;(5O z>`vJIW^ZJlVt>?ra;eTz&eDdZV-D&LOouv$5l6aXoZ~^q5hpb#rc=Gs6K4%)wsWKN zgo~a_vdb}-7p|tRe1F$A*Eu&kx3zBP-4S;$_hR>c4;hc;9@QR?J=HxEJ)1peysW&| zc%An~d;59s^d9z6_F?%n`ONs*_^$Qs@gw<#`c?Zq@z?j~`*#Jv0lopd0v;~YTE<(} z5eNc(0(S*I3epK$9rR-`CO9a#CirQHSxA0JZzv@+HuPxdn}0CZu(GfR%XOCvmv@It zhR1|Ah0jH}N0dj5M4Cjdjl3SE7{!h1jK)TXM>j^#uJBl~d&PK+RZLOLos~K(b5>qm zrMN0})tOkySZ3_WICNY@+|jrX%s^&6b2i>5eqa0y%Z;^%^_=a@u3%4b9605ii3Ep) z@`TAmhs0fpQ-4WLNtH>{TsLkt_hqtoa&7WlN?^+2l!erY)YddyT3p&Go(wOA*ORW2 zo|8V9VUSUjF|yij_3qU(d_R6;CX~4{vr|A7{Y>=tT>!5Y<>wmh}YpgF^Kfb|h!;y`IjVT*{ zDljc5FL=EvVpCV4a^Z%;vCUqan~Nlh_(j88?6=fzMQ!D7?cZjxZSS^E#q8p1C8i~n zB_B#zrPsbO`=;ufh3yI3`^&7$4(!0};O)4x(`o0Ca_REC^08e3yV@)06~z^=cgOC& zT4`BXyMKqUN4RIC%D<{}ujbwzdp}esRo||0t!dq-v~SzKx&7?@LkFA>wA3osmejsK z$US(s&a1AyUc0{X5av+Up{EVu4ZYtozHMq$Y%FQ~c$jy10kG~&`y2v!*9;N_02@ijKAc+T=>28mBOpTuPtA9 z&j!stev|fQey;ef!rLS781H)DN4%ey&;Ee@Q1wyoW7j9YPY)N;78d>m1DNytxvX;; Hu_1T@1FJU} diff --git a/staticdata/icons/icon02_11.png b/staticdata/icons/icon02_11.png index d73f2d5f670ccfbee07c518dff76aab0e4482b28..9405054494793a596b1edc5a2789e555d38a5fa1 100644 GIT binary patch delta 11 ScmaDPxr}v!^5%H1W+ng|oCEs+ delta 2649 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 Hu_1*55X3h> diff --git a/staticdata/icons/icon105_46.png b/staticdata/icons/icon105_46.png index 0a14c81896a3c8faf3de84ab29e850e68b0bb780..5f128f018a60adff99f6e47e539aa786869b1584 100644 GIT binary patch delta 11 ScmcaAHIr?E^5%H1Z%hCikOWo$ delta 2649 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 Hu_5>Z8Cf@) diff --git a/staticdata/icons/icon105_47.png b/staticdata/icons/icon105_47.png index 85239a53a774c279a880f72f965e80906d40f02e..0dcdaebbd4434f51ec6e52ee42451322e4ec5e1e 100644 GIT binary patch delta 11 ScmaDYxt?``^5%H19wq=BVgwcd delta 2649 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 Hu_2BE%LX@E diff --git a/staticdata/icons/icon105_48.png b/staticdata/icons/icon105_48.png index 00dee8f2073c53177c564ee8ec7fbe0eaf9d1d8c..214454aac2310f2e0e7144598d1768a05a3b25a3 100644 GIT binary patch delta 11 ScmaDXwVZ8&^5%Fh7G?k%#RGu= delta 2649 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 Hu^|QnIVCp5 diff --git a/staticdata/icons/icon105_49.png b/staticdata/icons/icon105_49.png index 08533178002df668eb2e4960519ae0e13344dfb6..175ff15a99f2968bc4b211a4bbcf3b6197c20bb1 100644 GIT binary patch delta 11 ScmdlY^@DYS^5%H1t4shLG6Zq} delta 2649 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 Hu_4z2kgYei diff --git a/staticdata/icons/icon107_1.png b/staticdata/icons/icon107_1.png index 5bdcbda557a4685542734b9ff31a6d6dd1d34d3c..d96c6ae9c74a32bfe9fbff4fe5d5b652c5805c06 100644 GIT binary patch delta 11 Scmew>d60F2^5%H1c}xHu?gUH# delta 2649 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 Hu_2%WKd3j5 diff --git a/staticdata/icons/icon107_2.png b/staticdata/icons/icon107_2.png index 90ce2cd0a44ee4f7065841a6b29844a5ad46988c..a0977931fc9cc553b5d983f7ef7c4eaef50d58ac 100644 GIT binary patch delta 11 ScmdlZ)xb7Ed2>A1T_yk-Y6J@a delta 2649 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 Hu_50A6WKRU diff --git a/staticdata/icons/icon107_3.png b/staticdata/icons/icon107_3.png index d70c59fb8622bf3f3cfa3d0063d191a783de3256..e6d1f1fc99377a29fa03d3aaf8747c462387f1ff 100644 GIT binary patch delta 11 ScmeB`zQ{H~d2>9M9y0(K>jQuQ delta 2649 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 Hu^})6eGxXq diff --git a/staticdata/icons/icon108_1.png b/staticdata/icons/icon108_1.png index 956260537345184fe5e788d14245f0e2a0438926..bd4f25b9dbe76da72056ad1e1f322c734268ef45 100644 GIT binary patch delta 11 ScmZpWI>I_Zd2>A1LM8whx&zh# delta 2649 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 Hu_2=ZTuC9A1QYHWy5(DA@ delta 2649 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 Hu_31duMsyU diff --git a/staticdata/icons/icon108_11.png b/staticdata/icons/icon108_11.png index ae5978b6012deb03f7109761d6424538bc3a3fa6..8e7237443c9e5340b1f74dcd1522ee8ff3292514 100644 GIT binary patch delta 11 ScmZpZI>kCcd2>A1awY&7J_G0g delta 2649 zcmV-f3a0hS1%?`sBYz4oX+uL$Nkc;*P;zf(X>4Tx0C=38mUmQC*A|D*y?1({%`g-x zL+`x}AiX!K(nMjH8DJ;_4l^{dA)*2iMMMM@L4qO%jD{kyB8r88V8I@cAfUux6j4!m zGqP56<>kGXm){>}eQTe+_dRFteb%}Fki7l5ymVL!fHa0IH;uf5=ydS^Nt%_x7l_gXiP(b8$z+MR zP{gU(f()^JM#R+k6fwgnG4n+S6tTRR6BpU=v(F+si6{c}T{8k*B#$jdxfFg<9uYy1K41c2aeX;$OUwSIQ_o0dBB}pL2uro2q&dxUGa#+UVg8rfZ>F_u7)%T3W z>Ha7W-JO%b6s8L3;<~ZYQ`3cfdS(Wb#i1Mhd5HgU;9sA^Focu9;d6MRh;Y%Aae0ZN zcJtU=0e?50N9XeXQxpGT*q^jG*CJ6GJ^^a1F_0Rd0_4{|fT9oq5_3Sb1O3rAe|$I) zzq|<5iN(49Ea=~}!e!zmlbiTC&MhR2&Jyyo7Wc%@5}*MANCGNQ04hKO=mH~P4s3uu za0VX07X*SZ5Cv8N7DxhVfDf`kKG+C~Knd6Zc7KCvPzxGB6KDY^KnFMtE`ZD6I=BID zg9l&)jDzQ32D}0D5CmZ%GDLwCAXP{UGJwn>2IL5NK>kn&6a~dWi4YGGLix}ps01p9 zs-Zfl3Hly71zmuyLW9sfXcU@)euv(}2uy;hurjO-o4^d%1@?o(;FWM9yc*7f3*qf> z6@Oe0AA{TB3-ERLHar49hi4Ih5D^-ph8Q6X#0?2VqLBoIkE}zAkxHZUgRb+ zf=natP#6>iMMoK->`~sR5fTnEjYm%z4ZpW(+fn#bOn( z23QAdAeM<0V2iMOvB$9IutV5!>{}cWr;0PjdE%mRJX`^;5_c4L7B_^Oz|G^O@LG5~ zd?22U&&8MF8}MED0sJ_Ao*+%oAvh4i2+4$vgepP{;S%8?;T4fcR43XJgNaLeh59VbXchJ<=;OnXFBACP$M6>atgt3H= z1Y2UgM2$qd#E`@bNxY<%q>JP#$vnwQ$&-=;lG9RnDQzh?DW=pqsT!$MQo~ZS(iCYk z=|Jf;=~C&V(pRM?Ww0{ZG9EH)nSVl=Loyd-#wZ9ygW^VEQ8rN;D3>VXR18&z>O)PY zmQcT=_ETqMWn?X7!)0@1Yh=&Jj?fUAHqD2YN-LwCpxvRpms6H=k>kj1lWUP1lADuX zBJV8EkuR2SmA@_jUV*OQp^&1mQ=voQks?Y_UoluQTk(M6CB^9_)Ft*ySbs~3mz-E~ zUkO&yR|-*DqjX5APiadVy&)LYdbX%I9R8VMQ|8r>Q*nyQ)sn)#Z| zn)kKvS`4iutvy=3T65Yu+J6z+TeLg0Cw1g?e01`3nspxPl69SQSL@d6-qOS9G4xXO z_UqlyhxM)Wlk{u!2Mk~XYXh#qeuF_nw4tpb&#>Nb*ob80Vw7dnY&2?2Gxj$wFzzsZ zVWMdgZL-s(*W{C_m1(MJgXse^88ctA0<$i&-_7;SS>`q7w=BpOo_`kWEjle;S{hh# zEDu=TwW3%BSZ%TDw)$voW6ig2v7WNgw28CXXEV&8GJ+VTj4QTiTUXolwx@01*;(5O z>`vJIW^ZJlVt>?ra;eTz&eDdZV-D&LOouv$5l6aXoZ~^q5hpb#rc=Gs6K4%)wsWKN zgo~a_vdb}-7p|tRe1F$A*Eu&kx3zBP-4S;$_hR>c4;hc;9@QR?J=HxEJ)1peysW&| zc%An~d;59s^d9z6_F?%n`ONs*_^$Qs@gw<#`c?Zq@z?j~`*#Jv0lopd0v;~YTE<(} z5eNc(0(S*I3epK$9rR-`CO9a#CirQHSxA0JZzv@+HuPxdn}0CZu(GfR%XOCvmv@It zhR1|Ah0jH}N0dj5M4Cjdjl3SE7{!h1jK)TXM>j^#uJBl~d&PK+RZLOLos~K(b5>qm zrMN0})tOkySZ3_WICNY@+|jrX%s^&6b2i>5eqa0y%Z;^%^_=a@u3%4b9605ii3Ep) z@`TAmhs0fpQ-4WLNtH>{TsLkt_hqtoa&7WlN?^+2l!erY)YddyT3p&Go(wOA*ORW2 zo|8V9VUSUjF|yij_3qU(d_R6;CX~4{vr|A7{Y>=tT>!5Y<>wmh}YpgF^Kfb|h!;y`IjVT*{ zDljc5FL=EvVpCV4a^Z%;vCUqan~Nlh_(j88?6=fzMQ!D7?cZjxZSS^E#q8p1C8i~n zB_B#zrPsbO`=;ufh3yI3`^&7$4(!0};O)4x(`o0Ca_REC^08e3yV@)06~z^=cgOC& zT4`BXyMKqUN4RIC%D<{}ujbwzdp}esRo||0t!dq-v~SzKx&7?@LkFA>wA3osmejsK z$US(s&a1AyUc0{X5av+Up{EVu4ZYtozHMq$Y%FQ~c$jy10kG~&`y2v!*9;N_02@ijKAc+T=>28mBOpTuPtA9 z&j!stev|fQey;ef!rLS781H)DN4%ey&;Ee@Q1wyoW7j9YPY)N;78d>m1DNytxvX;; Hu_37f*mXB7 diff --git a/staticdata/icons/icon108_12.png b/staticdata/icons/icon108_12.png index 951655dc80ee105765f578355cb38003e3f0aac5..6fa9fc3dfd3a212914ae43290e4ac496dcdf56aa 100644 GIT binary patch delta 11 ScmeB_I?Fmid2>A1DkcCKfCKRW delta 2649 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 Hu_3Gi7MeFT diff --git a/staticdata/icons/icon108_13.png b/staticdata/icons/icon108_13.png index 8b11794f53c6906f3c4eaa4858697cbe62826119..eae33079e99845128b405cac9758573ff84c95ef 100644 GIT binary patch delta 11 ScmeB{I?p;md2>A18YTc4tONG| delta 2649 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 Hu_3MkKmIp6 diff --git a/staticdata/icons/icon108_14.png b/staticdata/icons/icon108_14.png index 51a91a0c3dfaf3d64dd54811657bbc0d430882f0..28aa09805ea4f2ae6517cb3729cab603dbef29f2 100644 GIT binary patch delta 11 ScmaDXxtw)^^5%H17A622vIG7A delta 2649 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 Hu_1;6C3ZJL diff --git a/staticdata/icons/icon108_15.png b/staticdata/icons/icon108_15.png index cef54cad91062fc8558584d5515d4a2efbcd431a..9ef8422a671d1015a970702b794a2617c9fed4fb 100644 GIT binary patch delta 11 ScmaDPxr}v!^5%H1W+ng|oCEs+ delta 2649 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 Hu_1*55X3h> diff --git a/staticdata/icons/icon108_16.png b/staticdata/icons/icon108_16.png index 4f347cd988f4d66e4f67134de944d2b1bb17a6ee..a5a7ca5bdb3d29736005594686c59f1c13940908 100644 GIT binary patch delta 11 ScmX>o*~&UWd2>8h5)%Lz#sioD delta 2649 zcmV-f3a0gi1;H7RBYz4oX+uL$Nkc;*P;zf(X>4Tx0C=38mUmQC*A|D*y?1({%`g-x zL+`x}AiX!K(nMjH8DJ;_4l^{dA)*2iMMMM@L4qO%jD{kyB8r88V8I@cAfUux6j4!m zGqP56<>kGXm){>}eQTe+_dRFteb%}Fki7l5ymVL!fHa0IH;uf5=ydS^Nt%_x7l_gXiP(b8$z+MR zP{gU(f()^JM#R+k6fwgnG4n+S6tTRR6BpU=v(F+si6{c}T{8k*B#$jdxfFg<9uYy1K41c2aeX;$OUwSIQ_o0dBB}pL2uro2q&dxUGa#+UVg8rfZ>F_u7)%T3W z>Ha7W-JO%b6s8L3;<~ZYQ`3cfdS(Wb#i1Mhd5HgU;9sA^Focu9;d6MRh;Y%Aae0ZN zcJtU=0e?50N9XeXQxpGT*q^jG*CJ6GJ^^a1F_0Rd0_4{|fT9oq5_3Sb1O3rAe|$I) zzq|<5iN(49Ea=~}!e!zmlbiTC&MhR2&Jyyo7Wc%@5}*MANCGNQ04hKO=mH~P4s3uu za0VX07X*SZ5Cv8N7DxhVfDf`kKG+C~Knd6Zc7KCvPzxGB6KDY^KnFMtE`ZD6I=BID zg9l&)jDzQ32D}0D5CmZ%GDLwCAXP{UGJwn>2IL5NK>kn&6a~dWi4YGGLix}ps01p9 zs-Zfl3Hly71zmuyLW9sfXcU@)euv(}2uy;hurjO-o4^d%1@?o(;FWM9yc*7f3*qf> z6@Oe0AA{TB3-ERLHar49hi4Ih5D^-ph8Q6X#0?2VqLBoIkE}zAkxHZUgRb+ zf=natP#6>iMMoK->`~sR5fTnEjYm%z4ZpW(+fn#bOn( z23QAdAeM<0V2iMOvB$9IutV5!>{}cWr;0PjdE%mRJX`^;5_c4L7B_^Oz|G^O@LG5~ zd?22U&&8MF8}MED0sJ_Ao*+%oAvh4i2+4$vgepP{;S%8?;T4fcR43XJgNaLeh59VbXchJ<=;OnXFBACP$M6>atgt3H= z1Y2UgM2$qd#E`@bNxY<%q>JP#$vnwQ$&-=;lG9RnDQzh?DW=pqsT!$MQo~ZS(iCYk z=|Jf;=~C&V(pRM?Ww0{ZG9EH)nSVl=Loyd-#wZ9ygW^VEQ8rN;D3>VXR18&z>O)PY zmQcT=_ETqMWn?X7!)0@1Yh=&Jj?fUAHqD2YN-LwCpxvRpms6H=k>kj1lWUP1lADuX zBJV8EkuR2SmA@_jUV*OQp^&1mQ=voQks?Y_UoluQTk(M6CB^9_)Ft*ySbs~3mz-E~ zUkO&yR|-*DqjX5APiadVy&)LYdbX%I9R8VMQ|8r>Q*nyQ)sn)#Z| zn)kKvS`4iutvy=3T65Yu+J6z+TeLg0Cw1g?e01`3nspxPl69SQSL@d6-qOS9G4xXO z_UqlyhxM)Wlk{u!2Mk~XYXh#qeuF_nw4tpb&#>Nb*ob80Vw7dnY&2?2Gxj$wFzzsZ zVWMdgZL-s(*W{C_m1(MJgXse^88ctA0<$i&-_7;SS>`q7w=BpOo_`kWEjle;S{hh# zEDu=TwW3%BSZ%TDw)$voW6ig2v7WNgw28CXXEV&8GJ+VTj4QTiTUXolwx@01*;(5O z>`vJIW^ZJlVt>?ra;eTz&eDdZV-D&LOouv$5l6aXoZ~^q5hpb#rc=Gs6K4%)wsWKN zgo~a_vdb}-7p|tRe1F$A*Eu&kx3zBP-4S;$_hR>c4;hc;9@QR?J=HxEJ)1peysW&| zc%An~d;59s^d9z6_F?%n`ONs*_^$Qs@gw<#`c?Zq@z?j~`*#Jv0lopd0v;~YTE<(} z5eNc(0(S*I3epK$9rR-`CO9a#CirQHSxA0JZzv@+HuPxdn}0CZu(GfR%XOCvmv@It zhR1|Ah0jH}N0dj5M4Cjdjl3SE7{!h1jK)TXM>j^#uJBl~d&PK+RZLOLos~K(b5>qm zrMN0})tOkySZ3_WICNY@+|jrX%s^&6b2i>5eqa0y%Z;^%^_=a@u3%4b9605ii3Ep) z@`TAmhs0fpQ-4WLNtH>{TsLkt_hqtoa&7WlN?^+2l!erY)YddyT3p&Go(wOA*ORW2 zo|8V9VUSUjF|yij_3qU(d_R6;CX~4{vr|A7{Y>=tT>!5Y<>wmh}YpgF^Kfb|h!;y`IjVT*{ zDljc5FL=EvVpCV4a^Z%;vCUqan~Nlh_(j88?6=fzMQ!D7?cZjxZSS^E#q8p1C8i~n zB_B#zrPsbO`=;ufh3yI3`^&7$4(!0};O)4x(`o0Ca_REC^08e3yV@)06~z^=cgOC& zT4`BXyMKqUN4RIC%D<{}ujbwzdp}esRo||0t!dq-v~SzKx&7?@LkFA>wA3osmejsK z$US(s&a1AyUc0{X5av+Up{EVu4ZYtozHMq$Y%FQ~c$jy10kG~&`y2v!*9;N_02@ijKAc+T=>28mBOpTuPtA9 z&j!stev|fQey;ef!rLS781H)DN4%ey&;Ee@Q1wyoW7j9YPY)N;78d>m1DNytxvX;; Hu_0svWu-RU diff --git a/staticdata/icons/icon108_17.png b/staticdata/icons/icon108_17.png index 3207e1d5871fd2fc52993e06b476029fddb50ff1..ade62fe73c749a96158091aec4274ee69b4e5e17 100644 GIT binary patch delta 11 ScmcaBxsY{&^5%H1Iwk-cE(7cU delta 2649 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 Hu_1s0sXI3? diff --git a/staticdata/icons/icon108_18.png b/staticdata/icons/icon108_18.png index e5e54a3409ad7d482b5a583183da07193fb060c5..2b27853a62d61be7d35076c65ce5a2c51878ac33 100644 GIT binary patch delta 11 ScmZ1?^@4SR^5%H1qf7uB(gZ>P delta 2649 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 Hu_4C-MSeGi diff --git a/staticdata/icons/icon108_19.png b/staticdata/icons/icon108_19.png index 00e17b419558f443b8c02d7a204d9aa4bdb3c6af..85e19a1f6e17a5799a63e9708961b195a8fd4def 100644 GIT binary patch delta 11 ScmbOu^?-GP^5%H1y-WZbA_OV` delta 2649 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 Hu_3<#pWiob diff --git a/staticdata/icons/icon108_2.png b/staticdata/icons/icon108_2.png index 32f0cea32d3c7f6924b363465e495fd04552a93c..7d622e1673a70b6f9b9f66df4b2591faa40fca6d 100644 GIT binary patch delta 11 Scmew+xr=pz^5%H1=}Z6}R0KBw delta 2649 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 Hu_2iPuDdsT diff --git a/staticdata/icons/icon108_20.png b/staticdata/icons/icon108_20.png index e83f0782d0ce1dde46bfd190e410451192cb720a..d5a7ad2b7a40708e54d022a4e318c8c31a91c770 100644 GIT binary patch delta 11 ScmbOu^?-GP^5%H1y-WZbA_OV` delta 2649 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 Hu_3<#pWiob diff --git a/staticdata/icons/icon108_21.png b/staticdata/icons/icon108_21.png index 083848e5627989496e141910345bf942e6a4a6f6..de5104a69fc7921c38321bc3dbd7499283754e36 100644 GIT binary patch delta 11 ScmZ21^_+Er^5%H1BTN7ryaYc0 delta 2649 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 Hu_49+Fw8fD diff --git a/staticdata/icons/icon108_3.png b/staticdata/icons/icon108_3.png index f303c38fdcd11dc0b7aba454b051b2c09a7131f5..a68abee8dfd3f2d65b510beba915cd438c1b2aa5 100644 GIT binary patch delta 11 Scmew_d6;#A^5%H11xx@Q8U#`R delta 2649 zcmV-f3a0hL1^*e4BYz4oX+uL$Nkc;*P;zf(X>4Tx0C=38mUmQC*A|D*y?1({%`g-x zL+`x}AiX!K(nMjH8DJ;_4l^{dA)*2iMMMM@L4qO%jD{kyB8r88V8I@cAfUux6j4!m zGqP56<>kGXm){>}eQTe+_dRFteb%}Fki7l5ymVL!fHa0IH;uf5=ydS^Nt%_x7l_gXiP(b8$z+MR zP{gU(f()^JM#R+k6fwgnG4n+S6tTRR6BpU=v(F+si6{c}T{8k*B#$jdxfFg<9uYy1K41c2aeX;$OUwSIQ_o0dBB}pL2uro2q&dxUGa#+UVg8rfZ>F_u7)%T3W z>Ha7W-JO%b6s8L3;<~ZYQ`3cfdS(Wb#i1Mhd5HgU;9sA^Focu9;d6MRh;Y%Aae0ZN zcJtU=0e?50N9XeXQxpGT*q^jG*CJ6GJ^^a1F_0Rd0_4{|fT9oq5_3Sb1O3rAe|$I) zzq|<5iN(49Ea=~}!e!zmlbiTC&MhR2&Jyyo7Wc%@5}*MANCGNQ04hKO=mH~P4s3uu za0VX07X*SZ5Cv8N7DxhVfDf`kKG+C~Knd6Zc7KCvPzxGB6KDY^KnFMtE`ZD6I=BID zg9l&)jDzQ32D}0D5CmZ%GDLwCAXP{UGJwn>2IL5NK>kn&6a~dWi4YGGLix}ps01p9 zs-Zfl3Hly71zmuyLW9sfXcU@)euv(}2uy;hurjO-o4^d%1@?o(;FWM9yc*7f3*qf> z6@Oe0AA{TB3-ERLHar49hi4Ih5D^-ph8Q6X#0?2VqLBoIkE}zAkxHZUgRb+ zf=natP#6>iMMoK->`~sR5fTnEjYm%z4ZpW(+fn#bOn( z23QAdAeM<0V2iMOvB$9IutV5!>{}cWr;0PjdE%mRJX`^;5_c4L7B_^Oz|G^O@LG5~ zd?22U&&8MF8}MED0sJ_Ao*+%oAvh4i2+4$vgepP{;S%8?;T4fcR43XJgNaLeh59VbXchJ<=;OnXFBACP$M6>atgt3H= z1Y2UgM2$qd#E`@bNxY<%q>JP#$vnwQ$&-=;lG9RnDQzh?DW=pqsT!$MQo~ZS(iCYk z=|Jf;=~C&V(pRM?Ww0{ZG9EH)nSVl=Loyd-#wZ9ygW^VEQ8rN;D3>VXR18&z>O)PY zmQcT=_ETqMWn?X7!)0@1Yh=&Jj?fUAHqD2YN-LwCpxvRpms6H=k>kj1lWUP1lADuX zBJV8EkuR2SmA@_jUV*OQp^&1mQ=voQks?Y_UoluQTk(M6CB^9_)Ft*ySbs~3mz-E~ zUkO&yR|-*DqjX5APiadVy&)LYdbX%I9R8VMQ|8r>Q*nyQ)sn)#Z| zn)kKvS`4iutvy=3T65Yu+J6z+TeLg0Cw1g?e01`3nspxPl69SQSL@d6-qOS9G4xXO z_UqlyhxM)Wlk{u!2Mk~XYXh#qeuF_nw4tpb&#>Nb*ob80Vw7dnY&2?2Gxj$wFzzsZ zVWMdgZL-s(*W{C_m1(MJgXse^88ctA0<$i&-_7;SS>`q7w=BpOo_`kWEjle;S{hh# zEDu=TwW3%BSZ%TDw)$voW6ig2v7WNgw28CXXEV&8GJ+VTj4QTiTUXolwx@01*;(5O z>`vJIW^ZJlVt>?ra;eTz&eDdZV-D&LOouv$5l6aXoZ~^q5hpb#rc=Gs6K4%)wsWKN zgo~a_vdb}-7p|tRe1F$A*Eu&kx3zBP-4S;$_hR>c4;hc;9@QR?J=HxEJ)1peysW&| zc%An~d;59s^d9z6_F?%n`ONs*_^$Qs@gw<#`c?Zq@z?j~`*#Jv0lopd0v;~YTE<(} z5eNc(0(S*I3epK$9rR-`CO9a#CirQHSxA0JZzv@+HuPxdn}0CZu(GfR%XOCvmv@It zhR1|Ah0jH}N0dj5M4Cjdjl3SE7{!h1jK)TXM>j^#uJBl~d&PK+RZLOLos~K(b5>qm zrMN0})tOkySZ3_WICNY@+|jrX%s^&6b2i>5eqa0y%Z;^%^_=a@u3%4b9605ii3Ep) z@`TAmhs0fpQ-4WLNtH>{TsLkt_hqtoa&7WlN?^+2l!erY)YddyT3p&Go(wOA*ORW2 zo|8V9VUSUjF|yij_3qU(d_R6;CX~4{vr|A7{Y>=tT>!5Y<>wmh}YpgF^Kfb|h!;y`IjVT*{ zDljc5FL=EvVpCV4a^Z%;vCUqan~Nlh_(j88?6=fzMQ!D7?cZjxZSS^E#q8p1C8i~n zB_B#zrPsbO`=;ufh3yI3`^&7$4(!0};O)4x(`o0Ca_REC^08e3yV@)06~z^=cgOC& zT4`BXyMKqUN4RIC%D<{}ujbwzdp}esRo||0t!dq-v~SzKx&7?@LkFA>wA3osmejsK z$US(s&a1AyUc0{X5av+Up{EVu4ZYtozHMq$Y%FQ~c$jy10kG~&`y2v!*9;N_02@ijKAc+T=>28mBOpTuPtA9 z&j!stev|fQey;ef!rLS781H)DN4%ey&;Ee@Q1wyoW7j9YPY)N;78d>m1DNytxvX;; Hu_2-YX$&`( diff --git a/staticdata/icons/icon108_4.png b/staticdata/icons/icon108_4.png index e559fe0f604c2b99ec58a93e172ad1e3dab1632b..e98d57430d29e50bea6754ac99705a1ba8f98245 100644 GIT binary patch delta 11 ScmZpcI?g&ld2>A15+(o``~%+r delta 2649 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 Hu_2}cnqM~~ diff --git a/staticdata/icons/icon108_5.png b/staticdata/icons/icon108_5.png index 8771e6a9cfe0b5cffdcbbdec0c41546019a7a928..662fcaf5ea161c7bf92c20e81f08c7c85cafd3c9 100644 GIT binary patch delta 11 ScmX>k*~U6Sd2>8hG7|t8+yk2c delta 2649 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 Hu_0vwdRI2z diff --git a/staticdata/icons/icon108_6.png b/staticdata/icons/icon108_6.png index f33e4b32bd74bf297dfa520d774b2aa4b3e00e78..001c315ced783d20dec9127849db5f2e596447dc 100644 GIT binary patch delta 11 ScmX>h*~28hCKCV|U<0iH delta 2649 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 Hu_0>$_JcO@ diff --git a/staticdata/icons/icon108_64_22.png b/staticdata/icons/icon108_64_22.png index c67d4e6018e3af36ba01aa1ec2076b9a81f5590a..d3cfa6aedc2858b1b245944162c0e21e59a3fca8 100644 GIT binary patch delta 11 ScmZpaI?6ghd2>A1A|?PB&;!{3 delta 2649 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 Hu_2@aaQinM diff --git a/staticdata/icons/icon108_7.png b/staticdata/icons/icon108_7.png index 8e746ff5c09810e504e87723444a287d26ca8886..f78447b2c91813675feb16389d6221f52869c671 100644 GIT binary patch delta 11 ScmX>q*~vOVd2>8h8WR8+9s{HR delta 2649 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 Hu_0&zxNSD* diff --git a/staticdata/icons/icon108_8.png b/staticdata/icons/icon108_8.png index 32efa4c3cfadf06a96b24f38e2951c95bee5f5a6..91ac802700e7fb3b1403d3d296e0c43867da9475 100644 GIT binary patch delta 11 ScmX>h*~28hCKCV|U<0iH delta 2649 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 Hu_0>$_JcO@ diff --git a/staticdata/icons/icon113_64_1.png b/staticdata/icons/icon113_64_1.png index 45b5f69dd3c08ac3e1f3e52da985ef5a8c330efd..f2def6839acab97eabd2b1bb6d332a5018fede8a 100644 GIT binary patch delta 11 ScmZ21{hV!r^5%Fh7iIt&&jZ2$ delta 2649 zcmV-f3a0hv2BRC0BYz4oX+uL$Nkc;*P;zf(X>4Tx0C=38mUmQC*A|D*y?1({%`g-x zL+`x}AiX!K(nMjH8DJ;_4l^{dA)*2iMMMM@L4qO%jD{kyB8r88V8I@cAfUux6j4!m zGqP56<>kGXm){>}eQTe+_dRFteb%}Fki7l5ymVL!fHa0IH;uf5=ydS^Nt%_x7l_gXiP(b8$z+MR zP{gU(f()^JM#R+k6fwgnG4n+S6tTRR6BpU=v(F+si6{c}T{8k*B#$jdxfFg<9uYy1K41c2aeX;$OUwSIQ_o0dBB}pL2uro2q&dxUGa#+UVg8rfZ>F_u7)%T3W z>Ha7W-JO%b6s8L3;<~ZYQ`3cfdS(Wb#i1Mhd5HgU;9sA^Focu9;d6MRh;Y%Aae0ZN zcJtU=0e?50N9XeXQxpGT*q^jG*CJ6GJ^^a1F_0Rd0_4{|fT9oq5_3Sb1O3rAe|$I) zzq|<5iN(49Ea=~}!e!zmlbiTC&MhR2&Jyyo7Wc%@5}*MANCGNQ04hKO=mH~P4s3uu za0VX07X*SZ5Cv8N7DxhVfDf`kKG+C~Knd6Zc7KCvPzxGB6KDY^KnFMtE`ZD6I=BID zg9l&)jDzQ32D}0D5CmZ%GDLwCAXP{UGJwn>2IL5NK>kn&6a~dWi4YGGLix}ps01p9 zs-Zfl3Hly71zmuyLW9sfXcU@)euv(}2uy;hurjO-o4^d%1@?o(;FWM9yc*7f3*qf> z6@Oe0AA{TB3-ERLHar49hi4Ih5D^-ph8Q6X#0?2VqLBoIkE}zAkxHZUgRb+ zf=natP#6>iMMoK->`~sR5fTnEjYm%z4ZpW(+fn#bOn( z23QAdAeM<0V2iMOvB$9IutV5!>{}cWr;0PjdE%mRJX`^;5_c4L7B_^Oz|G^O@LG5~ zd?22U&&8MF8}MED0sJ_Ao*+%oAvh4i2+4$vgepP{;S%8?;T4fcR43XJgNaLeh59VbXchJ<=;OnXFBACP$M6>atgt3H= z1Y2UgM2$qd#E`@bNxY<%q>JP#$vnwQ$&-=;lG9RnDQzh?DW=pqsT!$MQo~ZS(iCYk z=|Jf;=~C&V(pRM?Ww0{ZG9EH)nSVl=Loyd-#wZ9ygW^VEQ8rN;D3>VXR18&z>O)PY zmQcT=_ETqMWn?X7!)0@1Yh=&Jj?fUAHqD2YN-LwCpxvRpms6H=k>kj1lWUP1lADuX zBJV8EkuR2SmA@_jUV*OQp^&1mQ=voQks?Y_UoluQTk(M6CB^9_)Ft*ySbs~3mz-E~ zUkO&yR|-*DqjX5APiadVy&)LYdbX%I9R8VMQ|8r>Q*nyQ)sn)#Z| zn)kKvS`4iutvy=3T65Yu+J6z+TeLg0Cw1g?e01`3nspxPl69SQSL@d6-qOS9G4xXO z_UqlyhxM)Wlk{u!2Mk~XYXh#qeuF_nw4tpb&#>Nb*ob80Vw7dnY&2?2Gxj$wFzzsZ zVWMdgZL-s(*W{C_m1(MJgXse^88ctA0<$i&-_7;SS>`q7w=BpOo_`kWEjle;S{hh# zEDu=TwW3%BSZ%TDw)$voW6ig2v7WNgw28CXXEV&8GJ+VTj4QTiTUXolwx@01*;(5O z>`vJIW^ZJlVt>?ra;eTz&eDdZV-D&LOouv$5l6aXoZ~^q5hpb#rc=Gs6K4%)wsWKN zgo~a_vdb}-7p|tRe1F$A*Eu&kx3zBP-4S;$_hR>c4;hc;9@QR?J=HxEJ)1peysW&| zc%An~d;59s^d9z6_F?%n`ONs*_^$Qs@gw<#`c?Zq@z?j~`*#Jv0lopd0v;~YTE<(} z5eNc(0(S*I3epK$9rR-`CO9a#CirQHSxA0JZzv@+HuPxdn}0CZu(GfR%XOCvmv@It zhR1|Ah0jH}N0dj5M4Cjdjl3SE7{!h1jK)TXM>j^#uJBl~d&PK+RZLOLos~K(b5>qm zrMN0})tOkySZ3_WICNY@+|jrX%s^&6b2i>5eqa0y%Z;^%^_=a@u3%4b9605ii3Ep) z@`TAmhs0fpQ-4WLNtH>{TsLkt_hqtoa&7WlN?^+2l!erY)YddyT3p&Go(wOA*ORW2 zo|8V9VUSUjF|yij_3qU(d_R6;CX~4{vr|A7{Y>=tT>!5Y<>wmh}YpgF^Kfb|h!;y`IjVT*{ zDljc5FL=EvVpCV4a^Z%;vCUqan~Nlh_(j88?6=fzMQ!D7?cZjxZSS^E#q8p1C8i~n zB_B#zrPsbO`=;ufh3yI3`^&7$4(!0};O)4x(`o0Ca_REC^08e3yV@)06~z^=cgOC& zT4`BXyMKqUN4RIC%D<{}ujbwzdp}esRo||0t!dq-v~SzKx&7?@LkFA>wA3osmejsK z$US(s&a1AyUc0{X5av+Up{EVu4ZYtozHMq$Y%FQ~c$jy10kG~&`y2v!*9;N_02@ijKAc+T=>28mBOpTuPtA9 z&j!stev|fQey;ef!rLS781H)DN4%ey&;Ee@Q1wyoW7j9YPY)N;78d>m1DNytxvX;; Hu^~nSM0+;| diff --git a/staticdata/icons/icon113_64_2.png b/staticdata/icons/icon113_64_2.png index 97d082041f092a3f5e4bd10bf483b8b1c5339c52..6cfcead583a64b26851e84b393c4e529b6e54a64 100644 GIT binary patch delta 11 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 Hu^~GHV8%A( diff --git a/staticdata/icons/icon113_64_3.png b/staticdata/icons/icon113_64_3.png index 02d987d948a831c5c0f8a1cd08d4a505fade2a15..e91832585efb86ed821f1f8716f93dad6ad4820f 100644 GIT binary patch delta 11 ScmbO(eVc89^5%Fh3uXWr#{-@K delta 2649 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 Hu^~DGOcXZa diff --git a/staticdata/icons/icon118_64_7.png b/staticdata/icons/icon118_64_7.png index 4c1185f39c72953ee9ab0842a952d7b0c116f32c..42ef21230d9f9b1b6cc1313b1b2b1b3a50cabc51 100644 GIT binary patch delta 11 ScmZ20@sW9g^5%H1bBq8Sa|Bob delta 2649 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 Hu_4d_)?+uE diff --git a/staticdata/icons/icon119_1.png b/staticdata/icons/icon119_1.png index f1a7fb1e754454dfa91b978a2c00bbe61aa1fefd..c64901566139b617c7733a0348ba0146e0055700 100644 GIT binary patch delta 11 ScmX>m(Zw=Bd2>A1b4CCfAp|4< delta 2649 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 Hu_5UJxo|gV diff --git a/staticdata/icons/icon1337_21.png b/staticdata/icons/icon1337_21.png index c9133cbb88657e98f086fb08f9dd9258ba515cb1..7277c51fe32b64201d6a4ea922113217926cd00e 100644 GIT binary patch delta 11 ScmX>m-N`;dd2<3+8Z!VHQUj|1 delta 2650 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 IIk6#V1I$w+sQ>@~ diff --git a/staticdata/icons/icon1337_22.png b/staticdata/icons/icon1337_22.png index 84ce0dcf87629367edda671f8238bb2537335c19..08d350194460bcbf7bdf768533fea9b404a1f2b5 100644 GIT binary patch delta 11 ScmZ1~`GRGF^5z6CS0(@&&jZ2$ delta 2650 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 IIk6!}0veJdzyJUM diff --git a/staticdata/icons/icon34_16.png b/staticdata/icons/icon34_16.png index b8a2478c04a52e40be0919ee02ba481d75e0cbb7..0e29f9d24ee4225444126eb47c45b5a58a29a0c5 100644 GIT binary patch delta 11 ScmbOy^@w$X^5%H1{Y(HGP6RLj delta 2649 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 Hu_3_%$wN1E diff --git a/staticdata/icons/iconIcon_64px_Fireworks.png b/staticdata/icons/iconIcon_64px_Fireworks.png index 7bd17da637cfdd779943bb8d5e69106680bcc628..2e8a27c3d5b5b16f1155460659c10c0d434d705d 100644 GIT binary patch delta 11 ScmZpXIl(?bd2>A1Qf2@dHv{JY delta 2649 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 Hu_31e*lsr~ diff --git a/staticdata/icons/iconMarketIcon_16px_Amarr.png b/staticdata/icons/iconMarketIcon_16px_Amarr.png index 96aa92cea4e1f1e75fe3ad1e19816ec90d7b0a28..fdb721f65a978eafb83b7f0175f9e98ee2ba4eb0 100644 GIT binary patch delta 11 ScmbOxd5dL&^5%Fhb0z>8j02Vc delta 2649 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 Hu^~AE4h1&a diff --git a/staticdata/icons/iconMarketIcon_16px_Caldari.png b/staticdata/icons/iconMarketIcon_16px_Caldari.png index 420f4e0dd6228a3901324ef1a27839ce0dd5fe4d..edd49286eb06c781afc4a82771c822a6916cd4d5 100644 GIT binary patch delta 11 ScmeB@ILACed2>A1YDNGVaRcuF delta 2649 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 Hu_3Ji0q-|6 diff --git a/staticdata/icons/iconMarketIcon_16px_Gallente.png b/staticdata/icons/iconMarketIcon_16px_Gallente.png index 8debc4fd75651f9fa59531cc1c9d0478ba14dc21..4039ba05c6ae5ced476cf7b564a33a19278eaf17 100644 GIT binary patch delta 11 ScmbOxb&GX^^5%H1?Mwg~o&*>G delta 2649 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 Hu_3tvBeOSL diff --git a/staticdata/icons/iconMarketIcon_16px_Minmatar.png b/staticdata/icons/iconMarketIcon_16px_Minmatar.png index f8379a89cbe5f3b74a7660b9857e20b423030e7f..dba4a27262cb917c64590c70e1ff5757cc2390b0 100644 GIT binary patch delta 11 Scmdlb`Hy9S^5%H1XeIz0qyz#0 delta 2649 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 Hu_0Xo_bWF> diff --git a/staticdata/icons/iconremote_hull_repairer.png b/staticdata/icons/iconremote_hull_repairer.png index 2360bfb28b8a316d3c3e51ca62e71cfe52835e40..5899ec3860d15f92dffc88cf72ed5bf5b5eb56b6 100644 GIT binary patch delta 11 ScmZ1}^@eqV^5z7tlS}{{IRsDu delta 2650 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 IIk6$j0)rAHP5=M^ From 505b0ce38f7cecfd461608c89dabc7721ee4585d Mon Sep 17 00:00:00 2001 From: DarkPhoenix Date: Thu, 23 Jul 2015 20:34:02 +0300 Subject: [PATCH 46/53] Clear info dicts in-place instead of replacing them with new ones Sometimes it can cause fuckups, so who knows how PIL works with them... --- scripts/icons_update.py | 2 +- scripts/renders_update.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/icons_update.py b/scripts/icons_update.py index 0cf73f2b7..1ab128c4d 100644 --- a/scripts/icons_update.py +++ b/scripts/icons_update.py @@ -211,7 +211,7 @@ def get_icon_file(request): img = Image.open(fullpath) # Strip all additional image info (mostly for ICC color # profiles, see issue #337) - img.info = {} + img.info.clear() return img diff --git a/scripts/renders_update.py b/scripts/renders_update.py index 5ddf39b90..ffa488e9f 100644 --- a/scripts/renders_update.py +++ b/scripts/renders_update.py @@ -82,7 +82,7 @@ def get_render(type_id): img.thumbnail(RENDER_SIZE, Image.ANTIALIAS) # Strip all additional image info (mostly for ICC color # profiles, see issue #337) - img.info = {} + img.info.clear() return img From 2f246d0897dcb1f13844fa4e0c1e03864f5ab27a Mon Sep 17 00:00:00 2001 From: blitzmann Date: Thu, 23 Jul 2015 15:32:27 -0400 Subject: [PATCH 47/53] Add context menu to affected by list --- gui/builtinContextMenus/itemStats.py | 3 ++- gui/itemStats.py | 36 +++++++++++++++++++++++----- 2 files changed, 32 insertions(+), 7 deletions(-) diff --git a/gui/builtinContextMenus/itemStats.py b/gui/builtinContextMenus/itemStats.py index 47054edc6..73ba66a56 100644 --- a/gui/builtinContextMenus/itemStats.py +++ b/gui/builtinContextMenus/itemStats.py @@ -15,7 +15,8 @@ class ItemStats(ContextMenu): "cargoItem", "droneItem", "implantItem", "boosterItem", "skillItem", "projectedModule", - "projectedDrone", "projectedCharge") + "projectedDrone", "projectedCharge", + "itemStats") def getText(self, itmContext, selection): return "{0} Stats".format(itmContext if itmContext is not None else "Item") diff --git a/gui/itemStats.py b/gui/itemStats.py index d29895e7a..9d971aaa7 100644 --- a/gui/itemStats.py +++ b/gui/itemStats.py @@ -28,6 +28,7 @@ from eos.types import Fit, Ship, Module, Skill, Booster, Implant, Drone, Mode from gui.utils.numberFormatter import formatAmount import service import config +from gui.contextMenu import ContextMenu try: from collections import OrderedDict @@ -595,6 +596,28 @@ class ItemAffectedBy (wx.Panel): self.SetSizer(mainSizer) self.PopulateTree() self.Layout() + self.affectedBy.Bind(wx.EVT_TREE_ITEM_RIGHT_CLICK, self.scheduleMenu) + + def scheduleMenu(self, event): + event.Skip() + wx.CallAfter(self.spawnMenu, event.Item) + + def spawnMenu(self, item): + self.affectedBy.SelectItem(item) + + stuff = self.affectedBy.GetPyData(item) + # String is set as data when we are dealing with attributes, not stuff containers + if stuff is None or isinstance(stuff, basestring): + return + contexts = [] + + # Skills are different in that they don't have itemModifiedAttributes, + # which is needed if we send the container to itemStats dialog. So + # instead, we send the item. + type = stuff.__class__.__name__ + contexts.append(("itemStats", type)) + menu = ContextMenu.getMenu(stuff if type != "Skill" else stuff.item, *contexts) + self.PopupMenu(menu) def ExpandCollapseTree(self): @@ -718,7 +741,7 @@ class ItemAffectedBy (wx.Panel): else: item = afflictor.item - items[attrName].append((type(afflictor), item, modifier, amount, getattr(afflictor, "projected", False))) + items[attrName].append((type(afflictor), afflictor, item, modifier, amount, getattr(afflictor, "projected", False))) # Make sure projected fits are on top rootOrder = container.keys() @@ -768,7 +791,7 @@ class ItemAffectedBy (wx.Panel): items = attributes[attrName] items.sort(key=lambda x: self.ORDER.index(x[0])) for itemInfo in items: - afflictorType, item, attrModifier, attrAmount, projected = itemInfo + afflictorType, afflictor, item, attrModifier, attrAmount, projected = itemInfo if afflictorType == Ship: itemIcon = self.imageList.Add(bitmapLoader.getBitmap("ship_small", "icons")) @@ -791,7 +814,9 @@ class ItemAffectedBy (wx.Panel): # this is the Module node, the attribute will be attached to this display = "%s %s %.2f %s" % (displayStr, attrModifier, attrAmount, penalized) - self.affectedBy.AppendItem(child, display, itemIcon) + treeItem = self.affectedBy.AppendItem(child, display, itemIcon) + self.affectedBy.SetPyData(treeItem, afflictor) + def buildModuleView(self, root): # We first build a usable dictionary of items. The key is either a fit @@ -816,8 +841,7 @@ class ItemAffectedBy (wx.Panel): for fit, afflictors in attributes.getAfflictions(attrName).iteritems(): for afflictor, modifier, amount, used in afflictors: - - if not used or afflictor.item is None: + if not used or getattr(afflictor, 'item', None) is None: continue if fit.ID != self.activeFit: @@ -870,7 +894,6 @@ class ItemAffectedBy (wx.Panel): for itemName in order: info = items[itemName] - afflictorType, afflictors, attrData, item, projected = info counter = len(afflictors) if afflictorType == Ship: @@ -891,6 +914,7 @@ class ItemAffectedBy (wx.Panel): # this is the Module node, the attribute will be attached to this child = self.affectedBy.AppendItem(parent, displayStr, itemIcon) + self.affectedBy.SetPyData(child, afflictors.pop()) if counter > 0: attributes = [] From cc59612fa48c6f272ce315405b4dae4348781dfb Mon Sep 17 00:00:00 2001 From: blitzmann Date: Thu, 23 Jul 2015 16:58:04 -0400 Subject: [PATCH 48/53] Debug logging when flag is set --- config.py | 5 ++++- service/fit.py | 1 - 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/config.py b/config.py index 382ee6e1b..b20229fff 100644 --- a/config.py +++ b/config.py @@ -17,7 +17,10 @@ debug = False # Defines if our saveddata will be in pyfa root or not saveInRoot = False -logLevel = logging.DEBUG +if debug: + logLevel = logging.DEBUG +else: + logLevel = logging.WARN # Version data version = "1.13.3" diff --git a/service/fit.py b/service/fit.py index e848b45d7..ecbe86a32 100644 --- a/service/fit.py +++ b/service/fit.py @@ -243,7 +243,6 @@ class Fit(object): fit.fleet = f if not projected: - print "Not projected, getting projected fits" for fitP in fit.projectedFits: self.getFit(fitP.ID, projected = True) self.recalc(fit, withBoosters=True) From ab7bbcb6efc60709b4372c0fd1761d0ab4b84609 Mon Sep 17 00:00:00 2001 From: blitzmann Date: Tue, 4 Aug 2015 22:18:28 -0400 Subject: [PATCH 49/53] Remove matplotlib's font cache. Fixes #234 --- gui/graphFrame.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/gui/graphFrame.py b/gui/graphFrame.py index 1c82da011..dab983122 100644 --- a/gui/graphFrame.py +++ b/gui/graphFrame.py @@ -18,6 +18,7 @@ #=============================================================================== import wx +import os import bitmapLoader import gui.display import gui.globalEvents as GE @@ -41,6 +42,11 @@ class GraphFrame(wx.Frame): try: import matplotlib as mpl + cache_dir = mpl._get_cachedir() + cache_file = os.path.join(cache_dir, 'fontList.cache') + if os.access(cache_dir, os.W_OK | os.X_OK) and os.path.isfile(cache_file): + # remove matplotlib font cache, see #234 + os.remove(cache_file) if not mplImported: mpl.use('wxagg') from matplotlib.backends.backend_wxagg import FigureCanvasWxAgg as Canvas From f18ba6160aa4956b18615373f2942e613e6a269a Mon Sep 17 00:00:00 2001 From: DarkPhoenix Date: Sat, 8 Aug 2015 13:36:16 +0300 Subject: [PATCH 50/53] Do 2 blank lines between cargo contents and the rest of the fit, and when exported with the implants - do cargo items after the implants --- service/port.py | 26 +++++++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) diff --git a/service/port.py b/service/port.py index e9a88ab3b..23721945f 100644 --- a/service/port.py +++ b/service/port.py @@ -425,7 +425,7 @@ class Port(object): return fits @staticmethod - def exportEft(fit): + def _exportEftBase(fit): offineSuffix = " /OFFLINE" export = "[%s, %s]\n" % (fit.ship.item.name, fit.name) stuff = {} @@ -452,24 +452,40 @@ class Port(object): export += "\n\n" for drone in fit.drones: export += "%s x%s\n" % (drone.item.name, drone.amount) - if len(fit.cargo) > 0: - for cargo in fit.cargo: - export += "%s x%s\n" % (cargo.item.name, cargo.amount) if export[-1] == "\n": export = export[:-1] return export + @classmethod + def exportEft(cls, fit): + export = cls._exportEftBase(fit) + + if len(fit.cargo) > 0: + export += "\n\n\n" + for cargo in fit.cargo: + export += "%s x%s\n" % (cargo.item.name, cargo.amount) + if export[-1] == "\n": + export = export[:-1] + + return export + @classmethod def exportEftImps(cls, fit): - export = cls.exportEft(fit) + export = cls._exportEftBase(fit) if len(fit.implants) > 0: export += "\n\n\n" for implant in fit.implants: export += "%s\n" % implant.item.name + if export[-1] == "\n": + export = export[:-1] + if len(fit.cargo) > 0: + export += "\n\n\n" + for cargo in fit.cargo: + export += "%s x%s\n" % (cargo.item.name, cargo.amount) if export[-1] == "\n": export = export[:-1] From a2e031cf278af9ca40b398a9b279eeb37931fb0c Mon Sep 17 00:00:00 2001 From: blitzmann Date: Sun, 9 Aug 2015 23:19:40 -0400 Subject: [PATCH 51/53] Fix prep_data script so that it actually works --- scripts/prep_data.py | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/scripts/prep_data.py b/scripts/prep_data.py index 900c9a9c4..9b5771bb8 100644 --- a/scripts/prep_data.py +++ b/scripts/prep_data.py @@ -1,4 +1,11 @@ #!/usr/bin/env python +""" +This script bootstraps Phobos from a supplied path and feeds it +information regarding EVE data paths and where to dump data. It then imports +some other scripts and uses them to convert the json data into a SQLite +database and then compare the new database to the existing one, producing a +diff which can then be used to assist in the updating. +""" import sys import os @@ -20,7 +27,7 @@ parser.add_argument("-j", "--nojson", dest="nojson", action="store_true", help=" args = parser.parse_args() eve_path = os.path.expanduser(unicode(args.eve_path, sys.getfilesystemencoding())) cache_path = os.path.expanduser(unicode(args.cache_path, sys.getfilesystemencoding())) if args.cache_path else None -path_res = os.path.expanduser(unicode(args.res_path, sys.getfilesystemencoding())) +res_path = os.path.expanduser(unicode(args.res_path, sys.getfilesystemencoding())) dump_path = os.path.expanduser(unicode(args.dump_path, sys.getfilesystemencoding())) script_path = os.path.dirname(unicode(__file__, sys.getfilesystemencoding())) @@ -46,17 +53,19 @@ if not args.nojson: from translator import Translator from writer import * - rvr = reverence.blue.EVE(eve_path, cachepath=args.cache_path, respath=path_res, server="singularity" if args.singularity else "tranquility") + rvr = reverence.blue.EVE(eve_path, cachepath=args.cache_path, sharedcachepath=res_path, server="singularity" if args.singularity else "tranquility") pickle_miner = ResourcePickleMiner(rvr) trans = Translator(pickle_miner) bulkdata_miner = BulkdataMiner(rvr, trans) + staticcache_miner = StaticdataCacheMiner(eve_path, trans) miners = ( MetadataMiner(eve_path), bulkdata_miner, - TraitMiner(bulkdata_miner, trans), + TraitMiner(staticcache_miner, bulkdata_miner, trans), SqliteMiner(eve_path, trans), + staticcache_miner, CachedCallsMiner(rvr, trans), pickle_miner ) From 121a81ce7048b84072a086b9b9769d7139f3080c Mon Sep 17 00:00:00 2001 From: DarkPhoenix Date: Tue, 11 Aug 2015 15:59:38 +0300 Subject: [PATCH 52/53] Remove few debugging prints --- gui/builtinContextMenus/amount.py | 3 +-- service/fit.py | 1 - 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/gui/builtinContextMenus/amount.py b/gui/builtinContextMenus/amount.py index a8e00a28f..68712dba5 100644 --- a/gui/builtinContextMenus/amount.py +++ b/gui/builtinContextMenus/amount.py @@ -14,7 +14,6 @@ class ChangeAmount(ContextMenu): return srcContext in ("cargoItem","projectedFit") def getText(self, itmContext, selection): - print selection return "Change {0} Quantity".format(itmContext) def activate(self, fullContext, selection, i): @@ -61,7 +60,7 @@ class AmountChanger(wx.Dialog): event.Skip() self.Destroy() - + ## checks to make sure it's valid number def onChar(self, event): key = event.GetKeyCode() diff --git a/service/fit.py b/service/fit.py index ecbe86a32..ee6294cd7 100644 --- a/service/fit.py +++ b/service/fit.py @@ -366,7 +366,6 @@ class Fit(object): if not thing.canHaveState(thing.state, fit): thing.state = State.OFFLINE elif isinstance(thing, eos.types.Fit): - print "toggle fit" projectionInfo = thing.getProjectionInfo(fitID) if projectionInfo: projectionInfo.active = not projectionInfo.active From 598512a9047e9486b3b069b622251a5b48dd6d17 Mon Sep 17 00:00:00 2001 From: DarkPhoenix Date: Thu, 13 Aug 2015 02:21:24 +0300 Subject: [PATCH 53/53] Fix stacking penalties on active tank effects --- eos/effects/armordamageamountbonuscapitalarmorrepairers.py | 2 +- eos/effects/overloadselfarmordamageamountdurationbonus.py | 2 +- eos/effects/overloadselfshieldbonusdurationbonus.py | 3 +-- eos/effects/shieldboostamplifier.py | 2 +- eos/effects/structuralanalysiseffect.py | 3 ++- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/eos/effects/armordamageamountbonuscapitalarmorrepairers.py b/eos/effects/armordamageamountbonuscapitalarmorrepairers.py index ed99a318d..f3a23f96f 100644 --- a/eos/effects/armordamageamountbonuscapitalarmorrepairers.py +++ b/eos/effects/armordamageamountbonuscapitalarmorrepairers.py @@ -6,4 +6,4 @@ type = "passive" def handler(fit, implant, context): fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capital Repair Systems"), "armorDamageAmount", implant.getModifiedItemAttr("repairBonus"), - stackingPenalties = True) + stackingPenalties=True) diff --git a/eos/effects/overloadselfarmordamageamountdurationbonus.py b/eos/effects/overloadselfarmordamageamountdurationbonus.py index 58e84d1fa..94bad3995 100644 --- a/eos/effects/overloadselfarmordamageamountdurationbonus.py +++ b/eos/effects/overloadselfarmordamageamountdurationbonus.py @@ -6,4 +6,4 @@ type = "overheat" def handler(fit, module, context): module.boostItemAttr("duration", module.getModifiedItemAttr("overloadSelfDurationBonus")) - module.boostItemAttr("armorDamageAmount", module.getModifiedItemAttr("overloadArmorDamageAmount")) \ No newline at end of file + module.boostItemAttr("armorDamageAmount", module.getModifiedItemAttr("overloadArmorDamageAmount"), stackingPenalties=True) diff --git a/eos/effects/overloadselfshieldbonusdurationbonus.py b/eos/effects/overloadselfshieldbonusdurationbonus.py index a9ef1d326..daf8ebbc1 100644 --- a/eos/effects/overloadselfshieldbonusdurationbonus.py +++ b/eos/effects/overloadselfshieldbonusdurationbonus.py @@ -6,5 +6,4 @@ type = "overheat" def handler(fit, module, context): module.boostItemAttr("duration", module.getModifiedItemAttr("overloadSelfDurationBonus")) - module.boostItemAttr("shieldBonus", module.getModifiedItemAttr("overloadShieldBonus")) - \ No newline at end of file + module.boostItemAttr("shieldBonus", module.getModifiedItemAttr("overloadShieldBonus"), stackingPenalties=True) diff --git a/eos/effects/shieldboostamplifier.py b/eos/effects/shieldboostamplifier.py index 137df0af1..7b9ca00df 100644 --- a/eos/effects/shieldboostamplifier.py +++ b/eos/effects/shieldboostamplifier.py @@ -7,4 +7,4 @@ 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) + stackingPenalties=True) diff --git a/eos/effects/structuralanalysiseffect.py b/eos/effects/structuralanalysiseffect.py index bd41e0f17..9cab58b3e 100644 --- a/eos/effects/structuralanalysiseffect.py +++ b/eos/effects/structuralanalysiseffect.py @@ -7,6 +7,7 @@ # Implant: Imperial Navy Modified 'Noble' Implant 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 = "implant" not in context) + stackingPenalties=penalized)