Compare commits

...

74 Commits

Author SHA1 Message Date
DarkPhoenix
26122f6da7 Add latest changes from Singularity 2015-05-21 16:44:39 +03:00
DarkPhoenix
cca7f1112a Revert "Merge branch 'master' into wx3"
This reverts commit 33a0c10650, reversing
changes made to 2077655694.

Reverting merges fucks up git, but oh well - we probably better merge stuff manually rather than fucking up master with wx3 which is apparently buggy
2015-04-30 19:47:15 +03:00
DarkPhoenix
c809a614f9 Revert "Move logging initialization back to pyfa.py"
This reverts commit d18cf7b3b0.

Reverting all wx3 commits in master
2015-04-30 19:39:11 +03:00
DarkPhoenix
2c366faa66 Revert "Remove setting locale"
This reverts commit 7606bded40.

Reverting all wx3 commits on master
2015-04-30 19:38:47 +03:00
DarkPhoenix
06252d761d Revert "Change the way we detect pyfa path"
This reverts commit bb8d5d0d65.

Reverting all wx3 commits in master
2015-04-30 19:38:18 +03:00
DarkPhoenix
bb8d5d0d65 Change the way we detect pyfa path
This ensures that it works even with frozen executable
2015-04-29 00:27:42 +03:00
DarkPhoenix
7606bded40 Remove setting locale
It causes issues with wx3 on windows
2015-04-28 23:49:11 +03:00
DarkPhoenix
daaf48d02a Add effect i should've added for mosaic release 2015-04-28 21:59:54 +03:00
DarkPhoenix
d18cf7b3b0 Move logging initialization back to pyfa.py 2015-04-28 21:59:14 +03:00
DarkPhoenix
33a0c10650 Merge branch 'master' into wx3 2015-04-28 21:53:27 +03:00
DarkPhoenix
2077655694 Bump version for next development release 2015-04-28 21:43:22 +03:00
DarkPhoenix
0dc3cbb7c7 Bump version for a stable release 2015-04-28 19:50:53 +03:00
Anton Vorobyov
a3c19f6f2b Merge pull request #271 from BlckKnght/fix_stagger
Fix stagger
2015-04-28 19:34:58 +03:00
DarkPhoenix
f97b037011 Forgot to save file for previous commit 2015-04-28 19:18:56 +03:00
DarkPhoenix
dd3dd799b2 Move loggin configuration to config temporarily 2015-04-28 19:17:50 +03:00
Anton Vorobyov
ac881ac371 Merge pull request #276 from kainz/master
Support fits exported from jEveAssets
2015-04-28 18:30:20 +03:00
DarkPhoenix
d734ccbf0d Add effect for entosis link and update effect comments 2015-04-28 18:24:25 +03:00
DarkPhoenix
024e0ad4f5 Support proper migration for ishukone scorp (which is skin for regular scorp now) 2015-04-28 18:19:58 +03:00
DarkPhoenix
545d98883a Update DB to mosaic 2015-04-28 18:06:03 +03:00
DarkPhoenix
742abc3250 Remove bunch of chinese skinned ships 2015-04-28 18:05:15 +03:00
DarkPhoenix
294e213ac2 Remove support for vanity ships which were converted into base hulls in game
We do not need any DB conversion for them because we converted them into base hull during import time. Also it breaks import of old posted EFT-style fits with removed skinned ships, but i can't say we care alot about this case
2015-04-28 18:01:06 +03:00
Bryon Roche
557f32ab91 Implement support for loading utf-16 XML.
Such XML is generated by software like jEveAssets's owned ships->fitting
export tool.

Without such detection, pyfa will go and try to import those as DNA
fits, with all the ensuing hilarity, thus the DNA import debug code as
well.
2015-04-22 05:05:48 -07:00
DarkPhoenix
e5430cac84 Do not apply ES bonus to weapon locus rigs 2015-04-20 15:07:19 +03:00
blitzmann
39c14b62fd Merge branch 'master' into wx3 2015-04-17 17:48:56 -04:00
DarkPhoenix
940035fa8c Fix market groups of civilian modules 2015-04-13 15:48:35 +03:00
blitzmann
5eaaaf070b Merge branch 'master' of https://github.com/DarkFenX/Pyfa 2015-04-08 23:44:51 -04:00
blitzmann
0bc9264c28 Fix #268 2015-04-08 23:43:56 -04:00
Steven Barker
cb1de9589e fix typo, pick a better stagger amount 2015-03-31 12:09:27 -07:00
Steven Barker
370e34cff9 Make staggerred modules with ammo work 2015-03-30 21:02:56 -07:00
Anton Vorobyov
28c3fc720f Merge pull request #249 from f-andrey/master
Update gpl.txt
2015-03-27 22:03:08 +03:00
DarkPhoenix
04b3a687fc Add new yacht to LIS category and add its render 2015-03-26 15:42:32 +03:00
DarkPhoenix
629f6e60a4 Mark as development 2015-03-26 15:35:05 +03:00
blitzmann
f801d7905c Update effect file headers, mark as stable 2015-03-24 16:30:40 -04:00
blitzmann
694a2a3d9b Fix #267 2015-03-23 21:21:38 -04:00
blitzmann
222888984a Update to 871030 SISI, also fix prep_data script for changes in Phobos / reverence 2015-03-23 18:00:38 -04:00
Ryan Holmes
bb96ecb647 Merge pull request #263 from OISumeko/master
Fix for #261
2015-02-22 23:51:04 -05:00
Cameron Grout
e082077dfc Updated None || 0 check to meet requested style
Updated for pull  request #263
2015-02-23 17:02:47 +13:00
blitzmann
a31769bde3 Remove problematic pyd files upon installation 2015-02-22 21:17:20 -05:00
Cameron Grout
be7e8be85b Fix for bug #261
Missile launchers do not have a "capacitorNeed" attribute (while other
capless weapon systems do), so getModifiedItemAttr will return None
rather than 0. Added a check for this.
2015-02-22 23:52:58 +13:00
DarkPhoenix
b16d2eae15 Bump for a next development release 2015-02-18 15:48:40 +03:00
DarkPhoenix
0ef05ffaf8 Bump version 2015-02-18 15:47:43 +03:00
DarkPhoenix
9ee7671a3c Update DB to 862956 2015-02-18 13:55:23 +03:00
DarkPhoenix
ca301f8d5b Fix svipul's sensor str effect on sharpshooter mode 2015-02-15 14:27:32 +03:00
blitzmann
471261275a Commit missing database 862583 2015-02-14 21:56:10 -05:00
blitzmann
55f2f3bfe8 Merge remote-tracking branch 'blitzmann/singularity' into singularity 2015-02-14 01:33:08 -05:00
blitzmann
3ce673d8af Merge remote-tracking branch 'origin/master' into singularity 2015-02-14 01:32:44 -05:00
blitzmann
3e2053b2dd Update 862583 sans database 2015-02-14 01:27:52 -05:00
DarkPhoenix
931e48d9a0 Fix ES effect affecting local modules 2015-02-13 22:09:38 +03:00
blitzmann
6c19f446be Sort import stage results 2015-02-09 22:44:33 -05:00
Ryan Holmes
d4842c2f8e Merge pull request #260 from blitzmann/importStage
Import stage, resolves #93
2015-02-09 22:25:01 -05:00
blitzmann
dc77ee9353 Add import stage to goTo logic, and fixed a bug with search initiating a goTo to the last hx item 2015-02-09 22:05:56 -05:00
blitzmann
6d29fd6bc1 Simplified stage 3 history handling. Fixes:
* Hitting back button after creating/copying new fit breaks stage
* Importing more than 1 fit while on the search stage and hitting the back button breaks stage
2015-02-08 21:12:56 -05:00
blitzmann
cbcd5ccca5 Fixed bugs:
* Importing 1 fit would open stage3 of that ship, but add incorrect history data.
* Deleting fit from search stage caused blank stage most times, fixed this.
2015-02-08 20:29:54 -05:00
blitzmann
30d2ab23ad Initial support for import stage in shipBrowser. Few bugs, see issue #93 2015-02-08 16:14:52 -05:00
blitzmann
f4f028b843 Fix #258: broken EFT cfg import 2015-02-07 22:59:55 -05:00
blitzmann
ef62f102bc Fix #256 2015-02-07 21:15:23 -05:00
blitzmann
7b8bb79cbe Fix error when loading previous fits that no longer exist in DB 2015-02-03 15:23:31 -05:00
blitzmann
3a26790109 If in debug, publish ship mode items (makes it easy to find in market and look at stats).
Tweak effectsUsedBy.py to publish all modes in group rather than individually listing them.
2015-02-03 14:16:09 -05:00
blitzmann
c861adc5ed Sanity check to importing effect handler
Tweaks to opening effect files when in debug (support for OS X and Linux)
2015-02-03 14:07:21 -05:00
blitzmann
36a3ac70b6 Removed unneeded variable in effect file 2015-01-26 23:51:46 -05:00
blitzmann
54d1b35ce7 Fix path to point to actual gamedata - useful when importing from terminal and has no effect on pyfa's import (as it is specifically provided in pyfa/config.py) 2015-01-25 11:09:43 -05:00
blitzmann
675213f20f Fix #252 2015-01-21 11:18:58 -05:00
blitzmann
3a9e1f8b85 Fix XML export 2015-01-17 13:41:49 -05:00
blitzmann
e520758334 dev version 2015-01-15 12:29:16 -05:00
Andrey
ad18560412 Update gpl.txt
Fix license text http://www.gnu.org/licenses/gpl-3.0.txt
2015-01-14 12:27:47 +03:00
DarkPhoenix
e8268633e3 Merge branch 'master' into wx3
Used code from the master on conflicts
2014-12-15 15:45:33 +03:00
DarkPhoenix
3c1bf22e87 Merge branch 'master' into wx3 2014-12-12 14:42:25 +03:00
blitzmann
ff55f2817b Fix for collapsible stats panels 2014-11-08 18:17:57 -05:00
Gleb Golubitsky
198ee8d129 Icon column size bumped to 24
Signed-off-by: Gleb Golubitsky <sectoid@gnolltech.org>
2014-11-08 17:33:37 +02:00
Gleb Golubitsky
7db13bd3ba Fixed ChromeTabs not rendering properly in wx 3.0
Signed-off-by: Gleb Golubitsky <sectoid@gnolltech.org>
2014-11-08 17:33:04 +02:00
blitzmann
5be0d4b70e Added version selection logic 2014-11-08 16:45:09 +02:00
blitzmann
a603a4359a Fixed font discrepancy from different wxPython versions. 2014-11-08 16:45:09 +02:00
blitzmann
b4f4024903 Fixed some bugs that blocked startup 2014-11-08 16:38:18 +02:00
blitzmann
df18651b4f Bump wxPython requirements 2014-11-08 16:38:18 +02:00
259 changed files with 920 additions and 567 deletions

View File

@@ -13,15 +13,15 @@ debug = False
saveInRoot = False
# Version data
version = "1.8.1"
tag = "Stable"
expansionName = "Proteus"
expansionVersion = "1.0"
version = "1.11.1"
tag = "git"
expansionName = "Singularity"
expansionVersion = "883859"
evemonMinVersion = "4081"
# Database version (int ONLY)
# Increment every time we need to flag for user database upgrade/modification
dbversion = 4
dbversion = 7
pyfaPath = None
savePath = None
@@ -29,6 +29,11 @@ staticPath = None
saveDB = None
gameDB = None
# TODO: move back to pyfa.py main loop
# We moved it here just to avoid rebuilding windows skeleton for now (any change to pyfa.py needs it)
import logging
logging.basicConfig()
def defPaths():
global pyfaPath
global savePath

View File

@@ -82,18 +82,25 @@ class CapSimulator(object):
if self.scale:
duration, capNeed = self.scale_activation(duration, capNeed)
if self.stagger:
duration = int(duration/amount)
else:
capNeed *= amount
period = lcm(period, duration)
# set clipSize to infinite if reloads are disabled unless it's
# a cap booster module.
if not self.reload and capNeed > 0:
clipSize = 0
if self.stagger:
if clipSize == 0:
duration = int(duration/amount)
else:
stagger_amount = (duration*clipSize+10000)/(amount*clipSize)
for i in range(1, amount):
heapq.heappush(self.state,
[i*stagger_amount, duration,
capNeed, 0, clipSize])
else:
capNeed *= amount
period = lcm(period, duration)
# period optimization doesn't work when reloads are active.
if clipSize:
disable_period = True

View File

@@ -1,11 +1,11 @@
import os.path
from os.path import realpath, join, dirname, abspath
import sys
debug = False
gamedataCache = True
saveddataCache = True
gamedata_connectionstring = 'sqlite:///' + os.path.expanduser(os.path.join("~", ".pyfa","eve.db"))
gamedata_connectionstring = 'sqlite:///' + unicode(realpath(join(dirname(abspath(__file__)), "..", "staticdata", "eve.db")), sys.getfilesystemencoding())
saveddata_connectionstring = 'sqlite:///:memory:'
#Autodetect path, only change if the autodetection bugs out.
path = os.path.dirname(unicode(__file__, sys.getfilesystemencoding()))
path = dirname(unicode(__file__, sys.getfilesystemencoding()))

View File

@@ -0,0 +1,8 @@
"""
Migration 5
Simply deletes damage profiles with a blank name. See GH issue #256
"""
def upgrade(saveddata_engine):
saveddata_engine.execute('DELETE FROM damagePatterns WHERE name LIKE ?', ("",))

View File

@@ -0,0 +1,9 @@
"""
Migration 6
Overwrites damage profile 0 to reset bad uniform values (bad values set with bug)
"""
def upgrade(saveddata_engine):
saveddata_engine.execute('DELETE FROM damagePatterns WHERE name LIKE ? OR ID LIKE ?', ("Uniform", "1"))
saveddata_engine.execute('INSERT INTO damagePatterns VALUES (?, ?, ?, ?, ?, ?, ?)', (1, "Uniform", 25, 25, 25, 25, None))

View File

@@ -0,0 +1,24 @@
"""
Migration 7
- Converts Scorpion Ishukone Watch to Scorpion
Mosaic introduced proper skinning system, and Ishukone Scorp
was the only ship which was presented as stand-alone ship in
Pyfa.
"""
CONVERSIONS = {
640: ( # Scorpion
4005, # Scorpion Ishukone Watch
)
}
def upgrade(saveddata_engine):
# Convert ships
for replacement_item, list in CONVERSIONS.iteritems():
for retired_item in list:
saveddata_engine.execute('UPDATE "fits" SET "shipID" = ? WHERE "shipID" = ?', (replacement_item, retired_item))

View File

@@ -2,7 +2,7 @@
#
# Used by:
# Modules from group: Missile Launcher Bomb (2 of 2)
# Modules from group: Shield Extender (37 of 37)
# Modules from group: Shield Extender (25 of 25)
type = "passive"
def handler(fit, module, context):
fit.ship.increaseItemAttr("signatureRadius", module.getModifiedItemAttr("signatureRadiusAdd"))

View File

@@ -1,7 +1,7 @@
# armorHPBonusAdd
#
# Used by:
# Modules from group: Armor Reinforcer (57 of 57)
# Modules from group: Armor Reinforcer (38 of 38)
type = "passive"
def handler(fit, module, context):
fit.ship.increaseItemAttr("armorHP", module.getModifiedItemAttr("armorHPBonusAdd"))

View File

@@ -1,7 +1,8 @@
# armorReinforcerMassAdd
#
# Used by:
# Modules from group: Armor Reinforcer (57 of 57)
# Modules from group: Armor Reinforcer (38 of 38)
# Modules from group: Entosis Link (2 of 2)
type = "passive"
def handler(fit, module, context):
fit.ship.increaseItemAttr("mass", module.getModifiedItemAttr("massAddition"))

View File

@@ -2,7 +2,6 @@
#
# Used by:
# Ship: Scorpion
# Ship: Scorpion Ishukone Watch
type = "passive"
def handler(fit, ship, context):
level = fit.character.getSkill("Caldari Battleship").level

View File

@@ -2,7 +2,6 @@
#
# Used by:
# Ship: Scorpion
# Ship: Scorpion Ishukone Watch
type = "passive"
def handler(fit, ship, context):
level = fit.character.getSkill("Caldari Battleship").level

View File

@@ -2,7 +2,6 @@
#
# Used by:
# Ship: Scorpion
# Ship: Scorpion Ishukone Watch
type = "passive"
def handler(fit, ship, context):
level = fit.character.getSkill("Caldari Battleship").level

View File

@@ -2,7 +2,6 @@
#
# Used by:
# Ship: Scorpion
# Ship: Scorpion Ishukone Watch
type = "passive"
def handler(fit, ship, context):
level = fit.character.getSkill("Caldari Battleship").level

View File

@@ -4,7 +4,7 @@
# Modules from group: Capacitor Flux Coil (6 of 6)
# Modules from group: Capacitor Power Relay (20 of 20)
# Modules from group: Power Diagnostic System (23 of 23)
# Modules from group: Propulsion Module (107 of 107)
# Modules from group: Propulsion Module (114 of 114)
# Modules from group: Reactor Control Unit (22 of 22)
# Modules from group: Shield Flux Coil (11 of 11)
# Modules from group: Shield Power Relay (11 of 11)

View File

@@ -6,6 +6,7 @@ gangBonus = "commandBonusTD"
gangBoost = "ewarStrTD"
type = "active", "gang"
def handler(fit, module, context):
if "gang" not in context: return
for bonus in ("maxRangeBonus", "falloffBonus", "trackingSpeedBonus"):
fit.modules.filteredItemBoost(lambda mod: lambda mod: mod.item.requiresSkill("Weapon Disruption"),
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Weapon Disruption"),
bonus, module.getModifiedItemAttr("commandBonusTD"))

View File

@@ -1,9 +1,9 @@
# commandshipMultiRelayEffect
#
# Used by:
# Ships from group: Capital Industrial Ship (2 of 2)
# Ships from group: Command Ship (8 of 8)
# Ships from group: Industrial Command Ship (2 of 2)
# Ship: Orca
# Ship: Rorqual
type = "passive"
def handler(fit, ship, context):
fit.modules.filteredItemIncrease(lambda mod: mod.item.group.name == "Gang Coordinator",

View File

@@ -3,6 +3,7 @@
# Used by:
# Ship: Astero
# Ship: Prospect
# Ship: Victorieux Luxury Yacht
type = "passive"
runTime = "early"
def handler(fit, ship, context):

View File

@@ -2,7 +2,6 @@
#
# Used by:
# Modules from group: Rig Drones (64 of 64)
# Modules named like: Optimizer (16 of 16)
type = "passive"
def handler(fit, module, context):
fit.ship.boostItemAttr("cpuOutput", module.getModifiedItemAttr("drawback"))

View File

@@ -2,6 +2,7 @@
#
# Used by:
# Modules from group: Rig Shield (72 of 72)
# Modules named like: Optimizer (16 of 16)
type = "passive"
def handler(fit, module, context):
fit.ship.boostItemAttr("signatureRadius", module.getModifiedItemAttr("drawback"), stackingPenalties = True)

View File

@@ -1,7 +1,7 @@
# dreadnoughtMD1ProjDmgBonus
#
# Used by:
# Ships named like: Naglfar (2 of 2)
# Ship: Naglfar
type = "passive"
def handler(fit, ship, context):
level = fit.character.getSkill("Minmatar Dreadnought").level

View File

@@ -1,7 +1,7 @@
# dreadnoughtMD3ProjRoFBonus
#
# Used by:
# Ships named like: Naglfar (2 of 2)
# Ship: Naglfar
type = "passive"
def handler(fit, ship, context):
level = fit.character.getSkill("Minmatar Dreadnought").level

View File

@@ -1,7 +1,7 @@
# dreadnoughtShipBonusHybridDmgG1
#
# Used by:
# Ships named like: Moros (2 of 2)
# Ship: Moros
type = "passive"
def handler(fit, ship, context):
level = fit.character.getSkill("Gallente Dreadnought").level

View File

@@ -1,7 +1,7 @@
# dreadnoughtShipBonusHybridRoFG2
#
# Used by:
# Ships named like: Moros (2 of 2)
# Ship: Moros
type = "passive"
def handler(fit, ship, context):
level = fit.character.getSkill("Gallente Dreadnought").level

View File

@@ -1,7 +1,7 @@
# dreadnoughtShipBonusLaserCapNeedA1
#
# Used by:
# Ships named like: Revelation (2 of 2)
# Ship: Revelation
type = "passive"
def handler(fit, ship, context):
level = fit.character.getSkill("Amarr Dreadnought").level

View File

@@ -1,7 +1,7 @@
# dreadnoughtShipBonusLaserRofA2
#
# Used by:
# Ships named like: Revelation (2 of 2)
# Ship: Revelation
type = "passive"
def handler(fit, ship, context):
level = fit.character.getSkill("Amarr Dreadnought").level

View File

@@ -1,7 +1,7 @@
# dreadnoughtShipBonusShieldResistancesC2
#
# Used by:
# Ships named like: Phoenix (2 of 2)
# Ship: Phoenix
type = "passive"
def handler(fit, ship, context):
level = fit.character.getSkill("Caldari Dreadnought").level

View File

@@ -1,7 +1,7 @@
# eliteBargeBonusIceHarvestingCycleTimeBarge3
#
# Used by:
# Ships from group: Exhumer (4 of 4)
# Ships from group: Exhumer (3 of 3)
type = "passive"
def handler(fit, ship, context):
level = fit.character.getSkill("Exhumers").level

View File

@@ -1,7 +1,7 @@
# eliteBargeBonusMiningDurationBarge2
#
# Used by:
# Ships from group: Exhumer (4 of 4)
# Ships from group: Exhumer (3 of 3)
type = "passive"
def handler(fit, ship, context):
level = fit.character.getSkill("Exhumers").level

View File

@@ -1,7 +1,7 @@
# eliteBargeShieldResistance1
#
# Used by:
# Ships from group: Exhumer (4 of 4)
# Ships from group: Exhumer (3 of 3)
type = "passive"
def handler(fit, ship, context):
level = fit.character.getSkill("Exhumers").level

View File

@@ -1,7 +1,7 @@
# eliteBonusMaraudersCruiseAndTorpedoDamageRole1
#
# Used by:
# Ships named like: Golem (4 of 4)
# Ship: Golem
type = "passive"
def handler(fit, ship, context):
damageTypes = ("em", "explosive", "kinetic", "thermal")

View File

@@ -1,7 +1,7 @@
# eliteBonusMaraudersHeavyMissileDamageEMRole1
#
# Used by:
# Ships named like: Golem (4 of 4)
# Ship: Golem
type = "passive"
def handler(fit, ship, context):
fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Missiles"),

View File

@@ -1,7 +1,7 @@
# eliteBonusMaraudersHeavyMissileDamageExpRole1
#
# Used by:
# Ships named like: Golem (4 of 4)
# Ship: Golem
type = "passive"
def handler(fit, ship, context):
fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Missiles"),

View File

@@ -1,7 +1,7 @@
# eliteBonusMaraudersHeavyMissileDamageKinRole1
#
# Used by:
# Ships named like: Golem (4 of 4)
# Ship: Golem
type = "passive"
def handler(fit, ship, context):
fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Missiles"),

View File

@@ -1,7 +1,7 @@
# eliteBonusMaraudersHeavyMissileDamageThermRole1
#
# Used by:
# Ships named like: Golem (4 of 4)
# Ship: Golem
type = "passive"
def handler(fit, ship, context):
fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Heavy Missiles"),

View File

@@ -1,7 +1,8 @@
# eliteBonusMarauderShieldBonus2a
#
# Used by:
# Ships from group: Marauder (8 of 16)
# Ship: Golem
# Ship: Vargur
type = "passive"
def handler(fit, ship, context):
level = fit.character.getSkill("Marauders").level

View File

@@ -1,7 +1,7 @@
# eliteBonusViolatorsEwTargetPainting1
#
# Used by:
# Ships named like: Golem (4 of 4)
# Ship: Golem
type = "passive"
def handler(fit, ship, context):
level = fit.character.getSkill("Marauders").level

View File

@@ -1,7 +1,7 @@
# eliteBonusViolatorsLargeEnergyTurretDamage1
#
# Used by:
# Ships named like: Paladin (4 of 4)
# Ship: Paladin
type = "passive"
def handler(fit, ship, context):
level = fit.character.getSkill("Marauders").level

View File

@@ -1,7 +1,7 @@
# eliteBonusViolatorsLargeEnergyTurretDamageRole1
#
# Used by:
# Ships named like: Paladin (4 of 4)
# Ship: Paladin
type = "passive"
def handler(fit, ship, context):
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Large Energy Turret"),

View File

@@ -1,7 +1,7 @@
# eliteBonusViolatorsLargeHybridTurretDamageRole1
#
# Used by:
# Ships named like: Kronos (4 of 4)
# Ship: Kronos
type = "passive"
def handler(fit, ship, context):
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Large Hybrid Turret"),

View File

@@ -1,7 +1,7 @@
# eliteBonusViolatorsLargeHybridTurretTracking1
#
# Used by:
# Ships named like: Kronos (4 of 4)
# Ship: Kronos
type = "passive"
def handler(fit, ship, context):
level = fit.character.getSkill("Marauders").level

View File

@@ -1,7 +1,7 @@
# eliteBonusViolatorsLargeProjectileTurretDamageRole1
#
# Used by:
# Ships named like: Vargur (4 of 4)
# Ship: Vargur
type = "passive"
def handler(fit, ship, context):
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Large Projectile Turret"),

View File

@@ -1,7 +1,7 @@
# eliteBonusViolatorsLargeProjectileTurretTracking1
#
# Used by:
# Ships named like: Vargur (4 of 4)
# Ship: Vargur
type = "passive"
def handler(fit, ship, context):
level = fit.character.getSkill("Marauders").level

View File

@@ -1,7 +1,8 @@
# eliteBonusViolatorsRepairSystemsArmorDamageAmount2
#
# Used by:
# Ships from group: Marauder (8 of 16)
# Ship: Kronos
# Ship: Paladin
type = "passive"
def handler(fit, ship, context):
level = fit.character.getSkill("Marauders").level

View File

@@ -1,7 +1,7 @@
# eliteBonusViolatorsTractorBeamMaxRangeRole2
#
# Used by:
# Ships from group: Marauder (16 of 16)
# Ships from group: Marauder (4 of 4)
type = "passive"
def handler(fit, ship, context):
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Tractor Beam",

View File

@@ -1,7 +1,7 @@
# eliteBonusViolatorsTractorBeamMaxTractorVelocityRole3
#
# Used by:
# Ships from group: Marauder (16 of 16)
# Ships from group: Marauder (4 of 4)
type = "passive"
def handler(fit, ship, context):
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Tractor Beam",

View File

@@ -0,0 +1,7 @@
# entosisLink
#
# Used by:
# Modules from group: Entosis Link (2 of 2)
type = "active"
def handler(fit, module, context):
pass

View File

@@ -1,9 +1,8 @@
# iceHarvesterCapacitorNeedMultiplier
#
# Used by:
# Ships from group: Exhumer (3 of 4)
# Ship: Procurer
# Ship: Retriever
# Variations of ship: Procurer (2 of 2)
# Variations of ship: Retriever (2 of 2)
type = "passive"
def handler(fit, ship, context):
fit.modules.filteredItemMultiply(lambda mod: mod.item.requiresSkill("Ice Harvesting"),

View File

@@ -1,9 +1,8 @@
# iceHarvesterDurationMultiplier
#
# Used by:
# Ships from group: Exhumer (3 of 4)
# Ship: Procurer
# Ship: Retriever
# Variations of ship: Procurer (2 of 2)
# Variations of ship: Retriever (2 of 2)
type = "passive"
def handler(fit, ship, context):
fit.modules.filteredItemMultiply(lambda mod: mod.item.requiresSkill("Ice Harvesting"),

View File

@@ -4,12 +4,12 @@
# Ships from group: Covert Ops (5 of 5)
# Ships named like: Stratios (2 of 2)
# Subsystems named like: Electronics Emergent Locus Analyzer (4 of 4)
# Variations of ship: Heron (3 of 3)
# Variations of ship: Imicus (3 of 3)
# Variations of ship: Magnate (4 of 6)
# Variations of ship: Probe (3 of 3)
# Ship: Astero
# Ship: Heron
# Ship: Imicus
# Ship: Magnate
# Ship: Nestor
# Ship: Probe
type = "passive"
def handler(fit, container, context):
level = container.level if "skill" in context else 1

View File

@@ -1,7 +1,7 @@
# miningDirectorBonusCommandBonusEffective
#
# Used by:
# Ships from group: Capital Industrial Ship (2 of 2)
# Ship: Rorqual
type = "passive"
def handler(fit, ship, context):
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Mining Director"),

View File

@@ -1,10 +1,9 @@
# miningYieldMultiplyPassive
#
# Used by:
# Ships from group: Exhumer (3 of 4)
# Variations of ship: Procurer (2 of 2)
# Variations of ship: Retriever (2 of 2)
# Variations of ship: Venture (2 of 2)
# Ship: Procurer
# Ship: Retriever
type = "passive"
def handler(fit, module, context):
fit.modules.filteredItemMultiply(lambda mod: mod.item.requiresSkill("Mining"),

View File

@@ -2,6 +2,7 @@
#
# Used by:
# Ship: Bellicose
# Ship: Rapier
type = "passive"
def handler(fit, ship, context):
level = fit.character.getSkill("Minmatar Cruiser").level

View File

@@ -2,7 +2,6 @@
#
# Used by:
# Ship: Huginn
# Ship: Rapier
type = "passive"
def handler(fit, ship, context):
level = fit.character.getSkill("Minmatar Cruiser").level

View File

@@ -1,8 +1,12 @@
# modeAgilityPostDiv
#
# Used by:
# Module: Amarr Tactical Destroyer Propulsion Mode
# Modules named like: Propulsion Mode (3 of 3)
type = "passive"
def handler(fit, module, context):
fit.ship.multiplyItemAttr("agility", 1/module.getModifiedItemAttr("modeAgilityPostDiv"),
stackingPenalties = True, penaltyGroup="postDiv")
fit.ship.multiplyItemAttr(
"agility",
1 / module.getModifiedItemAttr("modeAgilityPostDiv"),
stackingPenalties=True,
penaltyGroup="postDiv"
)

View File

@@ -1,15 +1,19 @@
# modeArmorResonancePostDiv
#
# Used by:
# Module: Amarr Tactical Destroyer Defense Mode
# Module: Confessor Defense Mode
# Module: Svipul Defense Mode
type = "passive"
def handler(fit, module, context):
for resType in ("Em", "Explosive", "Kinetic"):
fit.ship.multiplyItemAttr("armor{0}DamageResonance".format(resType),
1/module.getModifiedItemAttr("mode{0}ResistancePostDiv".format(resType)),
stackingPenalties = True, penaltyGroup="postDiv")
# Thermal != Thermic
fit.ship.multiplyItemAttr("armorThermalDamageResonance",
1/module.getModifiedItemAttr("modeThermicResistancePostDiv"),
stackingPenalties = True, penaltyGroup="postDiv")
for srcResType, tgtResType in (
("Em", "Em"),
("Explosive", "Explosive"),
("Kinetic", "Kinetic"),
("Thermic", "Thermal")
):
fit.ship.multiplyItemAttr(
"armor{0}DamageResonance".format(tgtResType),
1 / module.getModifiedItemAttr("mode{0}ResistancePostDiv".format(srcResType)),
stackingPenalties=True,
penaltyGroup="postDiv"
)

View File

@@ -0,0 +1,13 @@
# modeMWDSigRadiusPostDiv
#
# Used by:
# Module: Svipul Defense Mode
type = "passive"
def handler(fit, module, context):
fit.modules.filteredItemMultiply(
lambda mod: mod.item.requiresSkill("High Speed Maneuvering"),
"signatureRadiusBonus",
1 / module.getModifiedItemAttr("modeMWDSigPenaltyPostDiv"),
stackingPenalties=True,
penaltyGroup="postDiv"
)

View File

@@ -0,0 +1,19 @@
# modeShieldResonancePostDiv
#
# Used by:
# Module: Jackdaw Defense Mode
# Module: Svipul Defense Mode
type = "passive"
def handler(fit, module, context):
for srcResType, tgtResType in (
("Em", "Em"),
("Explosive", "Explosive"),
("Kinetic", "Kinetic"),
("Thermic", "Thermal")
):
fit.ship.multiplyItemAttr(
"shield{0}DamageResonance".format(tgtResType),
1 / module.getModifiedItemAttr("mode{0}ResistancePostDiv".format(srcResType)),
stackingPenalties=True,
penaltyGroup="postDiv"
)

View File

@@ -1,9 +1,9 @@
# modeSigRadiusPostDiv
#
# Used by:
# Module: Amarr Tactical Destroyer Defense Mode
# Module: Confessor Defense Mode
# Module: Jackdaw Defense Mode
type = "passive"
def handler(fit, module, context):
level = fit.character.getSkill("Minmatar Destroyer").level
fit.ship.multiplyItemAttr("signatureRadius", 1/module.getModifiedItemAttr("modeSignatureRadiusPostDiv"),
stackingPenalties = True, penaltyGroup="postDiv")
fit.ship.multiplyItemAttr("signatureRadius", 1 / module.getModifiedItemAttr("modeSignatureRadiusPostDiv"),
stackingPenalties=True, penaltyGroup="postDiv")

View File

@@ -1,8 +1,12 @@
# modeVelocityPostDiv
#
# Used by:
# Module: Amarr Tactical Destroyer Propulsion Mode
# Modules named like: Propulsion Mode (3 of 3)
type = "passive"
def handler(fit, module, context):
fit.ship.multiplyItemAttr("maxVelocity", 1/module.getModifiedItemAttr("modeVelocityPostDiv"),
stackingPenalties = True, penaltyGroup="postDiv")
fit.ship.multiplyItemAttr(
"maxVelocity",
1 / module.getModifiedItemAttr("modeVelocityPostDiv"),
stackingPenalties=True,
penaltyGroup="postDiv"
)

View File

@@ -2,7 +2,7 @@
#
# Used by:
# Ships from group: Assault Frigate (8 of 12)
# Ships from group: Heavy Assault Cruiser (10 of 13)
# Ships from group: Heavy Assault Cruiser (8 of 11)
type = "passive"
def handler(fit, ship, context):
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("High Speed Maneuvering"),

View File

@@ -1,7 +1,7 @@
# oreCapitalShipShieldTransferRange
#
# Used by:
# Ships from group: Capital Industrial Ship (2 of 2)
# Ship: Rorqual
type = "passive"
def handler(fit, ship, context):
level = fit.character.getSkill("Capital Industrial Ships").level

View File

@@ -1,7 +1,7 @@
# overloadRofBonus
#
# Used by:
# Modules from group: Energy Weapon (100 of 186)
# Modules from group: Energy Weapon (100 of 187)
# Modules from group: Hybrid Weapon (110 of 202)
# Modules from group: Missile Launcher Citadel (4 of 4)
# Modules from group: Missile Launcher Heavy (12 of 12)

View File

@@ -1,7 +1,7 @@
# overloadSelfDamageBonus
#
# Used by:
# Modules from group: Energy Weapon (86 of 186)
# Modules from group: Energy Weapon (86 of 187)
# Modules from group: Hybrid Weapon (92 of 202)
# Modules from group: Projectile Weapon (86 of 146)
type = "overheat"

View File

@@ -1,7 +1,7 @@
# overloadSelfSpeedBonus
#
# Used by:
# Modules from group: Propulsion Module (107 of 107)
# Modules from group: Propulsion Module (114 of 114)
type = "overheat"
def handler(fit, module, context):
module.boostItemAttr("speedFactor", module.getModifiedItemAttr("overloadSpeedFactorBonus"),

View File

@@ -1,7 +1,7 @@
# probeLauncherCPUPercentBonusTacticalDestroyer
#
# Used by:
# Ship: Confessor
# Ships from group: Tactical Destroyer (3 of 3)
type = "passive"
def handler(fit, ship, context):
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Astrometrics"),

View File

@@ -1,4 +1,4 @@
# energyTransferPowerNeedBonusEffect
# remoteCapacitorTransmitterPowerNeedBonusEffect
#
# Used by:
# Ships from group: Logistics (3 of 5)

View File

@@ -1,7 +1,7 @@
# roleBonusMarauderMJDRReactivationDelayBonus
#
# Used by:
# Ships from group: Marauder (16 of 16)
# Ships from group: Marauder (4 of 4)
type = "passive"
def handler(fit, ship, context):
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Micro Jump Drive",

View File

@@ -1,7 +1,7 @@
# rorqualCargoScanRangeBonus
#
# Used by:
# Ships from group: Capital Industrial Ship (2 of 2)
# Ship: Rorqual
type = "passive"
def handler(fit, ship, context):
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Cargo Scanner",

View File

@@ -1,7 +1,7 @@
# rorqualSurveyScannerRangeBonus
#
# Used by:
# Ships from group: Capital Industrial Ship (2 of 2)
# Ship: Rorqual
type = "passive"
def handler(fit, ship, context):
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Survey Scanner",

View File

@@ -5,7 +5,9 @@
# Module: QA ECCM
type = "active"
def handler(fit, module, context):
for type in ("Gravimetric", "Magnetometric", "Radar", "Ladar"):
fit.ship.boostItemAttr("scan%sStrength" % type,
module.getModifiedItemAttr("scan%sStrengthPercent" % type),
stackingPenalties = True)
for scanType in ("Gravimetric", "Magnetometric", "Radar", "Ladar"):
fit.ship.boostItemAttr(
"scan{}Strength".format(scanType),
module.getModifiedItemAttr("scan{}StrengthPercent".format(scanType)),
stackingPenalties=True
)

View File

@@ -2,7 +2,7 @@
#
# Used by:
# Modules from group: Shield Amplifier (88 of 88)
# Modules from group: Shield Extender (37 of 37)
# Modules from group: Shield Extender (25 of 25)
type = "passive"
def handler(fit, module, context):
fit.ship.increaseItemAttr("shieldCapacity", module.getModifiedItemAttr("capacityBonus"))

View File

@@ -1,7 +1,7 @@
# shipAdvancedSpaceshipCommandAgilityBonus
#
# Used by:
# Items from market group: Ships > Capital Ships (32 of 34)
# Items from market group: Ships > Capital Ships (27 of 28)
type = "passive"
def handler(fit, ship, context):
skill = fit.character.getSkill("Advanced Spaceship Command")

View File

@@ -3,7 +3,6 @@
# Used by:
# Variations of ship: Prophecy (2 of 2)
# Ship: Absolution
# Ship: Prophecy Blood Raiders Edition
type = "passive"
def handler(fit, ship, context):
level = fit.character.getSkill("Amarr Battlecruiser").level

View File

@@ -1,9 +1,9 @@
# shipArmorEMResistanceAF1
#
# Used by:
# Ships named like: Punisher (3 of 3)
# Ship: Astero
# Ship: Malice
# Ship: Punisher
type = "passive"
def handler(fit, ship, context):
level = fit.character.getSkill("Amarr Frigate").level

View File

@@ -3,7 +3,6 @@
# Used by:
# Variations of ship: Prophecy (2 of 2)
# Ship: Absolution
# Ship: Prophecy Blood Raiders Edition
type = "passive"
def handler(fit, ship, context):
level = fit.character.getSkill("Amarr Battlecruiser").level

View File

@@ -1,9 +1,9 @@
# shipArmorEXResistanceAF1
#
# Used by:
# Ships named like: Punisher (3 of 3)
# Ship: Astero
# Ship: Malice
# Ship: Punisher
type = "passive"
def handler(fit, ship, context):
level = fit.character.getSkill("Amarr Frigate").level

View File

@@ -3,7 +3,6 @@
# Used by:
# Variations of ship: Prophecy (2 of 2)
# Ship: Absolution
# Ship: Prophecy Blood Raiders Edition
type = "passive"
def handler(fit, ship, context):
level = fit.character.getSkill("Amarr Battlecruiser").level

View File

@@ -1,9 +1,9 @@
# shipArmorKNResistanceAF1
#
# Used by:
# Ships named like: Punisher (3 of 3)
# Ship: Astero
# Ship: Malice
# Ship: Punisher
type = "passive"
def handler(fit, ship, context):
level = fit.character.getSkill("Amarr Frigate").level

View File

@@ -4,7 +4,6 @@
# Variations of ship: Myrmidon (2 of 2)
# Ship: Astarte
# Ship: Brutix
# Ship: Brutix Serpentis Edition
type = "passive"
def handler(fit, ship, context):
level = fit.character.getSkill("Gallente Battlecruiser").level

View File

@@ -1,7 +1,7 @@
# shipArmorRepairingGF2
#
# Used by:
# Ships named like: Incursus (3 of 3)
# Ship: Incursus
type = "passive"
def handler(fit, ship, context):
level = fit.character.getSkill("Gallente Frigate").level

View File

@@ -3,7 +3,6 @@
# Used by:
# Variations of ship: Prophecy (2 of 2)
# Ship: Absolution
# Ship: Prophecy Blood Raiders Edition
type = "passive"
def handler(fit, ship, context):
level = fit.character.getSkill("Amarr Battlecruiser").level

View File

@@ -1,9 +1,9 @@
# shipArmorTHResistanceAF1
#
# Used by:
# Ships named like: Punisher (3 of 3)
# Ship: Astero
# Ship: Malice
# Ship: Punisher
type = "passive"
def handler(fit, ship, context):
level = fit.character.getSkill("Amarr Frigate").level

View File

@@ -1,7 +1,7 @@
# shipBonusAoeVelocityCruiseAndTorpedoCB2
#
# Used by:
# Ships named like: Golem (4 of 4)
# Ship: Golem
type = "passive"
def handler(fit, ship, context):
level = fit.character.getSkill("Caldari Battleship").level

View File

@@ -1,7 +1,7 @@
# shipBonusArmorResistAB
#
# Used by:
# Ships named like: Abaddon (3 of 3)
# Ship: Abaddon
# Ship: Nestor
type = "passive"
def handler(fit, ship, context):

View File

@@ -1,8 +1,8 @@
# shipBonusCapCapAB
#
# Used by:
# Ships named like: Paladin (4 of 4)
# Ship: Apocalypse Imperial Issue
# Ship: Paladin
type = "passive"
def handler(fit, ship, context):
level = fit.character.getSkill("Amarr Battleship").level

View File

@@ -3,7 +3,6 @@
# Used by:
# Variations of ship: Miasmos (3 of 4)
# Variations of ship: Nereus (2 of 2)
# Ship: Iteron Inner Zone Shipping Edition
# Ship: Iteron Mark V
type = "passive"
def handler(fit, ship, context):

View File

@@ -1,8 +1,8 @@
# shipBonusCargoCI
#
# Used by:
# Ships named like: Tayra (2 of 2)
# Variations of ship: Badger (2 of 2)
# Ship: Tayra
type = "passive"
def handler(fit, ship, context):
level = fit.character.getSkill("Caldari Industrial").level

View File

@@ -1,8 +1,8 @@
# shipBonusCargoMI
#
# Used by:
# Ships named like: Mammoth (2 of 2)
# Variations of ship: Wreathe (2 of 2)
# Ship: Mammoth
type = "passive"
def handler(fit, ship, context):
level = fit.character.getSkill("Minmatar Industrial").level

View File

@@ -1,7 +1,7 @@
# shipBonusDreadCitadelCruiseRofC1
#
# Used by:
# Ships named like: Phoenix (2 of 2)
# Ship: Phoenix
type = "passive"
def handler(fit, ship, context):
level = fit.character.getSkill("Caldari Dreadnought").level

View File

@@ -1,7 +1,7 @@
# shipBonusDreadCitadelTorpRofC1
#
# Used by:
# Ships named like: Phoenix (2 of 2)
# Ship: Phoenix
type = "passive"
def handler(fit, ship, context):
level = fit.character.getSkill("Caldari Dreadnought").level

View File

@@ -1,7 +1,7 @@
# shipBonusDroneDamageMultiplierABC2
#
# Used by:
# Ships named like: Prophecy (2 of 2)
# Ship: Prophecy
type = "passive"
def handler(fit, ship, context):
level = fit.character.getSkill("Amarr Battlecruiser").level

View File

@@ -2,7 +2,6 @@
#
# Used by:
# Variations of ship: Dominix (3 of 3)
# Ship: Dominix Quafe Edition
# Ship: Nestor
type = "passive"
def handler(fit, ship, context):

View File

@@ -2,8 +2,8 @@
#
# Used by:
# Ships named like: Stratios (2 of 2)
# Variations of ship: Vexor (3 of 4)
# Ship: Vexor Quafe Edition
# Ship: Vexor
# Ship: Vexor Navy Issue
type = "passive"
def handler(fit, ship, context):
level = fit.character.getSkill("Gallente Cruiser").level

View File

@@ -1,7 +1,7 @@
# shipBonusDroneHitpointsABC2
#
# Used by:
# Ships named like: Prophecy (2 of 2)
# Ship: Prophecy
type = "passive"
def handler(fit, ship, context):
level = fit.character.getSkill("Amarr Battlecruiser").level

View File

@@ -2,7 +2,6 @@
#
# Used by:
# Variations of ship: Dominix (3 of 3)
# Ship: Dominix Quafe Edition
# Ship: Nestor
type = "passive"
def handler(fit, ship, context):

View File

@@ -2,8 +2,8 @@
#
# Used by:
# Ships named like: Stratios (2 of 2)
# Variations of ship: Vexor (3 of 4)
# Ship: Vexor Quafe Edition
# Ship: Vexor
# Ship: Vexor Navy Issue
type = "passive"
def handler(fit, ship, context):
level = fit.character.getSkill("Gallente Cruiser").level

View File

@@ -1,8 +1,8 @@
# shipBonusDroneHitpointsGF
#
# Used by:
# Ships named like: Tristan (2 of 2)
# Ship: Astero
# Ship: Tristan
type = "passive"
def handler(fit, ship, context):
level = fit.character.getSkill("Gallente Frigate").level

View File

@@ -1,7 +1,8 @@
# shipBonusDroneMiningAmountGC2
#
# Used by:
# Ships named like: Vexor (3 of 4)
# Ship: Vexor
# Ship: Vexor Navy Issue
type = "passive"
def handler(fit, ship, context):
level = fit.character.getSkill("Gallente Cruiser").level

View File

@@ -2,7 +2,6 @@
#
# Used by:
# Ship: Dominix
# Ship: Dominix Quafe Edition
type = "passive"
def handler(fit, ship, context):
level = fit.character.getSkill("Gallente Battleship").level

View File

@@ -2,7 +2,6 @@
#
# Used by:
# Ship: Dominix
# Ship: Dominix Quafe Edition
type = "passive"
def handler(fit, ship, context):
level = fit.character.getSkill("Gallente Battleship").level

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