Merge branch 'master' into wx3

Conflicts:
	config.py
	staticdata/icons/icon01_08.png
	staticdata/icons/icon02_11.png
	staticdata/icons/icon105_46.png
	staticdata/icons/icon105_47.png
	staticdata/icons/icon105_48.png
	staticdata/icons/icon105_49.png
	staticdata/icons/icon108_5.png
	staticdata/icons/icon113_64_1.png
	staticdata/icons/icon113_64_2.png
	staticdata/icons/icon113_64_3.png
	staticdata/icons/icon34_16.png
	staticdata/icons/iconMarketIcon_16px_Amarr.png
	staticdata/icons/iconMarketIcon_16px_Caldari.png
	staticdata/icons/iconMarketIcon_16px_Gallente.png
	staticdata/icons/iconMarketIcon_16px_Minmatar.png
This commit is contained in:
blitzmann
2015-08-15 10:50:58 -04:00
859 changed files with 1752 additions and 1963 deletions

View File

@@ -17,11 +17,14 @@ debug = False
# Defines if our saveddata will be in pyfa root or not
saveInRoot = False
logLevel = logging.WARN
if debug:
logLevel = logging.DEBUG
else:
logLevel = logging.WARN
# Version data
version = "1.13.2"
tag = "Stable"
version = "1.13.3"
tag = "git"
expansionName = "Aegis"
expansionVersion = "1.0"
evemonMinVersion = "4081"
@@ -32,13 +35,27 @@ 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 isFrozen():
if hasattr(sys, 'frozen'):
return True
else:
return False
def getPyfaRoot():
base = sys.executable if isFrozen() else sys.argv[0]
root = os.path.dirname(os.path.realpath(os.path.abspath(base)))
@@ -84,19 +101,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 None:
stderrToFile = True if isFrozen() else False
if stderrToFile is True:
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 None:
stdoutToFile = True if isFrozen() else False
if stdoutToFile is True:
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

View File

@@ -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")

View File

@@ -17,9 +17,11 @@
# along with eos. If not, see <http://www.gnu.org/licenses/>.
#===============================================================================
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 sqlalchemy.orm.collections import attribute_mapped_collection
from eos.db import saveddata_meta
from eos.db.saveddata.module import modules_table
@@ -45,33 +47,119 @@ 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, nullable = False, default = 1),
Column("active", Boolean, nullable = False, default = 1),
)
class ProjectedFit(object):
def __init__(self, sourceID, source_fit, amount=1, active=True):
self.sourceID = sourceID
self.source_fit = source_fit
self.active = active
self.__amount = amount
@reconstructor
def init(self):
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)
# 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
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
creator=lambda sourceID, source_fit: ProjectedFit(sourceID, source_fit)
)
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),
"projectedOnto": relationship(
ProjectedFit,
primaryjoin=projectedFits_table.c.sourceID == fits_table.c.ID,
backref='source_fit',
collection_class=attribute_mapped_collection('victimID'),
cascade='all, delete, delete-orphan'),
"victimOf": relationship(
ProjectedFit,
primaryjoin=fits_table.c.ID == projectedFits_table.c.victimID,
backref='victim_fit',
collection_class=attribute_mapped_collection('sourceID'),
cascade='all, delete, delete-orphan'),
}
)
mapper(ProjectedFit, projectedFits_table,
properties = {
"_ProjectedFit__amount": projectedFits_table.c.amount,
}
)

View File

@@ -232,11 +232,6 @@ class HandledProjectedDroneList(HandledDroneCargoList):
if proj.isInvalid or not proj.item.isType("projected"):
self.remove(proj)
class HandledProjectedFitList(HandledList):
def append(self, proj):
proj.projected = True
list.append(self, proj)
class HandledItem(object):
def preAssignItemAttr(self, *args, **kwargs):
self.itemModifiedAttributes.preAssign(*args, **kwargs)

View File

@@ -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)

View File

@@ -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")

View File

@@ -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)
"ecmBurstRange", ship.getModifiedItemAttr("shipBonusCB3"), skill="Caldari Battleship")

View File

@@ -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")

View File

@@ -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")

View File

@@ -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)
"falloff", ship.getModifiedItemAttr("shipBonusCB3"), skill="Caldari Battleship")

View File

@@ -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")

View File

@@ -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)
"maxRange", ship.getModifiedItemAttr("shipBonusCB3"), skill="Caldari Battleship")

View File

@@ -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")

View File

@@ -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")

View File

@@ -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)
"powerTransferRange", ship.getModifiedItemAttr("carrierAmarrBonus3"), skill="Amarr Carrier")

View File

@@ -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")

View File

@@ -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")

View File

@@ -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")

View File

@@ -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")

View File

@@ -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")

View File

@@ -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")

View File

@@ -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")

View File

@@ -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")

View File

@@ -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")

View File

@@ -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")

View File

@@ -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")

View File

@@ -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")

View File

@@ -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")

View File

@@ -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")

View File

@@ -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")

View File

@@ -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")

View File

@@ -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")

View File

@@ -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")

View File

@@ -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")

View File

@@ -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")

View File

@@ -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")

View File

@@ -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")

View File

@@ -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")

View File

@@ -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")

View File

@@ -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")

View File

@@ -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")

View File

@@ -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")

View File

@@ -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")

View File

@@ -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")

View File

@@ -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")

View File

@@ -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")

View File

@@ -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)
"maxVelocity", ship.getModifiedItemAttr("eliteBonusGunship1"), skill="Assault Frigates")

View File

@@ -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")

View File

@@ -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)
fit.ship.boostItemAttr("agility", ship.getModifiedItemAttr("eliteBonusBlackOps1"), skill="Black Ops")

View File

@@ -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")

View File

@@ -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")

View File

@@ -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")

View File

@@ -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")

View File

@@ -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)
fit.ship.boostItemAttr("maxVelocity", ship.getModifiedItemAttr("eliteBonusBlackOps1"), skill="Black Ops")

View File

@@ -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")

View File

@@ -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)
fit.ship.boostItemAttr("armorHP", ship.getModifiedItemAttr("eliteBonusCommandShips1"), skill="Command Ships")

View File

@@ -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")

View File

@@ -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")

View File

@@ -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")

View File

@@ -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")

View File

@@ -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")

View File

@@ -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")

View File

@@ -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")

View File

@@ -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")

View File

@@ -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")

View File

@@ -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")

View File

@@ -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")

View File

@@ -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")

View File

@@ -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")

View File

@@ -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")

View File

@@ -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")

View File

@@ -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")

View File

@@ -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")

View File

@@ -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")

View File

@@ -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")

View File

@@ -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")

View File

@@ -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")

View File

@@ -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")

View File

@@ -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")

View File

@@ -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")

View File

@@ -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")

View File

@@ -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")

View File

@@ -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")

View File

@@ -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")

View File

@@ -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")

View File

@@ -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")

View File

@@ -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")

View File

@@ -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")

View File

@@ -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")

View File

@@ -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")

View File

@@ -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")

View File

@@ -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)
"capacitorNeed", ship.getModifiedItemAttr("eliteBonusElectronicAttackShip2"), skill="Electronic Attack Ships")

View File

@@ -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")

View File

@@ -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")

View File

@@ -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")

View File

@@ -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)
fit.ship.boostItemAttr("armorEmDamageResonance", ship.getModifiedItemAttr("eliteBonusGunship1"), skill="Assault Frigates")

View File

@@ -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)
fit.ship.boostItemAttr("armorExplosiveDamageResonance", ship.getModifiedItemAttr("eliteBonusGunship1"), skill="Assault Frigates")

View File

@@ -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)
fit.ship.boostItemAttr("armorKineticDamageResonance", ship.getModifiedItemAttr("eliteBonusGunship1"), skill="Assault Frigates")

View File

@@ -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)
fit.ship.boostItemAttr("armorThermalDamageResonance", ship.getModifiedItemAttr("eliteBonusGunship1"), skill="Assault Frigates")

View File

@@ -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)
fit.ship.boostItemAttr("rechargeRate", ship.getModifiedItemAttr("eliteBonusGunship2"), skill="Assault Frigates")

Some files were not shown because too many files have changed in this diff Show More