Compare commits

...

278 Commits

Author SHA1 Message Date
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
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
1658 changed files with 5159 additions and 1878 deletions

4
.gitignore vendored
View File

@@ -12,3 +12,7 @@
#Patch files
*.patch
#Personal
/saveddata
#Pyfa file
pyfaFits.html

View File

@@ -13,10 +13,10 @@ debug = False
saveInRoot = False
# Version data
version = "1.1.16"
tag = "Stable"
expansionName = "Odyssey"
expansionVersion = "1.1"
version = "1.3.1"
tag = "git"
expansionName = "Crius"
expansionVersion = "1.0"
evemonMinVersion = "4081"
pyfaPath = None
@@ -34,9 +34,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 +47,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 +64,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

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

@@ -66,7 +66,7 @@ from eos.db.saveddata.queries import getUser, getCharacter, getFit, getFitsWithS
getCharacterList, getPrice, getDamagePatternList, getDamagePattern, \
getFitList, getFleetList, getFleet, save, remove, commit, add, \
getCharactersForUser, getMiscData, getSquadsIDsWithFitID, getWing, \
getSquad
getSquad, getBoosterFits, getProjectedFits
#If using in memory saveddata, you'll want to reflect it so the data structure is good.
if config.saveddata_connectionstring == "sqlite:///:memory:":

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

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

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,7 +23,7 @@ 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),
@@ -38,9 +38,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 +51,11 @@ 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,
order_by = traits_table.c.typeID,
uselist = True)
})
Item.category = association_proxy("group", "category")

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

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

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

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

@@ -0,0 +1,22 @@
from sqlalchemy import Column, Table, Integer, String, ForeignKey, and_, select
from sqlalchemy.orm import mapper, column_property
from eos.types import Item, Traits
from eos.db import gamedata_meta
traits_table = Table("invtraits", gamedata_meta,
Column("typeID", Integer, ForeignKey("invtypes.typeID"), primary_key=True),
Column("skillID", Integer, ForeignKey("invtypes.typeID"), primary_key=True),
Column("bonusText", String, primary_key=True))
from .item import items_table
mapper(Traits, traits_table,
properties = {"skillName" : column_property(
select([items_table.c.typeName],
and_(
items_table.c.typeID == traits_table.c.skillID,
traits_table.c.skillID != -1
)))
});

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

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

@@ -3,7 +3,7 @@ import sqlalchemy
def update(saveddata_engine):
checkPriceFailures(saveddata_engine)
checkApiDefaultChar(saveddata_engine)
checkFitBooster(saveddata_engine)
def checkPriceFailures(saveddata_engine):
# Check if we have 'failed' column
@@ -39,3 +39,21 @@ def checkApiDefaultChar(saveddata_engine):
except sqlalchemy.exc.DatabaseError:
saveddata_engine.execute("ALTER TABLE characters ADD COLUMN defaultChar INTEGER;")
saveddata_engine.execute("ALTER TABLE characters ADD COLUMN chars VARCHAR;")
def checkFitBooster(saveddata_engine):
try:
saveddata_engine.execute("SELECT * FROM fits LIMIT 1")
# If table doesn't exist, it means we're doing everything from scratch
# and sqlalchemy will process everything as needed
except sqlalchemy.exc.DatabaseError:
pass
# If not, we're running on top of existing DB
else:
# Check that we have columns
try:
saveddata_engine.execute("SELECT booster FROM fits LIMIT 1")
# If we don't, create them
except sqlalchemy.exc.DatabaseError:
saveddata_engine.execute("ALTER TABLE fits ADD COLUMN booster BOOLEAN;")
# Set NULL data to 0 (needed in case of downgrade, see GH issue #62
saveddata_engine.execute("UPDATE fits SET booster = 0 WHERE booster IS NULL;")

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

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

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

@@ -17,18 +17,19 @@
# 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
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 +37,8 @@ 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))
projectedFits_table = Table("projectedFits", saveddata_meta,
Column("sourceID", ForeignKey("fits.ID"), primary_key = True),
@@ -52,6 +54,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,

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

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

@@ -21,6 +21,7 @@ from eos.db.util import processEager, processWhere
from eos.db import saveddata_session, sd_lock
from eos.types import User, Character, Fit, Price, DamagePattern, Fleet, MiscData, Wing, Squad
from eos.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,24 @@ 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 countFitsWithShip(shipID, ownerID=None, where=None, eager=None):
"""
Get all the fits using a certain ship.
@@ -342,7 +361,15 @@ def getSquadsIDsWithFitID(fitID):
return squads
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

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

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

View File

@@ -1,6 +1,7 @@
# 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,6 @@
# 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):

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

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

View File

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

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

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

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

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

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

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

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

@@ -1,5 +1,5 @@
# Used by:
# Charges from group: Festival Charges (4 of 4)
# Charges from group: Festival Charges (8 of 8)
# Charges from group: Survey Probe (3 of 3)
# Charge: Warp Disrupt Probe
type = "passive"

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

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

@@ -1,5 +1,5 @@
# 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):

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

View File

@@ -1,6 +1,7 @@
# 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):

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

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

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

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

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

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

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

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

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

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

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

View File

View File

@@ -1,7 +1,7 @@
# 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

View File

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

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

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

@@ -1,6 +1,6 @@
# 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: grade Edge (10 of 12)
# Skill: Neurotoxin Control
type = "passive"
def handler(fit, container, context):

View File

@@ -1,6 +1,6 @@
# 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: grade Edge (10 of 12)
# Skill: Neurotoxin Control
type = "passive"
def handler(fit, container, context):

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

@@ -1,6 +1,6 @@
# 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: grade Edge (10 of 12)
# Skill: Neurotoxin Control
type = "passive"
def handler(fit, container, context):

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

@@ -1,6 +1,6 @@
# 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: grade Edge (10 of 12)
# Skill: Neurotoxin Control
type = "passive"
def handler(fit, container, context):

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

@@ -1,6 +1,6 @@
# 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: grade Edge (10 of 12)
# Skill: Neurotoxin Control
type = "passive"
def handler(fit, container, context):

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

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

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

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

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

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

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

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

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