Compare commits

...

81 Commits

Author SHA1 Message Date
blitzmann
3394fabfc8 Bump to stable version 2014-09-30 19:37:23 -04:00
blitzmann
1bdfd7f924 Those who keep up with dev branch had issues with new migrations. 2014-09-30 18:03:04 -04:00
blitzmann
b69a46f9b1 Update to Oceanus 1.0 2014-09-30 13:28:56 -04:00
blitzmann
c17579505c Merge branch 'singularity' 2014-09-30 13:28:08 -04:00
blitzmann
2f990b9de2 Add auto backup when migrating data 2014-09-30 13:20:51 -04:00
blitzmann
c9f33f200d Fix #119 2014-09-29 16:20:59 -04:00
blitzmann
4abde609d8 Remove old effects, and modify current effects using new header with real effect name 2014-09-29 14:20:12 -04:00
blitzmann
9c09cef783 Added option to automatically remove unused effects with --remove flag 2014-09-29 14:09:56 -04:00
blitzmann
7570fee97b Include real effect name in effect file comments to assist with debugging 2014-09-29 14:02:05 -04:00
blitzmann
22e8330045 Add Scram effect (does not include projection effects) 2014-09-29 13:43:21 -04:00
blitzmann
98c37a253f Fix background color on fleet view on Linux 2014-09-29 11:38:49 -04:00
blitzmann
a931d46cb0 Implement open fit context item for projected fits 2014-09-29 01:02:00 -04:00
blitzmann
f4de596193 Add Oceanus module conversions to market item overrides 2014-09-28 02:54:36 -04:00
blitzmann
973a081e8d Update to 829786 2014-09-28 02:08:33 -04:00
blitzmann
3054ac9d90 Introduce new migration procedure.
This creates a new migration module that include upgrade logic files, one file for each DB version. It should be noted that this will not support downgrades (the previous method didn't really support them either)
2014-09-28 00:14:10 -04:00
blitzmann
4ea2636788 Fix #171 2014-09-21 23:44:19 -04:00
Ryan Holmes
b5f2df58ce Merge pull request #168 from blitzmann/161-effDps
Implement effective DPS
2014-09-19 19:18:20 -04:00
blitzmann
6d15645198 Added some docs to chrome tabs, and removed / commented some slight redundancies as well as style tweaks 2014-09-19 00:07:55 -04:00
blitzmann
a1bd671d89 Give a bit more horizontal room for fleet view (more work needs to be done - looks like crap on gtk) 2014-09-19 00:05:27 -04:00
blitzmann
aba5d43fc7 Added some docs ChromeTabs and did some cleaning 2014-09-17 19:00:09 -04:00
blitzmann
c903dff8ad Removed debugging prints 2014-09-15 18:02:49 -04:00
blitzmann
35d5c49745 Allow us to select target resist after creating / renaming it 2014-09-15 16:11:30 -04:00
blitzmann
030e6aa9db Instead of sending id, send parent item (which contains ID). This allows us to access the item to modify bitmap or any other value for it. 2014-09-15 15:48:26 -04:00
blitzmann
cc770898d9 Fixes issue where cargo is not copied with fit 2014-09-14 17:46:14 -04:00
blitzmann
8e383a085e Enable Ctrl+Page(Up/Down) for fitting tab navigation 2014-09-13 00:32:00 -04:00
blitzmann
5fef07a552 Fix background color for empty fitting view on Linux (and osx?) 2014-09-13 00:14:30 -04:00
DarkPhoenix
72e272084e Fix #159
Added all new system-wide effects as postMul, removed penalty group for cases where in coincides with 'default' group (e.g. it's also postMul for turret damage mods)
2014-09-09 19:54:38 +04:00
Anton Vorobyov
a2499cc070 Merge pull request #160 from blitzmann/fix-159
Fixes for stacking penalties for various wormhole effects
2014-09-09 19:16:42 +04:00
DarkPhoenix
c262acd0dc RR drone rigs are penalized 2014-09-09 15:44:21 +04:00
blitzmann
da047106f3 Implements support for child menus for damage patterns. 2014-09-08 01:11:38 -04:00
blitzmann
c04bb8f82c Greatly simplified target resists menu logic. Also added active bitmap 2014-09-04 00:23:41 -04:00
blitzmann
bb16e649af Added message to damage profile export 2014-09-03 18:45:04 -04:00
blitzmann
035443b4ff We now use EFT-style import/exports for damage profiles.
Also, percentages now shown next to damage amount instead of foot (where notifications are going)
2014-09-03 14:56:44 -04:00
blitzmann
0e10ac3928 Damage Pattern editor cleanup / GUI improvements 2014-09-03 13:52:42 -04:00
blitzmann
f0473f1eab Added support to show errors for resist imports, as well as many improvements to GUI logic. 2014-09-03 12:52:05 -04:00
blitzmann
a95eabac7b TargetResists: drones work. Also cleaned up redundancy in module.damageStats() 2014-09-03 01:37:59 -04:00
blitzmann
1ab76a7170 Commit initial work for effect DPS / Target resists 2014-09-03 00:49:53 -04:00
blitzmann
53c4a31334 Fix Guided Missile Precision skill for Citadel missiles 2014-08-30 13:07:18 -04:00
blitzmann
f02be0b0fd Update Notifications: Sort release results by published date before iterating 2014-08-28 20:34:16 -04:00
blitzmann
0524b901f5 Fixes for stacking penalties for various wormhole effects 2014-08-27 23:12:30 -04:00
blitzmann
d5a701ab31 If in debug mode, open effect file when double clicking effect (windows only) 2014-08-27 21:29:04 -04:00
DarkPhoenix
55c7488a0d Update ship icons 2014-08-27 02:52:25 +04:00
DarkPhoenix
8c8cf05207 Add icons for AT12 prize ships and move them to limited issue category 2014-08-27 02:34:19 +04:00
DarkPhoenix
ab9822b37e Bump version to indicate next development cycle 2014-08-27 01:21:49 +04:00
DarkPhoenix
4e5f27a643 Bump version for stable release 2014-08-27 00:44:25 +04:00
DarkPhoenix
92c9e1afc3 Fix black hole missile velocity effect 2014-08-27 00:13:59 +04:00
DarkPhoenix
e6e503f9e8 Merge branch 'master' of github.com:DarkFenX/Pyfa 2014-08-27 00:03:18 +04:00
DarkPhoenix
578716767f Hide tournament MJU 2014-08-27 00:02:39 +04:00
blitzmann
ec083428da Fit search shortcut: Fix focus issues for Linux 2014-08-26 16:01:39 -04:00
DarkPhoenix
f57c18810e Fix broken refresh button in item stats view 2014-08-26 23:59:05 +04:00
DarkPhoenix
5d4c0b443e Added couple of vanity variations (which are not so vanity - their stats differ from original) to limited issue group 2014-08-26 23:20:23 +04:00
DarkPhoenix
b89f55c675 Remove obsolete scripts 2014-08-26 22:59:23 +04:00
DarkPhoenix
81d991b48d Update database to 820762 2014-08-26 22:57:48 +04:00
DarkPhoenix
944bc971bd Update chatroom to the one we're actually using 2014-08-26 22:53:48 +04:00
DarkPhoenix
cf44af3586 Merge branch 'master' into singularity 2014-08-26 22:47:50 +04:00
DarkPhoenix
3e70a6fd7c Fix #139 (Compare Charges mismatch) 2014-08-26 18:19:39 +04:00
blitzmann
59be18506c Added "Open in Ship Browser" to fitting context menu, and modified a bit of the history logic in shipBrowser. 2014-08-19 23:50:10 -04:00
Ryan Holmes
b1bf14de29 Merge pull request #155 from blitzmann/network
Network service, other things - Resolves #135
2014-08-19 16:50:32 -04:00
blitzmann
2dd8453bbb Give itemStat width more room on GTK, resolves #113 2014-08-19 16:22:37 -04:00
blitzmann
4e61d1b17a Update 818790 2014-08-19 09:00:54 -04:00
blitzmann
458e89a534 Fixes #154 2014-08-18 17:46:51 -04:00
blitzmann
493bf5cb0d Merge remote-tracking branch 'origin/master' 2014-08-18 01:24:04 -04:00
Ryan Holmes
0032163a38 Merge pull request #152 from DarkFenX/jams
Adds "Chance to Jam" to Sensor Strength tooltip, resolves #114
2014-08-18 01:20:06 -04:00
blitzmann
84ac71f528 Fixed bugs introduced from code consistency fix 2014-08-18 01:10:49 -04:00
blitzmann
e8041470c8 Remove / disable debugging prints 2014-08-17 23:40:22 -04:00
blitzmann
8928d394c0 Updates "update" prefs to reflect new changes 2014-08-17 23:27:07 -04:00
blitzmann
0881abae7b Moves price fetching to new service as well as removes old and defunct c0rporation price source (along with much of the price fetching logic used to support multiple sources) 2014-08-17 21:47:07 -04:00
blitzmann
0686b602c6 Adds network toggling to the preferences, as well as a few tweaks to network service 2014-08-15 01:00:31 -04:00
blitzmann
fa5edbb804 Fix reference to old eveapi 2014-08-14 22:52:55 -04:00
blitzmann
1279b20370 Some (bad) network error handling logic, borrowed from eveapi 2014-08-14 22:52:27 -04:00
blitzmann
ed1b9854a0 Modify eveapi to work with pyfa service, move all character API calls from EOS to Character service and use new network service 2014-08-14 11:44:50 -04:00
blitzmann
4fe80b7554 Implement new network service for: Updates, CREST. 2014-08-14 11:43:25 -04:00
blitzmann
a5773a3fd6 Update to eveapi 1.3.0, and move to service. 2014-08-14 01:59:03 -04:00
blitzmann
ca61be2476 Bump SISI version 2014-08-11 17:14:23 -04:00
Ryan Holmes
ae02e214f0 Add effects up to 8.47.816656 2014-08-11 21:06:09 +00:00
blitzmann
a0093d9760 Update to EVE 8.47.816656 2014-08-11 14:03:44 -04:00
blitzmann
11891340af Merge branch 'linux' 2014-08-11 13:31:35 -04:00
blitzmann
e60735a1f2 wxGTK itemStats Improvements: fixes button sizes, removes first column size on effects and increases second colum to prevent clipping
with window borders.
2014-08-11 02:15:34 -04:00
blitzmann
ce3772ecee Set a min size for character selection. This prevents the character selector from stretching the entire stats panel with long character names 2014-08-11 01:27:47 -04:00
blitzmann
bec61e43ae Only do overload effect if not projecting (otherwise overload bonus is applied twice) 2014-08-07 23:09:03 -04:00
blitzmann
d29b4d91e9 Adds "Chance to Jam" to Sensor Strength tooltip 2014-08-07 22:47:59 -04:00
2010 changed files with 5868 additions and 2114 deletions

View File

@@ -13,12 +13,16 @@ debug = False
saveInRoot = False
# Version data
version = "1.3.1"
tag = "git"
expansionName = "Crius"
version = "1.5.0"
tag = "Stable"
expansionName = "Oceanus"
expansionVersion = "1.0"
evemonMinVersion = "4081"
# Database version (int ONLY)
# Increment every time we need to flag for user database upgrade/modification
dbversion = 1
pyfaPath = None
savePath = None
staticPath = None

View File

@@ -49,7 +49,6 @@ if saveddata_connectionstring is not None:
saveddata_meta = MetaData()
saveddata_meta.bind = saveddata_engine
migration.update(saveddata_engine)
saveddata_session = sessionmaker(bind=saveddata_engine, autoflush=False, expire_on_commit=False)()
# Lock controlling any changes introduced to session
@@ -66,7 +65,7 @@ from eos.db.saveddata.queries import getUser, getCharacter, getFit, getFitsWithS
getCharacterList, getPrice, getDamagePatternList, getDamagePattern, \
getFitList, getFleetList, getFleet, save, remove, commit, add, \
getCharactersForUser, getMiscData, getSquadsIDsWithFitID, getWing, \
getSquad, getBoosterFits, getProjectedFits
getSquad, getBoosterFits, getProjectedFits, getTargetResistsList, getTargetResists
#If using in memory saveddata, you'll want to reflect it so the data structure is good.
if config.saveddata_connectionstring == "sqlite:///:memory:":

View File

@@ -1,59 +1,32 @@
import sqlalchemy
import config
import shutil
import time
def getVersion(db):
cursor = db.execute('PRAGMA user_version')
return cursor.fetchone()[0]
def update(saveddata_engine):
checkPriceFailures(saveddata_engine)
checkApiDefaultChar(saveddata_engine)
checkFitBooster(saveddata_engine)
currversion = getVersion(saveddata_engine)
def checkPriceFailures(saveddata_engine):
# Check if we have 'failed' column
try:
saveddata_engine.execute("SELECT failed FROM prices")
except sqlalchemy.exc.DatabaseError:
# As we don't have any important data there, let's just drop
# and recreate whole table
from eos.db.saveddata.price import prices_table
# Attempt to drop/create table only if it's already there
try:
prices_table.drop(saveddata_engine)
prices_table.create(saveddata_engine)
except sqlalchemy.exc.DatabaseError:
pass
if currversion == config.dbversion:
return
if currversion < config.dbversion:
# Automatically backup database
toFile = "%s/saveddata_migration_%d-%d_%s.db"%(
config.savePath,
currversion,
config.dbversion,
time.strftime("%Y%m%d_%H%M%S"))
def checkApiDefaultChar(saveddata_engine):
try:
saveddata_engine.execute("SELECT * FROM characters LIMIT 1")
# If table doesn't exist, it means we're doing everything from scratch
# and sqlalchemy will process everything as needed
except sqlalchemy.exc.DatabaseError:
pass
# If not, we're running on top of existing DB
else:
# Check that we have columns
try:
saveddata_engine.execute("SELECT defaultChar, chars FROM characters LIMIT 1")
# If we don't, create them
# This is ugly as hell, but we can't use proper migrate packages as it
# will require us to rebuild skeletons, including mac
except sqlalchemy.exc.DatabaseError:
saveddata_engine.execute("ALTER TABLE characters ADD COLUMN defaultChar INTEGER;")
saveddata_engine.execute("ALTER TABLE characters ADD COLUMN chars VARCHAR;")
shutil.copyfile(config.saveDB, toFile)
def checkFitBooster(saveddata_engine):
try:
saveddata_engine.execute("SELECT * FROM fits LIMIT 1")
# If table doesn't exist, it means we're doing everything from scratch
# and sqlalchemy will process everything as needed
except sqlalchemy.exc.DatabaseError:
pass
# If not, we're running on top of existing DB
else:
# Check that we have columns
try:
saveddata_engine.execute("SELECT booster FROM fits LIMIT 1")
# If we don't, create them
except sqlalchemy.exc.DatabaseError:
saveddata_engine.execute("ALTER TABLE fits ADD COLUMN booster BOOLEAN;")
# Set NULL data to 0 (needed in case of downgrade, see GH issue #62
saveddata_engine.execute("UPDATE fits SET booster = 0 WHERE booster IS NULL;")
for version in xrange(currversion, config.dbversion):
module = __import__('eos.db.migrations.upgrade%d'%(version+1), fromlist=True)
upgrade = getattr(module, "upgrade", False)
if upgrade:
upgrade(saveddata_engine)
# when all is said and done, set version to current
saveddata_engine.execute('PRAGMA user_version = %d'%config.dbversion)

View File

@@ -0,0 +1,9 @@
"""
The migration module includes migration logic to update database scheme and/or
data for the user database.
To create a migration, simply create a file upgrade<migration number>.py and
define an upgrade() function with the logic. Please note that there must be as
many upgrade files as there are database versions (version 5 would include
upgrade files 1-5)
"""

View File

@@ -0,0 +1,97 @@
"""
Migration 1
- Alters fits table to introduce target resist attribute
- Converts modules based on Oceanus Module Tiericide
Some modules have been deleted, which causes pyfa to crash when fits are
loaded as they no longer exist in the database. We therefore replace these
modules with their new replacements
Based on http://community.eveonline.com/news/patch-notes/patch-notes-for-oceanus/
and output of itemDiff.py
"""
import sqlalchemy
CONVERSIONS = {
6135: [ # Scoped Cargo Scanner
6133, # Interior Type-E Cargo Identifier
],
6527: [ # Compact Ship Scanner
6525, # Ta3 Perfunctory Vessel Probe
6529, # Speculative Ship Identifier I
6531, # Practical Type-E Ship Probe
],
6569: [ # Scoped Survey Scanner
6567, # ML-3 Amphilotite Mining Probe
6571, # Rock-Scanning Sensor Array I
6573, # 'Dactyl' Type-E Asteroid Analyzer
],
509: [ # 'Basic' Capacitor Flux Coil
8163, # Partial Power Plant Manager: Capacitor Flux
8165, # Alpha Reactor Control: Capacitor Flux
8167, # Type-E Power Core Modification: Capacitor Flux
8169, # Marked Generator Refitting: Capacitor Flux
],
8135: [ # Restrained Capacitor Flux Coil
8131, # Local Power Plant Manager: Capacitor Flux I
],
8133: [ # Compact Capacitor Flux Coil
8137, # Mark I Generator Refitting: Capacitor Flux
],
3469: [ # Basic Co-Processor
8744, # Nanoelectrical Co-Processor
8743, # Nanomechanical CPU Enhancer
8746, # Quantum Co-Processor
8745, # Photonic CPU Enhancer
15425, # Naiyon's Modified Co-Processor (never existed but convert
# anyway as some fits may include it)
],
8748: [ # Upgraded Co-Processor
8747, # Nanomechanical CPU Enhancer I
8750, # Quantum Co-Processor I
8749, # Photonic CPU Enhancer I
],
1351: [ # Basic Reactor Control Unit
8251, # Partial Power Plant Manager: Reaction Control
8253, # Alpha Reactor Control: Reaction Control
8257, # Marked Generator Refitting: Reaction Control
],
8263: [ # Compact Reactor Control Unit
8259, # Local Power Plant Manager: Reaction Control I
8265, # Mark I Generator Refitting: Reaction Control
8261, # Beta Reactor Control: Reaction Control I
],
16537: [ # Compact Micro Auxiliary Power Core
16539, # Micro B88 Core Augmentation
16541, # Micro K-Exhaust Core Augmentation
],
31936: [ # Navy Micro Auxiliary Power Core
16543, # Micro 'Vigor' Core Augmentation
],
8089: [ # Compact Light Missile Launcher
8093, # Prototype 'Arbalest' Light Missile Launcher
],
8091: [ # Ample Light Missile Launcher
7993, # Experimental TE-2100 Light Missile Launcher
],
# Surface Cargo Scanner I was removed from game, however no mention of
# replacement module in patch notes. Morphing it to meta 0 module to be safe
442: [ # Cargo Scanner I
6129, # Surface Cargo Scanner I
]
}
def upgrade(saveddata_engine):
# Update fits schema
try:
saveddata_engine.execute("SELECT targetResistsID FROM fits LIMIT 1")
except sqlalchemy.exc.DatabaseError:
saveddata_engine.execute("ALTER TABLE fits ADD COLUMN targetResistsID INTEGER;")
# Convert modules
for replacement_item, list in CONVERSIONS.iteritems():
for retired_item in list:
saveddata_engine.execute('UPDATE "modules" SET "itemID" = ? WHERE "itemID" = ?', (replacement_item, retired_item))
saveddata_engine.execute('UPDATE "cargo" SET "itemID" = ? WHERE "itemID" = ?', (replacement_item, retired_item))

View File

@@ -1,3 +1,3 @@
__all__ = ["character", "fit", "module", "user", "skill", "price",
"booster", "drone", "implant", "fleet", "damagePattern",
"miscData"]
"miscData", "targetResists"]

View File

@@ -26,10 +26,11 @@ from eos.db.saveddata.module import modules_table
from eos.db.saveddata.drone import drones_table
from eos.db.saveddata.cargo import cargo_table
from eos.db.saveddata.implant import fitImplants_table
from eos.types import Fit, Module, User, Booster, Drone, Cargo, Implant, Character, DamagePattern
from eos.types import Fit, Module, User, Booster, Drone, Cargo, Implant, Character, DamagePattern, TargetResists
from eos.effectHandlerHelpers import HandledModuleList, HandledDroneList, \
HandledImplantBoosterList, HandledProjectedModList, HandledProjectedDroneList, \
HandledProjectedFitList, HandledCargoList
fits_table = Table("fits", saveddata_meta,
Column("ID", Integer, primary_key = True),
Column("ownerID", ForeignKey("users.ID"), nullable = True, index = True),
@@ -38,7 +39,8 @@ fits_table = Table("fits", saveddata_meta,
Column("timestamp", Integer, nullable = False),
Column("characterID", ForeignKey("characters.ID"), nullable = True),
Column("damagePatternID", ForeignKey("damagePatterns.ID"), nullable=True),
Column("booster", Boolean, nullable = False, index = True, default = 0))
Column("booster", Boolean, nullable = False, index = True, default = 0),
Column("targetResistsID", ForeignKey("targetResists.ID"), nullable=True))
projectedFits_table = Table("projectedFits", saveddata_meta,
Column("sourceID", ForeignKey("fits.ID"), primary_key = True),
@@ -64,6 +66,7 @@ mapper(Fit, fits_table,
secondary = fitImplants_table),
"_Fit__character" : relation(Character, backref = "fits"),
"_Fit__damagePattern" : relation(DamagePattern),
"_Fit__targetResists" : relation(TargetResists),
"_Fit__projectedFits" : relation(Fit,
primaryjoin = projectedFits_table.c.victimID == fits_table.c.ID,
secondaryjoin = fits_table.c.ID == projectedFits_table.c.sourceID,

View File

@@ -19,7 +19,7 @@
from eos.db.util import processEager, processWhere
from eos.db import saveddata_session, sd_lock
from eos.types import User, Character, Fit, Price, DamagePattern, Fleet, MiscData, Wing, Squad
from eos.types import User, Character, Fit, Price, DamagePattern, Fleet, MiscData, Wing, Squad, TargetResists
from eos.db.saveddata.fleet import squadmembers_table
from eos.db.saveddata.fit import projectedFits_table
from sqlalchemy.sql import and_
@@ -322,6 +322,12 @@ def getDamagePatternList(eager=None):
patterns = saveddata_session.query(DamagePattern).options(*eager).all()
return patterns
def getTargetResistsList(eager=None):
eager = processEager(eager)
with sd_lock:
patterns = saveddata_session.query(TargetResists).options(*eager).all()
return patterns
@cachedQuery(DamagePattern, 1, "lookfor")
def getDamagePattern(lookfor, eager=None):
if isinstance(lookfor, int):
@@ -340,6 +346,24 @@ def getDamagePattern(lookfor, eager=None):
raise TypeError("Need integer or string as argument")
return pattern
@cachedQuery(TargetResists, 1, "lookfor")
def getTargetResists(lookfor, eager=None):
if isinstance(lookfor, int):
if eager is None:
with sd_lock:
pattern = saveddata_session.query(TargetResists).get(lookfor)
else:
eager = processEager(eager)
with sd_lock:
pattern = saveddata_session.query(TargetResists).options(*eager).filter(TargetResists.ID == lookfor).first()
elif isinstance(lookfor, basestring):
eager = processEager(eager)
with sd_lock:
pattern = saveddata_session.query(TargetResists).options(*eager).filter(TargetResists.name == lookfor).first()
else:
raise TypeError("Need integer or string as argument")
return pattern
def searchFits(nameLike, where=None, eager=None):
if not isinstance(nameLike, basestring):
raise TypeError("Need string as argument")
@@ -361,7 +385,7 @@ def getSquadsIDsWithFitID(fitID):
return squads
else:
raise TypeError("Need integer as argument")
def getProjectedFits(fitID):
if isinstance(fitID, int):
with sd_lock:
@@ -369,7 +393,7 @@ def getProjectedFits(fitID):
fits = saveddata_session.query(Fit).filter(filter).all()
return fits
else:
raise TypeError("Need integer as argument")
raise TypeError("Need integer as argument")
def add(stuff):
with sd_lock:

View File

@@ -0,0 +1,35 @@
#===============================================================================
# Copyright (C) 2014 Ryan Holmes
#
# This file is part of eos.
#
# eos is free software: you can redistribute it and/or modify
# it under the terms of the GNU Lesser General Public License as published by
# the Free Software Foundation, either version 2 of the License, or
# (at your option) any later version.
#
# eos is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public License
# along with eos. If not, see <http://www.gnu.org/licenses/>.
#===============================================================================
from sqlalchemy import Table, Column, Integer, Float, ForeignKey, String
from sqlalchemy.orm import mapper
from eos.db import saveddata_meta
from eos.types import TargetResists
targetResists_table = Table("targetResists", saveddata_meta,
Column("ID", Integer, primary_key = True),
Column("name", String),
Column("emAmount", Float),
Column("thermalAmount", Float),
Column("kineticAmount", Float),
Column("explosiveAmount", Float),
Column("ownerID", ForeignKey("users.ID"), nullable=True))
mapper(TargetResists, targetResists_table)

View File

@@ -1,3 +1,5 @@
# accerationControlCapNeedBonusPostPercentCapacitorNeedLocationShipGroupAfterburner
#
# Used by:
# Modules named like: Dynamic Fuel Valve (8 of 8)
type = "passive"

View File

@@ -1,3 +1,5 @@
# accerationControlSkillAb&MwdSpeedBoost
#
# Used by:
# Implant: Zor's Custom Navigation Hyper-Link
# Skill: Acceleration Control

View File

@@ -1,3 +1,5 @@
# accerationControlSpeedFBonusPostPercentSpeedFactorLocationShipGroupAfterburner
#
# Used by:
# Implants named like: Eifyr and Co. 'Rogue' Acceleration Control AC (6 of 6)
type = "passive"

View File

@@ -1,3 +1,5 @@
# accessDifficultyBonusModifierRequiringArchaelogy
#
# Used by:
# Modules named like: Emission Scope Sharpener (8 of 8)
# Implant: Poteque 'Prospector' Archaeology AC-905

View File

@@ -1,3 +1,5 @@
# accessDifficultyBonusModifierRequiringHacking
#
# Used by:
# Modules named like: Memetic Algorithm Bank (8 of 8)
# Implant: Poteque 'Prospector' Environmental Analysis EY-1005

View File

@@ -1,3 +1,5 @@
# adaptiveArmorHardener
#
# Used by:
# Module: Reactive Armor Hardener
type = "active"

View File

@@ -1,3 +1,5 @@
# addToSignatureRadius2
#
# Used by:
# Modules from group: Shield Extender (37 of 37)
type = "passive"

View File

@@ -1,3 +1,5 @@
# advancedDroneInterfacingMaxGroupDCUSkillLevel
#
# Used by:
# Skill: Advanced Drone Interfacing
type = "passive"

View File

@@ -1,3 +1,5 @@
# afterburnerDurationBonusPostPercentDurationLocationShipModulesRequiringAfterburner
#
# Used by:
# Implants named like: Eifyr and Co. 'Rogue' Afterburner AB (6 of 6)
# Implant: Zor's Custom Navigation Link

View File

@@ -1,3 +1,5 @@
# agilityMultiplierEffect
#
# Used by:
# Modules from group: Inertia Stabilizer (12 of 12)
# Modules from group: Nanofiber Internal Structure (14 of 14)

View File

@@ -1,3 +1,5 @@
# agilityMultiplierEffectPassive
#
# Used by:
# Modules named like: Polycarbon Engine Housing (8 of 8)
type = "passive"

View File

@@ -1,3 +1,5 @@
# ammoFallofMultiplier
#
# Used by:
# Charges from group: Advanced Artillery Ammo (6 of 6)
# Charges from group: Advanced Autocannon Ammo (6 of 6)

View File

@@ -1,3 +1,5 @@
# ammoInfluenceCapNeed
#
# Used by:
# Items from category: Charge (458 of 828)
type = "passive"

View File

@@ -1,3 +1,5 @@
# ammoInfluenceRange
#
# Used by:
# Items from category: Charge (559 of 828)
type = "passive"

View File

@@ -1,3 +1,5 @@
# ammoSpeedMultiplier
#
# Used by:
# Charges from group: Festival Charges (8 of 8)
# Charges from group: Survey Probe (3 of 3)

View File

@@ -1,3 +1,5 @@
# ammoTrackingMultiplier
#
# Used by:
# Charges from group: Advanced Artillery Ammo (6 of 6)
# Charges from group: Advanced Autocannon Ammo (6 of 6)

View File

@@ -1,3 +1,5 @@
# angelsetbonus
#
# Used by:
# Implants named like: grade Halo (18 of 18)
runTime = "early"

View File

@@ -1,3 +1,5 @@
# antiWarpScramblingPassive
#
# Used by:
# Modules from group: Warp Core Stabilizer (8 of 8)
type = "passive"

View File

@@ -1,3 +1,5 @@
# archaeologySkillVirusBonus
#
# Used by:
# Modules named like: Emission Scope Sharpener (8 of 8)
# Implant: Poteque 'Prospector' Archaeology AC-905

View File

@@ -1,3 +1,5 @@
# armorAllRepairSystemsAmountBonusPassive
#
# Used by:
# Implants named like: Exile Booster (4 of 4)
type = "passive"

View File

@@ -1,3 +1,5 @@
# armorDamageAmountBonusCapitalArmorRepairers
#
# Used by:
# Modules named like: Auxiliary Nano Pump (8 of 8)
type = "passive"

View File

@@ -1,3 +1,5 @@
# armoredSquadronCommand
#
# Used by:
# Skill: Armored Warfare Specialist
runTime = "early"

View File

@@ -1,3 +1,5 @@
# armoredWarfareMindlink
#
# Used by:
# Implant: Armored Warfare Mindlink
# Implant: Federation Navy Warfare Mindlink

View File

@@ -1,3 +1,5 @@
# armorHPBonusAdd
#
# Used by:
# Modules from group: Armor Reinforcer (57 of 57)
type = "passive"

View File

@@ -1,3 +1,5 @@
# armorHPBonusAddPassive
#
# Used by:
# Subsystems from group: Defensive Systems (16 of 16)
type = "passive"

View File

@@ -1,3 +1,5 @@
# armorHPMultiply
#
# Used by:
# Modules from group: Armor Coating (202 of 202)
# Modules from group: Armor Plating Energized (187 of 187)

View File

@@ -1,3 +1,5 @@
# armorReinforcerMassAdd
#
# Used by:
# Modules from group: Armor Reinforcer (57 of 57)
type = "passive"

View File

@@ -1,3 +1,5 @@
# armorRepair
#
# Used by:
# Modules from group: Armor Repair Unit (100 of 100)
runTime = "late"

View File

@@ -1,3 +1,5 @@
# armorRepairProjectorMaxRangeBonus
#
# Used by:
# Ship: Augoror
# Ship: Exequror

View File

@@ -1,3 +1,5 @@
# armorTankingGang
#
# Used by:
# Skill: Armored Warfare
type = "gang"

View File

@@ -1,3 +1,5 @@
# armorTankingGang2
#
# Used by:
# Implant: Armored Warfare Mindlink
# Implant: Federation Navy Warfare Mindlink

View File

@@ -1,3 +1,5 @@
# armorUpgradesMassPenaltyReductionBonus
#
# Used by:
# Skill: Armor Layering
type = "passive"

View File

@@ -1,3 +1,5 @@
# astrogeologyMiningAmountBonusPostPercentMiningAmountLocationShipModulesRequiringMining
#
# Used by:
# Implants named like: Inherent Implants 'Highwall' Mining MX (3 of 3)
# Implant: Michi's Excavation Augmentor

View File

@@ -1,3 +1,5 @@
# baseMaxScanDeviationModifierModuleOnline2None
#
# Used by:
# Variations of module: Scan Pinpointing Array I (2 of 2)
type = "passive"

View File

@@ -1,3 +1,5 @@
# baseMaxScanDeviationModifierRequiringAstrometrics
#
# Used by:
# Implants named like: Poteque 'Prospector' Astrometric Pinpointing AP (3 of 3)
# Skill: Astrometric Pinpointing

View File

@@ -1,3 +1,5 @@
# baseSensorStrengthModifierModule
#
# Used by:
# Variations of module: Scan Rangefinding Array I (2 of 2)
type = "passive"

View File

@@ -1,3 +1,5 @@
# baseSensorStrengthModifierRequiringAstrometrics
#
# Used by:
# Modules from group: Scan Probe Launcher (4 of 7)
# Implants named like: Poteque 'Prospector' Astrometric Rangefinding AR (3 of 3)

View File

@@ -1,3 +1,5 @@
# bcLargeEnergyTurretCapacitorNeedBonus
#
# Used by:
# Ship: Oracle
type = "passive"

View File

@@ -1,3 +1,5 @@
# bcLargeEnergyTurretCPUNeedBonus
#
# Used by:
# Ship: Oracle
type = "passive"

View File

@@ -1,3 +1,5 @@
# bcLargeEnergyTurretPowerNeedBonus
#
# Used by:
# Ship: Oracle
type = "passive"

View File

@@ -1,3 +1,5 @@
# bcLargeHybridTurretCapacitorNeedBonus
#
# Used by:
# Ship: Naga
# Ship: Talos

View File

@@ -1,3 +1,5 @@
# bcLargeHybridTurretCPUNeedBonus
#
# Used by:
# Ship: Naga
# Ship: Talos

View File

@@ -1,3 +1,5 @@
# bcLargeHybridTurretPowerNeedBonus
#
# Used by:
# Ship: Naga
# Ship: Talos

View File

@@ -1,3 +1,5 @@
# bcLargeProjectileTurretCPUNeedBonus
#
# Used by:
# Ship: Tornado
type = "passive"

View File

@@ -1,3 +1,5 @@
# bcLargeProjectileTurretPowerNeedBonus
#
# Used by:
# Ship: Tornado
type = "passive"

View File

@@ -1,3 +1,5 @@
# biologyTimeBonusFixed
#
# Used by:
# Implants named like: Eifyr and Co. 'Alchemist' Biology BY (2 of 2)
# Skill: Biology

View File

@@ -1,3 +1,5 @@
# blockadeRunnerCloakCpuPercentBonus
#
# Used by:
# Ships from group: Blockade Runner (4 of 4)
type = "passive"

View File

@@ -1,3 +1,5 @@
# boosterArmorHpPenalty
#
# Used by:
# Implants from group: Booster (12 of 37)
type = "boosterSideEffect"

View File

@@ -1,3 +1,5 @@
# boosterArmorRepairAmountPenalty
#
# Used by:
# Implants from group: Booster (9 of 37)
type = "boosterSideEffect"

View File

@@ -1,3 +1,5 @@
# boosterCapacitorCapacityPenalty
#
# Used by:
# Implants named like: Blue Pill Booster (3 of 5)
# Implants named like: Exile Booster (3 of 4)

View File

@@ -1,3 +1,5 @@
# boosterMaxVelocityPenalty
#
# Used by:
# Implants from group: Booster (12 of 37)
type = "boosterSideEffect"

View File

@@ -1,3 +1,5 @@
# boosterMissileExplosionCloudPenaltyFixed
#
# Used by:
# Implants named like: Exile Booster (3 of 4)
# Implants named like: Mindflood Booster (3 of 4)

View File

@@ -1,3 +1,5 @@
# boosterMissileExplosionVelocityPenalty
#
# Used by:
# Implants named like: Blue Pill Booster (3 of 5)
type = "boosterSideEffect"

View File

@@ -1,3 +1,5 @@
# boosterMissileVelocityPenalty
#
# Used by:
# Implants named like: Crash Booster (3 of 4)
# Implants named like: X Instinct Booster (3 of 4)

View File

@@ -1,5 +1,7 @@
# boosterModifyBoosterArmorPenalties
#
# Used by:
# Implants named like: Eifyr and Co. 'Alchemist' Nanite Control NC (2 of 2)
# Implants named like: Eifyr and Co. 'Alchemist' Neurotoxin Control NC (2 of 2)
# Implants named like: grade Edge (10 of 12)
# Skill: Neurotoxin Control
type = "passive"

View File

@@ -1,5 +1,7 @@
# boosterModifyBoosterMaxVelocityAndCapacitorPenalty
#
# Used by:
# Implants named like: Eifyr and Co. 'Alchemist' Nanite Control NC (2 of 2)
# Implants named like: Eifyr and Co. 'Alchemist' Neurotoxin Control NC (2 of 2)
# Implants named like: grade Edge (10 of 12)
# Skill: Neurotoxin Control
type = "passive"

View File

@@ -1,5 +1,7 @@
# boosterModifyBoosterMissilePenalty
#
# Used by:
# Implants named like: Eifyr and Co. 'Alchemist' Nanite Control NC (2 of 2)
# Implants named like: Eifyr and Co. 'Alchemist' Neurotoxin Control NC (2 of 2)
# Implants named like: grade Edge (10 of 12)
# Skill: Neurotoxin Control
type = "passive"

View File

@@ -1,5 +1,7 @@
# boosterModifyBoosterShieldPenalty
#
# Used by:
# Implants named like: Eifyr and Co. 'Alchemist' Nanite Control NC (2 of 2)
# Implants named like: Eifyr and Co. 'Alchemist' Neurotoxin Control NC (2 of 2)
# Implants named like: grade Edge (10 of 12)
# Skill: Neurotoxin Control
type = "passive"

View File

@@ -1,5 +1,7 @@
# boosterModifyBoosterTurretPenalty
#
# Used by:
# Implants named like: Eifyr and Co. 'Alchemist' Nanite Control NC (2 of 2)
# Implants named like: Eifyr and Co. 'Alchemist' Neurotoxin Control NC (2 of 2)
# Implants named like: grade Edge (10 of 12)
# Skill: Neurotoxin Control
type = "passive"

View File

@@ -1,3 +1,5 @@
# boosterShieldCapacityPenalty
#
# Used by:
# Implants from group: Booster (12 of 37)
type = "boosterSideEffect"

View File

@@ -1,3 +1,5 @@
# boosterTurretFalloffPenalty
#
# Used by:
# Implants named like: Drop Booster (3 of 4)
# Implants named like: X Instinct Booster (3 of 4)

View File

@@ -1,3 +1,5 @@
# boosterTurretOptimalRangePenalty
#
# Used by:
# Implants from group: Booster (9 of 37)
type = "boosterSideEffect"

View File

@@ -1,3 +1,5 @@
# boosterTurretTrackingPenalty
#
# Used by:
# Implants named like: Exile Booster (3 of 4)
# Implants named like: Frentix Booster (3 of 4)

View File

@@ -1,3 +1,5 @@
# caldarisetbonus3
#
# Used by:
# Implants named like: High grade Talon (6 of 6)
runTime = "early"

View File

@@ -1,3 +1,5 @@
# caldarisetLGbonus
#
# Used by:
# Implants named like: Low grade Talon (6 of 6)
runTime = "early"

View File

@@ -1,3 +1,5 @@
# caldariShipECMBurstOptimalRangeCB3
#
# Used by:
# Ship: Scorpion
# Ship: Scorpion Ishukone Watch

View File

@@ -1,4 +1,7 @@
# caldariShipEwCapacitorNeedCC
#
# Used by:
# Ship: Chameleon
# Ship: Falcon
# Ship: Rook
type = "passive"

View File

@@ -1,3 +1,5 @@
# caldariShipEwCapacitorNeedCF2
#
# Used by:
# Variations of ship: Griffin (2 of 2)
type = "passive"

View File

@@ -1,3 +1,5 @@
# caldariShipEwFalloffRangeCB3
#
# Used by:
# Ship: Scorpion
# Ship: Scorpion Ishukone Watch

View File

@@ -1,3 +1,5 @@
# caldariShipEwFalloffRangeCC2
#
# Used by:
# Ship: Blackbird
type = "passive"

View File

@@ -1,3 +1,5 @@
# caldariShipEwOptimalRangeCB3
#
# Used by:
# Ship: Scorpion
# Ship: Scorpion Ishukone Watch

View File

@@ -1,3 +1,5 @@
# caldariShipEwOptimalRangeCC2
#
# Used by:
# Ship: Blackbird
type = "passive"

View File

@@ -1,3 +1,5 @@
# caldariShipEwStrengthCB
#
# Used by:
# Ship: Scorpion
# Ship: Scorpion Ishukone Watch

View File

@@ -1,3 +1,5 @@
# capacitorCapacityAddPassive
#
# Used by:
# Subsystems from group: Engineering Systems (16 of 16)
# Subsystem: Tengu Offensive - Magnetic Infusion Basin

View File

@@ -1,3 +1,5 @@
# capacitorCapacityBonus
#
# Used by:
# Modules from group: Capacitor Battery (27 of 27)
type = "passive"

View File

@@ -1,9 +1,11 @@
# capacitorCapacityMultiply
#
# Used by:
# Modules from group: Capacitor Flux Coil (12 of 12)
# Modules from group: Capacitor Flux Coil (6 of 6)
# Modules from group: Capacitor Power Relay (26 of 26)
# Modules from group: Power Diagnostic System (31 of 31)
# Modules from group: Propulsion Module (107 of 107)
# Modules from group: Reactor Control Unit (28 of 28)
# 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)
type = "passive"

View File

@@ -1,5 +1,7 @@
# capacitorEmissionSystemskill
#
# Used by:
# Implants named like: Inherent Implants 'Squire' Energy Emission Systems ES (6 of 6)
# Implants named like: Inherent Implants 'Squire' Capacitor Emission Systems ES (6 of 6)
# Modules named like: Egress Port Maximizer (8 of 8)
# Skill: Capacitor Emission Systems
type = "passive"

View File

@@ -1,3 +1,5 @@
# capacityAddPassive
#
# Used by:
# Subsystems from group: Defensive Systems (16 of 16)
type = "passive"

View File

@@ -1,3 +1,5 @@
# capitalLauncherSkillCitadelEmDamage
#
# Used by:
# Implants named like: Hardwiring Zainou 'Sharpshooter' ZMX (6 of 6)
# Skill: Citadel Torpedoes

View File

@@ -1,3 +1,5 @@
# capitalLauncherSkillCitadelExplosiveDamage
#
# Used by:
# Implants named like: Hardwiring Zainou 'Sharpshooter' ZMX (6 of 6)
# Skill: Citadel Torpedoes

View File

@@ -1,3 +1,5 @@
# capitalLauncherSkillCitadelKineticDamage
#
# Used by:
# Implants named like: Hardwiring Zainou 'Sharpshooter' ZMX (6 of 6)
# Skill: Citadel Torpedoes

View File

@@ -1,3 +1,5 @@
# capitalLauncherSkillCitadelThermalDamage
#
# Used by:
# Implants named like: Hardwiring Zainou 'Sharpshooter' ZMX (6 of 6)
# Skill: Citadel Torpedoes

View File

@@ -1,3 +1,5 @@
# capitalLauncherSkillCruiseCitadelEmDamage1
#
# Used by:
# Skill: Citadel Cruise Missiles
type = "passive"

View File

@@ -1,3 +1,5 @@
# capitalLauncherSkillCruiseCitadelExplosiveDamage1
#
# Used by:
# Skill: Citadel Cruise Missiles
type = "passive"

View File

@@ -1,3 +1,5 @@
# capitalLauncherSkillCruiseCitadelKineticDamage1
#
# Used by:
# Skill: Citadel Cruise Missiles
type = "passive"

View File

@@ -1,3 +1,5 @@
# capitalLauncherSkillCruiseCitadelThermalDamage1
#
# Used by:
# Skill: Citadel Cruise Missiles
type = "passive"

View File

@@ -1,3 +1,5 @@
# capitalRemoteArmorRepairerCapNeedBonusSkill
#
# Used by:
# Variations of module: Capital Remote Repair Augmentor I (2 of 2)
# Skill: Capital Remote Armor Repair Systems

View File

@@ -1,3 +1,5 @@
# capitalRemoteEnergyTransferCapNeedBonusSkill
#
# Used by:
# Skill: Capital Capacitor Emission Systems
type = "passive"

View File

@@ -1,3 +1,5 @@
# capitalRemoteShieldTransferCapNeedBonusSkill
#
# Used by:
# Skill: Capital Shield Emission Systems
type = "passive"

View File

@@ -1,3 +1,5 @@
# capitalRepairSystemsSkillDurationBonus
#
# Used by:
# Modules named like: Nanobot Accelerator (8 of 8)
# Skill: Capital Repair Systems

View File

@@ -1,3 +1,5 @@
# capitalShieldOperationSkillCapacitorNeedBonus
#
# Used by:
# Modules named like: Core Defense Capacitor Safeguard (8 of 8)
# Skill: Capital Shield Operation

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