Merge branch 'master' into citadel
Conflicts: config.py service/market.py
This commit is contained in:
11
README.md
11
README.md
@@ -14,8 +14,13 @@ The latest version along with release notes can always be found on the project's
|
||||
## Installation
|
||||
Windows and OS X users are supplied self-contained builds of pyfa on the [latest releases](https://github.com/pyfa-org/Pyfa/releases/latest) page. An `.exe` installer is also available for Windows builds. Linux users can run pyfa using their distribution's Python interpreter. There is no official self-contained package for Linux, however, there are a number of third-party packages available through distribution-specific repositories.
|
||||
|
||||
### OS X
|
||||
If you got [Homebrew](http://brew.sh), simply fire up in terminal:
|
||||
#### OS X
|
||||
There are two different distributives for OS X: `-mac` and `-mac-deprecated`.
|
||||
|
||||
* `-mac`: based on wxPython 3.0.2.0 and has updated libraries. This is the recommended build.
|
||||
* `-mac-deprecated`: utilizes older binaries running on wxPython 2.8; because of this, some features are not available (currently CREST support and Attribute Overrides). Additionally, as development happens primarily on wxPython 3.0, a few GUI bugs may pop up as `-mac-deprecated` is not actively tested. However, due to some general issues with wxPython 3.0, especially on some newer OS X versions, `-mac-deprecated` is still offered for those that need it.
|
||||
|
||||
There is also a [Homebrew](http://brew.sh) option for installing pyfa on OS X. Please note this is maintained by a third-party and is not tested by pyfa developers. Simply fire up in terminal:
|
||||
```
|
||||
$ brew cask install pyfa
|
||||
```
|
||||
@@ -59,4 +64,4 @@ pyfa is licensed under the GNU GPL v3.0, see LICENSE
|
||||
* Email: sable.blitzmann@gmail.com
|
||||
|
||||
## CCP Copyright Notice
|
||||
EVE Online, the EVE logo, EVE and all associated logos and designs are the intellectual property of CCP hf. All artwork, screenshots, characters, vehicles, storylines, world facts or other recognizable features of the intellectual property relating to these trademarks are likewise the intellectual property of CCP hf. EVE Online and the EVE logo are the registered trademarks of CCP hf. All rights are reserved worldwide. All other trademarks are the property of their respective owners. CCP hf. has granted permission to Osmium to use EVE Online and all associated logos and designs for promotional and information purposes on its website but does not endorse, and is not in any way affiliated with, Osmium. CCP is in no way responsible for the content on or functioning of this website, nor can it be liable for any damage arising from the use of this website.
|
||||
EVE Online, the EVE logo, EVE and all associated logos and designs are the intellectual property of CCP hf. All artwork, screenshots, characters, vehicles, storylines, world facts or other recognizable features of the intellectual property relating to these trademarks are likewise the intellectual property of CCP hf. EVE Online and the EVE logo are the registered trademarks of CCP hf. All rights are reserved worldwide. All other trademarks are the property of their respective owners. CCP hf. has granted permission to pyfa to use EVE Online and all associated logos and designs for promotional and information purposes on its website but does not endorse, and is not in any way affiliated with, pyfa. CCP is in no way responsible for the content on or functioning of this program, nor can it be liable for any damage arising from the use of this program.
|
||||
|
||||
@@ -18,10 +18,10 @@ debug = False
|
||||
saveInRoot = False
|
||||
|
||||
# Version data
|
||||
version = "1.21.3"
|
||||
version = "1.22.1"
|
||||
tag = "git"
|
||||
expansionName = "Citadel"
|
||||
expansionVersion = "1.11"
|
||||
expansionName = "YC 118.6"
|
||||
expansionVersion = "1.0"
|
||||
evemonMinVersion = "4081"
|
||||
|
||||
pyfaPath = None
|
||||
|
||||
@@ -194,7 +194,7 @@ def searchItems(nameLike, where=None, join=None, eager=None):
|
||||
items = gamedata_session.query(Item).options(*processEager(eager)).join(*join)
|
||||
for token in nameLike.split(' '):
|
||||
token_safe = u"%{0}%".format(sqlizeString(token))
|
||||
items = items.filter(processWhere(Item.name.like(token_safe, escape="\\"), where))
|
||||
items = items.filter(and_(Item.name.like(token_safe, escape="\\"), where))
|
||||
items = items.limit(100).all()
|
||||
return items
|
||||
|
||||
|
||||
@@ -14,6 +14,7 @@ __all__ = [
|
||||
"targetResists",
|
||||
"override",
|
||||
"crest",
|
||||
"implantSet"
|
||||
"implantSet",
|
||||
"loadDefaultDatabaseValues"
|
||||
]
|
||||
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
from sqlalchemy import Table, Column, Integer, ForeignKey, Boolean
|
||||
from sqlalchemy.orm import mapper
|
||||
from eos.db import saveddata_meta
|
||||
from eos.types import Fighter
|
||||
from eos.types import Fighter, Fit
|
||||
from sqlalchemy.orm import *
|
||||
from sqlalchemy.sql import and_
|
||||
from eos.effectHandlerHelpers import *
|
||||
@@ -42,6 +42,7 @@ fighter_abilities_table = Table("fightersAbilities", saveddata_meta,
|
||||
|
||||
mapper(Fighter, fighters_table,
|
||||
properties = {
|
||||
"owner": relation(Fit),
|
||||
"_Fighter__abilities": relation(
|
||||
FighterAbility,
|
||||
backref="fighter",
|
||||
|
||||
190
eos/db/saveddata/loadDefaultDatabaseValues.py
Normal file
190
eos/db/saveddata/loadDefaultDatabaseValues.py
Normal file
@@ -0,0 +1,190 @@
|
||||
#===============================================================================
|
||||
# Copyright (C) 2010 Diego Duclos
|
||||
#
|
||||
# This file is part of pyfa.
|
||||
#
|
||||
# pyfa is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# pyfa is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with pyfa. If not, see <http://www.gnu.org/licenses/>.
|
||||
#===============================================================================
|
||||
|
||||
import eos.db
|
||||
import eos.types
|
||||
|
||||
class ImportError(Exception):
|
||||
pass
|
||||
|
||||
class DefaultDatabaseValues():
|
||||
instance = None
|
||||
|
||||
@classmethod
|
||||
def importDamageProfileDefaults(self):
|
||||
damageProfileList = []
|
||||
damageProfileList.append(["Uniform", "25", "25", "25", "25"])
|
||||
damageProfileList.append(["[Generic]EM", "100", "0", "0", "0"])
|
||||
damageProfileList.append(["[Generic]Thermal", "0", "100", "0", "0"])
|
||||
damageProfileList.append(["[Generic]Kinetic", "0", "0", "100", "0"])
|
||||
damageProfileList.append(["[Generic]Explosive", "0", "0", "0", "100"])
|
||||
damageProfileList.append(["[NPC][Asteroid] Blood Raiders", "5067", "4214", "0", "0"])
|
||||
damageProfileList.append(["[Bombs]Concussion Bomb", "0", "0", "6400", "0"])
|
||||
damageProfileList.append(["[Bombs]Electron Bomb", "6400", "0", "0", "0"])
|
||||
damageProfileList.append(["[Bombs]Scorch Bomb", "0", "6400", "0", "0"])
|
||||
damageProfileList.append(["[Bombs]Shrapnel Bomb", "0", "0", "0", "6400"])
|
||||
damageProfileList.append(["[Frequency Crystals][T2] Gleam", "56", "56", "0", "0"])
|
||||
damageProfileList.append(["[Frequency Crystals][T2] Aurora", "40", "24", "0", "0"])
|
||||
damageProfileList.append(["[Frequency Crystals][T2] Scorch", "72", "16", "0", "0"])
|
||||
damageProfileList.append(["[Frequency Crystals][T2] Conflagration", "61.6", "61.6", "0", "0"])
|
||||
damageProfileList.append(["[Frequency Crystals]Gamma", "61.6", "35.2", "0", "0"])
|
||||
damageProfileList.append(["[Frequency Crystals]Infrared", "44", "17.6", "0", "0"])
|
||||
damageProfileList.append(["[Frequency Crystals]Microwave", "35.2", "17.6", "0", "0"])
|
||||
damageProfileList.append(["[Frequency Crystals]Multifrequency", "61.6", "44", "0", "0"])
|
||||
damageProfileList.append(["[Frequency Crystals]Radio", "44", "0", "0", "0"])
|
||||
damageProfileList.append(["[Frequency Crystals]Standard", "44", "26.4", "0", "0"])
|
||||
damageProfileList.append(["[Frequency Crystals]Ultraviolet", "52.8", "26.4", "0", "0"])
|
||||
damageProfileList.append(["[Frequency Crystals]Xray", "52.8", "35.2", "0", "0"])
|
||||
damageProfileList.append(["[Hybrid Charges][T2] Void", "0", "61.6", "61.6", "0"])
|
||||
damageProfileList.append(["[Hybrid Charges][T2] Null", "0", "48", "40", "0"])
|
||||
damageProfileList.append(["[Hybrid Charges][T2] Javelin", "0", "64", "48", "0"])
|
||||
damageProfileList.append(["[Hybrid Charges][T2] Spike", "0", "32", "32", "0"])
|
||||
damageProfileList.append(["[Hybrid Charges]Antimatter", "0", "48", "67.2", "0"])
|
||||
damageProfileList.append(["[Hybrid Charges]Iridium", "0", "28.8", "38.4", "0"])
|
||||
damageProfileList.append(["[Hybrid Charges]Iron", "0", "19.2", "28.8", "0"])
|
||||
damageProfileList.append(["[Hybrid Charges]Lead", "0", "28.8", "48", "0"])
|
||||
damageProfileList.append(["[Hybrid Charges]Plutonium", "0", "48", "57.6", "0"])
|
||||
damageProfileList.append(["[Hybrid Charges]Thorium", "0", "38.4", "48", "0"])
|
||||
damageProfileList.append(["[Hybrid Charges]Tungsten", "0", "19.2", "38.4", "0"])
|
||||
damageProfileList.append(["[Hybrid Charges]Uranium", "0", "38.4", "57.6", "0"])
|
||||
damageProfileList.append(["[Missiles]Mjolnir", "100", "0", "0", "0"])
|
||||
damageProfileList.append(["[Missiles]Inferno", "0", "100", "0", "0"])
|
||||
damageProfileList.append(["[Missiles]Scourge", "0", "0", "100", "0"])
|
||||
damageProfileList.append(["[Missiles]Nova", "0", "0", "0", "100"])
|
||||
damageProfileList.append(["[Missiles][Structure) Standup Missile", "100", "100", "100", "100"])
|
||||
damageProfileList.append(["[Projectile Ammo][T2] Tremor", "0", "0", "24", "40"])
|
||||
damageProfileList.append(["[Projectile Ammo][T2] Quake", "0", "0", "40", "72"])
|
||||
damageProfileList.append(["[Projectile Ammo][T2] Hail", "0", "0", "26.4", "96.8"])
|
||||
damageProfileList.append(["[Projectile Ammo][T2] Barrage", "0", "0", "40", "48"])
|
||||
damageProfileList.append(["[Projectile Ammo]Carbonized Lead", "0", "0", "35.2", "8.8"])
|
||||
damageProfileList.append(["[Projectile Ammo]Depleted Uranium", "0", "26.4", "17.6", "26.4"])
|
||||
damageProfileList.append(["[Projectile Ammo]EMP", "79.2", "0", "8.8", "17.6"])
|
||||
damageProfileList.append(["[Projectile Ammo]Fusion", "0", "0", "17.6", "88"])
|
||||
damageProfileList.append(["[Projectile Ammo]Nuclear", "0", "0", "8.8", "35.2"])
|
||||
damageProfileList.append(["[Projectile Ammo]Phased Plasma", "0", "88", "17.6", "0"])
|
||||
damageProfileList.append(["[Projectile Ammo]Proton", "26.4", "0", "17.6", "0"])
|
||||
damageProfileList.append(["[Projectile Ammo]Titanium Sabot", "0", "0", "52.8", "176"])
|
||||
damageProfileList.append(["[NPC][Burner] Cruor (Blood Raiders)", "90", "90", "0", "0"])
|
||||
damageProfileList.append(["[NPC][Burner] Dramiel (Angel)", "55", "0", "20", "96"])
|
||||
damageProfileList.append(["[NPC][Burner] Daredevil (Serpentis)", "0", "110", "154", "0"])
|
||||
damageProfileList.append(["[NPC][Burner] Succubus (Sanshas Nation)", "135", "30", "0", "0"])
|
||||
damageProfileList.append(["[NPC][Burner] Worm (Guristas)", "0", "0", "228", "0"])
|
||||
damageProfileList.append(["[NPC][Burner] Enyo", "0", "147", "147", "0"])
|
||||
damageProfileList.append(["[NPC][Burner] Hawk", "0", "0", "247", "0"])
|
||||
damageProfileList.append(["[NPC][Burner] Jaguar", "36", "0", "50", "182"])
|
||||
damageProfileList.append(["[NPC][Burner] Vengeance", "232", "0", "0", "0"])
|
||||
damageProfileList.append(["[NPC][Burner] Ashimmu (Blood Raiders)", "260", "100", "0", "0"])
|
||||
damageProfileList.append(["[NPC][Burner] Talos", "0", "413", "413", "0"])
|
||||
damageProfileList.append(["[NPC][Burner] Sentinel", "0", "75", "0", "90"])
|
||||
damageProfileList.append(["[NPC][Asteroid] Angel Cartel", "1838", "562", "2215", "3838"])
|
||||
damageProfileList.append(["[NPC][Deadspace] Angel Cartel", "369", "533", "1395", "3302"])
|
||||
damageProfileList.append(["[NPC][Deadspace] Blood Raiders", "6040", "5052", "10", "15"])
|
||||
damageProfileList.append(["[NPC][Asteroid] Guristas", "0", "1828", "7413", "0"])
|
||||
damageProfileList.append(["[NPC][Deadspace] Guristas", "0", "1531", "9680", "0"])
|
||||
damageProfileList.append(["[NPC][Asteroid] Rogue Drone", "394", "666", "1090", "1687"])
|
||||
damageProfileList.append(["[NPC][Deadspace] Rogue Drone", "276", "1071", "1069", "871"])
|
||||
damageProfileList.append(["[NPC][Asteroid] Sanshas Nation", "5586", "4112", "0", "0"])
|
||||
damageProfileList.append(["[NPC][Deadspace] Sanshas Nation", "3009", "2237", "0", "0"])
|
||||
damageProfileList.append(["[NPC][Asteroid] Serpentis", "0", "5373", "4813", "0"])
|
||||
damageProfileList.append(["[NPC][Deadspace] Serpentis", "0", "3110", "1929", "0"])
|
||||
damageProfileList.append(["[NPC][Mission] Amarr Empire", "4464", "3546", "97", "0"])
|
||||
damageProfileList.append(["[NPC][Mission] Caldari State", "0", "2139", "4867", "0"])
|
||||
damageProfileList.append(["[NPC][Mission] CONCORD", "336", "134", "212", "412"])
|
||||
damageProfileList.append(["[NPC][Mission] Gallente Federation", "9", "3712", "2758", "0"])
|
||||
damageProfileList.append(["[NPC][Mission] Khanid", "612", "483", "43", "6"])
|
||||
damageProfileList.append(["[NPC][Mission] Minmatar Republic", "1024", "388", "1655", "4285"])
|
||||
damageProfileList.append(["[NPC][Mission] Mordus Legion", "25", "262", "625", "0"])
|
||||
damageProfileList.append(["[NPC][Mission] Thukker", "0", "52", "10", "79"])
|
||||
damageProfileList.append(["[NPC][Other] Sleepers", "1472", "1472", "1384", "1384"])
|
||||
damageProfileList.append(["[NPC][Other] Sansha Incursion", "1682", "1347", "3678", "3678"])
|
||||
|
||||
for damageProfileRow in damageProfileList:
|
||||
name, em, therm, kin, exp = damageProfileRow
|
||||
damageProfile = eos.db.getDamagePattern(name)
|
||||
if damageProfile is None:
|
||||
damageProfile = eos.types.DamagePattern(em, therm, kin, exp)
|
||||
damageProfile.name = name
|
||||
eos.db.save(damageProfile)
|
||||
|
||||
@classmethod
|
||||
def importResistProfileDefaults(self):
|
||||
targetResistProfileList = []
|
||||
targetResistProfileList.append(["Uniform (25%)", "0.25", "0.25", "0.25", "0.25"])
|
||||
targetResistProfileList.append(["Uniform (50%)", "0.50", "0.50", "0.50", "0.50"])
|
||||
targetResistProfileList.append(["Uniform (75%)", "0.75", "0.75", "0.75", "0.75"])
|
||||
targetResistProfileList.append(["[T1 Resist]Shield", "0.0", "0.20", "0.40", "0.50"])
|
||||
targetResistProfileList.append(["[T1 Resist]Armor", "0.50", "0.45", "0.25", "0.10"])
|
||||
targetResistProfileList.append(["[T1 Resist]Hull", "0.33", "0.33", "0.33", "0.33"])
|
||||
targetResistProfileList.append(["[T1 Resist]Shield (+T2 DCU)", "0.125", "0.30", "0.475", "0.562"])
|
||||
targetResistProfileList.append(["[T1 Resist]Armor (+T2 DCU)", "0.575", "0.532", "0.363", "0.235"])
|
||||
targetResistProfileList.append(["[T1 Resist]Hull (+T2 DCU)", "0.598", "0.598", "0.598", "0.598"])
|
||||
targetResistProfileList.append(["[NPC][Asteroid] Angel Cartel", "0.54", "0.42", "0.37", "0.32"])
|
||||
targetResistProfileList.append(["[NPC][Asteroid] Blood Raiders", "0.34", "0.39", "0.45", "0.52"])
|
||||
targetResistProfileList.append(["[NPC][Asteroid] Guristas", "0.55", "0.35", "0.3", "0.48"])
|
||||
targetResistProfileList.append(["[NPC][Asteroid] Rogue Drones", "0.35", "0.38", "0.44", "0.49"])
|
||||
targetResistProfileList.append(["[NPC][Asteroid] Sanshas Nation", "0.35", "0.4", "0.47", "0.53"])
|
||||
targetResistProfileList.append(["[NPC][Asteroid] Serpentis", "0.49", "0.38", "0.29", "0.51"])
|
||||
targetResistProfileList.append(["[NPC][Deadspace] Angel Cartel", "0.59", "0.48", "0.4", "0.32"])
|
||||
targetResistProfileList.append(["[NPC][Deadspace] Blood Raiders", "0.31", "0.39", "0.47", "0.56"])
|
||||
targetResistProfileList.append(["[NPC][Deadspace] Guristas", "0.57", "0.39", "0.31", "0.5"])
|
||||
targetResistProfileList.append(["[NPC][Deadspace] Rogue Drones", "0.42", "0.42", "0.47", "0.49"])
|
||||
targetResistProfileList.append(["[NPC][Deadspace] Sanshas Nation", "0.31", "0.39", "0.47", "0.56"])
|
||||
targetResistProfileList.append(["[NPC][Deadspace] Serpentis", "0.49", "0.38", "0.29", "0.56"])
|
||||
targetResistProfileList.append(["[NPC][Mission] Amarr Empire", "0.34", "0.38", "0.42", "0.46"])
|
||||
targetResistProfileList.append(["[NPC][Mission] Caldari State", "0.51", "0.38", "0.3", "0.51"])
|
||||
targetResistProfileList.append(["[NPC][Mission] CONCORD", "0.47", "0.46", "0.47", "0.47"])
|
||||
targetResistProfileList.append(["[NPC][Mission] Gallente Federation", "0.51", "0.38", "0.31", "0.52"])
|
||||
targetResistProfileList.append(["[NPC][Mission] Khanid", "0.51", "0.42", "0.36", "0.4"])
|
||||
targetResistProfileList.append(["[NPC][Mission] Minmatar Republic", "0.51", "0.46", "0.41", "0.35"])
|
||||
targetResistProfileList.append(["[NPC][Mission] Mordus Legion", "0.32", "0.48", "0.4", "0.62"])
|
||||
targetResistProfileList.append(["[NPC][Other] Sleeper", "0.61", "0.61", "0.61", "0.61"])
|
||||
targetResistProfileList.append(["[NPC][Other] Sansha Incursion", "0.65", "0.63", "0.64", "0.65"])
|
||||
targetResistProfileList.append(["[NPC][Burner] Cruor (Blood Raiders)", "0.8", "0.73", "0.69", "0.67"])
|
||||
targetResistProfileList.append(["[NPC][Burner] Dramiel (Angel)", "0.35", "0.48", "0.61", "0.68"])
|
||||
targetResistProfileList.append(["[NPC][Burner] Daredevil (Serpentis)", "0.69", "0.59", "0.59", "0.43"])
|
||||
targetResistProfileList.append(["[NPC][Burner] Succubus (Sanshas Nation)", "0.35", "0.48", "0.61", "0.68"])
|
||||
targetResistProfileList.append(["[NPC][Burner] Worm (Guristas)", "0.48", "0.58", "0.69", "0.74"])
|
||||
targetResistProfileList.append(["[NPC][Burner] Enyo", "0.58", "0.72", "0.86", "0.24"])
|
||||
targetResistProfileList.append(["[NPC][Burner] Hawk", "0.3", "0.86", "0.79", "0.65"])
|
||||
targetResistProfileList.append(["[NPC][Burner] Jaguar", "0.78", "0.65", "0.48", "0.56"])
|
||||
targetResistProfileList.append(["[NPC][Burner] Vengeance", "0.66", "0.56", "0.75", "0.86"])
|
||||
targetResistProfileList.append(["[NPC][Burner] Ashimmu (Blood Raiders)", "0.8", "0.76", "0.68", "0.7"])
|
||||
targetResistProfileList.append(["[NPC][Burner] Talos", "0.68", "0.59", "0.59", "0.43"])
|
||||
targetResistProfileList.append(["[NPC][Burner] Sentinel", "0.58", "0.45", "0.52", "0.66"])
|
||||
|
||||
for targetResistProfileRow in targetResistProfileList:
|
||||
name, em, therm, kin, exp = targetResistProfileRow
|
||||
resistsProfile = eos.db.eos.db.getTargetResists(name)
|
||||
if resistsProfile is None:
|
||||
resistsProfile = eos.types.TargetResists(em, therm, kin, exp)
|
||||
resistsProfile.name = name
|
||||
eos.db.save(resistsProfile)
|
||||
|
||||
@classmethod
|
||||
def importRequiredDefaults(self):
|
||||
damageProfileList = []
|
||||
damageProfileList.append(["Uniform", "25", "25", "25", "25"])
|
||||
|
||||
for damageProfileRow in damageProfileList:
|
||||
name, em, therm, kin, exp = damageProfileRow
|
||||
damageProfile = eos.db.getDamagePattern(name)
|
||||
if damageProfile is None:
|
||||
damageProfile = eos.types.DamagePattern(em, therm, kin, exp)
|
||||
damageProfile.name = name
|
||||
eos.db.save(damageProfile)
|
||||
@@ -18,7 +18,7 @@
|
||||
#===============================================================================
|
||||
|
||||
from sqlalchemy.orm import eagerload
|
||||
from sqlalchemy.sql import and_
|
||||
from sqlalchemy.sql import and_, or_
|
||||
|
||||
replace = {"attributes": "_Item__attributes",
|
||||
"modules": "_Fit__modules",
|
||||
|
||||
@@ -6,5 +6,13 @@ type = "active"
|
||||
def handler(fit, module, context):
|
||||
for type in ("kinetic", "thermal", "explosive", "em"):
|
||||
attr = "armor%sDamageResonance" % type.capitalize()
|
||||
|
||||
#Adjust RAH to match the current damage pattern
|
||||
damagePattern = fit.damagePattern
|
||||
attrDamagePattern = "%sAmount" % type
|
||||
damagePatternModifier = getattr(damagePattern,attrDamagePattern)/float(sum((damagePattern.emAmount,damagePattern.thermalAmount,damagePattern.kineticAmount,damagePattern.explosiveAmount)))
|
||||
modifiedResistModifier = (1-(((1-module.getModifiedItemAttr(attr))*4)*(damagePatternModifier)))
|
||||
module.forceItemAttr(attr, modifiedResistModifier)
|
||||
|
||||
fit.ship.multiplyItemAttr(attr, module.getModifiedItemAttr(attr),
|
||||
stackingPenalties=True, penaltyGroup="preMul")
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# boosterArmorHpPenalty
|
||||
#
|
||||
# Used by:
|
||||
# Implants from group: Booster (12 of 42)
|
||||
# Implants from group: Booster (12 of 45)
|
||||
type = "boosterSideEffect"
|
||||
def handler(fit, booster, context):
|
||||
fit.ship.boostItemAttr("armorHP", booster.getModifiedItemAttr("boosterArmorHPPenalty"))
|
||||
|
||||
@@ -1,7 +1,9 @@
|
||||
# boosterArmorRepairAmountPenalty
|
||||
#
|
||||
# Used by:
|
||||
# Implants from group: Booster (9 of 42)
|
||||
# Implants named like: Drop Booster (3 of 4)
|
||||
# Implants named like: Mindflood Booster (3 of 4)
|
||||
# Implants named like: Sooth Sayer Booster (3 of 4)
|
||||
type = "boosterSideEffect"
|
||||
def handler(fit, booster, context):
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Armor Repair Unit",
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# boosterMaxVelocityPenalty
|
||||
#
|
||||
# Used by:
|
||||
# Implants from group: Booster (12 of 42)
|
||||
# Implants from group: Booster (12 of 45)
|
||||
type = "boosterSideEffect"
|
||||
def handler(fit, booster, context):
|
||||
fit.ship.boostItemAttr("maxVelocity", booster.getModifiedItemAttr("boosterMaxVelocityPenalty"))
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# boosterShieldCapacityPenalty
|
||||
#
|
||||
# Used by:
|
||||
# Implants from group: Booster (12 of 42)
|
||||
# Implants from group: Booster (12 of 45)
|
||||
type = "boosterSideEffect"
|
||||
def handler(fit, booster, context):
|
||||
fit.ship.boostItemAttr("shieldCapacity", booster.getModifiedItemAttr("boosterShieldCapacityPenalty"))
|
||||
|
||||
@@ -1,7 +1,9 @@
|
||||
# boosterTurretOptimalRangePenalty
|
||||
#
|
||||
# Used by:
|
||||
# Implants from group: Booster (9 of 42)
|
||||
# Implants named like: Blue Pill Booster (3 of 5)
|
||||
# Implants named like: Mindflood Booster (3 of 4)
|
||||
# Implants named like: Sooth Sayer Booster (3 of 4)
|
||||
type = "boosterSideEffect"
|
||||
def handler(fit, booster, context):
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Gunnery"),
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# capitalLauncherSkillCruiseCitadelEmDamage1
|
||||
# capitalLauncherSkillCruiseCitadelEmDamage1
|
||||
#
|
||||
# Used by:
|
||||
# Skill: XL Cruise Missiles
|
||||
|
||||
@@ -1,7 +1,4 @@
|
||||
# decreaseTargetSpeed
|
||||
#
|
||||
# Used by:
|
||||
# Drones from group: Stasis Webifying Drone (3 of 3)
|
||||
# Not used by any item
|
||||
type = "active", "projected"
|
||||
def handler(fit, module, context):
|
||||
if "projected" not in context:
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# doHacking
|
||||
#
|
||||
# Used by:
|
||||
# Modules from group: Data Miners (13 of 14)
|
||||
# Modules from group: Data Miners (15 of 16)
|
||||
# Module: QA Cross Protocol Analyzer
|
||||
type = "active"
|
||||
def handler(fit, module, context):
|
||||
|
||||
@@ -1,7 +1,4 @@
|
||||
# droneDamageBonusRequringDrones
|
||||
#
|
||||
# Used by:
|
||||
# Skill: Drone Interfacing
|
||||
# Not used by any item
|
||||
type = "passive"
|
||||
def handler(fit, skill, context):
|
||||
fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Drones"),
|
||||
|
||||
@@ -1,7 +1,4 @@
|
||||
# eliteBonusCommandDestroyerMWDSigRadius3
|
||||
#
|
||||
# Used by:
|
||||
# Ships from group: Command Destroyers (4 of 4)
|
||||
# Not used by any item
|
||||
type = "passive"
|
||||
def handler(fit, src, context):
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("High Speed Maneuvering"), "signatureRadiusBonus", src.getModifiedItemAttr("eliteBonusCommandDestroyer3"), skill="Command Destroyers")
|
||||
|
||||
@@ -3,6 +3,5 @@
|
||||
# Used by:
|
||||
# Ship: Oneiros
|
||||
type = "passive"
|
||||
def handler(fit, ship, context):
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Remote Armor Repairer",
|
||||
"capacitorNeed", ship.getModifiedItemAttr("eliteBonusLogistics1"), skill="Logistics Cruisers")
|
||||
def handler(fit, src, context):
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Remote Armor Repair Systems"), "capacitorNeed", src.getModifiedItemAttr("eliteBonusLogistics1"), skill="Logistics Cruisers")
|
||||
|
||||
@@ -3,6 +3,5 @@
|
||||
# Used by:
|
||||
# Ship: Guardian
|
||||
type = "passive"
|
||||
def handler(fit, ship, context):
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Remote Armor Repairer",
|
||||
"capacitorNeed", ship.getModifiedItemAttr("eliteBonusLogistics2"), skill="Logistics Cruisers")
|
||||
def handler(fit, src, context):
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Remote Armor Repair Systems"), "capacitorNeed", src.getModifiedItemAttr("eliteBonusLogistics2"), skill="Logistics Cruisers")
|
||||
|
||||
@@ -4,6 +4,5 @@
|
||||
# Ship: Basilisk
|
||||
# Ship: Etana
|
||||
type = "passive"
|
||||
def handler(fit, ship, context):
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Remote Shield Booster",
|
||||
"capacitorNeed", ship.getModifiedItemAttr("eliteBonusLogistics1"), skill="Logistics Cruisers")
|
||||
def handler(fit, src, context):
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Emission Systems"), "capacitorNeed", src.getModifiedItemAttr("eliteBonusLogistics1"), skill="Logistics Cruisers")
|
||||
|
||||
@@ -3,6 +3,5 @@
|
||||
# Used by:
|
||||
# Ship: Scimitar
|
||||
type = "passive"
|
||||
def handler(fit, ship, context):
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Remote Shield Booster",
|
||||
"capacitorNeed", ship.getModifiedItemAttr("eliteBonusLogistics2"), skill="Logistics Cruisers")
|
||||
def handler(fit, src, context):
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Emission Systems"), "capacitorNeed", src.getModifiedItemAttr("eliteBonusLogistics2"), skill="Logistics Cruisers")
|
||||
|
||||
@@ -6,4 +6,4 @@
|
||||
type = "passive"
|
||||
def handler(fit, ship, context):
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Neutralizer",
|
||||
"energyDestabilizationAmount", ship.getModifiedItemAttr("eliteBonusReconShip2"), skill="Recon Ships")
|
||||
"energyNeutralizerAmount", ship.getModifiedItemAttr("eliteBonusReconShip2"), skill="Recon Ships")
|
||||
|
||||
@@ -4,5 +4,5 @@
|
||||
# Skill: EM Shield Compensation
|
||||
type = "passive"
|
||||
def handler(fit, skill, context):
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Shield Amplifier",
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Shield Resistance Amplifier",
|
||||
"emDamageResistanceBonus", skill.getModifiedItemAttr("hardeningBonus") * skill.level)
|
||||
@@ -1,13 +1,10 @@
|
||||
# energyDestabilizationNew
|
||||
#
|
||||
# Used by:
|
||||
# Drones from group: Energy Neutralizer Drone (3 of 3)
|
||||
# Not used by any item
|
||||
from eos.types import State
|
||||
type = "active", "projected"
|
||||
def handler(fit, container, context):
|
||||
if "projected" in context and ((hasattr(container, "state") \
|
||||
and container.state >= State.ACTIVE) or hasattr(container, "amountActive")):
|
||||
multiplier = container.amountActive if hasattr(container, "amountActive") else 1
|
||||
amount = container.getModifiedItemAttr("energyDestabilizationAmount")
|
||||
amount = container.getModifiedItemAttr("energyNeutralizerAmount")
|
||||
time = container.getModifiedItemAttr("duration")
|
||||
fit.addDrain(time, amount * multiplier, 0)
|
||||
|
||||
12
eos/effects/energyneutralizerentity.py
Normal file
12
eos/effects/energyneutralizerentity.py
Normal file
@@ -0,0 +1,12 @@
|
||||
# energyNeutralizerEntity
|
||||
#
|
||||
# Used by:
|
||||
# Drones from group: Energy Neutralizer Drone (3 of 3)
|
||||
from eos.types import State
|
||||
type = "active", "projected"
|
||||
def handler(fit, container, context):
|
||||
if "projected" in context and ((hasattr(container, "state") \
|
||||
and container.state >= State.ACTIVE) or hasattr(container, "amountActive")):
|
||||
amount = container.getModifiedItemAttr("energyNeutralizerAmount")
|
||||
time = container.getModifiedItemAttr("duration")
|
||||
fit.addDrain(time, amount, 0)
|
||||
@@ -1,14 +1,12 @@
|
||||
# energyNeutralizerFalloff
|
||||
#
|
||||
# Used by:
|
||||
# Drones from group: Energy Neutralizer Drone (3 of 3)
|
||||
# Modules from group: Energy Neutralizer (51 of 51)
|
||||
from eos.types import State
|
||||
type = "active", "projected"
|
||||
def handler(fit, container, context):
|
||||
if "projected" in context and ((hasattr(container, "state") \
|
||||
and container.state >= State.ACTIVE) or hasattr(container, "amountActive")):
|
||||
multiplier = container.amountActive if hasattr(container, "amountActive") else 1
|
||||
amount = container.getModifiedItemAttr("energyDestabilizationAmount")
|
||||
amount = container.getModifiedItemAttr("energyNeutralizerAmount")
|
||||
time = container.getModifiedItemAttr("duration")
|
||||
fit.addDrain(time, amount * multiplier, 0)
|
||||
fit.addDrain(time, amount, 0)
|
||||
|
||||
@@ -1,7 +1,4 @@
|
||||
# energyTransfer
|
||||
#
|
||||
# Used by:
|
||||
# Modules from group: Remote Capacitor Transmitter (38 of 38)
|
||||
# Not used by any item
|
||||
type = "projected", "active"
|
||||
def handler(fit, module, context):
|
||||
if "projected" in context:
|
||||
|
||||
11
eos/effects/entityecmfalloff.py
Normal file
11
eos/effects/entityecmfalloff.py
Normal file
@@ -0,0 +1,11 @@
|
||||
# entityECMFalloff
|
||||
#
|
||||
# Used by:
|
||||
# Drones named like: EC (3 of 3)
|
||||
type = "projected", "active"
|
||||
def handler(fit, module, context):
|
||||
if "projected" in context:
|
||||
# jam formula: 1 - (1- (jammer str/ship str))^(# of jam mods with same str))
|
||||
strModifier = 1 - module.getModifiedItemAttr("scan{0}StrengthBonus".format(fit.scanType))/fit.scanStrength
|
||||
|
||||
fit.ecmProjectedStr *= strModifier
|
||||
12
eos/effects/entityenergyneutralizerfalloff.py
Normal file
12
eos/effects/entityenergyneutralizerfalloff.py
Normal file
@@ -0,0 +1,12 @@
|
||||
# entityEnergyNeutralizerFalloff
|
||||
#
|
||||
# Used by:
|
||||
# Drones from group: Energy Neutralizer Drone (3 of 3)
|
||||
from eos.types import State
|
||||
type = "active", "projected"
|
||||
def handler(fit, container, context):
|
||||
if "projected" in context and ((hasattr(container, "state") \
|
||||
and container.state >= State.ACTIVE) or hasattr(container, "amountActive")):
|
||||
amount = container.getModifiedItemAttr("energyNeutralizerAmount")
|
||||
time = container.getModifiedItemAttr("energyNeutralizerDuration")
|
||||
fit.addDrain(time, amount, 0)
|
||||
@@ -1,8 +1,12 @@
|
||||
# entosisDurationMultiply
|
||||
#
|
||||
# Used by:
|
||||
# Ships from group: Supercarrier (5 of 5)
|
||||
# Items from market group: Ships > Capital Ships (22 of 32)
|
||||
# Ships from group: Carrier (4 of 4)
|
||||
# Ships from group: Dreadnought (5 of 5)
|
||||
# Ships from group: Force Auxiliary (4 of 4)
|
||||
# Ships from group: Supercarrier (6 of 6)
|
||||
# Ships from group: Titan (5 of 5)
|
||||
# Ship: Rorqual
|
||||
type = "passive"
|
||||
def handler(fit, ship, context):
|
||||
fit.modules.filteredItemMultiply(lambda mod: mod.item.requiresSkill("Infomorph Psychology"),
|
||||
|
||||
@@ -1,7 +1,4 @@
|
||||
# ewTargetPaint
|
||||
#
|
||||
# Used by:
|
||||
# Drones named like: TP (3 of 3)
|
||||
# Not used by any item
|
||||
type = "projected", "active"
|
||||
def handler(fit, container, context):
|
||||
if "projected" in context:
|
||||
|
||||
@@ -4,5 +4,5 @@
|
||||
# Skill: Explosive Shield Compensation
|
||||
type = "passive"
|
||||
def handler(fit, skill, context):
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Shield Amplifier",
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Shield Resistance Amplifier",
|
||||
"explosiveDamageResistanceBonus", skill.getModifiedItemAttr("hardeningBonus") * skill.level)
|
||||
@@ -1,3 +1,4 @@
|
||||
# Not used by any item
|
||||
"""
|
||||
Since fighter abilities do not have any sort of item entity in the EVE database, we must derive the abilities from the
|
||||
effects, and thus this effect file contains some custom information useful only to fighters.
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
# Not used by any item
|
||||
"""
|
||||
Since fighter abilities do not have any sort of item entity in the EVE database, we must derive the abilities from the
|
||||
effects, and thus this effect file contains some custom information useful only to fighters.
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
# Not used by any item
|
||||
"""
|
||||
Since fighter abilities do not have any sort of item entity in the EVE database, we must derive the abilities from the
|
||||
effects, and thus this effect file contains some custom information useful only to fighters.
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
# Not used by any item
|
||||
"""
|
||||
Since fighter abilities do not have any sort of item entity in the EVE database, we must derive the abilities from the
|
||||
effects, and thus this effect file contains some custom information useful only to fighters.
|
||||
@@ -10,5 +11,8 @@ prefix = "fighterAbilityLaunchBomb"
|
||||
|
||||
type = "active"
|
||||
|
||||
# This flag is required for effects that use charges in order to properly calculate reload time
|
||||
hasCharges = True
|
||||
|
||||
def handler(fit, src, context):
|
||||
pass
|
||||
@@ -1,3 +1,4 @@
|
||||
# Not used by any item
|
||||
"""
|
||||
Since fighter abilities do not have any sort of item entity in the EVE database, we must derive the abilities from the
|
||||
effects, and thus this effect file contains some custom information useful only to fighters.
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
# Not used by any item
|
||||
"""
|
||||
Since fighter abilities do not have any sort of item entity in the EVE database, we must derive the abilities from the
|
||||
effects, and thus this effect file contains some custom information useful only to fighters.
|
||||
@@ -10,5 +11,8 @@ prefix = "fighterAbilityMissiles"
|
||||
|
||||
type = "active"
|
||||
|
||||
# This flag is required for effects that use charges in order to properly calculate reload time
|
||||
hasCharges = True
|
||||
|
||||
def handler(fit, src, context):
|
||||
pass
|
||||
@@ -1,3 +1,4 @@
|
||||
# Not used by any item
|
||||
"""
|
||||
Since fighter abilities do not have any sort of item entity in the EVE database, we must derive the abilities from the
|
||||
effects, and thus this effect file contains some custom information useful only to fighters.
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
# Not used by any item
|
||||
"""
|
||||
Since fighter abilities do not have any sort of item entity in the EVE database, we must derive the abilities from the
|
||||
effects, and thus this effect file contains some custom information useful only to fighters.
|
||||
|
||||
@@ -6,8 +6,10 @@ runTime = "late"
|
||||
type = "active"
|
||||
def handler(fit, module, context):
|
||||
if module.charge and module.charge.name == "Nanite Repair Paste":
|
||||
module.multiplyItemAttr("armorDamageAmount", 3)
|
||||
multiplier = 3
|
||||
else:
|
||||
multiplier = 1
|
||||
|
||||
amount = module.getModifiedItemAttr("armorDamageAmount")
|
||||
amount = module.getModifiedItemAttr("armorDamageAmount") * multiplier
|
||||
speed = module.getModifiedItemAttr("duration") / 1000.0
|
||||
fit.extraAttributes.increase("armorRepair", amount / speed)
|
||||
|
||||
@@ -4,6 +4,6 @@
|
||||
# Skill: Kinetic Shield Compensation
|
||||
type = "passive"
|
||||
def handler(fit, skill, context):
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Shield Amplifier",
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Shield Resistance Amplifier",
|
||||
"kineticDamageResistanceBonus",
|
||||
skill.getModifiedItemAttr("hardeningBonus") * skill.level)
|
||||
@@ -1,7 +1,4 @@
|
||||
# marauderModeEffect26
|
||||
#
|
||||
# Used by:
|
||||
# Module: Bastion Module I
|
||||
# Not used by any item
|
||||
type = "active"
|
||||
runTime = "early"
|
||||
def handler(fit, module, context):
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# modifyShieldResonancePostPercent
|
||||
#
|
||||
# Used by:
|
||||
# Modules from group: Shield Amplifier (88 of 88)
|
||||
# Modules from group: Shield Resistance Amplifier (88 of 88)
|
||||
type = "passive"
|
||||
def handler(fit, module, context):
|
||||
for type in ("kinetic", "thermal", "explosive", "em"):
|
||||
|
||||
@@ -1,11 +1,17 @@
|
||||
# moduleBonusAncillaryRemoteArmorRepairer
|
||||
#
|
||||
# Used by:
|
||||
# Modules from group: Ancillary Remote Armor Repairer (4 of 4)
|
||||
runTime = "late"
|
||||
type = "projected", "active"
|
||||
def handler(fit, module, context):
|
||||
if "projected" not in context: return
|
||||
|
||||
|
||||
if module.charge and module.charge.name == "Nanite Repair Paste":
|
||||
module.multiplyItemAttr("armorDamageAmount", 3)
|
||||
|
||||
amount = module.getModifiedItemAttr("armorDamageAmount")
|
||||
multiplier = 3
|
||||
else:
|
||||
multiplier = 1
|
||||
|
||||
amount = module.getModifiedItemAttr("armorDamageAmount") * multiplier
|
||||
speed = module.getModifiedItemAttr("duration") / 1000.0
|
||||
fit.extraAttributes.increase("armorRepair", amount / speed)
|
||||
11
eos/effects/modulebonusancillaryremoteshieldbooster.py
Normal file
11
eos/effects/modulebonusancillaryremoteshieldbooster.py
Normal file
@@ -0,0 +1,11 @@
|
||||
# moduleBonusAncillaryRemoteShieldBooster
|
||||
#
|
||||
# Used by:
|
||||
# Modules from group: Ancillary Remote Shield Booster (4 of 4)
|
||||
runTime = "late"
|
||||
type = "projected", "active"
|
||||
def handler(fit, module, context):
|
||||
if "projected" not in context: return
|
||||
amount = module.getModifiedItemAttr("shieldBonus")
|
||||
speed = module.getModifiedItemAttr("duration") / 1000.0
|
||||
fit.extraAttributes.increase("shieldRepair", amount / speed)
|
||||
@@ -4,9 +4,8 @@
|
||||
# Module: Networked Sensor Array
|
||||
type = "active"
|
||||
def handler(fit, src, context):
|
||||
fit.ship.increaseItemAttr("maxLockedTargets", src.getModifiedItemAttr("maxLockedTargetsBonus"))
|
||||
fit.ship.multiplyItemAttr("maxTargetRange", src.getModifiedItemAttr("maxTargetRangeMultiplier"), stackingPenalties=True, penaltyGroup="postMul")
|
||||
fit.ship.multiplyItemAttr("scanResolution", src.getModifiedItemAttr("scanResolutionMultiplier"), stackingPenalties=True)
|
||||
fit.ship.boostItemAttr("scanResolution", src.getModifiedItemAttr("scanResolutionBonus"), stackingPenalties=True)
|
||||
|
||||
for scanType in ('Magnetometric', 'Ladar', 'Gravimetric', 'Radar'):
|
||||
fit.ship.boostItemAttr("scan{}Strength".format(scanType),
|
||||
|
||||
@@ -44,14 +44,9 @@ def handler(fit, src, context):
|
||||
fit.ship.forceItemAttr("disallowAssistance", src.getModifiedItemAttr("disallowAssistance"))
|
||||
|
||||
# new in April 2016 release
|
||||
for scanType in ('Magnetometric', 'Ladar', 'Gravimetric', 'Radar'):
|
||||
fit.ship.boostItemAttr("scan{}Strength".format(scanType),
|
||||
src.getModifiedItemAttr("scan{}StrengthPercent".format(scanType)),
|
||||
stackingPenalties=True)
|
||||
|
||||
# missile ROF bonus
|
||||
for group in ("Missile Launcher XL Torpedo", "Missile Launcher Rapid Torpedo", "Missile Launcher XL Cruise"):
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == group, "speed", src.getModifiedItemAttr("siegeLauncherROFBonus"), stackingPenalties=True)
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == group, "speed", src.getModifiedItemAttr("siegeLauncherROFBonus"))
|
||||
|
||||
fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Torpedoes"), "maxVelocity", src.getModifiedItemAttr("siegeTorpedoVelocityBonus"), stackingPenalties=True)
|
||||
|
||||
|
||||
@@ -56,12 +56,6 @@ def handler(fit, src, context):
|
||||
fit.ship.forceItemAttr("disallowAssistance", src.getModifiedItemAttr("disallowAssistance"))
|
||||
|
||||
# new in April 2016 release
|
||||
|
||||
for scanType in ('Magnetometric', 'Ladar', 'Gravimetric', 'Radar'):
|
||||
fit.ship.boostItemAttr("scan{}Strength".format(scanType),
|
||||
src.getModifiedItemAttr("scan{}StrengthPercent".format(scanType)),
|
||||
stackingPenalties=True)
|
||||
|
||||
fit.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Drones"), "damageMultiplier", src.getModifiedItemAttr("droneDamageBonus"), stackingPenalties=True)
|
||||
|
||||
fit.ship.increaseItemAttr("warpScrambleStatus", src.getModifiedItemAttr("siegeModeWarpStatus"))
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
# overloadSelfDamageBonus
|
||||
#
|
||||
# Used by:
|
||||
# Modules from group: Energy Weapon (102 of 209)
|
||||
# Modules from group: Hybrid Weapon (106 of 221)
|
||||
# Modules from group: Projectile Weapon (100 of 165)
|
||||
# Modules from group: Energy Weapon (101 of 209)
|
||||
# Modules from group: Hybrid Weapon (105 of 221)
|
||||
# Modules from group: Projectile Weapon (99 of 165)
|
||||
type = "overheat"
|
||||
def handler(fit, module, context):
|
||||
module.boostItemAttr("damageMultiplier", module.getModifiedItemAttr("overloadDamageModifier"))
|
||||
@@ -4,6 +4,5 @@
|
||||
# Ship: Guardian
|
||||
# Ship: Oneiros
|
||||
type = "passive"
|
||||
def handler(fit, ship, context):
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Remote Armor Repairer",
|
||||
"power", ship.getModifiedItemAttr("remoteArmorPowerNeedBonus"))
|
||||
def handler(fit, src, context):
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Remote Armor Repair Systems"), "power", src.getModifiedItemAttr("remoteArmorPowerNeedBonus"))
|
||||
|
||||
10
eos/effects/remotearmorrepairentity.py
Normal file
10
eos/effects/remotearmorrepairentity.py
Normal file
@@ -0,0 +1,10 @@
|
||||
# remoteArmorRepairEntity
|
||||
#
|
||||
# Used by:
|
||||
# Drones named like: Armor Maintenance Bot (6 of 6)
|
||||
type = "projected", "active"
|
||||
def handler(fit, container, context):
|
||||
if "projected" in context:
|
||||
bonus = container.getModifiedItemAttr("armorDamageAmount")
|
||||
duration = container.getModifiedItemAttr("duration") / 1000.0
|
||||
fit.extraAttributes.increase("armorRepair", bonus / duration)
|
||||
@@ -2,7 +2,6 @@
|
||||
#
|
||||
# Used by:
|
||||
# Modules from group: Remote Armor Repairer (39 of 39)
|
||||
# Drones named like: Armor Maintenance Bot (6 of 6)
|
||||
type = "projected", "active"
|
||||
def handler(fit, container, context):
|
||||
if "projected" in context:
|
||||
|
||||
@@ -1,7 +1,4 @@
|
||||
# remoteEcmBurst
|
||||
#
|
||||
# Used by:
|
||||
# Module: ECM Jammer Burst Projector
|
||||
# Not used by any item
|
||||
type = 'active'
|
||||
def handler(fit, module, context):
|
||||
pass
|
||||
|
||||
@@ -14,4 +14,4 @@ def handler(fit, src, context):
|
||||
):
|
||||
fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"),
|
||||
tgtAttr, src.getModifiedItemAttr(srcAttr),
|
||||
stackingPenalties=True)
|
||||
stackingPenalties=True, remoteResists=True)
|
||||
|
||||
@@ -1,7 +1,4 @@
|
||||
# remoteHullRepair
|
||||
#
|
||||
# Used by:
|
||||
# Drones named like: Hull Maintenance Bot (6 of 6)
|
||||
# Not used by any item
|
||||
type = "projected", "active"
|
||||
runTime = "late"
|
||||
def handler(fit, module, context):
|
||||
|
||||
11
eos/effects/remotehullrepairentity.py
Normal file
11
eos/effects/remotehullrepairentity.py
Normal file
@@ -0,0 +1,11 @@
|
||||
# remoteHullRepairEntity
|
||||
#
|
||||
# Used by:
|
||||
# Drones named like: Hull Maintenance Bot (6 of 6)
|
||||
type = "projected", "active"
|
||||
runTime = "late"
|
||||
def handler(fit, module, context):
|
||||
if "projected" not in context: return
|
||||
bonus = module.getModifiedItemAttr("structureDamageAmount")
|
||||
duration = module.getModifiedItemAttr("duration") / 1000.0
|
||||
fit.extraAttributes.increase("hullRepair", bonus / duration)
|
||||
@@ -2,7 +2,6 @@
|
||||
#
|
||||
# Used by:
|
||||
# Modules from group: Remote Hull Repairer (8 of 8)
|
||||
# Drones named like: Hull Maintenance Bot (6 of 6)
|
||||
type = "projected", "active"
|
||||
runTime = "late"
|
||||
def handler(fit, module, context):
|
||||
|
||||
14
eos/effects/remotesensordampentity.py
Normal file
14
eos/effects/remotesensordampentity.py
Normal file
@@ -0,0 +1,14 @@
|
||||
# remoteSensorDampEntity
|
||||
#
|
||||
# Used by:
|
||||
# Drones named like: SD (3 of 3)
|
||||
type= "projected", "active"
|
||||
def handler(fit, module, context):
|
||||
if "projected" not in context:
|
||||
return
|
||||
|
||||
fit.ship.boostItemAttr("maxTargetRange", module.getModifiedItemAttr("maxTargetRangeBonus"),
|
||||
stackingPenalties = True, remoteResists=True)
|
||||
|
||||
fit.ship.boostItemAttr("scanResolution", module.getModifiedItemAttr("scanResolutionBonus"),
|
||||
stackingPenalties = True, remoteResists=True)
|
||||
@@ -2,12 +2,13 @@
|
||||
#
|
||||
# Used by:
|
||||
# Modules from group: Sensor Dampener (6 of 6)
|
||||
# Drones named like: SD (3 of 3)
|
||||
type= "projected", "active"
|
||||
def handler(fit, module, context):
|
||||
if "projected" not in context:
|
||||
return
|
||||
|
||||
fit.ship.boostItemAttr("maxTargetRange", module.getModifiedItemAttr("maxTargetRangeBonus"),
|
||||
stackingPenalties = True)
|
||||
stackingPenalties = True, remoteResists=True)
|
||||
|
||||
fit.ship.boostItemAttr("scanResolution", module.getModifiedItemAttr("scanResolutionBonus"),
|
||||
stackingPenalties = True)
|
||||
stackingPenalties = True, remoteResists=True)
|
||||
|
||||
10
eos/effects/remoteshieldtransferentity.py
Normal file
10
eos/effects/remoteshieldtransferentity.py
Normal file
@@ -0,0 +1,10 @@
|
||||
# remoteShieldTransferEntity
|
||||
#
|
||||
# Used by:
|
||||
# Drones named like: Shield Maintenance Bot (6 of 6)
|
||||
type = "projected", "active"
|
||||
def handler(fit, container, context):
|
||||
if "projected" in context:
|
||||
bonus = container.getModifiedItemAttr("shieldBonus")
|
||||
duration = container.getModifiedItemAttr("duration") / 1000.0
|
||||
fit.extraAttributes.increase("shieldRepair", bonus / duration)
|
||||
@@ -2,7 +2,6 @@
|
||||
#
|
||||
# Used by:
|
||||
# Modules from group: Remote Shield Booster (38 of 38)
|
||||
# Drones named like: Shield Maintenance Bot (6 of 6)
|
||||
type = "projected", "active"
|
||||
def handler(fit, container, context):
|
||||
if "projected" in context:
|
||||
|
||||
9
eos/effects/remotetargetpaintentity.py
Normal file
9
eos/effects/remotetargetpaintentity.py
Normal file
@@ -0,0 +1,9 @@
|
||||
# remoteTargetPaintEntity
|
||||
#
|
||||
# Used by:
|
||||
# Drones named like: TP (3 of 3)
|
||||
type = "projected", "active"
|
||||
def handler(fit, container, context):
|
||||
if "projected" in context:
|
||||
fit.ship.boostItemAttr("signatureRadius", container.getModifiedItemAttr("signatureRadiusBonus"),
|
||||
stackingPenalties = True, remoteResists=True)
|
||||
@@ -2,9 +2,8 @@
|
||||
#
|
||||
# Used by:
|
||||
# Modules from group: Target Painter (8 of 8)
|
||||
# Drones named like: TP (3 of 3)
|
||||
type = "projected", "active"
|
||||
def handler(fit, container, context):
|
||||
if "projected" in context:
|
||||
fit.ship.boostItemAttr("signatureRadius", container.getModifiedItemAttr("signatureRadiusBonus"),
|
||||
stackingPenalties = True)
|
||||
stackingPenalties = True, remoteResists=True)
|
||||
|
||||
@@ -1,17 +1,16 @@
|
||||
# remoteTrackingDisruptFalloff
|
||||
#
|
||||
# Used by:
|
||||
# Drones named like: TD (3 of 3)
|
||||
# Variations of module: Tracking Disruptor I (6 of 6)
|
||||
type= "projected", "active"
|
||||
def handler(fit, module, context):
|
||||
if "projected" in context:
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Gunnery"),
|
||||
"trackingSpeed", module.getModifiedItemAttr("trackingSpeedBonus"),
|
||||
stackingPenalties = True)
|
||||
stackingPenalties = True, remoteResists=True)
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Gunnery"),
|
||||
"maxRange", module.getModifiedItemAttr("maxRangeBonus"),
|
||||
stackingPenalties = True)
|
||||
stackingPenalties = True, remoteResists=True)
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Gunnery"),
|
||||
"falloff", module.getModifiedItemAttr("falloffBonus"),
|
||||
stackingPenalties = True)
|
||||
stackingPenalties = True, remoteResists=True)
|
||||
|
||||
16
eos/effects/remoteweapondisruptentity.py
Normal file
16
eos/effects/remoteweapondisruptentity.py
Normal file
@@ -0,0 +1,16 @@
|
||||
# remoteWeaponDisruptEntity
|
||||
#
|
||||
# Used by:
|
||||
# Drones named like: TD (3 of 3)
|
||||
type= "projected", "active"
|
||||
def handler(fit, module, context):
|
||||
if "projected" in context:
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Gunnery"),
|
||||
"trackingSpeed", module.getModifiedItemAttr("trackingSpeedBonus"),
|
||||
stackingPenalties = True, remoteResists=True)
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Gunnery"),
|
||||
"maxRange", module.getModifiedItemAttr("maxRangeBonus"),
|
||||
stackingPenalties = True, remoteResists=True)
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Gunnery"),
|
||||
"falloff", module.getModifiedItemAttr("falloffBonus"),
|
||||
stackingPenalties = True, remoteResists=True)
|
||||
9
eos/effects/remotewebifierentity.py
Normal file
9
eos/effects/remotewebifierentity.py
Normal file
@@ -0,0 +1,9 @@
|
||||
# remoteWebifierEntity
|
||||
#
|
||||
# Used by:
|
||||
# Drones from group: Stasis Webifying Drone (3 of 3)
|
||||
type = "active", "projected"
|
||||
def handler(fit, module, context):
|
||||
if "projected" not in context: return
|
||||
fit.ship.boostItemAttr("maxVelocity", module.getModifiedItemAttr("speedFactor"),
|
||||
stackingPenalties = True, remoteResists=True)
|
||||
@@ -1,11 +1,10 @@
|
||||
# remoteWebifierFalloff
|
||||
#
|
||||
# Used by:
|
||||
# Drones from group: Stasis Webifying Drone (3 of 3)
|
||||
# Modules from group: Stasis Grappler (7 of 7)
|
||||
# Modules from group: Stasis Web (18 of 18)
|
||||
type = "active", "projected"
|
||||
def handler(fit, module, context):
|
||||
if "projected" not in context: return
|
||||
fit.ship.boostItemAttr("maxVelocity", module.getModifiedItemAttr("speedFactor"),
|
||||
stackingPenalties = True)
|
||||
stackingPenalties = True, remoteResists=True)
|
||||
|
||||
@@ -1,7 +1,4 @@
|
||||
# rigDrawbackBonusEffect
|
||||
#
|
||||
# Used by:
|
||||
# Skills from group: Rigging (9 of 10)
|
||||
# Not used by any item
|
||||
type = "passive"
|
||||
def handler(fit, skill, context):
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill(skill),
|
||||
|
||||
9
eos/effects/rigdrawbackreductionarmor.py
Normal file
9
eos/effects/rigdrawbackreductionarmor.py
Normal file
@@ -0,0 +1,9 @@
|
||||
# rigDrawbackReductionArmor
|
||||
#
|
||||
# Used by:
|
||||
# Skill: Armor Rigging
|
||||
type = "passive"
|
||||
def handler(fit, src, context):
|
||||
lvl = src.level
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Rig Armor", "drawback", src.getModifiedItemAttr("rigDrawbackBonus") * lvl)
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Rig Resource Processing", "drawback", src.getModifiedItemAttr("rigDrawbackBonus") * lvl)
|
||||
9
eos/effects/rigdrawbackreductionastronautics.py
Normal file
9
eos/effects/rigdrawbackreductionastronautics.py
Normal file
@@ -0,0 +1,9 @@
|
||||
# rigDrawbackReductionAstronautics
|
||||
#
|
||||
# Used by:
|
||||
# Skill: Astronautics Rigging
|
||||
type = "passive"
|
||||
def handler(fit, src, context):
|
||||
lvl = src.level
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Rig Navigation", "drawback", src.getModifiedItemAttr("rigDrawbackBonus") * lvl)
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Rig Anchor", "drawback", src.getModifiedItemAttr("rigDrawbackBonus") * lvl)
|
||||
8
eos/effects/rigdrawbackreductiondrones.py
Normal file
8
eos/effects/rigdrawbackreductiondrones.py
Normal file
@@ -0,0 +1,8 @@
|
||||
# rigDrawbackReductionDrones
|
||||
#
|
||||
# Used by:
|
||||
# Skill: Drones Rigging
|
||||
type = "passive"
|
||||
def handler(fit, src, context):
|
||||
lvl = src.level
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Rig Drones", "drawback", src.getModifiedItemAttr("rigDrawbackBonus") * lvl)
|
||||
10
eos/effects/rigdrawbackreductionelectronic.py
Normal file
10
eos/effects/rigdrawbackreductionelectronic.py
Normal file
@@ -0,0 +1,10 @@
|
||||
# rigDrawbackReductionElectronic
|
||||
#
|
||||
# Used by:
|
||||
# Skill: Electronic Superiority Rigging
|
||||
type = "passive"
|
||||
def handler(fit, src, context):
|
||||
lvl = src.level
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Rig Electronic Systems", "drawback", src.getModifiedItemAttr("rigDrawbackBonus") * lvl)
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Rig Scanning", "drawback", src.getModifiedItemAttr("rigDrawbackBonus") * lvl)
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Rig Targeting", "drawback", src.getModifiedItemAttr("rigDrawbackBonus") * lvl)
|
||||
8
eos/effects/rigdrawbackreductionenergyweapon.py
Normal file
8
eos/effects/rigdrawbackreductionenergyweapon.py
Normal file
@@ -0,0 +1,8 @@
|
||||
# rigDrawbackReductionEnergyWeapon
|
||||
#
|
||||
# Used by:
|
||||
# Skill: Energy Weapon Rigging
|
||||
type = "passive"
|
||||
def handler(fit, src, context):
|
||||
lvl = src.level
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Rig Energy Weapon", "drawback", src.getModifiedItemAttr("rigDrawbackBonus") * lvl)
|
||||
8
eos/effects/rigdrawbackreductionhybrid.py
Normal file
8
eos/effects/rigdrawbackreductionhybrid.py
Normal file
@@ -0,0 +1,8 @@
|
||||
# rigDrawbackReductionHybrid
|
||||
#
|
||||
# Used by:
|
||||
# Skill: Hybrid Weapon Rigging
|
||||
type = "passive"
|
||||
def handler(fit, src, context):
|
||||
lvl = src.level
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Rig Hybrid Weapon", "drawback", src.getModifiedItemAttr("rigDrawbackBonus") * lvl)
|
||||
8
eos/effects/rigdrawbackreductionlauncher.py
Normal file
8
eos/effects/rigdrawbackreductionlauncher.py
Normal file
@@ -0,0 +1,8 @@
|
||||
# rigDrawbackReductionLauncher
|
||||
#
|
||||
# Used by:
|
||||
# Skill: Launcher Rigging
|
||||
type = "passive"
|
||||
def handler(fit, src, context):
|
||||
lvl = src.level
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Rig Launcher", "drawback", src.getModifiedItemAttr("rigDrawbackBonus") * lvl)
|
||||
8
eos/effects/rigdrawbackreductionprojectile.py
Normal file
8
eos/effects/rigdrawbackreductionprojectile.py
Normal file
@@ -0,0 +1,8 @@
|
||||
# rigDrawbackReductionProjectile
|
||||
#
|
||||
# Used by:
|
||||
# Skill: Projectile Weapon Rigging
|
||||
type = "passive"
|
||||
def handler(fit, src, context):
|
||||
lvl = src.level
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Rig Projectile Weapon", "drawback", src.getModifiedItemAttr("rigDrawbackBonus") * lvl)
|
||||
8
eos/effects/rigdrawbackreductionshield.py
Normal file
8
eos/effects/rigdrawbackreductionshield.py
Normal file
@@ -0,0 +1,8 @@
|
||||
# rigDrawbackReductionShield
|
||||
#
|
||||
# Used by:
|
||||
# Skill: Shield Rigging
|
||||
type = "passive"
|
||||
def handler(fit, src, context):
|
||||
lvl = src.level
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Rig Shield", "drawback", src.getModifiedItemAttr("rigDrawbackBonus") * lvl)
|
||||
@@ -1,7 +1,7 @@
|
||||
# scanStrengthBonusPercentPassive
|
||||
#
|
||||
# Used by:
|
||||
# Implants named like: High grade (20 of 60)
|
||||
# Implants named like: High grade (20 of 61)
|
||||
type = "passive"
|
||||
def handler(fit, implant, context):
|
||||
for type in ("Gravimetric", "Magnetometric", "Radar", "Ladar"):
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
# shieldCapacityBonusOnline
|
||||
#
|
||||
# Used by:
|
||||
# Modules from group: Shield Amplifier (88 of 88)
|
||||
# Modules from group: Shield Extender (33 of 33)
|
||||
# Modules from group: Shield Resistance Amplifier (88 of 88)
|
||||
type = "passive"
|
||||
def handler(fit, module, context):
|
||||
fit.ship.increaseItemAttr("shieldCapacity", module.getModifiedItemAttr("capacityBonus"))
|
||||
@@ -3,6 +3,5 @@
|
||||
# Used by:
|
||||
# Ships from group: Logistics (3 of 5)
|
||||
type = "passive"
|
||||
def handler(fit, ship, context):
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Remote Shield Booster",
|
||||
"cpu", ship.getModifiedItemAttr("shieldTransportCpuNeedBonus"))
|
||||
def handler(fit, src, context):
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Emission Systems"), "cpu", src.getModifiedItemAttr("shieldTransportCpuNeedBonus"))
|
||||
|
||||
@@ -1,7 +1,9 @@
|
||||
# shipAdvancedSpaceshipCommandAgilityBonus
|
||||
#
|
||||
# Used by:
|
||||
# Items from market group: Ships > Capital Ships (31 of 32)
|
||||
# Ships from group: Dreadnought (5 of 5)
|
||||
# Ships from group: Titan (5 of 5)
|
||||
# Items from market group: Ships > Capital Ships (32 of 33)
|
||||
type = "passive"
|
||||
def handler(fit, ship, context):
|
||||
skillName = "Advanced Spaceship Command"
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
#
|
||||
# Used by:
|
||||
# Ship: Moros
|
||||
# Ship: Vehement
|
||||
type = "passive"
|
||||
def handler(fit, src, context):
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capital Hybrid Turret"), "speed", src.getModifiedItemAttr("shipBonusDreadnoughtG2"), skill="Gallente Dreadnought")
|
||||
|
||||
7
eos/effects/shipbonusdreadnoughtm1webbonus.py
Normal file
7
eos/effects/shipbonusdreadnoughtm1webbonus.py
Normal file
@@ -0,0 +1,7 @@
|
||||
# shipBonusDreadnoughtM1WebBonus
|
||||
#
|
||||
# Used by:
|
||||
# Ship: Vehement
|
||||
type = "passive"
|
||||
def handler(fit, src, context):
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Stasis Web", "speedFactor", src.getModifiedItemAttr("shipBonusDreadnoughtM1"), skill="Minmatar Dreadnought")
|
||||
@@ -1,7 +1,9 @@
|
||||
# shipBonusDreadnoughtRole1DamageBonus
|
||||
#
|
||||
# Used by:
|
||||
# Ship: Naglfar
|
||||
# Ship: Vehement
|
||||
type = "passive"
|
||||
def handler(fit, src, context):
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capital Projectile Turret"), "damageMultiplier", src.getModifiedItemAttr("shipBonusRole1"))
|
||||
def handler(fit, ship, context):
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capital Hybrid Turret"),
|
||||
"damageMultiplier", ship.getModifiedItemAttr("shipBonusRole1"))
|
||||
|
||||
|
||||
@@ -1,7 +1,4 @@
|
||||
# shipBonusEnergyVampireRangeAD2
|
||||
#
|
||||
# Used by:
|
||||
# Ship: Dragoon
|
||||
# Not used by any item
|
||||
type = "passive"
|
||||
def handler(fit, ship, context):
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Energy Nosferatu",
|
||||
|
||||
@@ -4,5 +4,9 @@
|
||||
# Ship: Apostle
|
||||
type = "passive"
|
||||
def handler(fit, src, context):
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capital Capacitor Emission Systems"), "powerTransferAmount", src.getModifiedItemAttr("shipBonusForceAuxiliaryA1"), skill="Amarr Carrier")
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capital Remote Armor Repair Systems"), "armorDamageAmount", src.getModifiedItemAttr("shipBonusForceAuxiliaryA1"), skill="Amarr Carrier")
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capacitor Emission Systems") or
|
||||
mod.item.requiresSkill("Capital Capacitor Emission Systems"),
|
||||
"powerTransferAmount", src.getModifiedItemAttr("shipBonusForceAuxiliaryA1"), skill="Amarr Carrier")
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Remote Armor Repair Systems") or
|
||||
mod.item.requiresSkill("Capital Remote Armor Repair Systems"),
|
||||
"armorDamageAmount", src.getModifiedItemAttr("shipBonusForceAuxiliaryA1"), skill="Amarr Carrier")
|
||||
|
||||
@@ -4,5 +4,9 @@
|
||||
# Ship: Minokawa
|
||||
type = "passive"
|
||||
def handler(fit, src, context):
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capital Capacitor Emission Systems"), "powerTransferAmount", src.getModifiedItemAttr("shipBonusForceAuxiliaryC1"), skill="Caldari Carrier")
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capital Shield Emission Systems"), "shieldBonus", src.getModifiedItemAttr("shipBonusForceAuxiliaryC1"), skill="Caldari Carrier")
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capacitor Emission Systems") or
|
||||
mod.item.requiresSkill("Capital Capacitor Emission Systems"),
|
||||
"powerTransferAmount", src.getModifiedItemAttr("shipBonusForceAuxiliaryC1"), skill="Caldari Carrier")
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Emission Systems") or
|
||||
mod.item.requiresSkill("Capital Shield Emission Systems"),
|
||||
"shieldBonus", src.getModifiedItemAttr("shipBonusForceAuxiliaryC1"), skill="Caldari Carrier")
|
||||
|
||||
@@ -4,7 +4,9 @@
|
||||
# Ship: Ninazu
|
||||
type = "passive"
|
||||
def handler(fit, src, context):
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capital Remote Armor Repair Systems"), "duration", src.getModifiedItemAttr("shipBonusForceAuxiliaryG1"), skill="Gallente Carrier")
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capital Shield Emission Systems"), "duration", src.getModifiedItemAttr("shipBonusForceAuxiliaryG1"), skill="Gallente Carrier")
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Emission Systems"), "duration", src.getModifiedItemAttr("shipBonusForceAuxiliaryG1"), skill="Gallente Carrier")
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Remote Armor Repair Systems"), "duration", src.getModifiedItemAttr("shipBonusForceAuxiliaryG1"), skill="Gallente Carrier")
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Emission Systems") or
|
||||
mod.item.requiresSkill("Capital Shield Emission Systems"),
|
||||
"duration", src.getModifiedItemAttr("shipBonusForceAuxiliaryG1"), skill="Gallente Carrier")
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Remote Armor Repair Systems") or
|
||||
mod.item.requiresSkill("Capital Remote Armor Repair Systems"),
|
||||
"duration", src.getModifiedItemAttr("shipBonusForceAuxiliaryG1"), skill="Gallente Carrier")
|
||||
|
||||
@@ -4,7 +4,10 @@
|
||||
# Ship: Lif
|
||||
type = "passive"
|
||||
def handler(fit, src, context):
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Emission Systems"), "duration", src.getModifiedItemAttr("shipBonusForceAuxiliaryM1"), skill="Minmatar Carrier")
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capital Shield Emission Systems"), "duration", src.getModifiedItemAttr("shipBonusForceAuxiliaryM1"), skill="Minmatar Carrier")
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Remote Armor Repair Systems"), "duration", src.getModifiedItemAttr("shipBonusForceAuxiliaryM1"), skill="Minmatar Carrier")
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capital Remote Armor Repair Systems"), "duration", src.getModifiedItemAttr("shipBonusForceAuxiliaryM1"), skill="Minmatar Carrier")
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Emission Systems") or
|
||||
mod.item.requiresSkill("Capital Shield Emission Systems"),
|
||||
"duration", src.getModifiedItemAttr("shipBonusForceAuxiliaryM1"), skill="Minmatar Carrier")
|
||||
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Remote Armor Repair Systems") or
|
||||
mod.item.requiresSkill("Capital Remote Armor Repair Systems"),
|
||||
"duration", src.getModifiedItemAttr("shipBonusForceAuxiliaryM1"), skill="Minmatar Carrier")
|
||||
|
||||
@@ -4,6 +4,5 @@
|
||||
# Ship: Deacon
|
||||
# Ship: Inquisitor
|
||||
type = "passive"
|
||||
def handler(fit, ship, context):
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Remote Armor Repairer",
|
||||
"armorDamageAmount", ship.getModifiedItemAttr("shipBonus2AF"), skill="Amarr Frigate")
|
||||
def handler(fit, src, context):
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Remote Armor Repair Systems"), "armorDamageAmount", src.getModifiedItemAttr("shipBonus2AF"), skill="Amarr Frigate")
|
||||
|
||||
@@ -3,6 +3,5 @@
|
||||
# Used by:
|
||||
# Ship: Augoror
|
||||
type = "passive"
|
||||
def handler(fit, ship, context):
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Remote Armor Repairer",
|
||||
"armorDamageAmount", ship.getModifiedItemAttr("shipBonusAC2"), skill="Amarr Cruiser")
|
||||
def handler(fit, src, context):
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Remote Armor Repair Systems"), "armorDamageAmount", src.getModifiedItemAttr("shipBonusAC2"), skill="Amarr Cruiser")
|
||||
|
||||
@@ -3,6 +3,5 @@
|
||||
# Used by:
|
||||
# Ship: Exequror
|
||||
type = "passive"
|
||||
def handler(fit, ship, context):
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Remote Armor Repairer",
|
||||
"armorDamageAmount", ship.getModifiedItemAttr("shipBonusGC2"), skill="Gallente Cruiser")
|
||||
def handler(fit, src, context):
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Remote Armor Repair Systems"), "armorDamageAmount", src.getModifiedItemAttr("shipBonusGC2"), skill="Gallente Cruiser")
|
||||
|
||||
@@ -3,6 +3,5 @@
|
||||
# Used by:
|
||||
# Variations of ship: Navitas (2 of 2)
|
||||
type = "passive"
|
||||
def handler(fit, ship, context):
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Remote Armor Repairer",
|
||||
"armorDamageAmount", ship.getModifiedItemAttr("shipBonusGF2"), skill="Gallente Frigate")
|
||||
def handler(fit, src, context):
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Remote Armor Repair Systems"), "armorDamageAmount", src.getModifiedItemAttr("shipBonusGF2"), skill="Gallente Frigate")
|
||||
|
||||
@@ -3,6 +3,5 @@
|
||||
# Used by:
|
||||
# Ship: Augoror
|
||||
type = "passive"
|
||||
def handler(fit, ship, context):
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Remote Armor Repairer",
|
||||
"capacitorNeed", ship.getModifiedItemAttr("shipBonusAC"), skill="Amarr Cruiser")
|
||||
def handler(fit, src, context):
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Remote Armor Repair Systems"), "capacitorNeed", src.getModifiedItemAttr("shipBonusAC"), skill="Amarr Cruiser")
|
||||
|
||||
@@ -4,6 +4,5 @@
|
||||
# Ship: Deacon
|
||||
# Ship: Inquisitor
|
||||
type = "passive"
|
||||
def handler(fit, ship, context):
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Remote Armor Repairer",
|
||||
"capacitorNeed", ship.getModifiedItemAttr("shipBonusAF"), skill="Amarr Frigate")
|
||||
def handler(fit, src, context):
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Remote Armor Repair Systems"), "capacitorNeed", src.getModifiedItemAttr("shipBonusAF"), skill="Amarr Frigate")
|
||||
|
||||
@@ -3,6 +3,5 @@
|
||||
# Used by:
|
||||
# Ship: Exequror
|
||||
type = "passive"
|
||||
def handler(fit, ship, context):
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Remote Armor Repairer",
|
||||
"capacitorNeed", ship.getModifiedItemAttr("shipBonusGC"), skill="Gallente Cruiser")
|
||||
def handler(fit, src, context):
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Remote Armor Repair Systems"), "capacitorNeed", src.getModifiedItemAttr("shipBonusGC"), skill="Gallente Cruiser")
|
||||
|
||||
@@ -3,6 +3,5 @@
|
||||
# Used by:
|
||||
# Variations of ship: Navitas (2 of 2)
|
||||
type = "passive"
|
||||
def handler(fit, ship, context):
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Remote Armor Repairer",
|
||||
"capacitorNeed", ship.getModifiedItemAttr("shipBonusGF"), skill="Gallente Frigate")
|
||||
def handler(fit, src, context):
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Remote Armor Repair Systems"), "capacitorNeed", src.getModifiedItemAttr("shipBonusGF"), skill="Gallente Frigate")
|
||||
|
||||
@@ -3,6 +3,5 @@
|
||||
# Used by:
|
||||
# Ship: Osprey
|
||||
type = "passive"
|
||||
def handler(fit, ship, context):
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Remote Shield Booster",
|
||||
"capacitorNeed", ship.getModifiedItemAttr("shipBonusCC"), skill="Caldari Cruiser")
|
||||
def handler(fit, src, context):
|
||||
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Emission Systems"), "capacitorNeed", src.getModifiedItemAttr("shipBonusCC"), skill="Caldari Cruiser")
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user