Compare commits

...

504 Commits

Author SHA1 Message Date
blitzmann
2c47d0758e Bump to stable 2015-01-14 21:31:28 -05:00
blitzmann
8f7ae4b00c Remove Chinese ships from effect "used by" header 2015-01-14 21:04:12 -05:00
DarkPhoenix
f11f3bfb79 Implement recon effect changes 2015-01-15 02:35:22 +03:00
DarkPhoenix
68703f3db5 Put old innerzone names back
To make sure EFT fittings with these are imported & converted properly
2015-01-14 23:03:14 +03:00
blitzmann
d3def54b5a Conversion pack for Proteus Module Tiericide + conversion helper script 2015-01-13 22:37:20 -05:00
DarkPhoenix
27d72ed909 Add vanity ship changes from proteus 2015-01-14 03:22:28 +03:00
DarkPhoenix
55e45b6bc1 Remove published chinese ships from visibility 2015-01-14 03:15:35 +03:00
DarkPhoenix
252f56732b Merge branch 'master' of github.com:DarkFenX/Pyfa 2015-01-14 03:00:15 +03:00
DarkPhoenix
d52e88cdaa Update database to proteus & add tiericide item conversions 2015-01-14 02:59:15 +03:00
blitzmann
371e33764e Ammo name tooltip added to charge icon 2015-01-13 17:26:56 -05:00
blitzmann
9b8b7aba07 Add module state information to state tooltip 2015-01-12 23:37:40 -05:00
blitzmann
0a6274474e Fixes #204 2015-01-10 21:53:30 -05:00
Ryan Holmes
0ff69068c0 Merge pull request #241 from cockroach/master
Make tab tooltips optional
2015-01-10 20:13:35 -06:00
DarkPhoenix
731477b366 Open fit upon importing 2015-01-11 00:43:05 +03:00
Anton Vorobyov
0295f04ec4 Merge pull request #243 from blitzmann/issue-156
Fix #156
2015-01-10 18:21:30 +03:00
blitzmann
059af217aa Fix #246 2015-01-08 15:04:22 -05:00
Ryan Holmes
2a391fa38b Merge pull request #242 from blitzmann/issue-233
Fix #233
2015-01-08 13:26:26 -06:00
Ryan Holmes
88b1426fe0 Merge pull request #232 from blitzmann/progress
Port custom wait dialog to wx.ProgressDialog
2015-01-08 12:15:05 -06:00
blitzmann
07da5aa861 Resolve #245 - Adding tooltips to fitting columns 2015-01-08 12:39:16 -05:00
blitzmann
192d6f4605 Fix #156 2015-01-05 22:50:33 -05:00
blitmann
487f65d62b Fix #233 2015-01-04 17:19:53 -06:00
Stefan Ott
c202aefd2e Reverted accidentally committed change 2015-01-02 17:06:26 +01:00
Stefan Ott
0ed91e4079 Fixed code formatting 2015-01-02 17:04:10 +01:00
Stefan Ott
9c2a667635 Made tab tooltips optional 2015-01-02 16:55:05 +01:00
blitzmann
19579fb087 Implement middle click to offline modules 2014-12-31 20:18:16 -05:00
blitzmann
ea77e6851e Fix #238 2014-12-31 20:07:36 -05:00
blitzmann
1c3f9ccf5b Fix #240 2014-12-31 19:57:10 -05:00
blitzmann
e42671fbec Workaround for seg fault (see comments in pull request # 232) 2014-12-31 16:20:25 -05:00
blitzmann
18c86daea6 Do not include rigs in skill requirement checks 2014-12-30 21:08:55 -05:00
blitzmann
c59b818677 Add wx.ProgressDialog to HTML export, along with some documentation and silent try-except in HTML export 2014-12-19 00:13:06 -05:00
Ryan Holmes
71bf1556a1 Fix column name in upgrade3 migration script 2014-12-19 00:02:39 -05:00
blitzmann
26e50f2e8a Implement ProgressDialog for fit file imports (EVE XML / EFT cfg).
To make it simpler, changed the way fits are imported and saved from a per-file basis (process file->save fits->process file->save fits) to a per-batch basis (process file->process file -> save all fits).
2014-12-17 21:36:42 -05:00
blitzmann
25e30672fe Start conversion of various wait dialogs to wx.ProgresDialog. Implemented new wx.ProgresDialog for fitting backup 2014-12-15 20:01:03 -05:00
blitzmann
1b3c058eab Put XML export in a try-except block so that a failed export of 1 fit doesn't crash the whole process 2014-12-13 20:12:24 -05:00
blitzmann
adcae42ae7 Goodbye CREST support, we hardly used ya! (close #201) 2014-12-13 19:03:22 -05:00
blitzmann
238712e62c Add consumption info for siege/cyno module in misc column (resolves #219) 2014-12-13 18:39:06 -05:00
Ryan Holmes
f2b959895e Merge pull request #227 from unpoetical/master
Show amount over limit on pg/cpu/drone displays
2014-12-12 19:04:41 -05:00
blitzmann
ffb7719937 Fix #228 - missing Heretic effect 2014-12-12 18:49:00 -05:00
unpoetical
e0488dce4f Update powergrid, CPU, drone bandwidth, and drone bay displays to show remaining units so I don't have to do math. Could affect other gauge displays? 2014-12-11 22:15:50 -08:00
blitzmann
88074c8516 Fix fonts and lag with OS X 2014-12-11 23:25:44 -05:00
blitzmann
359840aee8 bump dev 2014-12-11 23:13:04 -05:00
blitzmann
77e3a0f666 Bump Stable 2014-12-11 14:39:01 -05:00
blitzmann
3d4eef2466 Fix #197, again 2014-12-11 11:34:21 -05:00
blitzmann
663cf7104c Fix #226, as well as another bug with coloring rack that had too many modules 2014-12-11 10:37:07 -05:00
blitzmann
0d6a55dcb6 Fix #224 2014-12-10 22:09:46 -05:00
blitzmann
85608616dd readjust some mode logic 2014-12-10 22:04:12 -05:00
blitzmann
d5ce666d8d Fix #225 - set mode whenever the ship is set. 2014-12-10 21:54:26 -05:00
blitzmann
2bff11e5ab bump dev 2014-12-09 19:31:01 -05:00
blitzmann
5adaaac75e Bump release 2014-12-09 18:50:34 -05:00
blitzmann
a49269b759 Edit effect headers and fix effects script 2014-12-09 18:49:40 -05:00
blitzmann
a96efaee1a Revert "Bump release", forgot effect headers 2014-12-09 18:49:10 -05:00
blitzmann
299de38bf6 Bump release 2014-12-09 18:37:24 -05:00
DarkPhoenix
b29019f0a7 Restore old race detection mechanism, but new has priority over it
Few unique ships still have no factionID
2014-12-10 01:13:58 +03:00
DarkPhoenix
da15b63831 Fix race detection 2014-12-10 01:01:51 +03:00
DarkPhoenix
20b2f1e5fc Merge branch 'singularity' 2014-12-09 23:39:57 +03:00
blitzmann
f1cdabf37c Fix bullets in traits 2014-12-08 23:10:55 -05:00
blitzmann
94e1c7aba3 Fix more bindings 2014-12-08 15:10:45 -05:00
blitzmann
797db36a42 Fix menu spawning when no fit open 2014-12-08 12:26:51 -05:00
blitzmann
ac18c58a0a fix menu bindings 2014-12-08 12:12:50 -05:00
Anton Vorobyov
281850d7df Merge pull request #214 from blitzmann/singularity 2014-12-08 03:05:04 +03:00
blitzmann
2e460adbc9 Add drone volleys 2014-12-04 21:08:41 -05:00
blitzmann
5660b2b8ed Add missing icons 2014-12-02 18:57:33 -05:00
blitzmann
de9fbd672f Fix scripts for t3 tactical modes 2014-12-02 18:33:59 -05:00
blitzmann
85029f6be8 Add mode to blanks list to avoid exception in module operations 2014-12-02 14:52:56 -05:00
blitzmann
337db326fd Add Mode and separation to fitting list.
Todo: A few exceptions are thrown when trying to remove mode via double click, spawn context menu, move to a different position, etc. All simply because Mode is not a Module. Will need to add try-except blocks to cover these instances
2014-12-02 14:33:47 -05:00
blitzmann
795230dae6 Quick fix for game version bug when running jsonToSql 2014-12-02 12:53:02 -05:00
blitzmann
022a929399 Fix initial mode assignment 2014-12-02 12:31:10 -05:00
blitzmann
b64238634a Merge branch 'master' into singularity
Conflicts:
	gui/builtinContextMenus/__init__.py
2014-12-02 02:50:27 -05:00
blitzmann
4b0e0300ad Fix path for .git directory 2014-12-02 02:48:50 -05:00
blitzmann
7762bb365f Set debug back to False 2014-12-02 02:45:46 -05:00
blitzmann
dfec7d8fa2 Added new skinned ships to conversions 2014-12-02 02:42:05 -05:00
blitzmann
5c5ec60efd Bowhead effects 2014-12-02 02:28:54 -05:00
blitzmann
2a7e35ff6f Fix exception with non-t3-dessys context menu 2014-12-02 02:15:01 -05:00
blitzmann
d7ab709d52 Add EVE version to about box 2014-12-02 01:35:30 -05:00
blitzmann
831478e034 Finish effects for Confessor 2014-12-02 01:15:06 -05:00
blitzmann
d0b5f3ad78 Fixed Confessor Prop mode effects and added Defense / Sharpshooter mode effects 2014-12-02 00:50:02 -05:00
blitzmann
190c1f135f Add slot modifiers to misc column for subsystems 2014-11-30 22:36:52 -05:00
blitzmann
374d6d6d34 Publish other modes to market 2014-11-30 16:59:55 -05:00
blitzmann
edbdaf5631 Add .Check() to tactical mode menu items 2014-11-30 16:56:43 -05:00
blitzmann
23a71e7448 Implement service layer mode setter. Modes now have basic support and testing.
Also decided to have two separate functions that return the mode items as Items or Modes. Returning them as Items makes it easier to check if provided modeID from user database is valid (since we cannot easily map the modeID to create a Mode), returning as Modes allows us to easily use them for setters. There's probably a better way to do this, but w/e
2014-11-30 16:43:15 -05:00
blitzmann
892c5c5b60 Various event binding fixes for context menus. It's still a mess, but it's not as bad of a mess.
(cherry picked from commit 081e32da6f)
2014-11-30 01:19:10 -05:00
blitzmann
081e32da6f Various event binding fixes for context menus. It's still a mess, but it's not as bad of a mess. 2014-11-30 01:14:47 -05:00
blitzmann
7100e8997b Merge branch 'master' into singularity 2014-11-29 21:53:22 -05:00
blitzmann
9a8642e789 Fix more paths 2014-11-29 20:57:44 -05:00
blitzmann
a565abe6f7 Added script to automate json dump, sql convert, and diff prep. Also adds metadata to eve.db 2014-11-29 20:50:34 -05:00
blitzmann
b93b59fe4d Add windows installer generation to dist.py 2014-11-29 20:49:58 -05:00
blitzmann
9782ca3a29 Improvements on distributable generator 2014-11-29 20:49:40 -05:00
blitzmann
f9fd894c9f Rename nighty to dist and fix path in itemDiff 2014-11-29 20:49:27 -05:00
blitzmann
ee8395e8fd Fix paths 2014-11-29 20:49:10 -05:00
blitzmann
7836506444 Move scripts directory 2014-11-29 20:48:58 -05:00
blitzmann
8df7593223 Moved compat.py to new dir utils/ and also added timer class 2014-11-29 20:47:53 -05:00
blitzmann
8351b0fc9d Fix gitignore 2014-11-29 20:46:16 -05:00
blitzmann
88ee1d60be Fix loading of mode, and add some (untested) setting functions 2014-11-29 02:58:43 -05:00
blitzmann
dda1494b90 Added method to check/get modes, and start GUI integration (simple context menu) 2014-11-28 01:23:44 -05:00
blitzmann
f53384c4c2 Preliminary backend support for tactical destroyer modes.
* Modifies fits table to add "mode" column, which contains typeID of mode for fit
* Introduces Mode type, similar to Ship and Module type
* Includes effects for Amarr Tactical Destroyer Propulsion Mode

Still a lot to do: GUI switching, constraints on which ships get modes, etc
2014-11-27 23:23:24 -05:00
blitzmann
d4af877e47 Update to 848581 2014-11-27 23:15:45 -05:00
blitzmann
5242c6df60 Fix #192
If price is not valid, cancel it out. This will force an update.
2014-11-25 23:54:24 -05:00
blitzmann
8c1d14ec4a Add version to title bar 2014-11-21 13:39:14 -05:00
blitzmann
f187caa549 Reduce minimum vertical size 2014-11-20 13:00:57 -05:00
blitzmann
70d52fd0b2 Moved price update info to header 2014-11-20 12:27:32 -05:00
blitzmann
222ee22fe3 Ability to remove Cargo from context menu 2014-11-20 00:45:30 -05:00
blitzmann
76f1f217e1 Implements forced price refresh (resolves #196) 2014-11-20 00:29:53 -05:00
blitzmann
6f42e7c286 Bump dev version 2014-11-18 20:05:25 -05:00
blitzmann
aab2ec5f96 Bump to Stable 2014-11-18 19:04:59 -05:00
blitzmann
9831ed5c3d Fix old migrations 2014-11-18 18:55:03 -05:00
Ryan Holmes
399ec7d009 Update README.md 2014-11-13 18:07:50 -05:00
Ryan Holmes
bf91e82813 Rename readme.md to README.md 2014-11-13 18:02:14 -05:00
Ryan Holmes
7ca1fc4cfb Merge pull request #202 from danmane/master
Change README to Markdown
2014-11-13 18:01:52 -05:00
Daniel Mane
3f86d3c33d Fix syntax 2014-11-13 10:47:16 -08:00
Daniel Mane
fd1dc5b4e2 Move README to Markdown so it gets displayed better in Github UI 2014-11-13 10:45:23 -08:00
blitzmann
05c73d1b1b If something happens and an error happens, return so that status is not reset later on 2014-11-13 11:18:44 -05:00
blitzmann
7a6e3ac665 Fix #199 2014-11-13 11:06:15 -05:00
DarkPhoenix
9de8fe5884 Fix graphs for drones (#197) 2014-11-11 00:40:31 +03:00
blitzmann
61197ec061 Fixed old variable name in docstring 2014-11-07 23:40:58 -05:00
blitzmann
9f2124ac9f Forgot to edit main comment =/ 2014-11-07 23:36:50 -05:00
blitzmann
dbacfc19f0 Reintroduced old migration path. 2014-11-07 23:25:51 -05:00
blitzmann
6fafe40f35 Fix for a fix that was removed with a fix (see #62) 2014-11-07 23:17:14 -05:00
DarkPhoenix
7641384aba Remove unused import 2014-11-07 12:52:01 +03:00
DarkPhoenix
15087a290a Add proper support of attribute value limit
This fixes issue with blighted/polarized weapons getting resistances down to negative values
2014-11-07 12:49:34 +03:00
DarkPhoenix
cb27efd5e1 Mark next development cycle 2014-11-07 01:33:57 +03:00
DarkPhoenix
091935259a Bump version and mark as stable 2014-11-07 01:08:57 +03:00
DarkPhoenix
1fca17f5dd Do not add time to misc column for ASB/AAR when factor reload time is turned on, fixes #123 2014-11-06 23:51:37 +03:00
DarkPhoenix
98cac2a0da Penalize speed ganglinks against overheat on module itself (fixes #170) 2014-11-06 23:17:44 +03:00
DarkPhoenix
c28e52f2d1 Disable global ammo picker until we find alternative solution to using it (RMB or modifier keys for regular ammo picker) 2014-11-06 23:02:16 +03:00
DarkPhoenix
36df6878e8 Remove couple of skinned variations from ship browser 2014-11-06 02:45:26 +03:00
DarkPhoenix
7077261fe1 Work around EVE bug (Assault Frigs have raceID assigned) and make race detection to cope with 3+ skill reqs better overall, which fixes race detection for revenant and alike 2014-11-06 02:42:05 +03:00
DarkPhoenix
89052edda2 Commit new Phoebe effect files 2014-11-06 02:22:06 +03:00
DarkPhoenix
e60b677b3f Update to Phoebe 1.0 data 2014-11-06 02:17:29 +03:00
DarkPhoenix
bf5c443053 Fix command processors - they used to allow to have 2 more ganglinks online 2014-11-05 22:03:43 +03:00
DarkPhoenix
d298ed8e01 Fix for new ammo picker (which borked resistance profile selector) 2014-11-05 22:00:55 +03:00
Ryan Holmes
28f2644a15 Merge pull request #189 from Headpigeon/master
Global Charge Switcher
2014-11-04 10:30:20 -05:00
Headpigeon
635e684c3a Added module context menu entry for changing charges on all modules of same type at once (no need to manually select them) 2014-11-02 19:12:03 +01:00
DarkPhoenix
d991048be3 Fix crash on opening stats for items w/o traits 2014-10-30 14:12:37 +03:00
blitzmann
69e99d98c2 Fix minor formatting consistency issue for gauge tooltip 2014-10-26 00:24:40 -04:00
blitzmann
20362d2c0c Added thousands separators to price tooltip 2014-10-26 00:18:54 -04:00
blitzmann
2e1d0c43a1 Added agility and mass to align time tooltip 2014-10-26 00:13:22 -04:00
DarkPhoenix
f78e2ed405 Adapt pyfa scripts to latest Phobos changes 2014-10-25 17:39:33 +04:00
blitzmann
23906d5824 Fix #126 2014-10-14 00:10:47 -04:00
blitzmann
41a67bfae2 Fix some inconsistent behavior and a possible issue with adding a GUI element twice 2014-10-03 23:35:56 -04:00
blitzmann
df58614674 Fix #180 2014-10-03 23:13:12 -04:00
blitzmann
90369b679c Fix #179 2014-10-03 21:25:28 -04:00
blitzmann
fed7107857 Implement better system for item conversions / definitions 2014-10-03 00:32:05 -04:00
blitzmann
4a2223323d Bump dev version 2014-10-01 18:21:45 -04:00
blitzmann
0bbc35cd1b Bump to v1.5.1 stable, fix for #176 (pyfa update breaks skeletons) 2014-10-01 17:43:54 -04:00
blitzmann
9b8c1ff3ba Bump dev cycle 2014-09-30 21:56:54 -04:00
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
9e5f119248 Reduces icon opacity of "Empty Groups" toggle dependant on filtering state. 2014-08-10 17:21:48 -04:00
blitzmann
1315f8d8ed Adds prices to Drone and Cargo bay. Also removed redundant and broken columns in drone bay 2014-08-08 10:46:58 -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
blitzmann
356c741e54 Fixes #151 2014-08-07 21:13:18 -04:00
blitzmann
04f52f1f86 Adds Deployables to market / search 2014-08-06 15:16:37 -04:00
blitzmann
c7042f314b Code consistency 2014-07-31 00:14:29 -04:00
blitzmann
dd27c3c805 Set files to 644 besides pyfa.py and scripts 2014-07-30 21:23:27 -04:00
Ryan Holmes
9685d15e61 Merge pull request #149 from blitzmann/issue-134
Introduces empty group filtering to ship browser: stage 1
2014-07-30 16:07:08 -04:00
blitzmann
b31d14158f Added caching to empty group filtering
Stage 2 now sums total fittings in category and sets the cache to True if t_fits > 0
Stage 3 sets the cache to True if number of fits for ship > 0. This takes care of creating new fits

If fit is deleted, and there are no other fits for the ship, it reverts back to stage 2, which should set the correct value in the cache
2014-07-30 16:00:38 -04:00
blitzmann
b3b62fcecc Introduces empty group filtering to ship browser stage 1 2014-07-30 00:40:55 -04:00
DarkPhoenix
51063ef758 Fix #144 (mindlink bonus is not applied anymore when SI link bonus is applied) 2014-07-27 12:10:50 +04:00
blitzmann
f406d7da09 Added keyboard shortcut to toggle search box in market and ship browser 2014-07-24 22:37:20 -04:00
blitzmann
4f64ae9f85 Added "Last Updated" stat to HTML export, resolves #128 2014-07-23 23:04:02 -04:00
blitzmann
bdfa46cea2 Bump to dev version 2014-07-22 20:36:37 -04:00
blitzmann
693d213ec1 Update to Crius 1.0 2014-07-22 14:08:59 -04:00
blitzmann
c76e4c8220 Fix #137 - TP and Webs affect DPS in graph 2014-07-21 15:57:00 -04:00
blitzmann
979539cb79 Fix #141 - Triage stacking not applying to shield boosts 2014-07-21 12:20:55 -04:00
DarkPhoenix
009956c301 Fix mistype in heron name and paste proper iteron V name 2014-06-19 23:29:51 +04:00
blitzmann
0b64dad408 Merge pull request #125 from akosiaris/damagetypesimport_blankline_fix
Fix blank lines in damage types import
2014-06-14 22:55:23 -04:00
blitzmann
032204bd53 Fix subsystem exports, resolves #130 2014-06-14 22:44:23 -04:00
blitzmann
55847adb41 Merge branch 'akosiaris_miningyeild' 2014-06-12 19:22:50 -04:00
blitzmann
e2abc51bbf Use small icon with mining yield / firepower toggle button 2014-06-12 19:22:29 -04:00
blitzmann
15ac9aca18 Use # charges instead of # shots when exporting loaded charges. Fixes #115 2014-06-12 01:59:44 -04:00
blitzmann
9cc70fd301 Bump to dev version 2014-06-12 01:59:34 -04:00
blitzmann
1cae335f65 Bump version 2014-06-11 19:15:14 -04:00
blitzmann
3c5538109d Instead of passing fitID to export service, pass the fit itself. Fixes #122 2014-06-11 18:56:40 -04:00
Alexandros Kosiaris
9de7585d33 Fix blank lines in damage types import
If the text variable contains blank lines like for example ending with a
newline character or having two consecutive newline characters the
fields dict is empty and DamagePattern fails with an Exception.

This closes #124
2014-06-11 11:02:58 +03:00
blitzmann
23044b5cdb Resolves #117 2014-06-06 21:31:08 -04:00
blitzmann
dea6ced052 Fixes #118 2014-06-05 15:07:13 -04:00
DarkPhoenix
c584d668b7 Bump version number for dev release 2014-06-04 01:42:38 +04:00
DarkPhoenix
3c6850fe7a Bump version info 2014-06-03 22:52:03 +04:00
DarkPhoenix
e3590f8d16 Fix one of the red giant duration heat effects 2014-06-03 22:48:50 +04:00
DarkPhoenix
5a586c5632 Mention cnc as founder in about window 2014-06-03 22:45:46 +04:00
DarkPhoenix
a946c9c9ed Merge branch 'master' into singularity 2014-06-03 00:36:13 +04:00
Anton Vorobyov
2ea0c57be5 Merge pull request #99 from blitzmann/issue-63
Fixes #63
2014-06-03 00:34:58 +04:00
DarkPhoenix
dcd2cdeddc Fix couple of ewar link effects, add missing SBA heat effect 2014-06-03 00:04:30 +04:00
Alexandros Kosiaris
bd60733bfe Use a button to toggle between firepower/miningyield
Introduce a button on both firepowerViewFull and miningyieldViewFull
views that allows switching between the two. Work by destroying each
view and recreating/populating on every button press.
2014-06-02 19:46:45 +03:00
blitzmann
5a1e39180a Set rack separation/labels and compact needed skills as default
Also refresh fit after modifying compact skills to take affect immediately.
2014-06-02 09:32:59 -04:00
DarkPhoenix
18385584bf Merge branch 'master' into singularity 2014-06-02 00:13:33 +04:00
DarkPhoenix
7d58b2caa1 Show additional cargo parameters in panel and tooltip. Closes #111 2014-06-02 00:12:11 +04:00
DarkPhoenix
08f22172a6 Merge branch 'master' into singularity 2014-06-01 21:31:50 +04:00
DarkPhoenix
88344dcfdc Disable change affecting skills menu for now 2014-06-01 21:18:41 +04:00
DarkPhoenix
4ea69201ea Remove debugging print 2014-06-01 19:09:30 +04:00
Anton Vorobyov
07692584cf Merge pull request #110 from blitzmann/issue-101
Add "Change affecting skill" context menu, resolves #101
2014-06-01 19:06:19 +04:00
DarkPhoenix
96707275be Add new overrides to the list 2014-06-01 17:21:11 +04:00
DarkPhoenix
239fec48e8 Merge branch 'master' into singularity 2014-06-01 17:04:52 +04:00
DarkPhoenix
6fc2cfff71 Unknown for DB items are fetched as None; make sure service doesn't fail in this case 2014-06-01 16:58:42 +04:00
Anton Vorobyov
faff60c5e0 Merge pull request #97 from blitzmann/issue-67
Fixes #67
2014-06-01 16:51:09 +04:00
DarkPhoenix
9a51d1fe3c Update db to 792006 and add new ship icons 2014-05-31 23:34:12 +04:00
DarkPhoenix
8313fa03b8 Rerun 'used by' script and remove unused effects 2014-05-31 22:13:59 +04:00
DarkPhoenix
665a1c473c Add more effects for new items 2014-05-31 22:02:41 +04:00
DarkPhoenix
c9dca6cd2a Implement remaining changes - besides new modules and ships 2014-05-31 19:16:15 +04:00
DarkPhoenix
7b3e0fe3b0 Barge, freighter and phoenix changes 2014-05-31 17:46:53 +04:00
DarkPhoenix
8ea4ef1b44 Implement DST changes 2014-05-31 02:30:38 +04:00
DarkPhoenix
933fbb26d7 Implement pirate ship updates 2014-05-30 02:21:29 +04:00
blitzmann
de9ae5c78c Ensure that we load all skills for a character and some minor tweaks. 2014-05-29 12:59:53 -04:00
blitzmann
0d1c7b93be Add icons to skill context menu 2014-05-28 22:32:23 -04:00
Alexandros Kosiaris
d08b1c8284 Calculate mining yields for module/drone
Following the weaponStats paradigm, add mining yield information
throughout the drone/module modules
2014-05-28 17:47:25 +03:00
Alexandros Kosiaris
28cfaf1702 Add mining yield view
Add a panel for displaying the mining yield. Display miner and drone
yield. Only create the frontend in this commit.
2014-05-28 17:47:25 +03:00
blitzmann
749934b89d Fix #106 2014-05-27 19:35:51 -04:00
blitzmann
1c84e9dc4b Added default value for used parameter 2014-05-27 16:29:22 -04:00
blitzmann
df046769ff Add GUI support for changing affected skills 2014-05-27 16:26:14 -04:00
DarkPhoenix
ae386cae4e Fix broken names in database 2014-05-27 12:48:59 +04:00
DarkPhoenix
d2635d6405 Update database to 788467 2014-05-26 02:17:24 +04:00
blitzmann
45fca2a87d All things that can affect attribute from current fit/ships is included in modifiedAttributeDict.
The previous method was to only add those that change a value. This adds things can can affect it, and then pass a new `used` flag to the dict to show if it's used or not.
2014-05-25 14:48:40 -04:00
blitzmann
f1f9da9214 Merge branch 'issue-102', resolves #102 2014-05-25 10:14:13 -04:00
blitzmann
a1416e6bec Improves on fit loading on startup by only calculating the last fit that is opened.
Issue with FittingView.MakeSnapshot() need an exception catch.
2014-05-25 02:55:28 -04:00
blitzmann
2d82eb7c92 Add thread for opening fits on startup, which allows us of wait dialog
Wait dialog doesn't actually move as the GUI thread is locked when opening the fits, but at least it shows that -something- is happening.
2014-05-24 22:20:26 -04:00
blitzmann
9a2408741e Feature: reopen previous fits on startup 2014-05-23 21:31:36 -04:00
blitzmann
b7e2b62562 Improved fitting window import; revert addition of staticmethod's in fit service 2014-05-23 18:58:09 -04:00
blitzmann
fbc336b038 Moved item override and fit porting to services.
Also sprinkled static methods around Fit service and other PEP8 goodness because why not.
2014-05-22 21:00:42 -04:00
DarkPhoenix
9dea4a26bf Remove nos immunity from ewar immune ships as well 2014-05-22 01:05:35 +04:00
Anton Vorobyov
0ea8a7a921 Merge pull request #77 from blitzmann/issue-69
Fix #69 - Neut on triage/siege/bastion

Not all exclusions are added, i will add the rest in later commits.
2014-05-22 00:45:14 +04:00
blitzmann
0bf956e9b3 Add support for explicitly converting items to another. 2014-05-20 12:46:19 -04:00
blitzmann
3bd66f174d Added skill prereq tooltip compact option to preferences 2014-05-18 01:45:28 -04:00
blitzmann
4f38d71676 Create compact skill requirement list
I probably could have worked this into the existing function instead of creating a new one if I thought about it, but meh.
2014-05-18 00:38:10 -04:00
blitzmann
493294e648 Update "Import Character" label to be less ambiguous 2014-05-16 00:27:24 -04:00
Anton Vorobyov
2a12e4c566 Merge pull request #85 from blitzmann/issue-84
Fix #84 - Bug with projected mods on projected ships
2014-05-16 00:21:13 +04:00
blitzmann
b75c86d251 Ignore Orbital ammo in ammo picker - see #71 2014-05-15 11:44:09 -04:00
blitzmann
a148a6d818 Added some bulk to PFStaticText to allow for more refined layout of text. Will probably increase font size later (it's so teeny!)
(cherry picked from commit 4f0c246e80a6d245bd9bd6be0dc0c0f995e2ae80 branch `tag`)
2014-05-15 01:08:19 -04:00
blitzmann
ee8f514266 Removed debug statement. 2014-05-15 00:47:41 -04:00
blitzmann
8a0778662f Fixes refresh issue with importing from fitting window into empty fit.
This removes a conditional that makes sure we don't fire the FitSelected event if the active fit is same as imported fit. Removing this, to my knowledge, has no adverse effects because when importing we *always* create a new fit (with the exception of the new fitting window import) and thus this conditional is not needed.
2014-05-14 23:44:44 -04:00
blitzmann
f9c141fa25 Adds import support for fitting window copy. Resolves #91
This requires us to pass an active fit to use as a base for the modules, as the format does not include ship information. Features:
* If active fit has modules, makes a new fit using same ship
* Does basic dummy checking. As the format doesn't include ship info, it will probably be common for someone to accidentally try to import a Legion fit to a Rifter by mistake. Import logic checks module legality for fit and, if fails, silently halts import without saving.
2014-05-14 23:39:47 -04:00
blitzmann
b783f0641c Load fleet data of projected fits 2014-05-10 22:49:12 -04:00
blitzmann
a0c1686ac5 Pass withBoosters to projected fits (to flag booster calculation) 2014-05-10 22:48:43 -04:00
blitzmann
af325caecc Fix order of operations (boosting not applied to modules of projected fits) 2014-05-10 22:47:42 -04:00
blitzmann
60a786a6a2 Fix boosting as it related to projected fits (was boosting target fit rather than current fit) 2014-05-10 22:46:25 -04:00
blitzmann
40c1bc8ae6 Added cargo gauge to resources and ability to toggle 2014-05-08 13:58:40 -04:00
blitzmann
6992537750 Fix regression 2014-05-07 17:44:47 -04:00
blitzmann
a604093387 Merge branch 'cargoDrag' - adding improved drag/drop functionality.
fittingView was the only real view that had drag and drop, and that was to support module swapping. I tweaked the dragged data to include source so that other Views can use it. Supported drag/drop:

* Copy / Move / Swap module from fitting to cargo
* Drag market items to fitting and other views
* Probably more that I cannot remember
2014-05-07 17:27:14 -04:00
blitzmann
d9e61a3305 Improved on drag/drop for cargo and fitting views. Can now copy rather than swap 2014-05-07 17:18:01 -04:00
blitzmann
0c42848d52 Fix recalc after module clone. Enforce module restrictions. 2014-05-07 15:53:03 -04:00
blitzmann
294f51ae5d Add support for drag and drop between pyfa displays which explicitly support it (some other tweaks as well) 2014-05-07 11:21:50 -04:00
blitzmann
ecd82ac7a4 Merge branch 'cargo' 2014-05-06 01:00:58 -04:00
blitzmann
5395c04b18 Fix issue with EFT .cfg importing
(cherry picked from commit d05b78a451)
2014-05-04 19:18:34 -04:00
blitzmann
d05b78a451 Fix issue with EFT .cfg importing 2014-05-04 19:16:00 -04:00
blitzmann
19f0bbc811 Add cargo support to XML, DNA, EFT import/export 2014-05-04 19:15:25 -04:00
blitzmann
ac144e51e0 Fix tooltips 2014-05-04 17:13:11 -04:00
blitzmann
f7ef3705b5 Added available cargo to capacity tooltip and cargo volume column 2014-05-04 11:35:13 -04:00
blitzmann
8e9ea0a36b Allow any item to be added to cargo (allows to distribute "refits" with fit) 2014-05-03 21:21:21 -04:00
blitzmann
89a8bde574 Merge branch 'master' into cargo
Conflicts:
	eos/saveddata/fit.py
2014-05-03 20:46:32 -04:00
blitzmann
2651a04880 Refresh active fit upon fit deletion (deleted fit may have been projected) 2014-05-03 01:21:45 -04:00
blitzmann
197a61253f Better way to fix deletion of projection relationships 2014-05-03 00:42:08 -04:00
blitzmann
fb9da5ec8d Revert "Create new Fit relationship with fits that current fit is projected onto (see #90)"
This reverts commit a2727d5f47.
2014-05-03 00:40:13 -04:00
blitzmann
a2727d5f47 Create new Fit relationship with fits that current fit is projected onto (see #90) 2014-05-01 22:08:27 -04:00
blitzmann
0c40aa7244 Merge branch 'about' 2014-04-30 13:13:30 -04:00
blitzmann
234af1ac3d Fix #86 - Importing EFT with cargo 2014-04-30 12:57:00 -04:00
blitzmann
fb1323ba17 Fix #87 - enforce proper Item in Ship.__init__ 2014-04-30 11:52:56 -04:00
blitzmann
38bd33dce4 Fix incorrect indentation which caused improper XML import processing 2014-04-30 10:44:06 -04:00
blitzmann
d32407b9f8 Removed problematic conditional sending projected fit to the wrong path 2014-04-27 01:35:57 -04:00
blitzmann
83c0bbe37b Fix #82 2014-04-24 00:12:10 -04:00
blitzmann
1fea4e5876 Adds missing icons 2014-04-23 23:30:07 -04:00
blitzmann
1fe19c4853 Merge pull request #81 from blitzmann/issue-80
Fix #80
2014-04-23 10:44:15 -04:00
Ryan Holmes
d9653ea43c Redundancy 2014-04-23 10:39:36 -04:00
Ryan Holmes
943ddd3da1 Add loaded charges to XML export 2014-04-23 01:14:35 -04:00
Ryan Holmes
08573899d3 Removes "res:/UI/Texture/Icons/....png" from iconFile 2014-04-23 00:34:54 -04:00
blitzmann
e873f1b88e Include loaded charges from modules in DNA export
https://forums.eveonline.com/default.aspx?g=posts&m=4498408#post4498408
2014-04-22 02:04:15 -04:00
blitzmann
6dc4161a36 Fix #69 2014-04-14 22:14:06 -04:00
blitzmann
507c423e09 Fix #73 2014-04-11 21:44:11 -04:00
blitzmann
631d97e21a Fix #71 2014-04-08 12:48:58 -04:00
blitzmann
23e6331909 Some Mac love, and added missing accelerator for fleet pane (set as CTRL+5) 2014-04-03 19:44:03 -04:00
blitzmann
9bbe7f7fb0 Tweak to HTML export - have ship group link to fit if only 1 fit exists 2014-03-31 00:18:22 -04:00
blitzmann
5df7e193e7 Cargo works, but needs a more TLC 2014-03-30 17:12:32 -04:00
blitzmann
e87ac96c6c Fix incorrect variable order 2014-03-30 17:12:13 -04:00
blitzmann
795724cbe1 Merge branch 'charImprovements' 2014-03-27 22:50:38 -04:00
blitzmann
3cfa1c0822 Layout tweaks 2014-03-27 22:50:21 -04:00
blitzmann
4faa2abe96 HTML can now be manually called. "Enabled" now refers to "Enable Automatic". Also, fixed nagging typo. ("HTMl" lol) 2014-03-27 22:15:34 -04:00
blitzmann
890ff55690 Support CREST kill URL 2014-03-27 18:55:33 -04:00
blitzmann
73a67d0fc3 Merge branch 'master' of https://github.com/DarkFenX/Pyfa 2014-03-27 18:36:33 -04:00
blitzmann
8fad69c344 Update readme.txt 2014-03-27 18:36:18 -04:00
blitzmann
76b6fb5898 Added support for importing killmails copied from chat channel 2014-03-27 13:44:52 -04:00
blitzmann
641f5999f0 Tweak rack labels 2014-03-26 14:18:40 -04:00
blitzmann
47ef37274b Don't attempt to remove a Rack module 2014-03-25 23:45:23 -04:00
blitzmann
264824e7de Removed old @todo's, and OnSelection function - apparently you cannot change selection color :( 2014-03-25 23:29:21 -04:00
blitzmann
fe824943e4 Reel in # of digits for align time tooltip 2014-03-25 23:11:27 -04:00
blitzmann
eb571b3ab3 Merge branch 'master' of https://github.com/DarkFenX/Pyfa 2014-03-25 23:03:03 -04:00
blitzmann
5e464bfcf8 Fix rack labels for t3 cruisers, racks are now bolded without the ugly bug from before. 2014-03-25 22:59:38 -04:00
blitzmann
5df3672adf Fix for text style when turning rack labels on/off in preferences. Disabled bolding of label, as font does not work correctly at the moment. 2014-03-25 21:45:36 -04:00
blitzmann
d5e8938c70 Merge pull request #65 from atwardowski/patch-1
More precision in align time tooltip
2014-03-25 13:20:35 -04:00
blitzmann
1f37656169 Added option to show rack labels 2014-03-25 12:43:15 -04:00
Adam Twardowski
3a05abe490 More precision in align time tooltip 2014-03-25 12:33:09 -04:00
blitzmann
c3ce580b8c Rename DummyModule to Rack 2014-03-25 01:11:23 -04:00
blitzmann
47c46cc9c5 Added copy module by drag/drop module while holding Ctrl key. This has been planned since 2011 according to blame. =D 2014-03-25 00:33:40 -04:00
blitzmann
7a2ddad70c Fixes long-standing issue with swapping modules and modifying position on rack. Also, don't color rack dividers. 2014-03-25 00:24:52 -04:00
blitzmann
2f90ac64ec Refactor how rack separation works 2014-03-24 19:04:11 -04:00
blitzmann
e23ad7b002 Muted slot colors (previous colors were very strong). Think about moving these to prefs 2014-03-24 12:49:09 -04:00
blitzmann
b98edc3f65 Fix and implement preferences 2014-03-24 12:23:22 -04:00
blitzmann
22f92bed24 Fixed nagging bug about extra slots, more tweaks 2014-03-24 00:17:20 -04:00
blitzmann
cbea2dd55a Create mapping of external -> internal indices 2014-03-23 01:31:02 -04:00
blitzmann
26846fd102 Preference UI support for slot divisions 2014-03-23 00:53:09 -04:00
blitzmann
004f9cb062 Preliminary support for slot dividers. Extremely buggy. 2014-03-23 00:47:06 -04:00
DarkPhoenix
2903c7e0ca Do not penalize effects modifying structure resistance 2014-03-20 22:47:42 +04:00
DarkPhoenix
e00941b2c5 Do not penalize siege module bonus 2014-03-18 22:02:19 +04:00
blitzmann
ffaa707ea9 Fix #62 2014-03-17 18:13:29 -04:00
blitzmann
7337d54511 Added fit import from copied eve chat 2014-03-16 23:57:52 -04:00
blitzmann
dd395aff03 Dev version 2014-03-15 23:40:33 -04:00
DarkPhoenix
4a41638472 Update to rubicon 1.3 2014-03-15 17:33:45 +04:00
blitzmann
50fbda288a Open fits at null-sec.com if not in IGB 2014-03-13 22:06:14 -04:00
blitzmann
7a33aba329 Finished visual improvements to the HTML export and removed debugging statements 2014-03-13 00:14:57 -04:00
blitzmann
ec7a58c592 Update jQuery mobile and add ship group heading. 2014-03-12 18:40:53 -04:00
blitzmann
9ac11f9a7c Quick fix for issue 55 2014-03-11 23:38:01 -04:00
blitzmann
4bcb368d17 More about box changes 2014-03-11 21:49:50 -04:00
blitzmann
f42fd1de43 Tweaks to about box, including adding my name as developer 2014-03-11 21:34:19 -04:00
DarkPhoenix
63a088631d Fix #54 2014-03-12 01:04:02 +04:00
DarkPhoenix
4fa585046f Fix potential crash on ansi + unicode concatenation 2014-03-12 00:24:29 +04:00
DarkPhoenix
f90983b541 Fix for #57 2014-03-11 23:40:28 +04:00
Anton Vorobyov
5095ac4881 Merge pull request #60 from bmonty/master
Update .gitignore
2014-03-11 22:23:45 +03:00
DarkPhoenix
c01450d1a1 Expand path for database conversion script 2014-03-11 23:17:10 +04:00
blitzmann
3718d20361 Probably best to generalize. Changed user guide to wiki. 2014-03-10 23:34:00 -04:00
blitzmann
1d66757b28 Added some help menu options the point to external resources 2014-03-10 19:08:06 -04:00
blitzmann
9e67ad032c Removed print debugging. 2014-03-08 22:51:45 -05:00
blitzmann
06bd15079d Improvements to update logic 2014-03-08 22:39:29 -05:00
Benjamin Montgomery
7e59b2d43a Update .gitignore
Ignore the fits html file.
2014-03-08 07:48:14 -10:00
blitzmann
4430204227 Merge branch 'prefs' 2014-03-07 21:36:31 -05:00
blitzmann
652e0738af Rename GlobalPreferences to GeneralPreferences 2014-03-07 21:28:58 -05:00
blitzmann
e6bc831305 Added static line under pref page title 2014-03-07 20:57:39 -05:00
blitzmann
513a02a4d4 Merge branch 'master' into prefs 2014-03-07 20:48:27 -05:00
blitzmann
f355dac322 Dev versioning 2014-03-04 14:35:00 -05:00
blitzmann
85f632bd20 Fixed infinite loop 2014-03-04 14:33:48 -05:00
blitzmann
4f4829ebb4 Spaced API information 2014-03-04 14:01:30 -05:00
blitzmann
cb0a5ded49 Merge pull request #53 from blitzmann/fleet
Fleet booster refactoring
2014-03-03 18:48:36 -05:00
blitzmann
bf1df97886 Expand fit choice to available space 2014-03-03 11:38:22 -05:00
blitzmann
b320c6ae77 Merge branch 'master' into fleet 2014-03-03 11:20:06 -05:00
blitzmann
9d2eee3b01 Removing sizing hack now that dialog sizing is correct 2014-03-03 11:19:32 -05:00
blitzmann
9b096524cc Updated update preference view with new icon and text wrapping 2014-03-03 01:53:55 -05:00
blitzmann
35a0b0ce4b Fix for PreferenceDialog sizing issues 2014-03-03 01:52:57 -05:00
blitzmann
5d75b2bd6d Merge branch 'master' into prefs 2014-03-02 23:55:46 -05:00
blitzmann
83cc3fd28a Merge pull request #47 from blitzmann/onlUpdate
Update notifications
2014-03-02 23:45:43 -05:00
blitzmann
2d69705469 Added date in update message 2014-03-02 23:42:16 -05:00
blitzmann
2ff6ecdbec Fixed settings for prerelease suppression 2014-03-02 22:55:11 -05:00
blitzmann
25c9bfe4d4 Check to see if release version is actually higher than current version (shouldn't really happen, but who knows) 2014-03-02 22:45:18 -05:00
blitzmann
91b2eff7b4 Added proxy icon, removed help text for global char and profile options 2014-03-02 22:23:49 -05:00
blitzmann
ea3969e1e3 Show preference pages in the order they appear in builtinPreferenceViews 2014-03-02 20:02:36 -05:00
blitzmann
cd5d047891 Use .Wrap() and the dialogs width to set appropriate sizer of large text 2014-03-02 19:54:35 -05:00
blitzmann
34f27f7995 Do not commit saved data 2014-03-02 17:51:48 -05:00
blitzmann
752b1fe726 Merge pull request #56 from blitzmann/issue52-ghosting
Fix issue #52 - slot ghosting
2014-03-02 17:35:22 -05:00
blitzmann
281e591984 Split general and proxy settings. Added some help text (not currently displayed). Dialog sizing needs to be addressed 2014-03-02 17:28:25 -05:00
blitzmann
b686aa6d0b Merge pull request #49 from blitzmann/searchfix
Fixed issue #48
2014-03-02 17:20:52 -05:00
blitzmann
035e6cea41 Fixes incorrect setting of draggedFitID when selecting booster from menu 2014-02-26 00:32:07 -05:00
blitzmann
5aa34caca6 Help message in fleet window 2014-02-26 00:07:51 -05:00
blitzmann
4fdd3f177a Applying appropriate icons 2014-02-25 23:54:27 -05:00
blitzmann
0826aa4bfe Fix for issue 52 2014-02-24 21:58:42 -05:00
blitzmann
5869fe6d97 Added booster icon
This is technically a button, and acts like a button without a function. Must look into making it a proper icon and not a button.
2014-02-24 03:02:14 -05:00
blitzmann
e877cef3a9 Revert "Added icon to show boosting fits."
This reverts commit f7fdcfcd4e.
2014-02-24 03:00:06 -05:00
blitzmann
f7fdcfcd4e Added icon to show boosting fits. 2014-02-24 02:34:05 -05:00
blitzmann
c6ad328e99 Changed "Set Booster Fit" option to a boolean menu item with fancy checkbox. 2014-02-24 00:56:04 -05:00
blitzmann
d8dfafedfa Refactoring of code, along with general housekeeping. Also, character menu is now disabled with no fit selected. 2014-02-24 00:55:25 -05:00
blitzmann
65cc0bec1c Fixed style issue that caused content to move when switching between choice and static text 2014-02-23 22:20:22 -05:00
blitzmann
c34215f9e3 Got rid of UpdateFleetFitsUI and baked it's functionality into fitSelected; now supports dragging/setting via right click. 2014-02-23 22:18:58 -05:00
blitzmann
354b732c2c Fit choice works and is properly applied. Dragging and setting via context from ship browser does not. 2014-02-22 21:11:59 -05:00
blitzmann
b910982994 Bug fix and more work 2014-02-22 01:14:33 -05:00
blitzmann
f2c1002d58 Fixes bug with fit copy.
`copy.deepcopy` was not copying the booster property of the fit for whatever reason - I blame my poor understanding of copy.
2014-02-22 00:52:29 -05:00
blitzmann
50ce4d37aa GangView is not aware of changes to booster fits 2014-02-21 21:50:18 -05:00
blitzmann
46662d2b72 Added getFitsWithBooster query 2014-02-21 21:47:10 -05:00
blitzmann
7579f3c3e1 Fixed cases where fit.booster column might contain null instead of bool 2014-02-20 23:56:50 -05:00
blitzmann
3842913fe1 Added booster fit toggling in database, menu label toggling, and migration code 2014-02-20 23:26:26 -05:00
blitzmann
aaadcb9b45 Add "Flag as Booster" item to fitting menu 2014-02-20 00:57:12 -05:00
blitzmann
29fc82b771 Semantics. Tweaking working not better represents that pre-release notification is opt-in. Thanks Andro! 2014-02-18 02:04:07 -05:00
blitzmann
48963167fe Reverts previous commit and introduces better way to filter ships 2014-02-17 23:29:02 -05:00
blitzmann
4095365518 Hotfix for issue #48 2014-02-17 22:44:40 -05:00
DarkPhoenix
acdc2c496e Bump veersion to 1.1.21 2014-02-17 23:50:12 +04:00
blitzmann
26b078b69f Tweaking label of update preferences 2014-02-17 11:30:04 -05:00
blitzmann
9c792fc9a7 Pre-release notifications suppressed by default 2014-02-16 18:09:49 -05:00
DarkPhoenix
c7944e91e7 Do not choke on renamed items 2014-02-16 22:42:43 +04:00
DarkPhoenix
9e389f27b0 Skip charges in EVE XML exports 2014-02-16 22:38:18 +04:00
Anton Vorobyov
eef34f1dcf Merge pull request #46 from blitzmann/master
Fixes stats relating to the Capital Capacitor Emission Systems skill
2014-02-16 21:11:09 +03:00
DarkPhoenix
c1ea161060 Rework traits support. Also support getting traits out of the client via phobos 2014-02-16 22:06:54 +04:00
Anton Vorobyov
b4aca7ae90 Merge pull request #41 from cl05tomp/master
Added new traits tab to Ship Basic Stats window
2014-02-16 19:20:53 +03:00
blitzmann
c0b4e73629 Added logic for notification suppression, along with other tweaks. Did not worry too much on how to handle pre-releases. 2014-02-16 01:26:13 -05:00
blitzmann
024637432c Added settings for update notification suppression. 2014-02-15 21:58:48 -05:00
blitzmann
7ced595cca Custom dialog implemented. 2014-02-15 00:55:04 -05:00
blitzmann
4a7782a713 Fixes stats relating to the Capital Capacitor Emission Systems skill 2014-02-14 22:36:11 -05:00
blitzmann
d7dda83314 More work on update notification. Displays debug popup now. 2014-02-13 22:52:36 -05:00
blitzmann
6ee474a8ff Started work on update notification. Successfully prints out alert to stdout if version from GitHub is not the same as internal version. 2014-02-13 22:28:56 -05:00
Carl Tompkins
2e9680191b Added new traits tab to Ship Basic Stats window 2014-02-06 19:22:47 -05:00
DarkPhoenix
d7b7d127b8 Bump version to 1.1.10 2014-01-30 12:24:23 +04:00
DarkPhoenix
2096b7641f Merge branch 'singularity' 2014-01-30 12:18:48 +04:00
DarkPhoenix
2b83d17bd2 Update version tag 2014-01-29 23:30:17 +04:00
Anton Vorobyov
d7e880c42b Merge pull request #34 from reactormonk/master
print() so python3 actually prints the error
2014-01-29 11:27:16 -08:00
Simon Hafner
e17c0610fb print() so python3 actually prints the error 2014-01-29 13:21:53 -06:00
DarkPhoenix
98e9ab461a Update database to 709728 2014-01-29 23:17:59 +04:00
DarkPhoenix
a833b2f5cc Revert change to pyfa path. Customization is provided via configforced.py module 2014-01-29 21:45:43 +04:00
Anton Vorobyov
9076175b0c Merge pull request #33 from blitzmann/master
Fix for savePath config
2014-01-29 08:33:01 -08:00
Anton Vorobyov
a9843b637a Merge pull request #32 from lydia/master
Fixed issue when running pyfa.py through a symlink
2014-01-29 08:23:52 -08:00
blitzmann
b9ffe18775 Fix for savePath config 2014-01-28 13:14:33 -05:00
Lydia Fernandez
6728121f9f Added a call to os.path.realpath() when creating pyfaPath to properly resolve symlinks. Also added a few linebreaks 2014-01-25 19:30:56 -05:00
DarkPhoenix
98850bfc1d Update to SiSi 703519 2014-01-22 23:51:42 +04:00
DarkPhoenix
a5f821850b Update scripts to be aware of latest phobos changes 2014-01-21 23:35:04 +04:00
DarkPhoenix
d97764586f Re-publish festival items 2014-01-21 23:31:18 +04:00
DarkPhoenix
3cd80b4dfe Merge branch 'master' of github.com:DarkFenX/Pyfa 2014-01-10 22:17:52 +04:00
Anton Vorobyov
97548212b5 Merge pull request #30 from alexjurkiewicz/master
Improve market search
2014-01-10 09:50:00 -08:00
Alex Jurkiewicz
7986177a16 Change market search from substring to tokenised substring 2014-01-08 17:53:33 +11:00
Alex Jurkiewicz
82733a81c8 limit searchItems returned list size to 100 2014-01-08 17:42:47 +11:00
DarkPhoenix
20cb2ca7d4 Revert tag 2013-11-21 22:52:08 +04:00
DarkPhoenix
3b13b42bdf Bump version 2013-11-21 22:35:07 +04:00
DarkPhoenix
09374f1643 Add missing paladin optimal effect 2013-11-21 22:31:37 +04:00
DarkPhoenix
388c3c8bf1 Add missing Kronos falloff effect 2013-11-20 22:17:09 +04:00
DarkPhoenix
24df54723f Revert tag in config file 2013-11-19 23:25:04 +04:00
DarkPhoenix
e513d4d78a Bump version 2013-11-19 22:33:21 +04:00
DarkPhoenix
666f4c9adb Make armor resistance bonus of heretic to rely on correct skill 2013-11-19 22:04:02 +04:00
DarkPhoenix
053e6b1780 Update everything to 653401, which is likely to be final Rubicon release 2013-11-19 00:31:12 +04:00
DarkPhoenix
5162db11df Do not choke on import of unrecognized mods and empty lines 2013-10-10 00:10:38 +04:00
DarkPhoenix
21b85690fe Add bastion effect and fix some stuff in siege effect 2013-10-08 01:54:36 +04:00
DarkPhoenix
8a663ef8ed Update version in config 2013-10-08 01:18:14 +04:00
DarkPhoenix
46c46fce48 Add effects for SoE ships 2013-10-08 01:17:31 +04:00
DarkPhoenix
782f3cd590 Add support for SoE race. Their ships do not use it yet due to wrong skill requirements 2013-10-08 01:05:46 +04:00
DarkPhoenix
b6feb1c6a1 Fix ORE race detection 2013-10-08 00:43:13 +04:00
DarkPhoenix
c8e692d8d8 Update existing items 2013-10-08 00:35:18 +04:00
DarkPhoenix
fc6aa191f1 Update ship icons (command ships + new ships) 2013-10-07 23:19:02 +04:00
DarkPhoenix
44f581ce3c Fix warp speed calculation formula 2013-10-07 23:08:12 +04:00
DarkPhoenix
f03df712b1 Update db to 621408 2013-10-07 22:52:51 +04:00
DarkPhoenix
9d132d3bb9 Reorder context menu for drones 2013-10-07 22:39:48 +04:00
Anton Vorobyov
a4d72caffa Merge pull request #20 from curufinwe/master
Added "Remove Drone Stack" to drone context menu
2013-10-07 11:30:09 -07:00
Eugen Beck
bb76e9b3b4 Added "Remove Drone Stack" to drone context menu 2013-09-22 14:19:24 +02:00
DarkPhoenix
b9e2b11a54 Modify wxpython version check, to make 2.8 as soft requirement - 2.9 is acceptable too 2013-09-11 00:06:06 +04:00
DarkPhoenix
5c1b39b492 Fix kestrel effect 2013-09-06 21:26:13 +04:00
DarkPhoenix
f208e3c39e Replace all version-selecting calls with single select() 2013-09-05 23:41:10 +04:00
DarkPhoenix
30c0b19e89 Penalize scanres rigs 2013-09-04 23:51:41 +04:00
DarkPhoenix
cd41a12ccb Change tag back to git 2013-09-03 22:21:56 +04:00
2216 changed files with 14517 additions and 5972 deletions

8
.gitignore vendored
View File

@@ -11,4 +11,12 @@
#Patch files
*.patch
#Personal
saveddata/
#PyCharm
.idea/
#Pyfa file
pyfaFits.html

15
README.md Normal file
View File

@@ -0,0 +1,15 @@
# Pyfa
Pyfa is a cross-platform desktop fitting application for EVE online that can be used natively on any platform where python and wxwidgets are available.
It provides many advanced features such as graphs and full calculations of any possible combination of modules, fits, etc.
Please see the [FAQ](https://github.com/DarkFenX/Pyfa/wiki/FAQ) for answers to common questions / concerns
#### Links
* [Development repository: http://github.com/DarkFenX/Pyfa](http://github.com/DarkFenX/Pyfa)
* [XMPP conference:
pyfa@conference.jabber.org](pyfa@conference.jabber.org)
* [EVE forum thread](http://forums.eveonline.com/default.aspx?g=posts&t=247609)
* [EVE Online website](http://www.eveonline.com/)

View File

@@ -13,12 +13,16 @@ debug = False
saveInRoot = False
# Version data
version = "1.1.16"
version = "1.8.0"
tag = "Stable"
expansionName = "Odyssey"
expansionVersion = "1.1"
expansionName = "Proteus"
expansionVersion = "1.0"
evemonMinVersion = "4081"
# Database version (int ONLY)
# Increment every time we need to flag for user database upgrade/modification
dbversion = 3
pyfaPath = None
savePath = None
staticPath = None
@@ -34,9 +38,10 @@ def defPaths():
global saveInRoot
# The main pyfa directory which contains run.py
# Python 2.X uses ANSI by default, so we need to convert the character encoding
pyfaPath = getattr(configforced, "pyfaPath", None)
pyfaPath = getattr(configforced, "pyfaPath", pyfaPath)
if pyfaPath is None:
pyfaPath = unicode(os.path.dirname(os.path.abspath(sys.modules['__main__'].__file__)), sys.getfilesystemencoding())
pyfaPath = unicode(os.path.dirname(os.path.realpath(os.path.abspath(
sys.modules['__main__'].__file__))), sys.getfilesystemencoding())
# Where we store the saved fits etc, default is the current users home directory
if saveInRoot is True:
@@ -46,7 +51,8 @@ def defPaths():
else:
savePath = getattr(configforced, "savePath", None)
if savePath is None:
savePath = unicode(os.path.expanduser(os.path.join("~", ".pyfa")), sys.getfilesystemencoding())
savePath = unicode(os.path.expanduser(os.path.join("~", ".pyfa")),
sys.getfilesystemencoding())
# Redirect stderr to file if we're requested to do so
stderrToFile = getattr(configforced, "stderrToFile", None)
@@ -62,7 +68,8 @@ def defPaths():
os.mkdir(savePath)
sys.stdout = open(os.path.join(savePath, "output_log.txt"), "w")
# Static EVE Data from the staticdata repository, should be in the staticdata directory in our pyfa directory
# Static EVE Data from the staticdata repository, should be in the staticdata
# directory in our pyfa directory
staticPath = os.path.join(pyfaPath, "staticdata")
# The database where we store all the fits etc

0
eos/__init__.py Executable file → Normal file
View File

0
eos/capSim.py Executable file → Normal file
View File

0
eos/config.py Executable file → Normal file
View File

14
eos/db/__init__.py Executable file → Normal file
View File

@@ -40,6 +40,15 @@ gamedata_meta = MetaData()
gamedata_meta.bind = gamedata_engine
gamedata_session = sessionmaker(bind=gamedata_engine, autoflush=False, expire_on_commit=False)()
# This should be moved elsewhere, maybe as an actual query. Current, without try-except, it breaks when making a new
# game db because we haven't reached gamedata_meta.create_all()
try:
config.gamedata_version = gamedata_session.execute(
"SELECT `field_value` FROM `metadata` WHERE `field_name` LIKE 'client_build'"
).fetchone()[0]
except:
config.gamedata_version = None
saveddata_connectionstring = config.saveddata_connectionstring
if saveddata_connectionstring is not None:
if callable(saveddata_connectionstring):
@@ -49,7 +58,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 +74,8 @@ 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
getSquad, getBoosterFits, getProjectedFits, getTargetResistsList, getTargetResists,\
clearPrices, countAllFits
#If using in memory saveddata, you'll want to reflect it so the data structure is good.
if config.saveddata_connectionstring == "sqlite:///:memory:":
@@ -75,3 +84,4 @@ if config.saveddata_connectionstring == "sqlite:///:memory:":
def rollback():
with sd_lock:
saveddata_session.rollback()

0
eos/db/gamedata/__init__.py Executable file → Normal file
View File

1
eos/db/gamedata/attribute.py Executable file → Normal file
View File

@@ -31,6 +31,7 @@ attributes_table = Table("dgmattribs", gamedata_meta,
Column("attributeID", Integer, primary_key = True),
Column("attributeName", String),
Column("defaultValue", Float),
Column("maxAttributeID", Integer, ForeignKey("dgmattribs.attributeID")),
Column("description", Unicode),
Column("published", Boolean),
Column("displayName", String),

0
eos/db/gamedata/category.py Executable file → Normal file
View File

0
eos/db/gamedata/effect.py Executable file → Normal file
View File

0
eos/db/gamedata/group.py Executable file → Normal file
View File

0
eos/db/gamedata/icon.py Executable file → Normal file
View File

12
eos/db/gamedata/item.py Executable file → Normal file
View File

@@ -23,13 +23,14 @@ from sqlalchemy.ext.associationproxy import association_proxy
from sqlalchemy.orm.collections import attribute_mapped_collection
from eos.db import gamedata_meta
from eos.types import Icon, Attribute, Item, Effect, MetaType, Group
from eos.types import Icon, Attribute, Item, Effect, MetaType, Group, Traits
items_table = Table("invtypes", gamedata_meta,
Column("typeID", Integer, primary_key = True),
Column("typeName", String, index=True),
Column("description", String),
Column("raceID", Integer),
Column("factionID", Integer),
Column("volume", Float),
Column("mass", Float),
Column("capacity", Float),
@@ -38,9 +39,8 @@ items_table = Table("invtypes", gamedata_meta,
Column("iconID", Integer, ForeignKey("icons.iconID")),
Column("groupID", Integer, ForeignKey("invgroups.groupID"), index=True))
from .metaGroup import metatypes_table
from .traits import traits_table
mapper(Item, items_table,
properties = {"group" : relation(Group, backref = "items"),
@@ -52,6 +52,10 @@ mapper(Item, items_table,
uselist = False),
"ID" : synonym("typeID"),
"name" : synonym("typeName"),
"description" : deferred(items_table.c.description)})
"description" : deferred(items_table.c.description),
"traits" : relation(Traits,
primaryjoin = traits_table.c.typeID == items_table.c.typeID,
uselist = False)
})
Item.category = association_proxy("group", "category")

0
eos/db/gamedata/marketGroup.py Executable file → Normal file
View File

4
eos/db/gamedata/metaData.py Executable file → Normal file
View File

@@ -23,7 +23,7 @@ from eos.types import MetaData
from eos.db import gamedata_meta
metadata_table = Table("metadata", gamedata_meta,
Column("fieldName", String, primary_key=True),
Column("fieldValue", String))
Column("field_name", String, primary_key=True),
Column("field_value", String))
mapper(MetaData, metadata_table)

0
eos/db/gamedata/metaGroup.py Executable file → Normal file
View File

9
eos/db/gamedata/queries.py Executable file → Normal file
View File

@@ -184,8 +184,6 @@ def getItemsByCategory(filter, where=None, eager=None):
def searchItems(nameLike, where=None, join=None, eager=None):
if not isinstance(nameLike, basestring):
raise TypeError("Need string as argument")
# Prepare our string for request
nameLike = u"%{0}%".format(sqlizeString(nameLike))
if join is None:
join = tuple()
@@ -193,8 +191,11 @@ def searchItems(nameLike, where=None, join=None, eager=None):
if not hasattr(join, "__iter__"):
join = (join,)
filter = processWhere(Item.name.like(nameLike, escape="\\"), where)
items = gamedata_session.query(Item).options(*processEager(eager)).join(*join).filter(filter).all()
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.limit(100).all()
return items
@cachedQuery(2, "where", "itemids")

11
eos/db/gamedata/traits.py Normal file
View File

@@ -0,0 +1,11 @@
from sqlalchemy import Column, Table, Integer, String, ForeignKey
from sqlalchemy.orm import mapper
from eos.types import Traits
from eos.db import gamedata_meta
traits_table = Table("invtraits", gamedata_meta,
Column("typeID", Integer, ForeignKey("invtypes.typeID"), primary_key=True),
Column("traitText", String))
mapper(Traits, traits_table);

0
eos/db/gamedata/unit.py Executable file → Normal file
View File

61
eos/db/migration.py Executable file → Normal file
View File

@@ -1,41 +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)
currversion = getVersion(saveddata_engine)
if currversion == config.dbversion:
return
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:
# Automatically backup database
toFile = "%s/saveddata_migration_%d-%d_%s.db"%(
config.savePath,
currversion,
config.dbversion,
time.strftime("%Y%m%d_%H%M%S"))
shutil.copyfile(config.saveDB, toFile)
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;")
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 to include target resists attribute
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

@@ -0,0 +1,21 @@
"""
Migration 2
- Includes old upgrade paths pre-1.5.0. See GH issue #190 for why this is needed
"""
import sqlalchemy
def upgrade(saveddata_engine):
# Update characters schema to include default chars
try:
saveddata_engine.execute("SELECT defaultChar, chars FROM characters LIMIT 1")
except sqlalchemy.exc.DatabaseError:
saveddata_engine.execute("ALTER TABLE characters ADD COLUMN defaultChar INTEGER")
saveddata_engine.execute("ALTER TABLE characters ADD COLUMN chars VARCHAR")
# Update fits schema to include booster attribute
try:
saveddata_engine.execute("SELECT booster FROM fits LIMIT 1")
except sqlalchemy.exc.DatabaseError:
saveddata_engine.execute("ALTER TABLE fits ADD COLUMN booster BOOLEAN")

View File

@@ -0,0 +1,13 @@
"""
Migration 3
- Adds mode column for fits (t3 dessy)
"""
import sqlalchemy
def upgrade(saveddata_engine):
try:
saveddata_engine.execute("SELECT modeID FROM fits LIMIT 1")
except sqlalchemy.exc.DatabaseError:
saveddata_engine.execute("ALTER TABLE fits ADD COLUMN modeID INTEGER")

View File

@@ -0,0 +1,141 @@
"""
Migration 4
- Converts modules based on Proteus Module Tiericide
Some modules have been unpublished (and unpublished module attributes are removed
from database), which causes pyfa to crash. We therefore replace these
modules with their new replacements
Based on http://community.eveonline.com/news/patch-notes/patch-notes-for-proteus/
and output of itemDiff.py
"""
CONVERSIONS = {
506: ( # 'Basic' Capacitor Power Relay
8205, # Alpha Reactor Control: Capacitor Power Relay
8209, # Marked Generator Refitting: Capacitor Power Relay
8203, # Partial Power Plant Manager: Capacity Power Relay
8207, # Type-E Power Core Modification: Capacitor Power Relay
),
8177: ( # Mark I Compact Capacitor Power Relay
8173, # Beta Reactor Control: Capacitor Power Relay I
),
8175: ( # Type-D Restrained Capacitor Power Relay
8171, # Local Power Plant Manager: Capacity Power Relay I
),
421: ( # 'Basic' Capacitor Recharger
4425, # AGM Capacitor Charge Array,
4421, # F-a10 Buffer Capacitor Regenerator
4423, # Industrial Capacitor Recharger
4427, # Secondary Parallel Link-Capacitor
),
4435: ( # Eutectic Compact Cap Recharger
4433, # Barton Reactor Capacitor Recharger I
4431, # F-b10 Nominal Capacitor Regenerator
4437, # Fixed Parallel Link-Capacitor I
),
1315: ( # 'Basic' Expanded Cargohold
5483, # Alpha Hull Mod Expanded Cargo
5479, # Marked Modified SS Expanded Cargo
5481, # Partial Hull Conversion Expanded Cargo
5485, # Type-E Altered SS Expanded Cargo
),
5493: ( # Type-D Restrained Expanded Cargo
5491, # Beta Hull Mod Expanded Cargo
5489, # Local Hull Conversion Expanded Cargo I
5487, # Mark I Modified SS Expanded Cargo
),
1401: ( # 'Basic' Inertial Stabilizers
5523, # Alpha Hull Mod Inertial Stabilizers
5521, # Partial Hull Conversion Inertial Stabilizers
5525, # Type-E Altered SS Inertial Stabilizers
),
5533: ( # Type-D Restrained Inertial Stabilizers
5531, # Beta Hull Mod Inertial Stabilizers
5529, # Local Hull Conversion Inertial Stabilizers I
5527, # Mark I Modified SS Inertial Stabilizers
5519, # Marked Modified SS Inertial Stabilizers
),
5239: ( # EP-S Gaussian Scoped Mining Laser
5241, # Dual Diode Mining Laser I
),
5233: ( # Single Diode Basic Mining Laser
5231, # EP-R Argon Ion Basic Excavation Pulse
5237, # Rubin Basic Particle Bore Stream
5235, # Xenon Basic Drilling Beam
),
5245: ( # Particle Bore Compact Mining Laser
5243, # XeCl Drilling Beam I
),
22619: ( # Frigoris Restrained Ice Harvester Upgrade
22617, # Crisium Ice Harvester Upgrade
),
22611: ( # Elara Restrained Mining Laser Upgrade
22609, # Erin Mining Laser Upgrade
),
1242: ( # 'Basic' Nanofiber Internal Structure
5591, # Alpha Hull Mod Nanofiber Structure
5595, # Marked Modified SS Nanofiber Structure
5559, # Partial Hull Conversion Nanofiber Structure
5593, # Type-E Altered SS Nanofiber Structure
),
5599: ( # Type-D Restrained Nanofiber Structure
5597, # Beta Hull Mod Nanofiber Structure
5561, # Local Hull Conversion Nanofiber Structure I
5601, # Mark I Modified SS Nanofiber Structure
),
1192: ( # 'Basic' Overdrive Injector System
5613, # Alpha Hull Mod Overdrive Injector
5617, # Marked Modified SS Overdrive Injector
5611, # Partial Hull Conversion Overdrive Injector
5615, # Type-E Altered SS Overdrive Injector
),
5631: ( # Type-D Restrained Overdrive Injector
5629, # Beta Hull Mod Overdrive Injector
5627, # Local Hull Conversion Overdrive Injector I
5633, # Mark I Modified SS Overdrive Injector
),
1537: ( # 'Basic' Power Diagnostic System
8213, # Alpha Reactor Control: Diagnostic System
8217, # Marked Generator Refitting: Diagnostic System
8211, # Partial Power Plant Manager: Diagnostic System
8215, # Type-E Power Core Modification: Diagnostic System
8255, # Type-E Power Core Modification: Reaction Control
),
8225: ( # Mark I Compact Power Diagnostic System
8221, # Beta Reactor Control: Diagnostic System I
8219, # Local Power Plant Manager: Diagnostic System I
8223, # Type-D Power Core Modification: Diagnostic System
),
1240: ( # 'Basic' Reinforced Bulkheads
5677, # Alpha Hull Mod Reinforced Bulkheads
5681, # Marked Modified SS Reinforced Bulkheads
5675, # Partial Hull Conversion Reinforced Bulkheads
5679, # Type-E Altered SS Reinforced Bulkheads
),
5649: ( # Mark I Compact Reinforced Bulkheads
5645, # Beta Hull Mod Reinforced Bulkheads
),
5647: ( # Type-D Restrained Reinforced Bulkheads
5643, # Local Hull Conversion Reinforced Bulkheads I
),
}
def upgrade(saveddata_engine):
# 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))

2
eos/db/saveddata/__init__.py Executable file → Normal file
View File

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

0
eos/db/saveddata/booster.py Executable file → Normal file
View File

32
eos/db/saveddata/cargo.py Normal file
View File

@@ -0,0 +1,32 @@
#===============================================================================
# Copyright (C) 2010 Diego Duclos
#
# 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, ForeignKey, Boolean
from sqlalchemy.orm import mapper
from eos.db import saveddata_meta
from eos.types import Cargo
cargo_table = Table("cargo", saveddata_meta,
Column("ID", Integer, primary_key=True),
Column("fitID", Integer, ForeignKey("fits.ID"), nullable = False, index = True),
Column("itemID", Integer, nullable = False),
Column("amount", Integer, nullable = False))
mapper(Cargo, cargo_table)

0
eos/db/saveddata/character.py Executable file → Normal file
View File

0
eos/db/saveddata/damagePattern.py Executable file → Normal file
View File

0
eos/db/saveddata/drone.py Executable file → Normal file
View File

17
eos/db/saveddata/fit.py Executable file → Normal file
View File

@@ -17,18 +17,20 @@
# along with eos. If not, see <http://www.gnu.org/licenses/>.
#===============================================================================
from sqlalchemy import Table, Column, Integer, ForeignKey, String
from sqlalchemy import Table, Column, Integer, ForeignKey, String, Boolean
from sqlalchemy.orm import relation, mapper
from sqlalchemy.sql import and_
from eos.db import saveddata_meta
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, 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
HandledProjectedFitList, HandledCargoList
fits_table = Table("fits", saveddata_meta,
Column("ID", Integer, primary_key = True),
Column("ownerID", ForeignKey("users.ID"), nullable = True, index = True),
@@ -36,7 +38,11 @@ fits_table = Table("fits", saveddata_meta,
Column("name", String, nullable = False),
Column("timestamp", Integer, nullable = False),
Column("characterID", ForeignKey("characters.ID"), nullable = True),
Column("damagePatternID", ForeignKey("damagePatterns.ID"), nullable=True))
Column("damagePatternID", ForeignKey("damagePatterns.ID"), nullable=True),
Column("booster", Boolean, nullable = False, index = True, default = 0),
Column("targetResistsID", ForeignKey("targetResists.ID"), nullable=True),
Column("modeID", Integer, nullable=True),
)
projectedFits_table = Table("projectedFits", saveddata_meta,
Column("sourceID", ForeignKey("fits.ID"), primary_key = True),
@@ -52,6 +58,8 @@ mapper(Fit, fits_table,
"_Fit__boosters" : relation(Booster, collection_class = HandledImplantBoosterList, cascade='all, delete, delete-orphan', single_parent=True),
"_Fit__drones" : relation(Drone, collection_class = HandledDroneList, cascade='all, delete, delete-orphan', single_parent=True,
primaryjoin = and_(drones_table.c.fitID == fits_table.c.ID, drones_table.c.projected == False)),
"_Fit__cargo" : relation(Cargo, collection_class = HandledCargoList, cascade='all, delete, delete-orphan', single_parent=True,
primaryjoin = and_(cargo_table.c.fitID == fits_table.c.ID)),
"_Fit__projectedDrones" : relation(Drone, collection_class = HandledProjectedDroneList, cascade='all, delete, delete-orphan', single_parent=True,
primaryjoin = and_(drones_table.c.fitID == fits_table.c.ID, drones_table.c.projected == True)),
"_Fit__implants" : relation(Implant, collection_class = HandledImplantBoosterList, cascade='all, delete, delete-orphan', single_parent=True,
@@ -60,6 +68,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,

0
eos/db/saveddata/fleet.py Executable file → Normal file
View File

0
eos/db/saveddata/implant.py Executable file → Normal file
View File

0
eos/db/saveddata/miscData.py Executable file → Normal file
View File

0
eos/db/saveddata/module.py Executable file → Normal file
View File

0
eos/db/saveddata/price.py Executable file → Normal file
View File

64
eos/db/saveddata/queries.py Executable file → Normal file
View File

@@ -19,8 +19,9 @@
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_
import eos.config
@@ -248,6 +249,29 @@ def getFitsWithShip(shipID, ownerID=None, where=None, eager=None):
raise TypeError("ShipID must be integer")
return fits
def getBoosterFits(ownerID=None, where=None, eager=None):
"""
Get all the fits that are flagged as a boosting ship
If no user is passed, do this for all users.
"""
if ownerID is not None and not isinstance(ownerID, int):
raise TypeError("OwnerID must be integer")
filter = Fit.booster == 1
if ownerID is not None:
filter = and_(filter, Fit.ownerID == ownerID)
filter = processWhere(filter, where)
eager = processEager(eager)
with sd_lock:
fits = saveddata_session.query(Fit).options(*eager).filter(filter).all()
return fits
def countAllFits():
with sd_lock:
count = saveddata_session.query(Fit).count()
return count
def countFitsWithShip(shipID, ownerID=None, where=None, eager=None):
"""
Get all the fits using a certain ship.
@@ -289,6 +313,12 @@ def getPrice(typeID):
raise TypeError("Need integer as argument")
return price
def clearPrices():
with sd_lock:
deleted_rows = saveddata_session.query(Price).delete()
commit()
return deleted_rows
def getMiscData(field):
if isinstance(field, basestring):
with sd_lock:
@@ -303,6 +333,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):
@@ -321,6 +357,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")
@@ -343,6 +397,14 @@ def getSquadsIDsWithFitID(fitID):
else:
raise TypeError("Need integer as argument")
def getProjectedFits(fitID):
if isinstance(fitID, int):
with sd_lock:
filter = and_(projectedFits_table.c.sourceID == fitID, Fit.ID == projectedFits_table.c.victimID)
fits = saveddata_session.query(Fit).filter(filter).all()
return fits
else:
raise TypeError("Need integer as argument")
def add(stuff):
with sd_lock:

0
eos/db/saveddata/skill.py Executable file → Normal file
View File

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)

0
eos/db/saveddata/user.py Executable file → Normal file
View File

0
eos/db/util.py Executable file → Normal file
View File

40
eos/effectHandlerHelpers.py Executable file → Normal file
View File

@@ -187,6 +187,46 @@ class HandledDroneList(HandledList):
return d
class HandledCargoList(HandledList):
# shameless copy of HandledDroneList
# I have no idea what this does, but I needed it
# @todo: investigate this
def find(self, item):
for d in self:
if d.item == item:
yield d
def findFirst(self, item):
for d in self.find(item):
return d
def append(self, cargo):
list.append(self, cargo)
def remove(self, cargo):
HandledList.remove(self, cargo)
def appendItem(self, item, qty = 1):
if qty < 1: ValueError("Amount of cargo to add should be >= 1")
d = self.findFirst(item)
if d is None:
d = eos.types.Cargo(item)
self.append(d)
d.qty += qty
return d
def removeItem(self, item, qty):
if qty < 1: ValueError("Amount of cargo to remove should be >= 1")
d = self.findFirst(item)
if d is None: return
d.qty -= qty
if d.qty <= 0:
self.remove(d)
return None
return d
class HandledImplantBoosterList(HandledList):
def __init__(self):

0
eos/effects/__init__.py Executable file → Normal file
View File

View File

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

2
eos/effects/accerationcontrolskillabmwdspeedboost.py Executable file → Normal file
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,6 +1,9 @@
# accessDifficultyBonusModifierRequiringArchaelogy
#
# Used by:
# Modules named like: Emission Scope Sharpener (8 of 8)
# Implant: Poteque 'Prospector' Archaeology AC-905
# Implant: Poteque 'Prospector' Environmental Analysis EY-1005
type = "passive"
def handler(fit, container, context):
fit.modules.filteredItemIncrease(lambda module: module.item.requiresSkill("Archaeology"),

View File

@@ -1,5 +1,8 @@
# accessDifficultyBonusModifierRequiringHacking
#
# Used by:
# Modules named like: Memetic Algorithm Bank (8 of 8)
# Implant: Poteque 'Prospector' Environmental Analysis EY-1005
# Implant: Poteque 'Prospector' Hacking HC-905
type = "passive"
def handler(fit, container, context):

2
eos/effects/adaptivearmorhardener.py Executable file → Normal file
View File

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

3
eos/effects/addtosignatureradius2.py Executable file → Normal file
View File

@@ -1,4 +1,7 @@
# addToSignatureRadius2
#
# Used by:
# Modules from group: Missile Launcher Bomb (2 of 2)
# Modules from group: Shield Extender (37 of 37)
type = "passive"
def handler(fit, module, context):

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

8
eos/effects/agilitymultipliereffect.py Executable file → Normal file
View File

@@ -1,7 +1,9 @@
# agilityMultiplierEffect
#
# Used by:
# Modules from group: Inertia Stabilizer (12 of 12)
# Modules from group: Nanofiber Internal Structure (14 of 14)
# Modules from group: Reinforced Bulkhead (12 of 12)
# Modules from group: Inertial Stabilizer (7 of 7)
# Modules from group: Nanofiber Internal Structure (7 of 7)
# Modules from group: Reinforced Bulkhead (8 of 8)
type = "passive"
def handler(fit, module, context):
fit.ship.boostItemAttr("agility",

2
eos/effects/agilitymultipliereffectpassive.py Executable file → Normal file
View File

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

2
eos/effects/ammofallofmultiplier.py Executable file → Normal file
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)

4
eos/effects/ammoinfluencecapneed.py Executable file → Normal file
View File

@@ -1,5 +1,7 @@
# ammoInfluenceCapNeed
#
# Used by:
# Items from category: Charge (458 of 824)
# Items from category: Charge (458 of 829)
type = "passive"
def handler(fit, module, context):
# Dirty hack to work around cap charges setting cap booster

4
eos/effects/ammoinfluencerange.py Executable file → Normal file
View File

@@ -1,5 +1,7 @@
# ammoInfluenceRange
#
# Used by:
# Items from category: Charge (559 of 824)
# Items from category: Charge (559 of 829)
type = "passive"
def handler(fit, module, context):
module.multiplyItemAttr("maxRange", module.getModifiedChargeAttr("weaponRangeMultiplier"))

6
eos/effects/ammospeedmultiplier.py Executable file → Normal file
View File

@@ -1,7 +1,9 @@
# ammoSpeedMultiplier
#
# Used by:
# Charges from group: Festival Charges (4 of 4)
# Charges from group: Festival Charges (8 of 8)
# Charges from group: Interdiction Probe (2 of 2)
# Charges from group: Survey Probe (3 of 3)
# Charge: Warp Disrupt Probe
type = "passive"
def handler(fit, module, context):
module.multiplyItemAttr("speed", module.getModifiedChargeAttr("speedMultiplier") or 1)

2
eos/effects/ammotrackingmultiplier.py Executable file → Normal file
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)

4
eos/effects/angelsetbonus.py Executable file → Normal file
View File

@@ -1,5 +1,7 @@
# angelsetbonus
#
# Used by:
# Implants named like: Halo (12 of 12)
# Implants named like: grade Halo (18 of 18)
runTime = "early"
type = "passive"
def handler(fit, implant, context):

2
eos/effects/antiwarpscramblingpassive.py Executable file → Normal file
View File

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

View File

@@ -1,6 +1,9 @@
# archaeologySkillVirusBonus
#
# Used by:
# Modules named like: Emission Scope Sharpener (8 of 8)
# Implant: Poteque 'Prospector' Archaeology AC-905
# Implant: Poteque 'Prospector' Environmental Analysis EY-1005
# Skill: Archaeology
type = "passive"
def handler(fit, container, context):

2
eos/effects/armorallrepairsystemsamountbonuspassive.py Executable file → Normal file
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"

2
eos/effects/armoredwarfaremindlink.py Executable file → Normal file
View File

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

2
eos/effects/armorhpbonusadd.py Executable file → Normal file
View File

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

2
eos/effects/armorhpbonusaddpassive.py Executable file → Normal file
View File

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

2
eos/effects/armorhpmultiply.py Executable file → Normal file
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)

2
eos/effects/armorreinforcermassadd.py Executable file → Normal file
View File

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

2
eos/effects/armorrepair.py Executable file → Normal file
View File

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

2
eos/effects/armorrepairprojectormaxrangebonus.py Executable file → Normal file
View File

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

2
eos/effects/armortankinggang.py Executable file → Normal file
View File

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

2
eos/effects/armortankinggang2.py Executable file → Normal file
View File

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

2
eos/effects/armorupgradesmasspenaltyreductionbonus.py Executable file → Normal file
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,7 +1,9 @@
# baseSensorStrengthModifierRequiringAstrometrics
#
# Used by:
# Modules from group: Scan Probe Launcher (4 of 7)
# Implants named like: Low grade Virtue (5 of 6)
# Implants named like: Poteque 'Prospector' Astrometric Rangefinding AR (3 of 3)
# Implants named like: grade Virtue (10 of 12)
# Modules named like: Gravity Capacitor Upgrade (8 of 8)
# Skill: Astrometric Rangefinding
# Skill: Astrometrics

2
eos/effects/bclargeenergyturretcapacitorneedbonus.py Executable file → Normal file
View File

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

2
eos/effects/bclargeenergyturretcpuneedbonus.py Executable file → Normal file
View File

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

2
eos/effects/bclargeenergyturretpowerneedbonus.py Executable file → Normal file
View File

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

2
eos/effects/bclargehybridturretcapacitorneedbonus.py Executable file → Normal file
View File

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

2
eos/effects/bclargehybridturretcpuneedbonus.py Executable file → Normal file
View File

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

2
eos/effects/bclargehybridturretpowerneedbonus.py Executable file → Normal file
View File

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

2
eos/effects/bclargeprojectileturretcpuneedbonus.py Executable file → Normal file
View File

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

2
eos/effects/bclargeprojectileturretpowerneedbonus.py Executable file → Normal file
View File

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

2
eos/effects/biologytimebonusfixed.py Executable file → Normal file
View File

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

2
eos/effects/blockaderunnercloakcpupercentbonus.py Executable file → Normal file
View File

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

2
eos/effects/boosterarmorhppenalty.py Executable file → Normal file
View File

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

2
eos/effects/boosterarmorrepairamountpenalty.py Executable file → Normal file
View File

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

2
eos/effects/boostercapacitorcapacitypenalty.py Executable file → Normal file
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)

2
eos/effects/boostermaxvelocitypenalty.py Executable file → Normal file
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)

2
eos/effects/boostermissileexplosionvelocitypenalty.py Executable file → Normal file
View File

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

2
eos/effects/boostermissilevelocitypenalty.py Executable file → Normal file
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)

6
eos/effects/boostermodifyboosterarmorpenalties.py Executable file → Normal file
View File

@@ -1,6 +1,8 @@
# boosterModifyBoosterArmorPenalties
#
# Used by:
# Implants named like: Eifyr and Co. 'Alchemist' Nanite Control NC (2 of 2)
# Implants named like: Low grade Edge (5 of 6)
# 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"
def handler(fit, container, context):

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